vulkan 3.15 → 3.16
raw patch · 627 files changed
+41393/−39104 lines, 627 files
Files
- changelog.md +3/−0
- package.yaml +1/−1
- src/Vulkan.hs +2/−0
- src/Vulkan/CStruct/Extends.hs +180/−171
- src/Vulkan/Core10/APIConstants.hs +16/−6
- src/Vulkan/Core10/APIConstants.hs-boot +4/−0
- src/Vulkan/Core10/AllocationCallbacks.hs +2/−0
- src/Vulkan/Core10/Buffer.hs +9/−9
- src/Vulkan/Core10/BufferView.hs +12/−12
- src/Vulkan/Core10/CommandBuffer.hs +28/−28
- src/Vulkan/Core10/CommandBufferBuilding.hs +13206/−13204
- src/Vulkan/Core10/CommandPool.hs +10/−10
- src/Vulkan/Core10/DescriptorSet.hs +61/−61
- src/Vulkan/Core10/Device.hs +101/−79
- src/Vulkan/Core10/DeviceInitialization.hs +134/−128
- src/Vulkan/Core10/Enums/AccessFlagBits.hs +193/−193
- src/Vulkan/Core10/Enums/AttachmentLoadOp.hs +1/−1
- src/Vulkan/Core10/Enums/AttachmentStoreOp.hs +9/−9
- src/Vulkan/Core10/Enums/BorderColor.hs +1/−1
- src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs +2/−2
- src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs +3/−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 +2/−0
- src/Vulkan/Core10/Enums/ComponentSwizzle.hs +1/−1
- src/Vulkan/Core10/Enums/DependencyFlagBits.hs +3/−3
- src/Vulkan/Core10/Enums/DescriptorType.hs +21/−21
- src/Vulkan/Core10/Enums/DynamicState.hs +148/−151
- src/Vulkan/Core10/Enums/EventCreateFlagBits.hs +6/−6
- src/Vulkan/Core10/Enums/Filter.hs +2/−2
- src/Vulkan/Core10/Enums/Format.hs +185/−185
- src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs +44/−44
- src/Vulkan/Core10/Enums/FrontFace.hs +1/−0
- src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs +2/−2
- src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs +10/−10
- src/Vulkan/Core10/Enums/ImageLayout.hs +28/−28
- src/Vulkan/Core10/Enums/ImageTiling.hs +1/−1
- src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs +4/−4
- src/Vulkan/Core10/Enums/LogicOp.hs +1/−1
- src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/ObjectType.hs +8/−6
- src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs +8/−8
- src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs +28/−29
- src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs +2/−2
- src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs +21/−19
- src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs +65/−65
- src/Vulkan/Core10/Enums/PrimitiveTopology.hs +15/−14
- src/Vulkan/Core10/Enums/QueryControlFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs +12/−12
- src/Vulkan/Core10/Enums/QueryType.hs +9/−9
- src/Vulkan/Core10/Enums/QueueFlagBits.hs +3/−3
- src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/Result.hs +13/−13
- src/Vulkan/Core10/Enums/SampleCountFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/SamplerAddressMode.hs +1/−1
- src/Vulkan/Core10/Enums/SamplerMipmapMode.hs +1/−1
- src/Vulkan/Core10/Enums/SharingMode.hs +2/−2
- src/Vulkan/Core10/Enums/StencilOp.hs +1/−0
- src/Vulkan/Core10/Enums/StructureType.hs +395/−389
- src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs +1/−1
- src/Vulkan/Core10/Event.hs +9/−9
- src/Vulkan/Core10/ExtensionDiscovery.hs +6/−0
- src/Vulkan/Core10/Fence.hs +8/−8
- src/Vulkan/Core10/FuncPointers.hs +2/−2
- src/Vulkan/Core10/FundamentalTypes.hs +41/−29
- src/Vulkan/Core10/FundamentalTypes.hs-boot +7/−5
- src/Vulkan/Core10/Handles.hs +56/−13
- src/Vulkan/Core10/Image.hs +50/−50
- src/Vulkan/Core10/ImageView.hs +57/−57
- src/Vulkan/Core10/LayerDiscovery.hs +1/−1
- src/Vulkan/Core10/Memory.hs +14/−14
- src/Vulkan/Core10/OtherTypes.hs +40/−40
- src/Vulkan/Core10/Pass.hs +71/−71
- src/Vulkan/Core10/Pipeline.hs +325/−324
- src/Vulkan/Core10/PipelineCache.hs +7/−7
- src/Vulkan/Core10/PipelineLayout.hs +12/−12
- src/Vulkan/Core10/Query.hs +6/−6
- src/Vulkan/Core10/Queue.hs +42/−42
- src/Vulkan/Core10/QueueSemaphore.hs +2/−2
- src/Vulkan/Core10/Sampler.hs +17/−17
- src/Vulkan/Core10/Shader.hs +13/−13
- src/Vulkan/Core10/SparseResourceMemoryManagement.hs +13/−13
- 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 +1/−1
- src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs +6/−6
- src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs +8/−8
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +5/−5
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs +3/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs +3/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +56/−51
- src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs +4/−4
- src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs +24/−24
- src/Vulkan/Core12.hs +7/−7
- src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs +7/−5
- src/Vulkan/Core12/Enums/DriverId.hs +6/−1
- src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs +1/−1
- src/Vulkan/Core12/Enums/SamplerReductionMode.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs +6/−6
- 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 +8/−8
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +44/−44
- src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +170/−170
- 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 +875/−0
- src/Vulkan/Core13.hs-boot +25/−0
- src/Vulkan/Core13/Enums.hs +20/−0
- src/Vulkan/Core13/Enums/AccessFlags2.hs +479/−0
- src/Vulkan/Core13/Enums/AccessFlags2.hs-boot +12/−0
- src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs +691/−0
- src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs-boot +12/−0
- src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs +123/−0
- src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs-boot +12/−0
- src/Vulkan/Core13/Enums/PipelineStageFlags2.hs +471/−0
- src/Vulkan/Core13/Enums/PipelineStageFlags2.hs-boot +12/−0
- src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlagBits.hs +54/−0
- src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlagBits.hs-boot +12/−0
- src/Vulkan/Core13/Enums/RenderingFlagBits.hs +94/−0
- src/Vulkan/Core13/Enums/RenderingFlagBits.hs-boot +12/−0
- src/Vulkan/Core13/Enums/SubmitFlagBits.hs +59/−0
- src/Vulkan/Core13/Enums/SubmitFlagBits.hs-boot +12/−0
- src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs +124/−0
- src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs-boot +12/−0
- src/Vulkan/Core13/Handles.hs +57/−0
- src/Vulkan/Core13/Handles.hs-boot +8/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs +1294/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs +280/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs +103/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs +352/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs-boot +43/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_cache_control.hs +120/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_cache_control.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs +243/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs-boot +25/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs +563/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs-boot +34/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs +99/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs +322/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs-boot +34/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs +139/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_texture_compression_astc_hdr.hs +141/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_texture_compression_astc_hdr.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs +235/−0
- src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs +3098/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot +111/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs +1524/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs-boot +51/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_format_feature_flags2.hs +105/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_format_feature_flags2.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs +566/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs-boot +43/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs +478/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs-boot +25/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_shader_terminate_invocation.hs +98/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_shader_terminate_invocation.hs-boot +15/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs +4855/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot +84/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs +100/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs-boot +15/−0
- src/Vulkan/Dynamic.hs +128/−128
- src/Vulkan/Exception.hs +1/−1
- src/Vulkan/Extensions.hs +2/−0
- src/Vulkan/Extensions/Handles.hs +2/−20
- src/Vulkan/Extensions/Handles.hs-boot +0/−4
- src/Vulkan/Extensions/VK_AMD_buffer_marker.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_gcn_shader.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_rasterization_order.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_ballot.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_info.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot +1/−1
- src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs +1/−1
- src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot +2/−2
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs +12/−18
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot +1/−1
- src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs +3/−3
- src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_4444_formats.hs +47/−12
- src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot +25/−7
- src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs +7/−7
- src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_color_write_enable.hs +5/−5
- src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs +6/−6
- src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_debug_marker.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_debug_report.hs +5/−5
- src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +7/−7
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_directfb_surface.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_display_control.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_display_control.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs +377/−1489
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot +30/−13
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs +61/−259
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot +25/−4
- src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_filter_cubic.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs +9/−15
- src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot +6/−6
- src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot +4/−4
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_global_priority.hs +31/−152
- src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot +0/−134
- src/Vulkan/Extensions/VK_EXT_global_priority_query.hs +37/−200
- src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot +0/−142
- src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_headless_surface.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_host_query_reset.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs +27/−33
- src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot +15/−15
- src/Vulkan/Extensions/VK_EXT_image_robustness.hs +26/−96
- src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot +0/−124
- src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs +6/−6
- src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs +63/−329
- src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot +0/−217
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs +19/−19
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_memory_budget.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_memory_priority.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_metal_surface.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs +173/−173
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs +69/−122
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot +0/−222
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs +36/−320
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs-boot +0/−140
- src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs +6/−6
- src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_private_data.hs +81/−578
- src/Vulkan/Extensions/VK_EXT_private_data.hs-boot +0/−170
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs +6/−6
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_robustness2.hs +8/−8
- src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_sample_locations.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs +5/−5
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot +5/−5
- src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs +27/−93
- src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot +0/−115
- src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs +10/−10
- src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs +8/−8
- src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs +59/−298
- src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs-boot +0/−195
- src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs +33/−116
- src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot +20/−14
- src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs +124/−144
- src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot +0/−155
- src/Vulkan/Extensions/VK_EXT_tooling_info.hs +46/−314
- src/Vulkan/Extensions/VK_EXT_tooling_info.hs-boot +0/−182
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +91/−91
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_validation_cache.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_validation_features.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_validation_flags.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs +7/−7
- src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs +60/−10
- src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot +24/−5
- src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot +2/−2
- src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs +6/−6
- src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot +1/−1
- src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs +1/−1
- src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot +1/−1
- src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs +7/−7
- src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot +1/−1
- src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs +2/−2
- src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_GGP_frame_token.hs +1/−1
- src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot +1/−1
- src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs +2/−2
- src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs +1/−1
- src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs +1/−1
- src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot +1/−1
- src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs +1/−1
- src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs +1/−1
- src/Vulkan/Extensions/VK_GOOGLE_user_type.hs +1/−1
- src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs +6/−17
- src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot +5/−6
- src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs +7/−13
- src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot +3/−3
- src/Vulkan/Extensions/VK_IMG_filter_cubic.hs +1/−1
- src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs +1/−1
- src/Vulkan/Extensions/VK_INTEL_performance_query.hs +2/−2
- src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot +1/−1
- src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs +2/−2
- src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_16bit_storage.hs +5/−5
- src/Vulkan/Extensions/VK_KHR_8bit_storage.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +60/−606
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot +7/−6
- src/Vulkan/Extensions/VK_KHR_android_surface.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_bind_memory2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +318/−3233
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot +0/−262
- src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_device_group.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_device_group_creation.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_display.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_display.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_driver_properties.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs +867/−2295
- src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot +30/−58
- src/Vulkan/Extensions/VK_KHR_external_fence.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs +6/−6
- src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs +7/−7
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_external_memory.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_external_semaphore.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs +7/−7
- src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs +9/−9
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs +44/−109
- src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs-boot +0/−147
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs +60/−66
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot +7/−7
- src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_global_priority.hs +539/−0
- src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot +197/−0
- src/Vulkan/Extensions/VK_KHR_image_format_list.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_incremental_present.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_maintenance1.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_maintenance2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_maintenance3.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_maintenance4.hs +61/−535
- src/Vulkan/Extensions/VK_KHR_maintenance4.hs-boot +0/−215
- src/Vulkan/Extensions/VK_KHR_multiview.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_performance_query.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_pipeline_library.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs +19/−19
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_present_id.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_present_id.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_present_wait.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_push_descriptor.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_ray_query.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +55/−55
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot +26/−26
- src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_clock.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs +6/−6
- src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs +6/−6
- src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs +36/−472
- src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs-boot +0/−163
- src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs +18/−4
- src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs +26/−94
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot +0/−118
- src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_surface.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_swapchain.hs +8/−8
- src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs +1118/−5972
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot +85/−150
- src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_variable_pointers.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_wayland_surface.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_win32_surface.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot +4/−4
- src/Vulkan/Extensions/VK_KHR_xcb_surface.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_xlib_surface.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs +25/−95
- src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot +0/−105
- src/Vulkan/Extensions/VK_MVK_ios_surface.hs +2/−2
- src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_MVK_macos_surface.hs +2/−2
- src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NN_vi_surface.hs +2/−2
- src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NVX_binary_import.hs +1/−1
- src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NVX_image_view_handle.hs +1/−1
- src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs +6/−6
- src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot +6/−6
- src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs +1/−1
- src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs +1/−1
- src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs +4/−4
- src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot +3/−3
- src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs +2/−2
- src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs +7/−7
- src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot +6/−6
- src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs +3/−3
- src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs +1/−1
- src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs +1/−1
- src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs +1/−1
- src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs +2/−2
- src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +96/−96
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_external_memory.hs +2/−2
- src/Vulkan/Extensions/VK_NV_external_memory.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs +1/−1
- src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs +1/−1
- src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_external_memory_win32.hs +2/−2
- src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_fill_rectangle.hs +1/−1
- src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs +2/−2
- src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs +6/−6
- src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot +5/−5
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs +20/−20
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs +2/−2
- src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs +5/−5
- src/Vulkan/Extensions/VK_NV_glsl_shader.hs +1/−1
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs +7/−7
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs +8/−14
- src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot +7/−7
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +255/−255
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot +11/−11
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +48/−48
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot +17/−17
- src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs +1/−1
- src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs +2/−2
- src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs +3/−3
- src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs +6/−6
- src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs +4/−4
- src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot +3/−3
- src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs +6/−6
- src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot +6/−6
- src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs +3/−3
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +13/−13
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_viewport_array2.hs +7/−7
- src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs +2/−2
- src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs +2/−2
- src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot +2/−2
- src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs +5/−5
- src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot +1/−1
- src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs +1/−1
- src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs +3/−3
- src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs +3/−3
- src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot +3/−3
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs +1/−1
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot +1/−1
- src/Vulkan/Extensions/VK_QNX_screen_surface.hs +2/−2
- src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs +2/−2
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot +1/−1
- src/Vulkan/SPIRVRequirements.hs +45/−69
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +33/−1
changelog.md view
@@ -2,6 +2,9 @@ ## WIP +## [3.16] - 2022-02-05+- Bump API version to v1.3.204+ ## [3.15] - 2022-01-14 - Bump API version to v1.2.203
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.15"+version: "3.16" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan.hs view
@@ -4,6 +4,7 @@ , module Vulkan.Core10 , module Vulkan.Core11 , module Vulkan.Core12+ , module Vulkan.Core13 , module Vulkan.Extensions , module Vulkan.NamedType , module Vulkan.SPIRVRequirements@@ -13,6 +14,7 @@ import Vulkan.Core10 import Vulkan.Core11 import Vulkan.Core12+import Vulkan.Core13 import Vulkan.Extensions import Vulkan.NamedType import Vulkan.SPIRVRequirements
src/Vulkan/CStruct/Extends.hs view
@@ -97,7 +97,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindShaderGroupIndirectCommandNV) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindVertexBufferIndirectCommandNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BlitImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionBufferCreateInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionCreateInfoFUCHSIA)@@ -105,14 +105,14 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionPropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferCopy)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferCopy2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferCopy2) import {-# SOURCE #-} Vulkan.Core10.Buffer (BufferCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (BufferDeviceAddressCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferDeviceAddressInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferImageCopy)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferImageCopy2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferImageCopy2) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (BufferMemoryBarrier)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (BufferMemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo) import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)@@ -129,9 +129,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT) import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferInheritanceInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (CommandBufferInheritanceRenderPassTransformInfoQCOM)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CommandBufferSubmitInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (CommandBufferSubmitInfo) import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.ImageView (ComponentMapping) import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo)@@ -140,12 +140,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureToMemoryInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferToImageInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)@@ -163,11 +163,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationBufferCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationImageCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationMemoryAllocateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (DependencyInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorBufferInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorImageInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolSize) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorSetAllocateInfo) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorSetLayoutBinding)@@ -178,7 +178,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (DescriptorSetVariableDescriptorCountLayoutSupport) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateEntry)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceBufferMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceBufferMemoryRequirements) import {-# SOURCE #-} Vulkan.Core10.Device (DeviceCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceDeviceMemoryReportCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (DeviceDiagnosticsConfigCreateInfoNV)@@ -191,13 +191,13 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupSubmitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupSwapchainCreateInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceImageMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceMemoryReportCallbackDataEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (DevicePrivateDataCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Device (DeviceQueueCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority (DeviceQueueGlobalPriorityCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DispatchIndirectCommand)@@ -252,7 +252,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (FilterCubicImageViewImageFormatPropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (FormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (FormatProperties2)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_format_feature_flags2 (FormatProperties3KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentImageInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo)@@ -271,10 +271,10 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageBlit2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageCopy)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageCopy2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageCopy2) import {-# SOURCE #-} Vulkan.Core10.Image (ImageCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierExplicitCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierListCreateInfoEXT)@@ -284,12 +284,12 @@ import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (ImageFormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (ImageFormatProperties2) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (ImageMemoryBarrier)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (ImageMemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (ImageMemoryBarrier2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (ImagePipeSurfaceCreateInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (ImagePlaneMemoryRequirementsInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageResolve)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageResolve2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageResolve2) 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)@@ -326,7 +326,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo) import {-# SOURCE #-} Vulkan.Core10.Memory (MemoryAllocateInfo) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (MemoryBarrier)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (MemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedRequirements) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryFdPropertiesKHR)@@ -397,7 +397,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)@@ -423,28 +423,28 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) 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_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)+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) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4PropertiesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)@@ -461,7 +461,7 @@ 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.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)+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.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)@@ -469,7 +469,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)@@ -498,36 +498,36 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+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.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.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)+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_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) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)+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.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceSparseImageFormatInfo2) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceSparseProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlPropertiesEXT)+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_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (PhysicalDeviceSurfaceInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PhysicalDeviceSynchronization2FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)+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.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_tooling_info (PhysicalDeviceToolPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)@@ -539,11 +539,13 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (PipelineCacheHeaderVersionOne) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT)@@ -554,8 +556,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedback)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDepthStencilStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo)@@ -577,11 +579,11 @@ import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineRasterizationStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PipelineRenderingCreateInfoKHR)+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 {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT)+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) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)@@ -600,7 +602,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionsKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimeGOOGLE) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimesInfoGOOGLE)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PrivateDataSlotCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PrivateDataSlotCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (ProtectedSubmitInfo) import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PushConstantRange) import {-# SOURCE #-} Vulkan.Core10.Query (QueryPoolCreateInfo)@@ -608,7 +610,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (QueryPoolPerformanceQueryCreateInfoINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (QueueFamilyGlobalPriorityPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (QueueFamilyProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (QueueFamilyProperties2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (RayTracingPipelineCreateInfoKHR)@@ -628,11 +630,11 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (RenderPassMultiviewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingAttachmentInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ResolveImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (SRTDataNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)@@ -649,7 +651,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (SemaphoreGetWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SemaphoreSubmitInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (SetStateFlagsIndirectCommandNV)@@ -676,7 +678,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(..)) import {-# SOURCE #-} Vulkan.Core10.Queue (SubmitInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SubmitInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (SubpassDependency) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassDependency2)@@ -724,7 +726,7 @@ import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (WriteDescriptorSet) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (WriteDescriptorSetAccelerationStructureKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (WriteDescriptorSetAccelerationStructureNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlockEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlock) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (XYColorEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (XcbSurfaceCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)@@ -856,26 +858,26 @@ Extends BufferCreateInfo BufferOpaqueCaptureAddressCreateInfo = () Extends BufferCreateInfo BufferDeviceAddressCreateInfoEXT = () Extends BufferCreateInfo BufferCollectionBufferCreateInfoFUCHSIA = ()- Extends BufferImageCopy2KHR CopyCommandTransformInfoQCOM = ()+ Extends BufferImageCopy2 CopyCommandTransformInfoQCOM = () Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceViewportScissorInfoNV = ()- Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfoKHR = ()+ Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfo = () Extends CommandBufferInheritanceInfo AttachmentSampleCountInfoAMD = () Extends CommandBufferInheritanceInfo MultiviewPerViewAttributesInfoNVX = ()- Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()+ Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = () Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = () Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()- Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfoEXT = ()+ Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfo = () Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoVALVE = () Extends DescriptorSetAllocateInfo DescriptorSetVariableDescriptorCountAllocateInfo = () Extends DescriptorSetLayoutCreateInfo DescriptorSetLayoutBindingFlagsCreateInfo = () Extends DescriptorSetLayoutCreateInfo MutableDescriptorTypeCreateInfoVALVE = () Extends DescriptorSetLayoutSupport DescriptorSetVariableDescriptorCountLayoutSupport = () Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()- Extends DeviceCreateInfo DevicePrivateDataCreateInfoEXT = ()- Extends DeviceCreateInfo PhysicalDevicePrivateDataFeaturesEXT = ()+ Extends DeviceCreateInfo DevicePrivateDataCreateInfo = ()+ Extends DeviceCreateInfo PhysicalDevicePrivateDataFeatures = () Extends DeviceCreateInfo (PhysicalDeviceFeatures2 '[]) = () Extends DeviceCreateInfo PhysicalDeviceVariablePointersFeatures = () Extends DeviceCreateInfo PhysicalDeviceMultiviewFeatures = ()@@ -888,12 +890,12 @@ Extends DeviceCreateInfo PhysicalDeviceProtectedMemoryFeatures = () Extends DeviceCreateInfo PhysicalDeviceBlendOperationAdvancedFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceMultiDrawFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceInlineUniformBlockFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceMaintenance4FeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceInlineUniformBlockFeatures = ()+ Extends DeviceCreateInfo PhysicalDeviceMaintenance4Features = () Extends DeviceCreateInfo PhysicalDeviceShaderDrawParametersFeatures = () Extends DeviceCreateInfo PhysicalDeviceShaderFloat16Int8Features = () Extends DeviceCreateInfo PhysicalDeviceHostQueryResetFeatures = ()- Extends DeviceCreateInfo PhysicalDeviceGlobalPriorityQueryFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceGlobalPriorityQueryFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceDeviceMemoryReportFeaturesEXT = () Extends DeviceCreateInfo DeviceDeviceMemoryReportCreateInfoEXT = () Extends DeviceCreateInfo PhysicalDeviceDescriptorIndexingFeatures = ()@@ -932,7 +934,7 @@ Extends DeviceCreateInfo PhysicalDeviceBufferDeviceAddressFeatures = () Extends DeviceCreateInfo PhysicalDeviceBufferDeviceAddressFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceImagelessFramebufferFeatures = ()- Extends DeviceCreateInfo PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceTextureCompressionASTCHDRFeatures = () Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrixFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceYcbcrImageArraysFeaturesEXT = () Extends DeviceCreateInfo PhysicalDevicePerformanceQueryFeaturesKHR = ()@@ -945,13 +947,14 @@ Extends DeviceCreateInfo PhysicalDeviceSeparateDepthStencilLayoutsFeatures = () Extends DeviceCreateInfo PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = () Extends DeviceCreateInfo PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = ()- Extends DeviceCreateInfo PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceShaderDemoteToHelperInvocationFeatures = () Extends DeviceCreateInfo PhysicalDeviceTexelBufferAlignmentFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceSubgroupSizeControlFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceSubgroupSizeControlFeatures = () Extends DeviceCreateInfo PhysicalDeviceLineRasterizationFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDevicePipelineCreationCacheControlFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDevicePipelineCreationCacheControlFeatures = () Extends DeviceCreateInfo PhysicalDeviceVulkan11Features = () Extends DeviceCreateInfo PhysicalDeviceVulkan12Features = ()+ Extends DeviceCreateInfo PhysicalDeviceVulkan13Features = () Extends DeviceCreateInfo PhysicalDeviceCoherentMemoryFeaturesAMD = () Extends DeviceCreateInfo PhysicalDeviceCustomBorderColorFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceBorderColorSwizzleFeaturesEXT = ()@@ -959,52 +962,52 @@ Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicState2FeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = () Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()- Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = () Extends DeviceCreateInfo PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeatures = () Extends DeviceCreateInfo PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = () Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = () Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceSubpassShadingFeaturesHUAWEI = () Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()- Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeatures = () Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends DeviceCreateInfo PhysicalDeviceDepthClipControlFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceExternalMemoryRDMAFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceSynchronization2FeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceSynchronization2Features = () Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeatures = () Extends DeviceCreateInfo PhysicalDeviceRayTracingMotionBlurFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeatures = () Extends DeviceCreateInfo PhysicalDeviceImageViewMinLodFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = () Extends DeviceCreateInfo PhysicalDeviceLinearColorAttachmentFeaturesNV = ()- Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = ()+ Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = () Extends FenceCreateInfo ExportFenceCreateInfo = () Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = () Extends FormatProperties2 DrmFormatModifierPropertiesListEXT = ()- Extends FormatProperties2 FormatProperties3KHR = ()+ Extends FormatProperties2 FormatProperties3 = () Extends FormatProperties2 DrmFormatModifierPropertiesList2EXT = () Extends FramebufferCreateInfo FramebufferAttachmentsCreateInfo = () Extends GraphicsPipelineCreateInfo GraphicsPipelineShaderGroupsCreateInfoNV = () Extends GraphicsPipelineCreateInfo PipelineDiscardRectangleStateCreateInfoEXT = () Extends GraphicsPipelineCreateInfo PipelineRepresentativeFragmentTestStateCreateInfoNV = ()- Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()+ Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfo = () Extends GraphicsPipelineCreateInfo PipelineCompilerControlCreateInfoAMD = () Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateStateCreateInfoKHR = () Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateEnumStateCreateInfoNV = ()- Extends GraphicsPipelineCreateInfo PipelineRenderingCreateInfoKHR = ()+ Extends GraphicsPipelineCreateInfo PipelineRenderingCreateInfo = () Extends GraphicsPipelineCreateInfo AttachmentSampleCountInfoAMD = () Extends GraphicsPipelineCreateInfo MultiviewPerViewAttributesInfoNVX = ()- Extends ImageBlit2KHR CopyCommandTransformInfoQCOM = ()+ Extends ImageBlit2 CopyCommandTransformInfoQCOM = () Extends ImageCreateInfo DedicatedAllocationImageCreateInfoNV = () Extends ImageCreateInfo ExternalMemoryImageCreateInfoNV = () Extends ImageCreateInfo ExternalMemoryImageCreateInfo = ()@@ -1021,7 +1024,7 @@ Extends ImageFormatProperties2 AndroidHardwareBufferUsageANDROID = () Extends ImageFormatProperties2 FilterCubicImageViewImageFormatPropertiesEXT = () Extends ImageMemoryBarrier SampleLocationsInfoEXT = ()- Extends ImageMemoryBarrier2KHR SampleLocationsInfoEXT = ()+ Extends ImageMemoryBarrier2 SampleLocationsInfoEXT = () Extends ImageMemoryRequirementsInfo2 ImagePlaneMemoryRequirementsInfo = () Extends ImageViewCreateInfo ImageViewUsageCreateInfo = () Extends ImageViewCreateInfo SamplerYcbcrConversionInfo = ()@@ -1050,7 +1053,7 @@ Extends MemoryRequirements2 MemoryDedicatedRequirements = () Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()- Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDevicePresentIdFeaturesKHR = ()@@ -1061,12 +1064,12 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceProtectedMemoryFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceBlendOperationAdvancedFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiDrawFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceInlineUniformBlockFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4FeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceInlineUniformBlockFeatures = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4Features = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDrawParametersFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderFloat16Int8Features = () Extends PhysicalDeviceFeatures2 PhysicalDeviceHostQueryResetFeatures = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceGlobalPriorityQueryFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceGlobalPriorityQueryFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceMemoryReportFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorIndexingFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceTimelineSemaphoreFeatures = ()@@ -1103,7 +1106,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceBufferDeviceAddressFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceBufferDeviceAddressFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImagelessFramebufferFeatures = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceTextureCompressionASTCHDRFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrixFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcrImageArraysFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDevicePerformanceQueryFeaturesKHR = ()@@ -1116,44 +1119,45 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceSeparateDepthStencilLayoutsFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDemoteToHelperInvocationFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceTexelBufferAlignmentFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceSubgroupSizeControlFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceSubgroupSizeControlFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceLineRasterizationFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineCreationCacheControlFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineCreationCacheControlFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan11Features = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan12Features = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkan13Features = () Extends PhysicalDeviceFeatures2 PhysicalDeviceCoherentMemoryFeaturesAMD = () Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceBorderColorSwizzleFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicState2FeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassShadingFeaturesHUAWEI = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipControlFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryRDMAFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2FeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2Features = () Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRGBA10X6FormatsFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImageViewMinLodFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = () Extends PhysicalDeviceFeatures2 PhysicalDeviceLinearColorAttachmentFeaturesNV = ()@@ -1177,9 +1181,9 @@ Extends PhysicalDeviceProperties2 PhysicalDeviceSamplerFilterMinmaxProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceSampleLocationsPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceBlendOperationAdvancedPropertiesEXT = ()- Extends PhysicalDeviceProperties2 PhysicalDeviceInlineUniformBlockPropertiesEXT = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceInlineUniformBlockProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance3Properties = ()- Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4PropertiesKHR = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4Properties = () Extends PhysicalDeviceProperties2 PhysicalDeviceFloatControlsProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceExternalMemoryHostPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceConservativeRasterizationPropertiesEXT = ()@@ -1202,19 +1206,20 @@ Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrixPropertiesNV = () Extends PhysicalDeviceProperties2 PhysicalDevicePerformanceQueryPropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceShaderSMBuiltinsPropertiesNV = ()- Extends PhysicalDeviceProperties2 PhysicalDeviceTexelBufferAlignmentPropertiesEXT = ()- Extends PhysicalDeviceProperties2 PhysicalDeviceSubgroupSizeControlPropertiesEXT = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceTexelBufferAlignmentProperties = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceSubgroupSizeControlProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceSubpassShadingPropertiesHUAWEI = () Extends PhysicalDeviceProperties2 PhysicalDeviceLineRasterizationPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan11Properties = () Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan12Properties = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan13Properties = () Extends PhysicalDeviceProperties2 PhysicalDeviceCustomBorderColorPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceRobustness2PropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = () Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()- Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductPropertiesKHR = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()@@ -1230,7 +1235,7 @@ Extends PipelineRasterizationStateCreateInfo PipelineRasterizationDepthClipStateCreateInfoEXT = () Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = () Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = ()- Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = ()+ Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfo = () Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = () Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = () Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = ()@@ -1247,11 +1252,11 @@ Extends PresentInfoKHR PresentFrameTokenGGP = () Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = () Extends QueryPoolCreateInfo QueryPoolPerformanceQueryCreateInfoINTEL = ()- Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesEXT = ()+ Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesKHR = () Extends QueueFamilyProperties2 QueueFamilyCheckpointPropertiesNV = () Extends QueueFamilyProperties2 QueueFamilyCheckpointProperties2NV = ()- Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfoEXT = ()- Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfoEXT = ()+ Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfo = ()+ Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfo = () Extends RenderPassBeginInfo DeviceGroupRenderPassBeginInfo = () Extends RenderPassBeginInfo RenderPassSampleLocationsBeginInfoEXT = () Extends RenderPassBeginInfo RenderPassAttachmentBeginInfo = ()@@ -1260,10 +1265,10 @@ Extends RenderPassCreateInfo RenderPassInputAttachmentAspectCreateInfo = () Extends RenderPassCreateInfo RenderPassFragmentDensityMapCreateInfoEXT = () Extends RenderPassCreateInfo2 RenderPassFragmentDensityMapCreateInfoEXT = ()- Extends RenderingInfoKHR DeviceGroupRenderPassBeginInfo = ()- Extends RenderingInfoKHR RenderingFragmentShadingRateAttachmentInfoKHR = ()- Extends RenderingInfoKHR RenderingFragmentDensityMapAttachmentInfoEXT = ()- Extends RenderingInfoKHR MultiviewPerViewAttributesInfoNVX = ()+ Extends RenderingInfo DeviceGroupRenderPassBeginInfo = ()+ Extends RenderingInfo RenderingFragmentShadingRateAttachmentInfoKHR = ()+ Extends RenderingInfo RenderingFragmentDensityMapAttachmentInfoEXT = ()+ Extends RenderingInfo MultiviewPerViewAttributesInfoNVX = () Extends SamplerCreateInfo SamplerYcbcrConversionInfo = () Extends SamplerCreateInfo SamplerReductionModeCreateInfo = () Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = ()@@ -1280,10 +1285,10 @@ Extends SubmitInfo ProtectedSubmitInfo = () Extends SubmitInfo TimelineSemaphoreSubmitInfo = () Extends SubmitInfo PerformanceQuerySubmitInfoKHR = ()- Extends SubmitInfo2KHR Win32KeyedMutexAcquireReleaseInfoNV = ()- Extends SubmitInfo2KHR Win32KeyedMutexAcquireReleaseInfoKHR = ()- Extends SubmitInfo2KHR PerformanceQuerySubmitInfoKHR = ()- Extends SubpassDependency2 MemoryBarrier2KHR = ()+ Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoNV = ()+ Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoKHR = ()+ Extends SubmitInfo2 PerformanceQuerySubmitInfoKHR = ()+ Extends SubpassDependency2 MemoryBarrier2 = () Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = () Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = () Extends SubpassEndInfo SubpassFragmentDensityMapOffsetEndInfoQCOM = ()@@ -1297,7 +1302,7 @@ Extends SwapchainCreateInfoKHR ImageFormatListCreateInfo = () Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveInfoEXT = () Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveWin32InfoEXT = ()- Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlockEXT = ()+ Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlock = () Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = () Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureNV = () Extends a b = TypeError (ShowType a :<>: Text " is not extended by " :<>: ShowType b)@@ -1416,8 +1421,8 @@ STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV -> go @ExportMemoryWin32HandleInfoNV STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV -> go @Win32KeyedMutexAcquireReleaseInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV- STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT -> go @DevicePrivateDataCreateInfoEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT -> go @PhysicalDevicePrivateDataFeaturesEXT+ STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO -> go @DevicePrivateDataCreateInfo+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES -> go @PhysicalDevicePrivateDataFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT -> go @PhysicalDeviceMultiDrawPropertiesEXT STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV -> go @GraphicsPipelineShaderGroupsCreateInfoNV@@ -1499,23 +1504,23 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT -> go @PhysicalDeviceMultiDrawFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT -> go @PhysicalDeviceBlendOperationAdvancedPropertiesEXT STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT -> go @PipelineColorBlendAdvancedStateCreateInfoEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT -> go @PhysicalDeviceInlineUniformBlockFeaturesEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT -> go @PhysicalDeviceInlineUniformBlockPropertiesEXT- STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT -> go @WriteDescriptorSetInlineUniformBlockEXT- STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT -> go @DescriptorPoolInlineUniformBlockCreateInfoEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES -> go @PhysicalDeviceInlineUniformBlockFeatures+ STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES -> go @PhysicalDeviceInlineUniformBlockProperties+ STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK -> go @WriteDescriptorSetInlineUniformBlock+ STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO -> go @DescriptorPoolInlineUniformBlockCreateInfo STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV -> go @PipelineCoverageModulationStateCreateInfoNV STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO -> go @ImageFormatListCreateInfo STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT -> go @ShaderModuleValidationCacheCreateInfoEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES -> go @PhysicalDeviceMaintenance3Properties- STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR -> go @PhysicalDeviceMaintenance4FeaturesKHR- STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR -> go @PhysicalDeviceMaintenance4PropertiesKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES -> go @PhysicalDeviceMaintenance4Features+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES -> go @PhysicalDeviceMaintenance4Properties STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES -> go @PhysicalDeviceShaderDrawParametersFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES -> go @PhysicalDeviceShaderFloat16Int8Features STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES -> go @PhysicalDeviceFloatControlsProperties STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES -> go @PhysicalDeviceHostQueryResetFeatures- STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT -> go @DeviceQueueGlobalPriorityCreateInfoEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT -> go @PhysicalDeviceGlobalPriorityQueryFeaturesEXT- STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT -> go @QueueFamilyGlobalPriorityPropertiesEXT+ STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR -> go @DeviceQueueGlobalPriorityCreateInfoKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR -> go @PhysicalDeviceGlobalPriorityQueryFeaturesKHR+ STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR -> go @QueueFamilyGlobalPriorityPropertiesKHR STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT -> go @DebugUtilsMessengerCreateInfoEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT -> go @PhysicalDeviceDeviceMemoryReportFeaturesEXT STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT -> go @DeviceDeviceMemoryReportCreateInfoEXT@@ -1613,12 +1618,12 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES -> go @PhysicalDeviceImagelessFramebufferFeatures STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO -> go @FramebufferAttachmentsCreateInfo STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO -> go @RenderPassAttachmentBeginInfo- STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT -> go @PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES -> go @PhysicalDeviceTextureCompressionASTCHDRFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV -> go @PhysicalDeviceCooperativeMatrixFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV -> go @PhysicalDeviceCooperativeMatrixPropertiesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT -> go @PhysicalDeviceYcbcrImageArraysFeaturesEXT STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP -> go @PresentFrameTokenGGP- STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT -> go @PipelineCreationFeedbackCreateInfoEXT+ STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO -> go @PipelineCreationFeedbackCreateInfo STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT -> go @SurfaceFullScreenExclusiveInfoEXT STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT -> go @SurfaceFullScreenExclusiveWin32InfoEXT STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT -> go @SurfaceCapabilitiesFullScreenExclusiveEXT@@ -1640,23 +1645,25 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT -> go @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT -> go @AttachmentDescriptionStencilLayout STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR -> go @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT -> go @PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES -> go @PhysicalDeviceShaderDemoteToHelperInvocationFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT -> go @PhysicalDeviceTexelBufferAlignmentFeaturesEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT -> go @PhysicalDeviceTexelBufferAlignmentPropertiesEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT -> go @PhysicalDeviceSubgroupSizeControlFeaturesEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT -> go @PhysicalDeviceSubgroupSizeControlPropertiesEXT- STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT -> go @PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES -> go @PhysicalDeviceTexelBufferAlignmentProperties+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES -> go @PhysicalDeviceSubgroupSizeControlFeatures+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES -> go @PhysicalDeviceSubgroupSizeControlProperties+ STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO -> go @PipelineShaderStageRequiredSubgroupSizeCreateInfo STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI -> go @SubpassShadingPipelineCreateInfoHUAWEI STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI -> go @PhysicalDeviceSubpassShadingPropertiesHUAWEI STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO -> go @MemoryOpaqueCaptureAddressAllocateInfo STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT -> go @PhysicalDeviceLineRasterizationFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT -> go @PhysicalDeviceLineRasterizationPropertiesEXT STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT -> go @PipelineRasterizationLineStateCreateInfoEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT -> go @PhysicalDevicePipelineCreationCacheControlFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES -> go @PhysicalDevicePipelineCreationCacheControlFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES -> go @PhysicalDeviceVulkan11Features STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES -> go @PhysicalDeviceVulkan11Properties STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES -> go @PhysicalDeviceVulkan12Features STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES -> go @PhysicalDeviceVulkan12Properties+ STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES -> go @PhysicalDeviceVulkan13Features+ STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES -> go @PhysicalDeviceVulkan13Properties STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD -> go @PipelineCompilerControlCreateInfoAMD STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD -> go @PhysicalDeviceCoherentMemoryFeaturesAMD STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT contains an undiscriminated union (ClearColorValue) and can't be safely peeked") Nothing Nothing@@ -1671,11 +1678,11 @@ STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> go @PhysicalDeviceDiagnosticsConfigFeaturesNV STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> go @DeviceDiagnosticsConfigCreateInfoNV- STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR -> go @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES -> go @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR -> go @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT -> go @PhysicalDeviceRobustness2FeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT -> go @PhysicalDeviceRobustness2PropertiesEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDeviceImageRobustnessFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES -> go @PhysicalDeviceImageRobustnessFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR -> go @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR -> go @PhysicalDevicePortabilitySubsetFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR@@ -1686,7 +1693,7 @@ STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> go @PipelineFragmentShadingRateStateCreateInfoKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR -> go @PhysicalDeviceFragmentShadingRateFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR -> go @PhysicalDeviceFragmentShadingRatePropertiesKHR- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR -> go @PhysicalDeviceShaderTerminateInvocationFeaturesKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES -> go @PhysicalDeviceShaderTerminateInvocationFeatures 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@@ -1698,17 +1705,17 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV -> go @PhysicalDeviceExternalMemoryRDMAFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT -> go @PhysicalDeviceColorWriteEnableFeaturesEXT STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT -> go @PipelineColorWriteCreateInfoEXT- STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR -> go @MemoryBarrier2KHR+ STRUCTURE_TYPE_MEMORY_BARRIER_2 -> go @MemoryBarrier2 STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> go @QueueFamilyCheckpointProperties2NV- STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR -> go @PhysicalDeviceSynchronization2FeaturesKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES -> go @PhysicalDeviceSynchronization2Features 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 STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT -> go @PhysicalDeviceProvokingVertexFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT -> go @PhysicalDeviceProvokingVertexPropertiesEXT STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT -> go @PipelineRasterizationProvokingVertexStateCreateInfoEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR -> go @PhysicalDeviceShaderIntegerDotProductFeaturesKHR- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR -> go @PhysicalDeviceShaderIntegerDotProductPropertiesKHR+ 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_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@@ -1717,14 +1724,14 @@ STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA -> go @BufferCollectionImageCreateInfoFUCHSIA STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA -> go @BufferCollectionBufferCreateInfoFUCHSIA STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT -> go @PhysicalDeviceRGBA10X6FormatsFeaturesEXT- STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR -> go @FormatProperties3KHR+ STRUCTURE_TYPE_FORMAT_PROPERTIES_3 -> go @FormatProperties3 STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT -> go @DrmFormatModifierPropertiesList2EXT STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID -> go @AndroidHardwareBufferFormatProperties2ANDROID- STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR -> go @PipelineRenderingCreateInfoKHR+ STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO -> go @PipelineRenderingCreateInfo STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> go @RenderingFragmentShadingRateAttachmentInfoKHR STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT -> go @RenderingFragmentDensityMapAttachmentInfoEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR -> go @PhysicalDeviceDynamicRenderingFeaturesKHR- STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR -> go @CommandBufferInheritanceRenderingInfoKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES -> go @PhysicalDeviceDynamicRenderingFeatures+ STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO -> go @CommandBufferInheritanceRenderingInfo STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD -> go @AttachmentSampleCountInfoAMD STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX -> go @MultiviewPerViewAttributesInfoNVX STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT -> go @PhysicalDeviceImageViewMinLodFeaturesEXT@@ -1798,8 +1805,8 @@ {-# complete (::&) :: ExportMemoryWin32HandleInfoNV #-} {-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoNV #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV #-}-{-# complete (::&) :: DevicePrivateDataCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDevicePrivateDataFeaturesEXT #-}+{-# complete (::&) :: DevicePrivateDataCreateInfo #-}+{-# complete (::&) :: PhysicalDevicePrivateDataFeatures #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV #-} {-# complete (::&) :: PhysicalDeviceMultiDrawPropertiesEXT #-} {-# complete (::&) :: GraphicsPipelineShaderGroupsCreateInfoNV #-}@@ -1881,23 +1888,23 @@ {-# complete (::&) :: PhysicalDeviceMultiDrawFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceBlendOperationAdvancedPropertiesEXT #-} {-# complete (::&) :: PipelineColorBlendAdvancedStateCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceInlineUniformBlockFeaturesEXT #-}-{-# complete (::&) :: PhysicalDeviceInlineUniformBlockPropertiesEXT #-}-{-# complete (::&) :: WriteDescriptorSetInlineUniformBlockEXT #-}-{-# complete (::&) :: DescriptorPoolInlineUniformBlockCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDeviceInlineUniformBlockFeatures #-}+{-# complete (::&) :: PhysicalDeviceInlineUniformBlockProperties #-}+{-# complete (::&) :: WriteDescriptorSetInlineUniformBlock #-}+{-# complete (::&) :: DescriptorPoolInlineUniformBlockCreateInfo #-} {-# complete (::&) :: PipelineCoverageModulationStateCreateInfoNV #-} {-# complete (::&) :: ImageFormatListCreateInfo #-} {-# complete (::&) :: ShaderModuleValidationCacheCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceMaintenance3Properties #-}-{-# complete (::&) :: PhysicalDeviceMaintenance4FeaturesKHR #-}-{-# complete (::&) :: PhysicalDeviceMaintenance4PropertiesKHR #-}+{-# complete (::&) :: PhysicalDeviceMaintenance4Features #-}+{-# complete (::&) :: PhysicalDeviceMaintenance4Properties #-} {-# complete (::&) :: PhysicalDeviceShaderDrawParametersFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderFloat16Int8Features #-} {-# complete (::&) :: PhysicalDeviceFloatControlsProperties #-} {-# complete (::&) :: PhysicalDeviceHostQueryResetFeatures #-}-{-# complete (::&) :: DeviceQueueGlobalPriorityCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceGlobalPriorityQueryFeaturesEXT #-}-{-# complete (::&) :: QueueFamilyGlobalPriorityPropertiesEXT #-}+{-# complete (::&) :: DeviceQueueGlobalPriorityCreateInfoKHR #-}+{-# complete (::&) :: PhysicalDeviceGlobalPriorityQueryFeaturesKHR #-}+{-# complete (::&) :: QueueFamilyGlobalPriorityPropertiesKHR #-} {-# complete (::&) :: DebugUtilsMessengerCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceDeviceMemoryReportFeaturesEXT #-} {-# complete (::&) :: DeviceDeviceMemoryReportCreateInfoEXT #-}@@ -1995,12 +2002,12 @@ {-# complete (::&) :: PhysicalDeviceImagelessFramebufferFeatures #-} {-# complete (::&) :: FramebufferAttachmentsCreateInfo #-} {-# complete (::&) :: RenderPassAttachmentBeginInfo #-}-{-# complete (::&) :: PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceTextureCompressionASTCHDRFeatures #-} {-# complete (::&) :: PhysicalDeviceCooperativeMatrixFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceCooperativeMatrixPropertiesNV #-} {-# complete (::&) :: PhysicalDeviceYcbcrImageArraysFeaturesEXT #-} {-# complete (::&) :: PresentFrameTokenGGP #-}-{-# complete (::&) :: PipelineCreationFeedbackCreateInfoEXT #-}+{-# complete (::&) :: PipelineCreationFeedbackCreateInfo #-} {-# complete (::&) :: SurfaceFullScreenExclusiveInfoEXT #-} {-# complete (::&) :: SurfaceFullScreenExclusiveWin32InfoEXT #-} {-# complete (::&) :: SurfaceCapabilitiesFullScreenExclusiveEXT #-}@@ -2022,23 +2029,25 @@ {-# complete (::&) :: PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT #-} {-# complete (::&) :: AttachmentDescriptionStencilLayout #-} {-# complete (::&) :: PhysicalDevicePipelineExecutablePropertiesFeaturesKHR #-}-{-# complete (::&) :: PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceShaderDemoteToHelperInvocationFeatures #-} {-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentFeaturesEXT #-}-{-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentPropertiesEXT #-}-{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlFeaturesEXT #-}-{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlPropertiesEXT #-}-{-# complete (::&) :: PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDeviceTexelBufferAlignmentProperties #-}+{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlFeatures #-}+{-# complete (::&) :: PhysicalDeviceSubgroupSizeControlProperties #-}+{-# complete (::&) :: PipelineShaderStageRequiredSubgroupSizeCreateInfo #-} {-# complete (::&) :: SubpassShadingPipelineCreateInfoHUAWEI #-} {-# complete (::&) :: PhysicalDeviceSubpassShadingPropertiesHUAWEI #-} {-# complete (::&) :: MemoryOpaqueCaptureAddressAllocateInfo #-} {-# complete (::&) :: PhysicalDeviceLineRasterizationFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceLineRasterizationPropertiesEXT #-} {-# complete (::&) :: PipelineRasterizationLineStateCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDevicePipelineCreationCacheControlFeaturesEXT #-}+{-# complete (::&) :: PhysicalDevicePipelineCreationCacheControlFeatures #-} {-# complete (::&) :: PhysicalDeviceVulkan11Features #-} {-# complete (::&) :: PhysicalDeviceVulkan11Properties #-} {-# complete (::&) :: PhysicalDeviceVulkan12Features #-} {-# complete (::&) :: PhysicalDeviceVulkan12Properties #-}+{-# complete (::&) :: PhysicalDeviceVulkan13Features #-}+{-# complete (::&) :: PhysicalDeviceVulkan13Properties #-} {-# complete (::&) :: PipelineCompilerControlCreateInfoAMD #-} {-# complete (::&) :: PhysicalDeviceCoherentMemoryFeaturesAMD #-} {-# complete (::&) :: SamplerCustomBorderColorCreateInfoEXT #-}@@ -2053,11 +2062,11 @@ {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-} {-# complete (::&) :: PhysicalDeviceDiagnosticsConfigFeaturesNV #-} {-# complete (::&) :: DeviceDiagnosticsConfigCreateInfoNV #-}-{-# complete (::&) :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR #-} {-# complete (::&) :: PhysicalDeviceRobustness2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceRobustness2PropertiesEXT #-}-{-# complete (::&) :: PhysicalDeviceImageRobustnessFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceImageRobustnessFeatures #-} {-# complete (::&) :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-}@@ -2068,7 +2077,7 @@ {-# complete (::&) :: PipelineFragmentShadingRateStateCreateInfoKHR #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateFeaturesKHR #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRatePropertiesKHR #-}-{-# complete (::&) :: PhysicalDeviceShaderTerminateInvocationFeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceShaderTerminateInvocationFeatures #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV #-} {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-}@@ -2080,17 +2089,17 @@ {-# complete (::&) :: PhysicalDeviceExternalMemoryRDMAFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceColorWriteEnableFeaturesEXT #-} {-# complete (::&) :: PipelineColorWriteCreateInfoEXT #-}-{-# complete (::&) :: MemoryBarrier2KHR #-}+{-# complete (::&) :: MemoryBarrier2 #-} {-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-}-{-# complete (::&) :: PhysicalDeviceSynchronization2FeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceSynchronization2Features #-} {-# complete (::&) :: PhysicalDeviceInheritedViewportScissorFeaturesNV #-} {-# complete (::&) :: CommandBufferInheritanceViewportScissorInfoNV #-} {-# complete (::&) :: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceProvokingVertexFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceProvokingVertexPropertiesEXT #-} {-# complete (::&) :: PipelineRasterizationProvokingVertexStateCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR #-}-{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR #-}+{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductFeatures #-}+{-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductProperties #-} {-# complete (::&) :: PhysicalDeviceDrmPropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceRayTracingMotionBlurFeaturesNV #-} {-# complete (::&) :: AccelerationStructureGeometryMotionTrianglesDataNV #-}@@ -2099,14 +2108,14 @@ {-# complete (::&) :: BufferCollectionImageCreateInfoFUCHSIA #-} {-# complete (::&) :: BufferCollectionBufferCreateInfoFUCHSIA #-} {-# complete (::&) :: PhysicalDeviceRGBA10X6FormatsFeaturesEXT #-}-{-# complete (::&) :: FormatProperties3KHR #-}+{-# complete (::&) :: FormatProperties3 #-} {-# complete (::&) :: DrmFormatModifierPropertiesList2EXT #-} {-# complete (::&) :: AndroidHardwareBufferFormatProperties2ANDROID #-}-{-# complete (::&) :: PipelineRenderingCreateInfoKHR #-}+{-# complete (::&) :: PipelineRenderingCreateInfo #-} {-# complete (::&) :: RenderingFragmentShadingRateAttachmentInfoKHR #-} {-# complete (::&) :: RenderingFragmentDensityMapAttachmentInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceDynamicRenderingFeaturesKHR #-}-{-# complete (::&) :: CommandBufferInheritanceRenderingInfoKHR #-}+{-# complete (::&) :: PhysicalDeviceDynamicRenderingFeatures #-}+{-# complete (::&) :: CommandBufferInheritanceRenderingInfo #-} {-# complete (::&) :: AttachmentSampleCountInfoAMD #-} {-# complete (::&) :: MultiviewPerViewAttributesInfoNVX #-} {-# complete (::&) :: PhysicalDeviceImageViewMinLodFeaturesEXT #-}
src/Vulkan/Core10/APIConstants.hs view
@@ -7,6 +7,7 @@ , MAX_DRIVER_NAME_SIZE_KHR , MAX_DRIVER_INFO_SIZE_KHR , SHADER_UNUSED_NV+ , MAX_GLOBAL_PRIORITY_SIZE_EXT , MAX_PHYSICAL_DEVICE_NAME_SIZE , pattern MAX_PHYSICAL_DEVICE_NAME_SIZE , UUID_SIZE@@ -45,8 +46,8 @@ , pattern MAX_DRIVER_INFO_SIZE , SHADER_UNUSED_KHR , pattern SHADER_UNUSED_KHR- , MAX_GLOBAL_PRIORITY_SIZE_EXT- , pattern MAX_GLOBAL_PRIORITY_SIZE_EXT+ , MAX_GLOBAL_PRIORITY_SIZE_KHR+ , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR , pattern NULL_HANDLE , IsHandle , HasObjectType(..)@@ -93,6 +94,10 @@ type SHADER_UNUSED_NV = SHADER_UNUSED_KHR +-- No documentation found for TopLevel "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"+type MAX_GLOBAL_PRIORITY_SIZE_EXT = MAX_GLOBAL_PRIORITY_SIZE_KHR++ type MAX_PHYSICAL_DEVICE_NAME_SIZE = 256 -- | VK_MAX_PHYSICAL_DEVICE_NAME_SIZE - Length of a physical device name@@ -316,11 +321,16 @@ pattern SHADER_UNUSED_KHR = 0xffffffff -type MAX_GLOBAL_PRIORITY_SIZE_EXT = 16+type MAX_GLOBAL_PRIORITY_SIZE_KHR = 16 --- No documentation found for TopLevel "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"-pattern MAX_GLOBAL_PRIORITY_SIZE_EXT :: forall a . Integral a => a-pattern MAX_GLOBAL_PRIORITY_SIZE_EXT = 16+-- | VK_MAX_GLOBAL_PRIORITY_SIZE_KHR - Length of an array of global queue+-- priorities+--+-- = See Also+--+-- <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 -- | VK_NULL_HANDLE - Reserved non-valid object handle
src/Vulkan/Core10/APIConstants.hs-boot view
@@ -6,6 +6,7 @@ , MAX_DRIVER_NAME_SIZE , MAX_DRIVER_INFO_SIZE , SHADER_UNUSED_KHR+ , MAX_GLOBAL_PRIORITY_SIZE_KHR ) where @@ -26,4 +27,7 @@ type SHADER_UNUSED_KHR = 0xffffffff+++type MAX_GLOBAL_PRIORITY_SIZE_KHR = 16
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -87,6 +87,7 @@ -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.createQueryPool', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',@@ -136,6 +137,7 @@ -- 'Vulkan.Core10.Pipeline.destroyPipeline', -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache', -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.destroyQueryPool', -- 'Vulkan.Core10.Pass.destroyRenderPass',
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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-sparseBinding sparse bindings>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparse bindings> -- 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.2-extensions/html/vkspec.html#features-sparseResidencyBuffer sparse buffer residency>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyBuffer sparse buffer residency> -- 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.2-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_ALIASED_BIT' --@@ -365,14 +365,14 @@ -- - #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.2-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplayEXT ::bufferDeviceAddressCaptureReplay>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplayEXT ::bufferDeviceAddressCaptureReplay> -- feature /must/ be enabled -- -- - #VUID-VkBufferCreateInfo-size-06409# @size@ /must/ be less than or -- equal to--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR'::@maxBufferSize@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties'::@maxBufferSize@ -- -- == Valid Usage (Implicit) --@@ -419,7 +419,7 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferConstraintsInfoFUCHSIA', -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlags', -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlags',--- 'Vulkan.Extensions.VK_KHR_maintenance4.DeviceBufferMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceBufferMemoryRequirements', -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Core10.Enums.SharingMode.SharingMode', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createBuffer'
src/Vulkan/Core10/BufferView.hs view
@@ -112,7 +112,7 @@ -- containing parameters to be used to create the buffer view. BufferViewCreateInfo -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (BufferView)@@ -202,7 +202,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -239,7 +239,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.2-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+-- <https://www.khronos.org/registry/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 +252,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.2-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+-- <https://www.khronos.org/registry/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,33 +289,33 @@ -- 'Vulkan.Core10.Handles.DeviceMemory' object -- -- - #VUID-VkBufferViewCreateInfo-offset-02749# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+-- <https://www.khronos.org/registry/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', -- @offset@ /must/ be a multiple of the lesser of--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@storageTexelBufferOffsetAlignmentBytes@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@storageTexelBufferOffsetAlignmentBytes@ -- or, if--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@storageTexelBufferOffsetSingleTexelAlignment@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@storageTexelBufferOffsetSingleTexelAlignment@ -- is 'Vulkan.Core10.FundamentalTypes.TRUE', the size of a texel of the -- requested @format@. If the size of a texel is a multiple of three -- bytes, then the size of a single component of @format@ is used -- instead -- -- - #VUID-VkBufferViewCreateInfo-buffer-02751# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+-- <https://www.khronos.org/registry/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', -- @offset@ /must/ be a multiple of the lesser of--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@uniformTexelBufferOffsetAlignmentBytes@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@uniformTexelBufferOffsetAlignmentBytes@ -- or, if--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT'::@uniformTexelBufferOffsetSingleTexelAlignment@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'::@uniformTexelBufferOffsetSingleTexelAlignment@ -- is 'Vulkan.Core10.FundamentalTypes.TRUE', the size of a texel of the -- requested @format@. If the size of a texel is a multiple of three -- bytes, then the size of a single component of @format@ is used@@ -362,7 +362,7 @@ -- '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.2-extensions/html/vkspec.html#texel-block-size texel block size>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#texel-block-size texel block size> -- of @format@, the nearest smaller multiple is used. range :: DeviceSize }
src/Vulkan/Core10/CommandBuffer.hs view
@@ -76,7 +76,7 @@ import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (CommandBufferInheritanceRenderPassTransformInfoQCOM)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV) import Vulkan.Core10.Enums.CommandBufferLevel (CommandBufferLevel) import Vulkan.Core10.Enums.CommandBufferResetFlagBits (CommandBufferResetFlagBits(..))@@ -149,7 +149,7 @@ -- contents. -- -- When command buffers are first allocated, they are in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or pending state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>+-- <https://www.khronos.org/registry/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@@ -426,28 +426,28 @@ -- /must/ be reset. -- -- The command buffer /must/ have been in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#queries-operation-active active>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- -- - #VUID-vkEndCommandBuffer-commandBuffer-01815# If @commandBuffer@ is -- a secondary command buffer, there /must/ not be an outstanding@@ -517,15 +517,15 @@ -- = Description -- -- Any primary command buffer that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/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 +567,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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending>,+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending>, -- and is moved into the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. CommandBuffer -> -- | @flags@ is a bitmask of -- 'Vulkan.Core10.Enums.CommandBufferResetFlagBits.CommandBufferResetFlagBits'@@ -667,30 +667,30 @@ -- -- If the 'Vulkan.Core10.Handles.CommandBuffer' will not be executed within -- a render pass instance, or if the render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- @renderPass@, @subpass@, and @framebuffer@ are ignored. -- -- == Valid Usage -- -- - #VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries> -- 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.2-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries> -- 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.2-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries> -- feature is not enabled, @queryFlags@ /must/ be @0@ -- -- - #VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries> -- feature is enabled, @pipelineStatistics@ /must/ be a valid -- combination of -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits'@@ -698,7 +698,7 @@ -- -- - #VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries> -- feature is not enabled, @pipelineStatistics@ /must/ be @0@ -- -- == Valid Usage (Implicit)@@ -712,7 +712,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'@@ -739,7 +739,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.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+ -- <https://www.khronos.org/registry/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@@ -799,7 +799,7 @@ extends _ f | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f | Just Refl <- eqT @e @AttachmentSampleCountInfoAMD = Just f- | Just Refl <- eqT @e @CommandBufferInheritanceRenderingInfoKHR = Just f+ | Just Refl <- eqT @e @CommandBufferInheritanceRenderingInfo = Just f | Just Refl <- eqT @e @CommandBufferInheritanceViewportScissorInfoNV = Just f | Just Refl <- eqT @e @CommandBufferInheritanceRenderPassTransformInfoQCOM = Just f | Just Refl <- eqT @e @CommandBufferInheritanceConditionalRenderingInfoEXT = Just f@@ -882,7 +882,7 @@ -- and the @renderPass@ member of @pInheritanceInfo@ is -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @pNext@ chain of -- @pInheritanceInfo@ /must/ include a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo' -- structure -- -- - #VUID-VkCommandBufferBeginInfo-flags-06003# If @flags@ contains@@ -895,7 +895,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, the @colorAttachmentCount@ member of that structure -- /must/ be equal to the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@colorAttachmentCount@ -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -249,13210 +249,13212 @@ -- - 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.2-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.2-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.2-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.2-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_EXT'--- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'--- 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.2-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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the elements of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@--- specified by this pipeline /must/ match that set in the previous--- pipeline------ == 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.2-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.2-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.2-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.2-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.2-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.PipelineInputAssemblyStateCreateInfo'::@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.2-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.2-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' causes the sets numbered [@firstSet@..--- @firstSet@+@descriptorSetCount@-1] to use the bindings stored in--- @pDescriptorSets@[0..descriptorSetCount-1] for subsequent--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-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------ == 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 '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@ /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.2-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.2-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.2-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.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ - #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-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-04584# Image subresources used as attachments--- in the current render pass /must/ not be accessed in any way other--- than as an attachment by this command, except for cases involving--- read-only access to depth\/stencil attachments as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>--- chapter------ - #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-viewportCount-03417# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /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_EXT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ - #VUID-vkCmdDraw-viewportCount-04137# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDraw-viewportCount-04138# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDraw-viewportCount-04139# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDraw-viewportCount-04140# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDraw-None-04876# If the bound graphics pipeline state was--- created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'--- /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_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'--- /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_EXT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ - #VUID-vkCmdDraw-colorAttachmentCount-06179# If the current render--- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ - #VUID-vkCmdDraw-colorAttachmentCount-06180# If the current render--- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDraw-pDepthAttachment-06181# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDraw-pStencilAttachment-06182# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDraw-imageView-06183# If the current render pass instance--- was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDraw-pStencilAttachment-06187# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDraw-pStencilAttachment-06190# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDraw-renderPass-06198# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ - #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-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-04584# Image subresources used as--- attachments in the current render pass /must/ not be accessed in any--- way other than as an attachment by this command, except for cases--- involving read-only access to depth\/stencil attachments as--- described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>--- chapter------ - #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-viewportCount-03417# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /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_EXT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ - #VUID-vkCmdDrawIndexed-viewportCount-04137# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexed-viewportCount-04138# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexed-viewportCount-04139# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexed-viewportCount-04140# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexed-None-04876# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'--- /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_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'--- /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_EXT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06179# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06180# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexed-pDepthAttachment-06181# If the current render--- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-pStencilAttachment-06182# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-imageView-06183# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-pStencilAttachment-06187# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-pStencilAttachment-06190# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-renderPass-06198# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ - #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-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-04584# Image subresources used as--- attachments in the current render pass /must/ not be accessed in any--- way other than as an attachment by this command, except for cases--- involving read-only access to depth\/stencil attachments as--- described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>--- chapter------ - #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-viewportCount-03417# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /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_EXT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ - #VUID-vkCmdDrawIndirect-viewportCount-04137# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndirect-viewportCount-04138# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndirect-viewportCount-04139# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndirect-viewportCount-04140# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndirect-None-04876# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'--- /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_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'--- /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_EXT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06179# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06180# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndirect-pDepthAttachment-06181# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-pStencilAttachment-06182# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-imageView-06183# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-pStencilAttachment-06187# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-pStencilAttachment-06190# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-renderPass-06198# If the current render pass--- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.2-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.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ - #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-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-04584# Image subresources used--- as attachments in the current render pass /must/ not be accessed in--- any way other than as an attachment by this command, except for--- cases involving read-only access to depth\/stencil attachments as--- described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>--- chapter------ - #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-viewportCount-03417# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /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_EXT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04137# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04138# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04139# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04140# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141# If--- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142# If--- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- 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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'------ - #VUID-vkCmdDrawIndexedIndirect-None-04876# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'--- /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_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'--- /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_EXT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- /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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@------ - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179# If the--- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@--- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@------ - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180# If the--- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181# If the--- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182# If the--- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06183# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187# If the--- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190# If the--- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-renderPass-06198# If the current--- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.Core10.Enums.DynamicState.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.2-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.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ - #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-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.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'------ - #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@ /must/ have image format features that--- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'------ - #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-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.2-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.2-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.2-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.2-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-00126# @srcImage@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #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-00131# @dstImage@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #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@------ == 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.2-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.2-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, unscaled 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.2-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.2-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.2-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.2-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.2-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.2-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 “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.2-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.2-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 “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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,--- clears follow the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-extensions/html/vkspec.html#fragops-depth depth writes>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.Extensions.VK_KHR_acceleration_structure.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.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR', except that--- it does not define an access scope, and /must/ only be used with--- 'cmdWaitEvents', not--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR'.------ == 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.2-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.2-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>- -- used to determine the first- -- <https://www.khronos.org/registry/vulkan/specs/1.2-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.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR'.------ == 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.2-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.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR' 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.2-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.2-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.2-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.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', 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.2-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>--- in advance as they do with--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR' and--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR'.------ 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.2-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.2-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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than or equal to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR'------ == 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.2-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.2-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.2-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.2-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.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',--- except that the scopes and barriers are defined as direct parameters--- rather than being defined by an--- 'Vulkan.Extensions.VK_KHR_synchronization2.DependencyInfoKHR'.------ 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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>--- pipeline stages is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>--- - otherwise it is--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ - #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.2-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.2-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.2-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.2-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.2-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.2-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-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.2-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_KHR'------ - #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, 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.2-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.2-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.2-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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ == 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.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,--- that primary command buffer becomes--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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-pCommandBuffers-06021# If--- @pCommandBuffers@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- its--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@flags@--- parameter /must/ have included--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR'------ - #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'--- is being called within a render pass instance begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the @flags@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@flags@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- excluding--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR'------ - #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If--- 'cmdExecuteCommands' is being called within a render pass instance--- begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the @colorAttachmentCount@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ - #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'--- is being called within a render pass instance begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- if the @imageView@ member of an element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding--- element of the @pColorAttachmentFormats@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- if the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->imageView@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthAttachmentFormat@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- if the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->imageView@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @stencilAttachmentFormat@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',--- the @viewMask@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ - #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->imageView@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->imageView@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' 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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->imageView@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@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.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'--- 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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->imageView@--- parameter to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR'::@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.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR', 'ImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR', 'ImageResolve',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR'-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.2-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)------ == 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------ == 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.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#clears-values Clear Values>+-- <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+--+-- == 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.PipelineInputAssemblyStateCreateInfo'::@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' causes the sets numbered [@firstSet@..+-- @firstSet@+@descriptorSetCount@-1] to use the bindings stored in+-- @pDescriptorSets@[0..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+--+-- == 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 '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@ /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@ /must/ have image format features that+-- support+-- '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@ /must/ have image format features that+-- support+-- '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-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-04584# Image subresources used as attachments+-- in the current render pass /must/ not be accessed in any way other+-- than as an attachment by this command, except for cases involving+-- read-only access to depth\/stencil attachments as described in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+-- chapter+--+-- - #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-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-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-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@ /must/ have image format features that+-- support+-- '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@ /must/ have image format features that+-- support+-- '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-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-04584# Image subresources used as+-- attachments in the current render pass /must/ not be accessed in any+-- way other than as an attachment by this command, except for cases+-- involving read-only access to depth\/stencil attachments as+-- described in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+-- chapter+--+-- - #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-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-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-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@ /must/ have image format features that+-- support+-- '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@ /must/ have image format features that+-- support+-- '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-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-04584# Image subresources used as+-- attachments in the current render pass /must/ not be accessed in any+-- way other than as an attachment by this command, except for cases+-- involving read-only access to depth\/stencil attachments as+-- described in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+-- chapter+--+-- - #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-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-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-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@ /must/ have image format features that+-- support+-- '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@ /must/ have image format features that+-- support+-- '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-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-04584# Image subresources used+-- as attachments in the current render pass /must/ not be accessed in+-- any way other than as an attachment by this command, except for+-- cases involving read-only access to depth\/stencil attachments as+-- described in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-attachment-nonattachment Render Pass>+-- chapter+--+-- - #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-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-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-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@ /must/ have image format features that+-- support+-- '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@ /must/ have image format features that+-- support+-- '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-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@ /must/ have image format features that+-- support+-- '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@ /must/ have image format features that+-- support+-- '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-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-00126# @srcImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #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-00131# @dstImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #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@+--+-- == 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, unscaled 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 “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 “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-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.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_NONE_KHR'+--+-- - #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, 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-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)+--+-- == 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+--+-- == 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> -- 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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --@@ -369,7 +369,7 @@ -- from it. flags :: CommandPoolCreateFlags , -- | @queueFamilyIndex@ designates a queue family as described in section- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-queueprops Queue Family Properties>.+ -- <https://www.khronos.org/registry/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
@@ -83,7 +83,7 @@ import Vulkan.Core10.Handles (DescriptorPool) import Vulkan.Core10.Handles (DescriptorPool(..)) import Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits (DescriptorPoolCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfo) import Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags) import Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags(..)) import Vulkan.Core10.Handles (DescriptorSet)@@ -126,7 +126,7 @@ import Vulkan.Exception (VulkanException(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (WriteDescriptorSetAccelerationStructureKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (WriteDescriptorSetAccelerationStructureNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlockEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlock) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_DESCRIPTOR_SET)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO))@@ -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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-binding consumed>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-binding consumed>.+-- <https://www.khronos.org/registry/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_EXT'+-- '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.2-extensions/html/vkspec.html#descriptorsets-binding consumed>;+-- <https://www.khronos.org/registry/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@@ -601,7 +601,7 @@ -- Additionally, the allocation /may/ also fail if a call to -- 'allocateDescriptorSets' would cause the total number of inline uniform -- block bindings allocated from the pool to exceed the value of--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfoEXT'::@maxInlineUniformBlockBindings@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo'::@maxInlineUniformBlockBindings@ -- used to create the descriptor pool. -- -- If the allocation fails due to no more space in the descriptor pool, and@@ -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.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage --@@ -891,7 +891,7 @@ -- '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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --@@ -955,9 +955,9 @@ -- 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.2-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange>+-- (<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>).+-- <https://www.khronos.org/registry/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@@ -985,7 +985,7 @@ -- or equal to the size of @buffer@ minus @offset@ -- -- - #VUID-VkDescriptorBufferInfo-buffer-02998# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is not enabled, @buffer@ /must/ not be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -1082,11 +1082,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.2-extensions/html/vkspec.html#resources-image-layouts-matching-rule image layout matching rules>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- <https://www.khronos.org/registry/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@@ -1191,10 +1191,10 @@ -- is used according to the descriptor type specified in the -- @descriptorType@ member of the containing 'WriteDescriptorSet' -- structure, or none of them in case @descriptorType@ is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- in which case the source data for the descriptor writes is taken from -- the--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- structure included in the @pNext@ chain of 'WriteDescriptorSet', or if -- @descriptorType@ is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR',@@ -1211,7 +1211,7 @@ -- below. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/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@@ -1236,7 +1236,7 @@ -- Note -- -- The same behavior applies to bindings with a descriptor type of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- where @descriptorCount@ specifies the number of bytes to update while -- @dstArrayElement@ specifies the starting byte offset, thus in this case -- if the @dstBinding@ has a smaller byte size than the sum of@@ -1275,16 +1275,16 @@ -- 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.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- - #VUID-VkWriteDescriptorSet-descriptorType-02219# If @descriptorType@ -- is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- @dstArrayElement@ /must/ be an integer multiple of @4@ -- -- - #VUID-VkWriteDescriptorSet-descriptorType-02220# If @descriptorType@ -- is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- @descriptorCount@ /must/ be an integer multiple of @4@ -- -- - #VUID-VkWriteDescriptorSet-descriptorType-02994# If @descriptorType@@@ -1302,7 +1302,7 @@ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/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,15 +1343,15 @@ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT' -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/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' -- -- - #VUID-VkWriteDescriptorSet-descriptorType-02221# If @descriptorType@ -- is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- the @pNext@ chain /must/ include a--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- structure whose @dataSize@ member equals @descriptorCount@ -- -- - #VUID-VkWriteDescriptorSet-descriptorType-02382# If @descriptorType@@@ -1398,7 +1398,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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/@@ -1515,28 +1515,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.2-extensions/html/vkspec.html#descriptorsets-sampledimage Sampled Image>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler Combined Image Sampler>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-inputattachment Input Attachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-storageimage Storage Image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage Storage Image> -- -- - #VUID-VkWriteDescriptorSet-descriptorType-00338# If @descriptorType@ -- is@@ -1585,7 +1585,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV', -- or--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- -- - #VUID-VkWriteDescriptorSet-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -1621,14 +1621,14 @@ , -- | @dstArrayElement@ is the starting element in that array. If the -- descriptor binding identified by @dstSet@ and @dstBinding@ has a -- descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @dstArrayElement@ specifies the starting byte offset within the -- binding. dstArrayElement :: Word32 , -- | @descriptorCount@ is the number of descriptors to update. If the -- descriptor binding identified by @dstSet@ and @dstBinding@ has a -- descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- then @descriptorCount@ specifies the number of bytes to update. -- Otherwise, @descriptorCount@ is one of --@@ -1639,7 +1639,7 @@ -- - the number of elements in @pTexelBufferView@ -- -- - a value matching the @dataSize@ member of a- -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+ -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- structure in the @pNext@ chain -- -- - a value matching the @accelerationStructureCount@ of a@@ -1665,7 +1665,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.2-extensions/html/vkspec.html#resources-buffer-views Buffer Views>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views Buffer Views> -- section or is ignored, as described below. texelBufferView :: Vector BufferView }@@ -1683,7 +1683,7 @@ extends _ f | Just Refl <- eqT @e @WriteDescriptorSetAccelerationStructureNV = Just f | Just Refl <- eqT @e @WriteDescriptorSetAccelerationStructureKHR = Just f- | Just Refl <- eqT @e @WriteDescriptorSetInlineUniformBlockEXT = Just f+ | Just Refl <- eqT @e @WriteDescriptorSetInlineUniformBlock = Just f | otherwise = Nothing instance (Extendss WriteDescriptorSet es, PokeChain es) => ToCStruct (WriteDescriptorSet es) where@@ -1808,7 +1808,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.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://www.khronos.org/registry/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 +1818,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.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://www.khronos.org/registry/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,22 +1828,22 @@ -- @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.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://www.khronos.org/registry/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--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- @srcArrayElement@ /must/ be an integer multiple of @4@ -- -- - #VUID-VkCopyDescriptorSet-dstBinding-02224# If the descriptor type -- of the descriptor set binding specified by @dstBinding@ is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- @dstArrayElement@ /must/ be an integer multiple of @4@ -- -- - #VUID-VkCopyDescriptorSet-srcBinding-02225# If the descriptor type -- of the descriptor set binding specified by either @srcBinding@ or -- @dstBinding@ is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- @descriptorCount@ /must/ be an integer multiple of @4@ -- -- - #VUID-VkCopyDescriptorSet-srcSet-01918# If @srcSet@’s layout was@@ -1940,7 +1940,7 @@ { -- | @srcSet@, @srcBinding@, and @srcArrayElement@ are the source set, -- binding, and array element, respectively. If the descriptor binding -- identified by @srcSet@ and @srcBinding@ has a descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @srcArrayElement@ specifies the starting byte offset within the -- binding to copy from. srcSet :: DescriptorSet@@ -1951,7 +1951,7 @@ , -- | @dstSet@, @dstBinding@, and @dstArrayElement@ are the destination set, -- binding, and array element, respectively. If the descriptor binding -- identified by @dstSet@ and @dstBinding@ has a descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @dstArrayElement@ specifies the starting byte offset within the -- binding to copy to. dstSet :: DescriptorSet@@ -1965,7 +1965,7 @@ -- affect consecutive bindings in a manner similar to 'WriteDescriptorSet' -- above. If the descriptor binding identified by @srcSet@ and @srcBinding@ -- has a descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @descriptorCount@ specifies the number of bytes to copy and the -- remaining array elements in the source or destination binding refer to -- the remaining number of bytes in those.@@ -2088,20 +2088,20 @@ -- of @descriptorCount@ valid 'Vulkan.Core10.Handles.Sampler' handles -- -- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-04604# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inlineUniformBlock inlineUniformBlock>+-- <https://www.khronos.org/registry/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_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- -- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-02209# If -- @descriptorType@ is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @descriptorCount@ /must/ be a multiple of @4@ -- -- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-02210# If -- @descriptorType@ is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @descriptorCount@ /must/ be less than or equal to--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxInlineUniformBlockSize@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxInlineUniformBlockSize@ -- -- - #VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283# If -- @descriptorCount@ is not @0@, @stageFlags@ /must/ be a valid@@ -2148,7 +2148,7 @@ descriptorType :: DescriptorType , -- | @descriptorCount@ is the number of descriptors contained in the binding, -- accessed in a shader as an array, except if @descriptorType@ is- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- in which case @descriptorCount@ is the size in bytes of the inline -- uniform block. If @descriptorCount@ is zero this binding entry is -- reserved and the resource /must/ not be accessed from any stage via this@@ -2251,7 +2251,7 @@ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR', -- then all elements of @pBindings@ /must/ not have a @descriptorType@ -- of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- -- - #VUID-VkDescriptorSetLayoutCreateInfo-flags-00281# If @flags@ -- contains@@ -2433,7 +2433,7 @@ -- /must/ be greater than @0@ -- -- - #VUID-VkDescriptorPoolSize-type-02218# If @type@ is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @descriptorCount@ /must/ be a multiple of @4@ -- -- == Valid Usage (Implicit)@@ -2451,7 +2451,7 @@ type' :: DescriptorType , -- | @descriptorCount@ is the number of descriptors of that type to allocate. -- If @type@ is- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @descriptorCount@ is the number of bytes to allocate for -- descriptors of this type. descriptorCount :: Word32@@ -2617,7 +2617,7 @@ -- - #VUID-VkDescriptorPoolCreateInfo-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_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfoEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo' -- or -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE' --@@ -2670,7 +2670,7 @@ extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorPoolCreateInfo e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @MutableDescriptorTypeCreateInfoVALVE = Just f- | Just Refl <- eqT @e @DescriptorPoolInlineUniformBlockCreateInfoEXT = Just f+ | Just Refl <- eqT @e @DescriptorPoolInlineUniformBlockCreateInfo = Just f | otherwise = Nothing instance (Extendss DescriptorPoolCreateInfo es, PokeChain es) => ToCStruct (DescriptorPoolCreateInfo es) where
src/Vulkan/Core10/Device.hs view
@@ -75,9 +75,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (DeviceDiagnosticsConfigCreateInfoNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (DeviceGroupDeviceCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (DevicePrivateDataCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo) import Vulkan.Core10.Enums.DeviceQueueCreateFlagBits (DeviceQueueCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority (DeviceQueueGlobalPriorityCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR) import Vulkan.Core10.Handles (Device_T) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss)@@ -112,7 +112,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)@@ -126,18 +126,18 @@ 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_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)+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) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawFeaturesEXT)@@ -145,13 +145,13 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) 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_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)+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_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures) 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)@@ -168,23 +168,23 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+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.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.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)+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_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.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)+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.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PhysicalDeviceSynchronization2FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures) 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)@@ -193,11 +193,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -248,7 +249,7 @@ -- == Valid Usage -- -- - #VUID-vkCreateDevice-ppEnabledExtensionNames-01387# All--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required device extensions>+-- <https://www.khronos.org/registry/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@@ -301,13 +302,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.2-extensions/html/vkspec.html#devsandqueues-physical-device-enumeration Physical Device Enumeration>).+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Device)@@ -407,7 +408,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -444,7 +445,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.2-extensions/html/vkspec.html#features-protectedMemory protected memory>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protected memory> -- feature is not enabled, the -- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT' -- bit of @flags@ /must/ not be set@@ -462,7 +463,7 @@ -- -- - #VUID-VkDeviceQueueCreateInfo-pNext-pNext# @pNext@ /must/ be @NULL@ -- or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_global_priority.DeviceQueueGlobalPriorityCreateInfoEXT'+-- 'Vulkan.Extensions.VK_KHR_global_priority.DeviceQueueGlobalPriorityCreateInfoKHR' -- -- - #VUID-VkDeviceQueueCreateInfo-sType-unique# The @sType@ value of -- each struct in the @pNext@ chain /must/ be unique@@ -499,7 +500,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.2-extensions/html/vkspec.html#devsandqueues-priority Queue Priority>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority Queue Priority> -- for more information. queuePriorities :: Vector Float }@@ -515,7 +516,7 @@ getNext DeviceQueueCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceQueueCreateInfo e => b) -> Maybe b extends _ f- | Just Refl <- eqT @e @DeviceQueueGlobalPriorityCreateInfoEXT = Just f+ | Just Refl <- eqT @e @DeviceQueueGlobalPriorityCreateInfoKHR = Just f | otherwise = Nothing instance (Extendss DeviceQueueCreateInfo es, PokeChain es) => ToCStruct (DeviceQueueCreateInfo es) where@@ -669,6 +670,25 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@shaderOutputLayer@ -- /must/ both be 'Vulkan.Core10.FundamentalTypes.TRUE' --+-- - #VUID-VkDeviceCreateInfo-pNext-06532# If the @pNext@ chain includes+-- a 'Vulkan.Core13.PhysicalDeviceVulkan13Features' structure, then it+-- /must/ not include a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',+-- or+-- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures'+-- structure+-- -- - #VUID-VkDeviceCreateInfo-pProperties-04451# If the -- @VK_KHR_portability_subset@ extension is included in @pProperties@ -- of@@ -677,63 +697,63 @@ -- @\"VK_KHR_portability_subset\"@ -- -- - #VUID-VkDeviceCreateInfo-shadingRateImage-04478# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- <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.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> -- /must/ not be enabled -- -- - #VUID-VkDeviceCreateInfo-shadingRateImage-04479# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- <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.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> -- /must/ not be enabled -- -- - #VUID-VkDeviceCreateInfo-shadingRateImage-04480# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- <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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- /must/ not be enabled -- -- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04481# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- <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.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> -- /must/ not be enabled -- -- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04482# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- <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.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> -- /must/ not be enabled -- -- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04483# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- <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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- /must/ not be enabled -- -- - #VUID-VkDeviceCreateInfo-None-04896# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageInt64Atomics shaderImageInt64Atomics>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32Atomics shaderImageFloat32Atomics>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax> -- /must/ be enabled -- -- == Valid Usage (Implicit)@@ -748,7 +768,7 @@ -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigCreateInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo', -- 'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD',--- 'Vulkan.Extensions.VK_EXT_private_data.DevicePrivateDataCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage.PhysicalDevice16BitStorageFeatures', -- 'Vulkan.Extensions.VK_EXT_4444_formats.PhysicalDevice4444FormatsFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures',@@ -773,7 +793,7 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',@@ -786,18 +806,18 @@ -- '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_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',--- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',+-- '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', -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',@@ -805,13 +825,13 @@ -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE', -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',@@ -828,23 +848,23 @@ -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',--- 'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- '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.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures', -- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL', -- '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.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',--- 'Vulkan.Extensions.VK_KHR_synchronization2.PhysicalDeviceSynchronization2FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures', -- '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',@@ -853,19 +873,20 @@ -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Features', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', -- or--- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures' -- -- - #VUID-VkDeviceCreateInfo-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_device_memory_report.DeviceDeviceMemoryReportCreateInfoEXT' -- or--- 'Vulkan.Extensions.VK_EXT_private_data.DevicePrivateDataCreateInfoEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo' -- -- - #VUID-VkDeviceCreateInfo-flags-zerobitmask# @flags@ /must/ be @0@ --@@ -907,23 +928,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.2-extensions/html/vkspec.html#devsandqueues-queue-creation Queue Creation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#extendingvulkan-layers-devicelayerdeprecation>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#extendingvulkan-extensions>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features Features>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Features> -- section for further details. enabledFeatures :: Maybe PhysicalDeviceFeatures }@@ -942,31 +963,31 @@ | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeaturesKHR = 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 @PhysicalDeviceShaderIntegerDotProductFeaturesKHR = 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 @PhysicalDeviceSynchronization2FeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f | 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 @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f- | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = Just f- | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = Just f | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f@@ -974,13 +995,14 @@ | Just Refl <- eqT @e @PhysicalDeviceBorderColorSwizzleFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f+ | Just Refl <- eqT @e @PhysicalDeviceVulkan13Features = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkan12Features = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkan11Features = Just f- | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceLineRasterizationFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeatures = Just f | Just Refl <- eqT @e @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSeparateDepthStencilLayoutsFeatures = Just f@@ -993,7 +1015,7 @@ | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceYcbcrImageArraysFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceImagelessFramebufferFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeatures = Just f@@ -1032,12 +1054,12 @@ | Just Refl <- eqT @e @PhysicalDeviceDescriptorIndexingFeatures = Just f | Just Refl <- eqT @e @DeviceDeviceMemoryReportCreateInfoEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDeviceMemoryReportFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f- | Just Refl <- eqT @e @PhysicalDeviceMaintenance4FeaturesKHR = Just f- | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f+ | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceBlendOperationAdvancedFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceProtectedMemoryFeatures = Just f@@ -1050,8 +1072,8 @@ | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f | Just Refl <- eqT @e @(PhysicalDeviceFeatures2 '[]) = Just f- | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f- | Just Refl <- eqT @e @DevicePrivateDataCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f+ | Just Refl <- eqT @e @DevicePrivateDataCreateInfo = Just f | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f | otherwise = Nothing
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -265,7 +265,7 @@ -- == Valid Usage -- -- - #VUID-vkCreateInstance-ppEnabledExtensionNames-01388# All--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required extensions>+-- <https://www.khronos.org/registry/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@@ -313,7 +313,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Instance)@@ -398,7 +398,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1080,6 +1080,11 @@ -- information from the /vendor/ on how to extract the version information -- 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>+-- profile, the major and minor version expressed by @apiVersion@ /must/ be+-- at least Vulkan 1.3.+-- -- The @vendorID@ and @deviceID@ fields are provided to allow applications -- to adapt to device characteristics that are not adequately exposed by -- other Vulkan queries.@@ -1105,7 +1110,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.2-extensions/html/vkspec.html#vulkan-styleguide Vulkan Documentation and Extensions: Procedures and Conventions>+-- <https://www.khronos.org/registry/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@@ -1139,7 +1144,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.2-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>. apiVersion :: Word32 , -- | @driverVersion@ is the vendor-specified version of the driver. driverVersion :: Word32@@ -1164,12 +1169,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.2-extensions/html/vkspec.html#limits Limits>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties> -- for details. sparseProperties :: PhysicalDeviceSparseProperties }@@ -1293,7 +1298,7 @@ -- -- 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.2-extensions/html/vkspec.html#LoaderInterfaceArchitecture “Architecture of the Vulkan Loader Interfaces”>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#LoaderInterfaceArchitecture “Architecture of the Vulkan Loader Interfaces”> -- document for additional information. -- -- Note@@ -1343,7 +1348,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.2-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+ -- <https://www.khronos.org/registry/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@.@@ -1492,7 +1497,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.2-extensions/html/vkspec.html#extendingvulkan-layers>+ -- <https://www.khronos.org/registry/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@@ -1637,11 +1642,11 @@ -- families /may/ be (0,0,0). -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device Device Memory>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Features> -- chapter. -- -- = See Also@@ -1661,10 +1666,11 @@ queueCount :: Word32 , -- | @timestampValidBits@ is the unsigned integer count of meaningful bits in -- the timestamps written via- -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' or- -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'. The valid range- -- for the count is 36..64 bits, or a value of 0, indicating no support for- -- timestamps. Bits outside the valid range are guaranteed to be zeros.+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'+ -- or 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'. The valid+ -- range for the count is 36..64 bits, or a value of 0, indicating no+ -- support for timestamps. Bits outside the valid range are guaranteed to+ -- be zeros. timestampValidBits :: Word32 , -- | @minImageTransferGranularity@ is the minimum granularity supported for -- image transfer operations on the queues in this queue family.@@ -1896,7 +1902,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.2-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>+-- <https://www.khronos.org/registry/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@.@@ -1924,7 +1930,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.2-extensions/html/vkspec.html#memory-device-bitmask-list list of all allowed memory property flag combinations>+-- <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> -- is written in a valid order. But if instead -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT' -- was before@@ -2237,7 +2243,7 @@ -- = Members -- -- - @maxExtent@ are the maximum image dimensions. See the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extentperimagetype Allowed Extent Values>+-- <https://www.khronos.org/registry/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.@@ -2261,7 +2267,7 @@ -- member for which mipmap image support is not required -- -- - image @format@ is one of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>+-- <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> -- -- - @flags@ contains -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'@@ -2280,7 +2286,7 @@ -- @type@ is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' -- -- - @format@ is one of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>+-- <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> -- -- - If @tiling@ is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',@@ -2290,7 +2296,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.2-extensions/html/vkspec.html#features-supported-sample-counts below>.+-- <https://www.khronos.org/registry/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/@@ -2433,7 +2439,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.2-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess cooperativeMatrixRobustBufferAccess>+ -- <https://www.khronos.org/registry/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.@@ -2446,7 +2452,7 @@ -- the end are not statically used. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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@@ -2470,31 +2476,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.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+ -- <https://www.khronos.org/registry/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@@ -2502,14 +2508,14 @@ -- individually bounds-checked. -- -- - If the access is to an index buffer and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+ -- <https://www.khronos.org/registry/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@@ -2529,7 +2535,7 @@ -- bound to the buffer, but /must/ not modify any other memory. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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)@@ -2537,12 +2543,12 @@ -- return an undefined value. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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:@@ -2572,14 +2578,14 @@ -- - Zero values, or (0,0,0,x) vectors, as described above. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fxvertex-input-extraction raw data>+ -- <https://www.khronos.org/registry/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)>. --@@ -2596,7 +2602,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.2-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>.+ -- <https://www.khronos.org/registry/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@@ -2632,7 +2638,7 @@ -- modules /can/ declare the @Tessellation@ capability. tessellationShader :: Bool , -- | #features-sampleRateShading# @sampleRateShading@ specifies whether- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>+ -- <https://www.khronos.org/registry/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@@ -2647,7 +2653,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.2-extensions/html/vkspec.html#framebuffer-dsb>.+ -- <https://www.khronos.org/registry/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@@ -2663,7 +2669,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.2-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>. multiDrawIndirect :: Bool , -- | #features-drawIndirectFirstInstance# @drawIndirectFirstInstance@ -- specifies whether indirect drawing calls support the @firstInstance@@@ -2732,7 +2738,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.2-extensions/html/vkspec.html#fragops-covg Multisample Coverage>+ -- <https://www.khronos.org/registry/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@@ -2977,9 +2983,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.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- or- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader> -- features. shaderTessellationAndGeometryPointSize :: Bool , -- | #features-shaderImageGatherExtended# @shaderImageGatherExtended@@@ -3060,7 +3066,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.2-extensions/html/vkspec.html#formats-mandatory-features-32bit mandatory format support>.+ -- <https://www.khronos.org/registry/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@@ -3077,7 +3083,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.2-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format> -- list. shaderStorageImageReadWithoutFormat :: Bool , -- | #features-shaderStorageImageWriteWithoutFormat#@@ -3085,7 +3091,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.2-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format> -- list. shaderStorageImageWriteWithoutFormat :: Bool , -- | #features-shaderUniformBufferArrayDynamicIndexing#@@ -3199,7 +3205,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.2-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>.+ -- <https://www.khronos.org/registry/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@@ -3283,7 +3289,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.2-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>+ -- <https://www.khronos.org/registry/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@@ -3558,7 +3564,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.2-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>+ -- <https://www.khronos.org/registry/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'@@ -3569,7 +3575,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.2-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa Standard Sparse Image Block Shapes (MSAA)>+ -- <https://www.khronos.org/registry/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'@@ -3580,7 +3586,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.2-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>+ -- <https://www.khronos.org/registry/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'@@ -3756,7 +3762,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.2-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity> -- for more details. bufferImageGranularity :: DeviceSize , -- | #limits-sparseAddressSpaceSize# @sparseAddressSpaceSize@ is the total@@ -3769,7 +3775,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.2-extensions/html/vkspec.html#descriptorsets-sets>.+ -- <https://www.khronos.org/registry/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@@ -3783,9 +3789,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.2-extensions/html/vkspec.html#descriptorsets-sampler>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>. maxPerStageDescriptorSamplers :: Word32 , -- | #limits-maxPerStageDescriptorUniformBuffers# -- @maxPerStageDescriptorUniformBuffers@ is the maximum number of uniform@@ -3800,9 +3806,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.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>. maxPerStageDescriptorUniformBuffers :: Word32 , -- | #limits-maxPerStageDescriptorStorageBuffers# -- @maxPerStageDescriptorStorageBuffers@ is the maximum number of storage@@ -3817,9 +3823,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.2-extensions/html/vkspec.html#descriptorsets-storagebuffer>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>. maxPerStageDescriptorStorageBuffers :: Word32 , -- | #limits-maxPerStageDescriptorSampledImages# -- @maxPerStageDescriptorSampledImages@ is the maximum number of sampled@@ -3835,10 +3841,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.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage>,+ -- <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>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>. maxPerStageDescriptorSampledImages :: Word32 , -- | #limits-maxPerStageDescriptorStorageImages# -- @maxPerStageDescriptorStorageImages@ is the maximum number of storage@@ -3853,9 +3859,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.2-extensions/html/vkspec.html#descriptorsets-storageimage>,+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>. maxPerStageDescriptorStorageImages :: Word32 , -- | #limits-maxPerStageDescriptorInputAttachments# -- @maxPerStageDescriptorInputAttachments@ is the maximum number of input@@ -3870,7 +3876,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.2-extensions/html/vkspec.html#descriptorsets-inputattachment>.+ -- <https://www.khronos.org/registry/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@@ -3900,9 +3906,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.2-extensions/html/vkspec.html#descriptorsets-sampler>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.+ -- <https://www.khronos.org/registry/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@@ -3913,9 +3919,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.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>. maxDescriptorSetUniformBuffers :: Word32 , -- | #limits-maxDescriptorSetUniformBuffersDynamic# -- @maxDescriptorSetUniformBuffersDynamic@ is the maximum number of dynamic@@ -3926,7 +3932,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.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+ -- <https://www.khronos.org/registry/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@@ -3937,9 +3943,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.2-extensions/html/vkspec.html#descriptorsets-storagebuffer>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>. maxDescriptorSetStorageBuffers :: Word32 , -- | #limits-maxDescriptorSetStorageBuffersDynamic# -- @maxDescriptorSetStorageBuffersDynamic@ is the maximum number of dynamic@@ -3950,7 +3956,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.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+ -- <https://www.khronos.org/registry/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@@ -3962,10 +3968,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.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage>,+ -- <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>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.+ -- <https://www.khronos.org/registry/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@@ -3976,9 +3982,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.2-extensions/html/vkspec.html#descriptorsets-storageimage>,+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>. maxDescriptorSetStorageImages :: Word32 , -- | #limits-maxDescriptorSetInputAttachments# -- @maxDescriptorSetInputAttachments@ is the maximum number of input@@ -3989,7 +3995,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.2-extensions/html/vkspec.html#descriptorsets-inputattachment>.+ -- <https://www.khronos.org/registry/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@@ -3999,9 +4005,9 @@ -- @pVertexAttributeDescriptions@ member of the -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure. -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-attrib>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-attrib> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://www.khronos.org/registry/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@@ -4013,31 +4019,31 @@ -- The @binding@ member of -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' /must/ be less -- than this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-vertex>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#tessellation>.+ -- <https://www.khronos.org/registry/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@@ -4047,7 +4053,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.2-extensions/html/vkspec.html#tessellation>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>. maxTessellationPatchSize :: Word32 , -- | #limits-maxTessellationControlPerVertexInputComponents# -- @maxTessellationControlPerVertexInputComponents@ is the maximum number@@ -4083,7 +4089,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.2-extensions/html/vkspec.html#geometry>.+ -- <https://www.khronos.org/registry/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@@ -4114,15 +4120,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.2-extensions/html/vkspec.html#framebuffer-dsb>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>)+ -- <https://www.khronos.org/registry/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@@ -4139,7 +4145,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.2-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout>+ -- <https://www.khronos.org/registry/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@@ -4148,7 +4154,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.2-extensions/html/vkspec.html#dispatch>.+ -- <https://www.khronos.org/registry/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@@ -4167,7 +4173,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.2-extensions/html/vkspec.html#primsrast>.+ -- <https://www.khronos.org/registry/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@@ -4186,11 +4192,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.2-extensions/html/vkspec.html#features-fullDrawIndexUint32 fullDrawIndexUint32>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>.+ -- <https://www.khronos.org/registry/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@@ -4198,14 +4204,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.2-extensions/html/vkspec.html#samplers-mipLodBias>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-maxAnisotropy>.+ -- <https://www.khronos.org/registry/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@@ -4218,14 +4224,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.2-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>. -- -- Note --@@ -4249,26 +4255,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.2-extensions/html/vkspec.html#memory-device-hostaccess>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes> -- members of- -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+ -- '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.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>. -- If- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+ -- <https://www.khronos.org/registry/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.@@ -4345,7 +4351,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.2-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>. framebufferColorSampleCounts :: SampleCountFlags , -- | #limits-framebufferDepthSampleCounts# @framebufferDepthSampleCounts@ is -- a bitmask1 of@@ -4363,7 +4369,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.2-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>.+ -- <https://www.khronos.org/registry/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.@@ -4428,11 +4434,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.2-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.+ -- <https://www.khronos.org/registry/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@@ -4457,7 +4463,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.2-extensions/html/vkspec.html#devsandqueues-priority>.+ -- <https://www.khronos.org/registry/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@@ -4487,12 +4493,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.2-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-multisampling Multisampling>.+ -- <https://www.khronos.org/registry/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@@ -4501,10 +4507,10 @@ , -- | #limits-optimalBufferCopyOffsetAlignment# -- @optimalBufferCopyOffsetAlignment@ is the optimal buffer offset -- alignment in bytes for- -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR',+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',- -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', and- -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. The per+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',+ -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. The per -- texel alignment requirements are enforced, but applications /should/ use -- the optimal alignment for optimal performance and power use. The value -- /must/ be a power of two.@@ -4512,19 +4518,19 @@ , -- | #limits-optimalBufferCopyRowPitchAlignment# -- @optimalBufferCopyRowPitchAlignment@ is the optimal buffer row pitch -- alignment in bytes for- -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR',+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',- -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', and- -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. Row pitch is- -- the number of bytes between texels with the same X coordinate in- -- adjacent rows (Y coordinates differ by one). The per texel alignment+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',+ -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. Row+ -- pitch is the number of bytes between texels with the same X coordinate+ -- in adjacent rows (Y coordinates differ by one). The per texel alignment -- requirements are enforced, but applications /should/ use the optimal -- alignment for optimal performance and power use. The value /must/ be a -- power of two. 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.2-extensions/html/vkspec.html#memory-device-hostaccess host-mapped device memory>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host-mapped device memory>. -- The value /must/ be a power of two. -- -- [1]@@ -4534,7 +4540,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.2-extensions/html/vkspec.html#features-supported-sample-counts Supported Sample Counts>.+ -- <https://www.khronos.org/registry/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
@@ -18,7 +18,6 @@ , ACCESS_HOST_WRITE_BIT , ACCESS_MEMORY_READ_BIT , ACCESS_MEMORY_WRITE_BIT- , ACCESS_NONE_KHR , ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV , ACCESS_COMMAND_PREPROCESS_READ_BIT_NV , ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR@@ -30,6 +29,7 @@ , ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT , ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT , ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT+ , ACCESS_NONE , .. ) ) where@@ -53,12 +53,12 @@ -- = Description -- -- These values all have the same meaning as the equivalently named values--- for 'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlags2KHR'.+-- for 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2'. -- -- 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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- <https://www.khronos.org/registry/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@@ -66,108 +66,108 @@ -- accesses of that type. The following table lists, for each access flag, -- which pipeline stages /can/ perform that type of access. ----- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | Access flag | Supported pipeline stages |--- +======================================================================================+=====================================================================================================+--- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' , |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_INDEX_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | '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', |--- | | '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', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or |--- | | '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_RAY_TRACING_SHADER_BIT_KHR', |--- | | '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', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |--- | | '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', |--- | | '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', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', or |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_READ_BIT' | Any |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_WRITE_BIT' | Any |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | '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', |--- | | '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', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' |--- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | Access flag | Supported pipeline stages |+-- +=============================================================================+=====================================================================================================++-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' , |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INDEX_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | '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', |+-- | | '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', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or |+-- | | '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_RAY_TRACING_SHADER_BIT_KHR', |+-- | | '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', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |+-- | | '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', |+-- | | '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', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_READ_BIT' | Any |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_WRITE_BIT' | Any |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | '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', |+-- | | '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', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' |+-- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- -- Supported access types --@@ -183,153 +183,151 @@ -- dispatching command. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' -- pipeline stage.-pattern ACCESS_INDIRECT_COMMAND_READ_BIT = AccessFlagBits 0x00000001+pattern ACCESS_INDIRECT_COMMAND_READ_BIT = AccessFlagBits 0x00000001 -- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part -- of an indexed drawing command, bound by -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access -- occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' -- pipeline stage.-pattern ACCESS_INDEX_READ_BIT = AccessFlagBits 0x00000002+pattern ACCESS_INDEX_READ_BIT = AccessFlagBits 0x00000002 -- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT' specifies read access to a vertex -- buffer as part of a drawing command, bound by -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. Such access -- occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' -- pipeline stage.-pattern ACCESS_VERTEX_ATTRIBUTE_READ_BIT = AccessFlagBits 0x00000004+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.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer> -- in any shader pipeline stage.-pattern ACCESS_UNIFORM_READ_BIT = AccessFlagBits 0x00000008+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.2-extensions/html/vkspec.html#renderpass input attachment>+-- <https://www.khronos.org/registry/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.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' -- pipeline stage.-pattern ACCESS_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000010+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.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-binding-table shader binding table>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <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>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage.-pattern ACCESS_SHADER_READ_BIT = AccessFlagBits 0x00000020+pattern ACCESS_SHADER_READ_BIT = AccessFlagBits 0x00000020 -- | 'ACCESS_SHADER_WRITE_BIT' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <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>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage.-pattern ACCESS_SHADER_WRITE_BIT = AccessFlagBits 0x00000040+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.2-extensions/html/vkspec.html#renderpass color attachment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>, -- such as via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop logic operations>,+-- <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>, -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://www.khronos.org/registry/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.-pattern ACCESS_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000080+pattern ACCESS_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000080 -- | '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.2-extensions/html/vkspec.html#renderpass render pass>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://www.khronos.org/registry/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+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.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://www.khronos.org/registry/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 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' -- pipeline stages.-pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000200+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.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://www.khronos.org/registry/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 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' -- pipeline stages.-pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000400+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.2-extensions/html/vkspec.html#copies copy>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the--- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT' -- pipeline stage.-pattern ACCESS_TRANSFER_READ_BIT = AccessFlagBits 0x00000800+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.2-extensions/html/vkspec.html#clears clear>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the--- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT' -- pipeline stage.-pattern ACCESS_TRANSFER_WRITE_BIT = AccessFlagBits 0x00001000+pattern ACCESS_TRANSFER_WRITE_BIT = AccessFlagBits 0x00001000 -- | 'ACCESS_HOST_READ_BIT' specifies read access by a host operation. -- Accesses of this type are not performed through a resource, but directly -- on memory. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' -- pipeline stage.-pattern ACCESS_HOST_READ_BIT = AccessFlagBits 0x00002000+pattern ACCESS_HOST_READ_BIT = AccessFlagBits 0x00002000 -- | 'ACCESS_HOST_WRITE_BIT' specifies write access by a host operation. -- Accesses of this type are not performed through a resource, but directly -- on memory. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' -- pipeline stage.-pattern ACCESS_HOST_WRITE_BIT = AccessFlagBits 0x00004000+pattern ACCESS_HOST_WRITE_BIT = AccessFlagBits 0x00004000 -- | 'ACCESS_MEMORY_READ_BIT' specifies all read accesses. It is always valid -- in any access mask, and is treated as equivalent to setting all @READ@ -- access flags that are valid where it is used.-pattern ACCESS_MEMORY_READ_BIT = AccessFlagBits 0x00008000+pattern ACCESS_MEMORY_READ_BIT = AccessFlagBits 0x00008000 -- | 'ACCESS_MEMORY_WRITE_BIT' specifies all write accesses. It is always -- valid in any access mask, and is treated as equivalent to setting all -- @WRITE@ access flags that are valid where it is used.-pattern ACCESS_MEMORY_WRITE_BIT = AccessFlagBits 0x00010000--- | 'ACCESS_NONE_KHR' specifies no accesses.-pattern ACCESS_NONE_KHR = AccessFlagBits 0x00000000+pattern ACCESS_MEMORY_WRITE_BIT = AccessFlagBits 0x00010000 -- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the target -- command buffer:VkBuffer preprocess outputs in -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' -- pipeline stage.-pattern ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits 0x00040000+pattern ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits 0x00040000 -- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from buffer -- inputs to -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' -- pipeline stage.-pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits 0x00020000+pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits 0x00020000 -- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read -- access to a fragment shading rate attachment during rasterization. Such -- access occurs in the@@ -337,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.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>+-- <https://www.khronos.org/registry/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+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.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://www.khronos.org/registry/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.@@ -354,18 +352,18 @@ -- | '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.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://www.khronos.org/registry/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 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage.-pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits 0x00200000+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.2-extensions/html/vkspec.html#renderpass color attachments>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>, -- including--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://www.khronos.org/registry/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.@@ -374,7 +372,7 @@ -- predicate as part of conditional rendering. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- pipeline stage.-pattern ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits 0x00100000+pattern ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits 0x00100000 -- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write access -- to a transform feedback counter buffer which is written when -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'@@ -394,7 +392,9 @@ -- access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- pipeline stage.-pattern ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits 0x02000000+pattern ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits 0x02000000+-- | 'ACCESS_NONE' specifies no accesses.+pattern ACCESS_NONE = AccessFlagBits 0x00000000 conNameAccessFlagBits :: String conNameAccessFlagBits = "AccessFlagBits"@@ -404,35 +404,35 @@ showTableAccessFlagBits :: [(AccessFlagBits, String)] showTableAccessFlagBits =- [ (ACCESS_INDIRECT_COMMAND_READ_BIT , "INDIRECT_COMMAND_READ_BIT")- , (ACCESS_INDEX_READ_BIT , "INDEX_READ_BIT")- , (ACCESS_VERTEX_ATTRIBUTE_READ_BIT , "VERTEX_ATTRIBUTE_READ_BIT")- , (ACCESS_UNIFORM_READ_BIT , "UNIFORM_READ_BIT")- , (ACCESS_INPUT_ATTACHMENT_READ_BIT , "INPUT_ATTACHMENT_READ_BIT")- , (ACCESS_SHADER_READ_BIT , "SHADER_READ_BIT")- , (ACCESS_SHADER_WRITE_BIT , "SHADER_WRITE_BIT")- , (ACCESS_COLOR_ATTACHMENT_READ_BIT , "COLOR_ATTACHMENT_READ_BIT")- , (ACCESS_COLOR_ATTACHMENT_WRITE_BIT , "COLOR_ATTACHMENT_WRITE_BIT")- , (ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT , "DEPTH_STENCIL_ATTACHMENT_READ_BIT")- , (ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT , "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")- , (ACCESS_TRANSFER_READ_BIT , "TRANSFER_READ_BIT")- , (ACCESS_TRANSFER_WRITE_BIT , "TRANSFER_WRITE_BIT")- , (ACCESS_HOST_READ_BIT , "HOST_READ_BIT")- , (ACCESS_HOST_WRITE_BIT , "HOST_WRITE_BIT")- , (ACCESS_MEMORY_READ_BIT , "MEMORY_READ_BIT")- , (ACCESS_MEMORY_WRITE_BIT , "MEMORY_WRITE_BIT")- , (ACCESS_NONE_KHR , "NONE_KHR")- , (ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV , "COMMAND_PREPROCESS_WRITE_BIT_NV")- , (ACCESS_COMMAND_PREPROCESS_READ_BIT_NV , "COMMAND_PREPROCESS_READ_BIT_NV")+ [ (ACCESS_INDIRECT_COMMAND_READ_BIT , "INDIRECT_COMMAND_READ_BIT")+ , (ACCESS_INDEX_READ_BIT , "INDEX_READ_BIT")+ , (ACCESS_VERTEX_ATTRIBUTE_READ_BIT , "VERTEX_ATTRIBUTE_READ_BIT")+ , (ACCESS_UNIFORM_READ_BIT , "UNIFORM_READ_BIT")+ , (ACCESS_INPUT_ATTACHMENT_READ_BIT , "INPUT_ATTACHMENT_READ_BIT")+ , (ACCESS_SHADER_READ_BIT , "SHADER_READ_BIT")+ , (ACCESS_SHADER_WRITE_BIT , "SHADER_WRITE_BIT")+ , (ACCESS_COLOR_ATTACHMENT_READ_BIT , "COLOR_ATTACHMENT_READ_BIT")+ , (ACCESS_COLOR_ATTACHMENT_WRITE_BIT , "COLOR_ATTACHMENT_WRITE_BIT")+ , (ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT , "DEPTH_STENCIL_ATTACHMENT_READ_BIT")+ , (ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")+ , (ACCESS_TRANSFER_READ_BIT , "TRANSFER_READ_BIT")+ , (ACCESS_TRANSFER_WRITE_BIT , "TRANSFER_WRITE_BIT")+ , (ACCESS_HOST_READ_BIT , "HOST_READ_BIT")+ , (ACCESS_HOST_WRITE_BIT , "HOST_WRITE_BIT")+ , (ACCESS_MEMORY_READ_BIT , "MEMORY_READ_BIT")+ , (ACCESS_MEMORY_WRITE_BIT , "MEMORY_WRITE_BIT")+ , (ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV , "COMMAND_PREPROCESS_WRITE_BIT_NV")+ , (ACCESS_COMMAND_PREPROCESS_READ_BIT_NV , "COMMAND_PREPROCESS_READ_BIT_NV") , (ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")- , (ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")+ , (ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT") , (ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")- , (ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR , "ACCELERATION_STRUCTURE_READ_BIT_KHR")+ , (ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, "ACCELERATION_STRUCTURE_READ_BIT_KHR") , (ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")- , (ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT , "CONDITIONAL_RENDERING_READ_BIT_EXT")+ , (ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT, "CONDITIONAL_RENDERING_READ_BIT_EXT") , (ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT") , (ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")- , (ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")+ , (ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")+ , (ACCESS_NONE , "NONE") ] instance Show AccessFlagBits where
src/Vulkan/Core10/Enums/AttachmentLoadOp.hs view
@@ -24,7 +24,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo' newtype AttachmentLoadOp = AttachmentLoadOp Int32 deriving newtype (Eq, Ord, Storable, Zero)
src/Vulkan/Core10/Enums/AttachmentStoreOp.hs view
@@ -2,7 +2,7 @@ -- No documentation found for Chapter "AttachmentStoreOp" module Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp( ATTACHMENT_STORE_OP_STORE , ATTACHMENT_STORE_OP_DONT_CARE- , ATTACHMENT_STORE_OP_NONE_KHR+ , ATTACHMENT_STORE_OP_NONE , .. )) where @@ -31,7 +31,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo' newtype AttachmentStoreOp = AttachmentStoreOp Int32 deriving newtype (Eq, Ord, Storable, Zero) @@ -50,14 +50,14 @@ -- For attachments with a color format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'. pattern ATTACHMENT_STORE_OP_DONT_CARE = AttachmentStoreOp 1--- | 'ATTACHMENT_STORE_OP_NONE_KHR' specifies the contents within the render--- area are not accessed by the store operation. However, if the attachment--- was written to during the render pass, the contents of the attachment--- will be undefined inside the render area.-pattern ATTACHMENT_STORE_OP_NONE_KHR = AttachmentStoreOp 1000301000+-- | 'ATTACHMENT_STORE_OP_NONE' specifies the contents within the render area+-- are not accessed by the store operation. However, if the attachment was+-- written to during the render pass, the contents of the attachment will+-- be undefined inside the render area.+pattern ATTACHMENT_STORE_OP_NONE = AttachmentStoreOp 1000301000 {-# complete ATTACHMENT_STORE_OP_STORE, ATTACHMENT_STORE_OP_DONT_CARE,- ATTACHMENT_STORE_OP_NONE_KHR :: AttachmentStoreOp #-}+ ATTACHMENT_STORE_OP_NONE :: AttachmentStoreOp #-} conNameAttachmentStoreOp :: String conNameAttachmentStoreOp = "AttachmentStoreOp"@@ -69,7 +69,7 @@ showTableAttachmentStoreOp = [ (ATTACHMENT_STORE_OP_STORE , "STORE") , (ATTACHMENT_STORE_OP_DONT_CARE, "DONT_CARE")- , (ATTACHMENT_STORE_OP_NONE_KHR , "NONE_KHR")+ , (ATTACHMENT_STORE_OP_NONE , "NONE") ] instance Show AttachmentStoreOp where
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.2-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features Physical Device Features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).+-- <https://www.khronos.org/registry/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.@@ -97,7 +97,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.2-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>.+-- <https://www.khronos.org/registry/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 +105,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.2-extensions/html/vkspec.html#acceleration-structure-building acceleration structure build>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>;+-- <https://www.khronos.org/registry/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
@@ -28,7 +28,9 @@ -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Core10.Pipeline.StencilOpState',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' newtype CompareOp = CompareOp Int32 deriving newtype (Eq, Ord, Storable, Zero)
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.2-extensions/html/vkspec.html#formats-definition Format Definition>+-- <https://www.khronos.org/registry/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
@@ -32,13 +32,13 @@ 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.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>.+-- <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 -- | 'DEPENDENCY_VIEW_LOCAL_BIT' specifies that a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass has more than one view>.+-- <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 -- | 'DEPENDENCY_DEVICE_GROUP_BIT' specifies that dependencies are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>.+-- <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 conNameDependencyFlagBits :: String
src/Vulkan/Core10/Enums/DescriptorType.hs view
@@ -14,7 +14,7 @@ , DESCRIPTOR_TYPE_MUTABLE_VALVE , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR- , DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT+ , DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK , .. )) where @@ -33,43 +33,43 @@ -- = Description -- -- - 'DESCRIPTOR_TYPE_SAMPLER' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampler sampler descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler combined image sampler descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic dynamic uniform buffer descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic dynamic storage buffer descriptor>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-inputattachment input attachment descriptor>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment input attachment descriptor>. ----- - 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT' specifies an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>.+-- - '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>. -- -- - 'DESCRIPTOR_TYPE_MUTABLE_VALVE' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-mutable descriptor of mutable type>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-mutable descriptor of mutable type>. -- -- When a descriptor set is updated via elements of -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet', members of@@ -109,10 +109,10 @@ -- is accessed. -- -- When updating descriptors with a @descriptorType@ of--- 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT', none of the @pImageInfo@,+-- 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', none of the @pImageInfo@, -- @pBufferInfo@, or @pTexelBufferView@ members are accessed, instead the -- source data of the descriptor update operation is taken from the--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock' -- structure in the @pNext@ chain of -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet'. When updating -- descriptors with a @descriptorType@ of@@ -170,8 +170,8 @@ pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = DescriptorType 1000165000 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR" pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = DescriptorType 1000150000--- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT"-pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = DescriptorType 1000138000+-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK"+pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = DescriptorType 1000138000 {-# complete DESCRIPTOR_TYPE_SAMPLER, DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, DESCRIPTOR_TYPE_SAMPLED_IMAGE,@@ -186,7 +186,7 @@ DESCRIPTOR_TYPE_MUTABLE_VALVE, DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,- DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT :: DescriptorType #-}+ DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK :: DescriptorType #-} conNameDescriptorType :: String conNameDescriptorType = "DescriptorType"@@ -210,7 +210,7 @@ , (DESCRIPTOR_TYPE_MUTABLE_VALVE , "MUTABLE_VALVE") , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , "ACCELERATION_STRUCTURE_NV") , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, "ACCELERATION_STRUCTURE_KHR")- , (DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT , "INLINE_UNIFORM_BLOCK_EXT")+ , (DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK , "INLINE_UNIFORM_BLOCK") ] instance Show DescriptorType where
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -10,24 +10,9 @@ , DYNAMIC_STATE_STENCIL_WRITE_MASK , DYNAMIC_STATE_STENCIL_REFERENCE , DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT- , DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT , DYNAMIC_STATE_LOGIC_OP_EXT- , DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT- , DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT , DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT , DYNAMIC_STATE_VERTEX_INPUT_EXT- , DYNAMIC_STATE_STENCIL_OP_EXT- , DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT- , DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT- , DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT- , DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT- , DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT- , DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT- , DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT- , DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT- , DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT- , DYNAMIC_STATE_FRONT_FACE_EXT- , DYNAMIC_STATE_CULL_MODE_EXT , DYNAMIC_STATE_LINE_STIPPLE_EXT , DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR , DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV@@ -37,6 +22,21 @@ , DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT , DYNAMIC_STATE_DISCARD_RECTANGLE_EXT , DYNAMIC_STATE_VIEWPORT_W_SCALING_NV+ , DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE+ , DYNAMIC_STATE_DEPTH_BIAS_ENABLE+ , DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE+ , DYNAMIC_STATE_STENCIL_OP+ , DYNAMIC_STATE_STENCIL_TEST_ENABLE+ , DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE+ , DYNAMIC_STATE_DEPTH_COMPARE_OP+ , DYNAMIC_STATE_DEPTH_WRITE_ENABLE+ , DYNAMIC_STATE_DEPTH_TEST_ENABLE+ , DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE+ , DYNAMIC_STATE_SCISSOR_WITH_COUNT+ , DYNAMIC_STATE_VIEWPORT_WITH_COUNT+ , DYNAMIC_STATE_PRIMITIVE_TOPOLOGY+ , DYNAMIC_STATE_FRONT_FACE+ , DYNAMIC_STATE_CULL_MODE , .. )) where @@ -140,33 +140,12 @@ -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT' -- before any draw call. pattern DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = DynamicState 1000381000--- | 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' specifies that the--- @primitiveRestartEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = DynamicState 1000377004 -- | 'DYNAMIC_STATE_LOGIC_OP_EXT' specifies that the @logicOp@ state in -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo' will be -- ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT' -- before any drawing commands. pattern DYNAMIC_STATE_LOGIC_OP_EXT = DynamicState 1000377003--- | 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT' specifies that the--- @depthBiasEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = DynamicState 1000377002--- | 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT' specifies that the--- @rasterizerDiscardEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = DynamicState 1000377001 -- | 'DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' specifies that the -- @patchControlPoints@ state in -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' will be@@ -179,90 +158,6 @@ -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' -- before any drawing commands pattern DYNAMIC_STATE_VERTEX_INPUT_EXT = DynamicState 1000352000--- | 'DYNAMIC_STATE_STENCIL_OP_EXT' specifies that the @failOp@, @passOp@,--- @depthFailOp@, and @compareOp@ states in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both--- @front@ and @back@ will be ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT'--- before any draws are performed with a pipeline state with--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member--- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'-pattern DYNAMIC_STATE_STENCIL_OP_EXT = DynamicState 1000267011--- | 'DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT' specifies that the--- @stencilTestEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = DynamicState 1000267010--- | 'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT' specifies that the--- @depthBoundsTestEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = DynamicState 1000267009--- | 'DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT' specifies that the @depthCompareOp@--- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'--- will be ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = DynamicState 1000267008--- | 'DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT' specifies that the--- @depthWriteEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = DynamicState 1000267007--- | 'DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT' specifies that the--- @depthTestEnable@ state in--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT'--- before any draw call.-pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = DynamicState 1000267006--- | 'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' specifies that the--- @stride@ state in 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'--- will be ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- before any draw call.-pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = DynamicState 1000267005--- | 'DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' specifies that the @scissorCount@--- and @pScissors@ state in--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored--- and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'--- before any draw call.-pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = DynamicState 1000267004--- | 'DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' specifies that the--- @viewportCount@ and @pViewports@ state in--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored--- and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'--- before any draw call.-pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = DynamicState 1000267003--- | 'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' specifies that the @topology@--- state in 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'--- only specifies the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>,--- and the specific topology order and adjacency /must/ be set dynamically--- with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = DynamicState 1000267002--- | 'DYNAMIC_STATE_FRONT_FACE_EXT' specifies that the @frontFace@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_FRONT_FACE_EXT = DynamicState 1000267001--- | 'DYNAMIC_STATE_CULL_MODE_EXT' specifies that the @cullMode@ state in--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be--- ignored and /must/ be set dynamically with--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT'--- before any drawing commands.-pattern DYNAMIC_STATE_CULL_MODE_EXT = DynamicState 1000267000 -- | 'DYNAMIC_STATE_LINE_STIPPLE_EXT' specifies that the @lineStippleFactor@ -- and @lineStipplePattern@ state in -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'@@ -343,6 +238,108 @@ -- member @viewportScalingEnable@ set to -- 'Vulkan.Core10.FundamentalTypes.TRUE' pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = DynamicState 1000087000+-- | 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' specifies that the+-- @primitiveRestartEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'+-- before any drawing commands.+pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = DynamicState 1000377004+-- | 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE' specifies that the @depthBiasEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- before any drawing commands.+pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE = DynamicState 1000377002+-- | 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' specifies that the+-- @rasterizerDiscardEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- before any drawing commands.+pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = DynamicState 1000377001+-- | 'DYNAMIC_STATE_STENCIL_OP' specifies that the @failOp@, @passOp@,+-- @depthFailOp@, and @compareOp@ states in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both+-- @front@ and @back@ will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+-- before any draws are performed with a pipeline state with+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member+-- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'+pattern DYNAMIC_STATE_STENCIL_OP = DynamicState 1000267011+-- | 'DYNAMIC_STATE_STENCIL_TEST_ENABLE' specifies that the+-- @stencilTestEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+-- before any draw call.+pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE = DynamicState 1000267010+-- | 'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE' specifies that the+-- @depthBoundsTestEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = DynamicState 1000267009+-- | 'DYNAMIC_STATE_DEPTH_COMPARE_OP' specifies that the @depthCompareOp@+-- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_COMPARE_OP = DynamicState 1000267008+-- | 'DYNAMIC_STATE_DEPTH_WRITE_ENABLE' specifies that the @depthWriteEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE = DynamicState 1000267007+-- | 'DYNAMIC_STATE_DEPTH_TEST_ENABLE' specifies that the @depthTestEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE = DynamicState 1000267006+-- | 'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE' specifies that the @stride@+-- state in 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2'+-- before any draw call.+pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = DynamicState 1000267005+-- | 'DYNAMIC_STATE_SCISSOR_WITH_COUNT' specifies that the @scissorCount@ and+-- @pScissors@ state in+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored+-- and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- before any draw call.+pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT = DynamicState 1000267004+-- | 'DYNAMIC_STATE_VIEWPORT_WITH_COUNT' specifies that the @viewportCount@+-- and @pViewports@ state in+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored+-- and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- before any draw call.+pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT = DynamicState 1000267003+-- | '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>,+-- and the specific topology order and adjacency /must/ be set dynamically+-- with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'+-- before any drawing commands.+pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = DynamicState 1000267002+-- | 'DYNAMIC_STATE_FRONT_FACE' specifies that the @frontFace@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+-- before any drawing commands.+pattern DYNAMIC_STATE_FRONT_FACE = DynamicState 1000267001+-- | 'DYNAMIC_STATE_CULL_MODE' specifies that the @cullMode@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+-- before any drawing commands.+pattern DYNAMIC_STATE_CULL_MODE = DynamicState 1000267000 {-# complete DYNAMIC_STATE_VIEWPORT, DYNAMIC_STATE_SCISSOR, DYNAMIC_STATE_LINE_WIDTH,@@ -353,24 +350,9 @@ DYNAMIC_STATE_STENCIL_WRITE_MASK, DYNAMIC_STATE_STENCIL_REFERENCE, DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,- DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT, DYNAMIC_STATE_LOGIC_OP_EXT,- DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,- DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT, DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT, DYNAMIC_STATE_VERTEX_INPUT_EXT,- DYNAMIC_STATE_STENCIL_OP_EXT,- DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,- DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,- DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,- DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,- DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,- DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,- DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,- DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,- DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,- DYNAMIC_STATE_FRONT_FACE_EXT,- DYNAMIC_STATE_CULL_MODE_EXT, DYNAMIC_STATE_LINE_STIPPLE_EXT, DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,@@ -379,7 +361,22 @@ DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR, DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,- DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: DynamicState #-}+ DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,+ DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,+ DYNAMIC_STATE_DEPTH_BIAS_ENABLE,+ DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,+ DYNAMIC_STATE_STENCIL_OP,+ DYNAMIC_STATE_STENCIL_TEST_ENABLE,+ DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,+ DYNAMIC_STATE_DEPTH_COMPARE_OP,+ DYNAMIC_STATE_DEPTH_WRITE_ENABLE,+ DYNAMIC_STATE_DEPTH_TEST_ENABLE,+ DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,+ DYNAMIC_STATE_SCISSOR_WITH_COUNT,+ DYNAMIC_STATE_VIEWPORT_WITH_COUNT,+ DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,+ DYNAMIC_STATE_FRONT_FACE,+ DYNAMIC_STATE_CULL_MODE :: DynamicState #-} conNameDynamicState :: String conNameDynamicState = "DynamicState"@@ -399,24 +396,9 @@ , (DYNAMIC_STATE_STENCIL_WRITE_MASK , "STENCIL_WRITE_MASK") , (DYNAMIC_STATE_STENCIL_REFERENCE , "STENCIL_REFERENCE") , (DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT , "COLOR_WRITE_ENABLE_EXT")- , (DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT , "PRIMITIVE_RESTART_ENABLE_EXT") , (DYNAMIC_STATE_LOGIC_OP_EXT , "LOGIC_OP_EXT")- , (DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT , "DEPTH_BIAS_ENABLE_EXT")- , (DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT , "RASTERIZER_DISCARD_ENABLE_EXT") , (DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT , "PATCH_CONTROL_POINTS_EXT") , (DYNAMIC_STATE_VERTEX_INPUT_EXT , "VERTEX_INPUT_EXT")- , (DYNAMIC_STATE_STENCIL_OP_EXT , "STENCIL_OP_EXT")- , (DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT , "STENCIL_TEST_ENABLE_EXT")- , (DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT , "DEPTH_BOUNDS_TEST_ENABLE_EXT")- , (DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT , "DEPTH_COMPARE_OP_EXT")- , (DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT , "DEPTH_WRITE_ENABLE_EXT")- , (DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT , "DEPTH_TEST_ENABLE_EXT")- , (DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT , "VERTEX_INPUT_BINDING_STRIDE_EXT")- , (DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT , "SCISSOR_WITH_COUNT_EXT")- , (DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT , "VIEWPORT_WITH_COUNT_EXT")- , (DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT , "PRIMITIVE_TOPOLOGY_EXT")- , (DYNAMIC_STATE_FRONT_FACE_EXT , "FRONT_FACE_EXT")- , (DYNAMIC_STATE_CULL_MODE_EXT , "CULL_MODE_EXT") , (DYNAMIC_STATE_LINE_STIPPLE_EXT , "LINE_STIPPLE_EXT") , (DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR , "FRAGMENT_SHADING_RATE_KHR") , (DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV , "EXCLUSIVE_SCISSOR_NV")@@ -426,6 +408,21 @@ , (DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT , "SAMPLE_LOCATIONS_EXT") , (DYNAMIC_STATE_DISCARD_RECTANGLE_EXT , "DISCARD_RECTANGLE_EXT") , (DYNAMIC_STATE_VIEWPORT_W_SCALING_NV , "VIEWPORT_W_SCALING_NV")+ , (DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE , "PRIMITIVE_RESTART_ENABLE")+ , (DYNAMIC_STATE_DEPTH_BIAS_ENABLE , "DEPTH_BIAS_ENABLE")+ , (DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE , "RASTERIZER_DISCARD_ENABLE")+ , (DYNAMIC_STATE_STENCIL_OP , "STENCIL_OP")+ , (DYNAMIC_STATE_STENCIL_TEST_ENABLE , "STENCIL_TEST_ENABLE")+ , (DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE , "DEPTH_BOUNDS_TEST_ENABLE")+ , (DYNAMIC_STATE_DEPTH_COMPARE_OP , "DEPTH_COMPARE_OP")+ , (DYNAMIC_STATE_DEPTH_WRITE_ENABLE , "DEPTH_WRITE_ENABLE")+ , (DYNAMIC_STATE_DEPTH_TEST_ENABLE , "DEPTH_TEST_ENABLE")+ , (DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE , "VERTEX_INPUT_BINDING_STRIDE")+ , (DYNAMIC_STATE_SCISSOR_WITH_COUNT , "SCISSOR_WITH_COUNT")+ , (DYNAMIC_STATE_VIEWPORT_WITH_COUNT , "VIEWPORT_WITH_COUNT")+ , (DYNAMIC_STATE_PRIMITIVE_TOPOLOGY , "PRIMITIVE_TOPOLOGY")+ , (DYNAMIC_STATE_FRONT_FACE , "FRONT_FACE")+ , (DYNAMIC_STATE_CULL_MODE , "CULL_MODE") ] instance Show DynamicState where
src/Vulkan/Core10/Enums/EventCreateFlagBits.hs view
@@ -1,7 +1,7 @@ {-# language CPP #-} -- No documentation found for Chapter "EventCreateFlagBits" module Vulkan.Core10.Enums.EventCreateFlagBits ( EventCreateFlags- , EventCreateFlagBits( EVENT_CREATE_DEVICE_ONLY_BIT_KHR+ , EventCreateFlagBits( EVENT_CREATE_DEVICE_ONLY_BIT , .. ) ) where@@ -28,18 +28,18 @@ newtype EventCreateFlagBits = EventCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'EVENT_CREATE_DEVICE_ONLY_BIT_KHR' specifies that host event commands--- will not be used with this event.-pattern EVENT_CREATE_DEVICE_ONLY_BIT_KHR = EventCreateFlagBits 0x00000001+-- | 'EVENT_CREATE_DEVICE_ONLY_BIT' specifies that host event commands will+-- not be used with this event.+pattern EVENT_CREATE_DEVICE_ONLY_BIT = EventCreateFlagBits 0x00000001 conNameEventCreateFlagBits :: String conNameEventCreateFlagBits = "EventCreateFlagBits" enumPrefixEventCreateFlagBits :: String-enumPrefixEventCreateFlagBits = "EVENT_CREATE_DEVICE_ONLY_BIT_KHR"+enumPrefixEventCreateFlagBits = "EVENT_CREATE_DEVICE_ONLY_BIT" showTableEventCreateFlagBits :: [(EventCreateFlagBits, String)]-showTableEventCreateFlagBits = [(EVENT_CREATE_DEVICE_ONLY_BIT_KHR, "")]+showTableEventCreateFlagBits = [(EVENT_CREATE_DEVICE_ONLY_BIT, "")] instance Show EventCreateFlagBits where showsPrec = enumShowsPrec enumPrefixEventCreateFlagBits
src/Vulkan/Core10/Enums/Filter.hs view
@@ -20,12 +20,12 @@ -- = Description -- -- These filters are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>. -- -- = 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_KHR_copy_commands2.BlitImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'
src/Vulkan/Core10/Enums/Format.hs view
@@ -185,26 +185,6 @@ , FORMAT_ASTC_12x10_SRGB_BLOCK , FORMAT_ASTC_12x12_UNORM_BLOCK , FORMAT_ASTC_12x12_SRGB_BLOCK- , FORMAT_A4B4G4R4_UNORM_PACK16_EXT- , FORMAT_A4R4G4B4_UNORM_PACK16_EXT- , FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT- , FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT- , FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT- , FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT- , FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT- , FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG , FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG@@ -213,6 +193,26 @@ , FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG , FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG , FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG+ , FORMAT_ASTC_12x12_SFLOAT_BLOCK+ , FORMAT_ASTC_12x10_SFLOAT_BLOCK+ , FORMAT_ASTC_10x10_SFLOAT_BLOCK+ , FORMAT_ASTC_10x8_SFLOAT_BLOCK+ , FORMAT_ASTC_10x6_SFLOAT_BLOCK+ , FORMAT_ASTC_10x5_SFLOAT_BLOCK+ , FORMAT_ASTC_8x8_SFLOAT_BLOCK+ , FORMAT_ASTC_8x6_SFLOAT_BLOCK+ , FORMAT_ASTC_8x5_SFLOAT_BLOCK+ , FORMAT_ASTC_6x6_SFLOAT_BLOCK+ , FORMAT_ASTC_6x5_SFLOAT_BLOCK+ , FORMAT_ASTC_5x5_SFLOAT_BLOCK+ , FORMAT_ASTC_5x4_SFLOAT_BLOCK+ , FORMAT_ASTC_4x4_SFLOAT_BLOCK+ , FORMAT_A4B4G4R4_UNORM_PACK16+ , FORMAT_A4R4G4B4_UNORM_PACK16+ , FORMAT_G16_B16R16_2PLANE_444_UNORM+ , FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16+ , FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16+ , FORMAT_G8_B8R8_2PLANE_444_UNORM , FORMAT_G16_B16_R16_3PLANE_444_UNORM , FORMAT_G16_B16R16_2PLANE_422_UNORM , FORMAT_G16_B16_R16_3PLANE_422_UNORM@@ -270,7 +270,7 @@ -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', -- 'Vulkan.Core10.Image.ImageCreateInfo',@@ -279,7 +279,7 @@ -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR',@@ -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.2-extensions/html/vkspec.html#fundamentals-fp10>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp10> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-fp11>.+-- <https://www.khronos.org/registry/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@@ -1120,127 +1120,6 @@ -- 12×12 rectangle of unsigned normalized RGBA texel data with sRGB -- nonlinear encoding applied to the RGB components. pattern FORMAT_ASTC_12x12_SRGB_BLOCK = Format 184--- | 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' specifies a four-component, 16-bit--- packed unsigned normalized format that has a 4-bit A component in bits--- 12..15, a 4-bit B component in bits 8..11, a 4-bit G component in bits--- 4..7, and a 4-bit R component in bits 0..3.-pattern FORMAT_A4B4G4R4_UNORM_PACK16_EXT = Format 1000340001--- | 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' specifies a four-component, 16-bit--- packed unsigned normalized format that has a 4-bit A component in bits--- 12..15, a 4-bit R component in bits 8..11, a 4-bit G component in bits--- 4..7, and a 4-bit B component in bits 0..3.-pattern FORMAT_A4R4G4B4_UNORM_PACK16_EXT = Format 1000340000--- | 'FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT' specifies an unsigned--- normalized /multi-planar format/ that has a 16-bit G component in each--- 16-bit word of plane 0, and a two-component, 32-bit BR plane 1--- consisting of a 16-bit B component in the word in bytes 0..1, and a--- 16-bit R component in the word in bytes 2..3. Both planes have the same--- dimensions and each R, G and B component contributes to a single texel.--- The location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = Format 1000330003--- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT' specifies an--- unsigned normalized /multi-planar format/ that has a 12-bit G component--- in the top 12 bits of each 16-bit word of plane 0, and a two-component,--- 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits--- of the word in bytes 0..1, and a 12-bit R component in the top 12 bits--- of the word in bytes 2..3, the bottom 4 bits of each word unused. Both--- planes have the same dimensions and each R, G and B component--- contributes to a single texel. The location of each plane when this--- image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = Format 1000330002--- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT' specifies an--- unsigned normalized /multi-planar format/ that has a 10-bit G component--- in the top 10 bits of each 16-bit word of plane 0, and a two-component,--- 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits--- of the word in bytes 0..1, and a 10-bit R component in the top 10 bits--- of the word in bytes 2..3, the bottom 6 bits of each word unused. Both--- planes have the same dimensions and each R, G and B component--- contributes to a single texel. The location of each plane when this--- image is in linear layout can be determined via--- 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = Format 1000330001--- | 'FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT' specifies an unsigned normalized--- /multi-planar format/ that has an 8-bit G component in plane 0, and a--- two-component, 16-bit BR plane 1 consisting of an 8-bit B component in--- byte 0 and an 8-bit R component in byte 1. Both planes have the same--- dimensions and each R, G and B component contributes to a single texel.--- The location of each plane when this image is in linear layout can be--- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for--- the G plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the BR plane.-pattern FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = Format 1000330000--- | 'FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 12×12 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = Format 1000066013--- | 'FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 12×10 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = Format 1000066012--- | 'FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×10 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = Format 1000066011--- | 'FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×8 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = Format 1000066010--- | 'FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×6 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = Format 1000066009--- | 'FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = Format 1000066008--- | 'FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 8×8 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = Format 1000066007--- | 'FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 8×6 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = Format 1000066006--- | 'FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 8×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = Format 1000066005--- | 'FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 6×6 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = Format 1000066004--- | 'FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 6×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = Format 1000066003--- | 'FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 5×5 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = Format 1000066002--- | 'FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 5×4 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = Format 1000066001--- | 'FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 4×4 rectangle of signed floating-point RGBA texel data.-pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = Format 1000066000 -- | 'FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG' specifies a four-component, PVRTC -- compressed format where each 64-bit compressed texel block encodes a 4×4 -- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear@@ -1277,6 +1156,127 @@ -- compressed format where each 64-bit compressed texel block encodes an -- 8×4 rectangle of unsigned normalized RGBA texel data. pattern FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = Format 1000054000+-- | 'FORMAT_ASTC_12x12_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×12 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK = Format 1000066013+-- | 'FORMAT_ASTC_12x10_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×10 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK = Format 1000066012+-- | 'FORMAT_ASTC_10x10_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×10 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK = Format 1000066011+-- | 'FORMAT_ASTC_10x8_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×8 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK = Format 1000066010+-- | 'FORMAT_ASTC_10x6_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×6 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK = Format 1000066009+-- | 'FORMAT_ASTC_10x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK = Format 1000066008+-- | 'FORMAT_ASTC_8x8_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 8×8 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK = Format 1000066007+-- | 'FORMAT_ASTC_8x6_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 8×6 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK = Format 1000066006+-- | 'FORMAT_ASTC_8x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 8×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK = Format 1000066005+-- | 'FORMAT_ASTC_6x6_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×6 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK = Format 1000066004+-- | 'FORMAT_ASTC_6x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK = Format 1000066003+-- | 'FORMAT_ASTC_5x5_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×5 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK = Format 1000066002+-- | 'FORMAT_ASTC_5x4_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×4 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK = Format 1000066001+-- | 'FORMAT_ASTC_4x4_SFLOAT_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of signed floating-point RGBA texel data.+pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK = Format 1000066000+-- | 'FORMAT_A4B4G4R4_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 4-bit A component in bits 12..15,+-- a 4-bit B component in bits 8..11, a 4-bit G component in bits 4..7, and+-- a 4-bit R component in bits 0..3.+pattern FORMAT_A4B4G4R4_UNORM_PACK16 = Format 1000340001+-- | 'FORMAT_A4R4G4B4_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 4-bit A component in bits 12..15,+-- a 4-bit R component in bits 8..11, a 4-bit G component in bits 4..7, and+-- a 4-bit B component in bits 0..3.+pattern FORMAT_A4R4G4B4_UNORM_PACK16 = Format 1000340000+-- | 'FORMAT_G16_B16R16_2PLANE_444_UNORM' specifies an unsigned normalized+-- /multi-planar format/ that has a 16-bit G component in each 16-bit word+-- of plane 0, and a two-component, 32-bit BR plane 1 consisting of a+-- 16-bit B component in the word in bytes 0..1, and a 16-bit R component+-- in the word in bytes 2..3. Both planes have the same dimensions and each+-- R, G and B component contributes to a single texel. The location of each+-- plane when this image is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G16_B16R16_2PLANE_444_UNORM = Format 1000330003+-- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16' specifies an unsigned+-- normalized /multi-planar format/ that has a 12-bit G component in the+-- top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit+-- BR plane 1 consisting of a 12-bit B component in the top 12 bits of the+-- word in bytes 0..1, and a 12-bit R component in the top 12 bits of the+-- word in bytes 2..3, the bottom 4 bits of each word unused. Both planes+-- have the same dimensions and each R, G and B component contributes to a+-- single texel. The location of each plane when this image is in linear+-- layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = Format 1000330002+-- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16' specifies an unsigned+-- normalized /multi-planar format/ that has a 10-bit G component in the+-- top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit+-- BR plane 1 consisting of a 10-bit B component in the top 10 bits of the+-- word in bytes 0..1, and a 10-bit R component in the top 10 bits of the+-- word in bytes 2..3, the bottom 6 bits of each word unused. Both planes+-- have the same dimensions and each R, G and B component contributes to a+-- single texel. The location of each plane when this image is in linear+-- layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = Format 1000330001+-- | 'FORMAT_G8_B8R8_2PLANE_444_UNORM' specifies an unsigned normalized+-- /multi-planar format/ that has an 8-bit G component in plane 0, and a+-- two-component, 16-bit BR plane 1 consisting of an 8-bit B component in+-- byte 0 and an 8-bit R component in byte 1. Both planes have the same+-- dimensions and each R, G and B component contributes to a single texel.+-- The location of each plane when this image is in linear layout can be+-- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G8_B8R8_2PLANE_444_UNORM = Format 1000330000 -- | 'FORMAT_G16_B16_R16_3PLANE_444_UNORM' specifies an unsigned normalized -- /multi-planar format/ that has a 16-bit G component in each 16-bit word -- of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a@@ -1964,26 +1964,6 @@ FORMAT_ASTC_12x10_SRGB_BLOCK, FORMAT_ASTC_12x12_UNORM_BLOCK, FORMAT_ASTC_12x12_SRGB_BLOCK,- FORMAT_A4B4G4R4_UNORM_PACK16_EXT,- FORMAT_A4R4G4B4_UNORM_PACK16_EXT,- FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,- FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,- FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,- FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,- FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,- FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,@@ -1992,6 +1972,26 @@ FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,+ FORMAT_ASTC_12x12_SFLOAT_BLOCK,+ FORMAT_ASTC_12x10_SFLOAT_BLOCK,+ FORMAT_ASTC_10x10_SFLOAT_BLOCK,+ FORMAT_ASTC_10x8_SFLOAT_BLOCK,+ FORMAT_ASTC_10x6_SFLOAT_BLOCK,+ FORMAT_ASTC_10x5_SFLOAT_BLOCK,+ FORMAT_ASTC_8x8_SFLOAT_BLOCK,+ FORMAT_ASTC_8x6_SFLOAT_BLOCK,+ FORMAT_ASTC_8x5_SFLOAT_BLOCK,+ FORMAT_ASTC_6x6_SFLOAT_BLOCK,+ FORMAT_ASTC_6x5_SFLOAT_BLOCK,+ FORMAT_ASTC_5x5_SFLOAT_BLOCK,+ FORMAT_ASTC_5x4_SFLOAT_BLOCK,+ FORMAT_ASTC_4x4_SFLOAT_BLOCK,+ FORMAT_A4B4G4R4_UNORM_PACK16,+ FORMAT_A4R4G4B4_UNORM_PACK16,+ FORMAT_G16_B16R16_2PLANE_444_UNORM,+ FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,+ FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,+ FORMAT_G8_B8R8_2PLANE_444_UNORM, FORMAT_G16_B16_R16_3PLANE_444_UNORM, FORMAT_G16_B16R16_2PLANE_422_UNORM, FORMAT_G16_B16_R16_3PLANE_422_UNORM,@@ -2220,26 +2220,6 @@ , (FORMAT_ASTC_12x10_SRGB_BLOCK , "ASTC_12x10_SRGB_BLOCK") , (FORMAT_ASTC_12x12_UNORM_BLOCK , "ASTC_12x12_UNORM_BLOCK") , (FORMAT_ASTC_12x12_SRGB_BLOCK , "ASTC_12x12_SRGB_BLOCK")- , (FORMAT_A4B4G4R4_UNORM_PACK16_EXT , "A4B4G4R4_UNORM_PACK16_EXT")- , (FORMAT_A4R4G4B4_UNORM_PACK16_EXT , "A4R4G4B4_UNORM_PACK16_EXT")- , (FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT , "G16_B16R16_2PLANE_444_UNORM_EXT")- , (FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT, "G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT")- , (FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT, "G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT")- , (FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT , "G8_B8R8_2PLANE_444_UNORM_EXT")- , (FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT , "ASTC_12x12_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT , "ASTC_12x10_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT , "ASTC_10x10_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT , "ASTC_10x8_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT , "ASTC_10x6_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT , "ASTC_10x5_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT , "ASTC_8x8_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT , "ASTC_8x6_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT , "ASTC_8x5_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT , "ASTC_6x6_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT , "ASTC_6x5_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT , "ASTC_5x5_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT , "ASTC_5x4_SFLOAT_BLOCK_EXT")- , (FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT , "ASTC_4x4_SFLOAT_BLOCK_EXT") , (FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG , "PVRTC2_4BPP_SRGB_BLOCK_IMG") , (FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG , "PVRTC2_2BPP_SRGB_BLOCK_IMG") , (FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG , "PVRTC1_4BPP_SRGB_BLOCK_IMG")@@ -2248,6 +2228,26 @@ , (FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG , "PVRTC2_2BPP_UNORM_BLOCK_IMG") , (FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG , "PVRTC1_4BPP_UNORM_BLOCK_IMG") , (FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG , "PVRTC1_2BPP_UNORM_BLOCK_IMG")+ , (FORMAT_ASTC_12x12_SFLOAT_BLOCK , "ASTC_12x12_SFLOAT_BLOCK")+ , (FORMAT_ASTC_12x10_SFLOAT_BLOCK , "ASTC_12x10_SFLOAT_BLOCK")+ , (FORMAT_ASTC_10x10_SFLOAT_BLOCK , "ASTC_10x10_SFLOAT_BLOCK")+ , (FORMAT_ASTC_10x8_SFLOAT_BLOCK , "ASTC_10x8_SFLOAT_BLOCK")+ , (FORMAT_ASTC_10x6_SFLOAT_BLOCK , "ASTC_10x6_SFLOAT_BLOCK")+ , (FORMAT_ASTC_10x5_SFLOAT_BLOCK , "ASTC_10x5_SFLOAT_BLOCK")+ , (FORMAT_ASTC_8x8_SFLOAT_BLOCK , "ASTC_8x8_SFLOAT_BLOCK")+ , (FORMAT_ASTC_8x6_SFLOAT_BLOCK , "ASTC_8x6_SFLOAT_BLOCK")+ , (FORMAT_ASTC_8x5_SFLOAT_BLOCK , "ASTC_8x5_SFLOAT_BLOCK")+ , (FORMAT_ASTC_6x6_SFLOAT_BLOCK , "ASTC_6x6_SFLOAT_BLOCK")+ , (FORMAT_ASTC_6x5_SFLOAT_BLOCK , "ASTC_6x5_SFLOAT_BLOCK")+ , (FORMAT_ASTC_5x5_SFLOAT_BLOCK , "ASTC_5x5_SFLOAT_BLOCK")+ , (FORMAT_ASTC_5x4_SFLOAT_BLOCK , "ASTC_5x4_SFLOAT_BLOCK")+ , (FORMAT_ASTC_4x4_SFLOAT_BLOCK , "ASTC_4x4_SFLOAT_BLOCK")+ , (FORMAT_A4B4G4R4_UNORM_PACK16 , "A4B4G4R4_UNORM_PACK16")+ , (FORMAT_A4R4G4B4_UNORM_PACK16 , "A4R4G4B4_UNORM_PACK16")+ , (FORMAT_G16_B16R16_2PLANE_444_UNORM , "G16_B16R16_2PLANE_444_UNORM")+ , (FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, "G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16")+ , (FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, "G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16")+ , (FORMAT_G8_B8R8_2PLANE_444_UNORM , "G8_B8R8_2PLANE_444_UNORM") , (FORMAT_G16_B16_R16_3PLANE_444_UNORM , "G16_B16_R16_3PLANE_444_UNORM") , (FORMAT_G16_B16R16_2PLANE_422_UNORM , "G16_B16R16_2PLANE_422_UNORM") , (FORMAT_G16_B16_R16_3PLANE_422_UNORM , "G16_B16_R16_3PLANE_422_UNORM")
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -51,9 +51,8 @@ -- = Description -- -- These values all have the same meaning as the equivalently named values--- for--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'--- and /may/ be set in @linearTilingFeatures@, @optimalTilingFeatures@, and+-- for 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2' and+-- /may/ be set in @linearTilingFeatures@, @optimalTilingFeatures@, and -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierTilingFeatures@, -- specifying that the features are supported by <VkImage.html images> or -- <VkImageView.html image views> or@@ -63,11 +62,11 @@ -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' specifies that an image view -- /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+-- <https://www.khronos.org/registry/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.@@ -86,13 +85,13 @@ -- -- - 'FORMAT_FEATURE_BLIT_SRC_BIT' specifies that an image /can/ be used -- as @srcImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. -- -- - 'FORMAT_FEATURE_BLIT_DST_BIT' specifies that an image /can/ be used -- as @dstImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' is also set, an image view /can/@@ -102,10 +101,10 @@ -- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. -- If 'FORMAT_FEATURE_BLIT_SRC_BIT' is also set, an image can be used -- as the @srcImage@ to--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@--- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only--- be exposed for formats that also support the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a+-- @filter@ of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit+-- /must/ only be exposed for formats that also support the -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' or 'FORMAT_FEATURE_BLIT_SRC_BIT'. -- -- If the format being queried is a depth\/stencil format, this bit@@ -122,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.2-extensions/html/vkspec.html#copies copy commands>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#copies copy commands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.+-- <https://www.khronos.org/registry/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@@ -150,7 +149,7 @@ -- -- - 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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'@@ -165,7 +164,7 @@ -- -- - 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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'@@ -176,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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'. --@@ -191,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.2-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- <https://www.khronos.org/registry/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'@@ -212,11 +211,11 @@ -- -- - '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.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://www.khronos.org/registry/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. --@@ -247,11 +246,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.2-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- builds. -- -- = See Also@@ -262,11 +261,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.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+-- <https://www.khronos.org/registry/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.@@ -303,12 +302,12 @@ pattern FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = FormatFeatureFlagBits 0x00000200 -- | 'FORMAT_FEATURE_BLIT_SRC_BIT' specifies that an image /can/ be used as -- @srcImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. pattern FORMAT_FEATURE_BLIT_SRC_BIT = FormatFeatureFlagBits 0x00000400 -- | 'FORMAT_FEATURE_BLIT_DST_BIT' specifies that an image /can/ be used as -- @dstImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. pattern FORMAT_FEATURE_BLIT_DST_BIT = FormatFeatureFlagBits 0x00000800 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if@@ -317,9 +316,10 @@ -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or @mipmapMode@ set to -- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. If -- 'FORMAT_FEATURE_BLIT_SRC_BIT' is also set, an image can be used as the--- @srcImage@ to 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'--- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@--- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be+-- @srcImage@ to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@ of+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be -- exposed for formats that also support the -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' or 'FORMAT_FEATURE_BLIT_SRC_BIT'. --@@ -337,21 +337,21 @@ 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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+-- <https://www.khronos.org/registry/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_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.2-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://www.khronos.org/registry/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"@@ -365,7 +365,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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 +376,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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 +397,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.2-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- <https://www.khronos.org/registry/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 +408,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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 +429,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.2-extensions/html/vkspec.html#copies copy commands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#copies copy commands>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. pattern FORMAT_FEATURE_TRANSFER_SRC_BIT = FormatFeatureFlagBits 0x00004000 conNameFormatFeatureFlagBits :: String
src/Vulkan/Core10/Enums/FrontFace.hs view
@@ -25,6 +25,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT' newtype FrontFace = FrontFace Int32 deriving newtype (Eq, Ord, Storable, Zero)
src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs view
@@ -37,7 +37,7 @@ -- -- <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.Extensions.VK_KHR_maintenance4.DeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', -- 'ImageAspectFlags', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo' newtype ImageAspectFlagBits = ImageAspectFlagBits Flags@@ -50,7 +50,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.2-extensions/html/vkspec.html#sparsememory sparse resource>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory sparse resource> -- operations. pattern IMAGE_ASPECT_METADATA_BIT = ImageAspectFlagBits 0x00000008 -- | 'IMAGE_ASPECT_NONE_KHR' specifies no image aspect, or the image aspect
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -40,9 +40,9 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-physicalfeatures Sparse Physical Device Features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalfeatures Sparse Physical Device Features> -- for more details. -- -- = See Also@@ -69,7 +69,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/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,7 +81,7 @@ 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.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>.+-- <https://www.khronos.org/registry/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@@ -107,14 +107,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.2-extensions/html/vkspec.html#limits-subsampledCoarseReconstructionEarlyAccess ::subsampledCoarseReconstructionEarlyAccess>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-subsampledLoads ::subsampledLoads>+-- <https://www.khronos.org/registry/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 +126,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.2-extensions/html/vkspec.html#resources-images-corner-sampled corner-sampled image>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/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 +166,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.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-compatible-planes>.+-- <https://www.khronos.org/registry/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
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -9,12 +9,12 @@ , IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , IMAGE_LAYOUT_PREINITIALIZED- , IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR- , IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR , IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR , IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT , IMAGE_LAYOUT_SHARED_PRESENT_KHR , IMAGE_LAYOUT_PRESENT_SRC_KHR+ , IMAGE_LAYOUT_ATTACHMENT_OPTIMAL+ , IMAGE_LAYOUT_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL , IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL , IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL@@ -46,15 +46,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.2-extensions/html/vkspec.html#clears>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies>).+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass Render Pass>).+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-updates>).+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates>). -- -- = See Also --@@ -65,18 +65,18 @@ -- 'Vulkan.Core10.Pass.AttachmentReference', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',@@ -127,7 +127,7 @@ 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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).+-- <https://www.khronos.org/registry/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'@@ -148,22 +148,15 @@ -- 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.2-extensions/html/vkspec.html#glossary-linear-resource linear>+-- <https://www.khronos.org/registry/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--- | 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' specifies a layout that /must/--- only be used with attachment accesses in the graphics pipeline.-pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = ImageLayout 1000314001--- | 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' 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_KHR = ImageLayout 1000314000 -- | 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' /must/ only -- be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>.+-- <https://www.khronos.org/registry/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'@@ -186,6 +179,13 @@ -- transitioned away from this layout after calling -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR'. 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+-- | '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 -- | '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,@@ -229,12 +229,12 @@ IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, IMAGE_LAYOUT_PREINITIALIZED,- IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,- IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR, IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, IMAGE_LAYOUT_SHARED_PRESENT_KHR, IMAGE_LAYOUT_PRESENT_SRC_KHR,+ IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,+ IMAGE_LAYOUT_READ_ONLY_OPTIMAL, IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,@@ -259,12 +259,12 @@ , (IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , "TRANSFER_SRC_OPTIMAL") , (IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , "TRANSFER_DST_OPTIMAL") , (IMAGE_LAYOUT_PREINITIALIZED , "PREINITIALIZED")- , (IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR , "ATTACHMENT_OPTIMAL_KHR")- , (IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR , "READ_ONLY_OPTIMAL_KHR") , (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")
src/Vulkan/Core10/Enums/ImageTiling.hs view
@@ -38,7 +38,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.2-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.+-- <https://www.khronos.org/registry/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/ImageUsageFlagBits.hs view
@@ -67,7 +67,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.2-extensions/html/vkspec.html#memory memory allocations>+-- <https://www.khronos.org/registry/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@@ -87,14 +87,14 @@ -- | '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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>.+-- <https://www.khronos.org/registry/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
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.2-extensions/html/vkspec.html#framebuffer-blendoperations Blend Operations>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-device-lazy_allocation Lazily Allocated Memory>.+-- <https://www.khronos.org/registry/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/ObjectType.hs view
@@ -27,7 +27,6 @@ , OBJECT_TYPE_FRAMEBUFFER , OBJECT_TYPE_COMMAND_POOL , OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA- , OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV , OBJECT_TYPE_DEFERRED_OPERATION_KHR , OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL@@ -42,6 +41,7 @@ , OBJECT_TYPE_DISPLAY_KHR , OBJECT_TYPE_SWAPCHAIN_KHR , OBJECT_TYPE_SURFACE_KHR+ , OBJECT_TYPE_PRIVATE_DATA_SLOT , OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE , OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION , ..@@ -145,7 +145,7 @@ -- +-----------------------------------------------+-----------------------------------------------------------+ -- | 'OBJECT_TYPE_DEFERRED_OPERATION_KHR' | 'Vulkan.Extensions.Handles.DeferredOperationKHR' | -- +-----------------------------------------------+-----------------------------------------------------------+--- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT' | 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' |+-- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT' | 'Vulkan.Core13.Handles.PrivateDataSlot' | -- +-----------------------------------------------+-----------------------------------------------------------+ -- -- 'ObjectType' and Vulkan Handle Relationship@@ -156,7 +156,9 @@ -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectTagInfoEXT', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT' newtype ObjectType = ObjectType Int32 deriving newtype (Eq, Ord, Storable, Zero)@@ -215,8 +217,6 @@ pattern OBJECT_TYPE_COMMAND_POOL = ObjectType 25 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA" pattern OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = ObjectType 1000366000--- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT"-pattern OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = ObjectType 1000295000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV" pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = ObjectType 1000277000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"@@ -245,6 +245,8 @@ pattern OBJECT_TYPE_SWAPCHAIN_KHR = ObjectType 1000001000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SURFACE_KHR" pattern OBJECT_TYPE_SURFACE_KHR = ObjectType 1000000000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT"+pattern OBJECT_TYPE_PRIVATE_DATA_SLOT = ObjectType 1000295000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE" pattern OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = ObjectType 1000085000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"@@ -276,7 +278,6 @@ OBJECT_TYPE_FRAMEBUFFER, OBJECT_TYPE_COMMAND_POOL, OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,- OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV, OBJECT_TYPE_DEFERRED_OPERATION_KHR, OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,@@ -291,6 +292,7 @@ OBJECT_TYPE_DISPLAY_KHR, OBJECT_TYPE_SWAPCHAIN_KHR, OBJECT_TYPE_SURFACE_KHR,+ OBJECT_TYPE_PRIVATE_DATA_SLOT, OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION :: ObjectType #-} @@ -329,7 +331,6 @@ , (OBJECT_TYPE_FRAMEBUFFER , "FRAMEBUFFER") , (OBJECT_TYPE_COMMAND_POOL , "COMMAND_POOL") , (OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA , "BUFFER_COLLECTION_FUCHSIA")- , (OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT , "PRIVATE_DATA_SLOT_EXT") , (OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV , "INDIRECT_COMMANDS_LAYOUT_NV") , (OBJECT_TYPE_DEFERRED_OPERATION_KHR , "DEFERRED_OPERATION_KHR") , (OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL, "PERFORMANCE_CONFIGURATION_INTEL")@@ -344,6 +345,7 @@ , (OBJECT_TYPE_DISPLAY_KHR , "DISPLAY_KHR") , (OBJECT_TYPE_SWAPCHAIN_KHR , "SWAPCHAIN_KHR") , (OBJECT_TYPE_SURFACE_KHR , "SURFACE_KHR")+ , (OBJECT_TYPE_PRIVATE_DATA_SLOT , "PRIVATE_DATA_SLOT") , (OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE , "DESCRIPTOR_UPDATE_TEMPLATE") , (OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION , "SAMPLER_YCBCR_CONVERSION") ]
src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs view
@@ -1,7 +1,7 @@ {-# language CPP #-} -- No documentation found for Chapter "PipelineCacheCreateFlagBits" module Vulkan.Core10.Enums.PipelineCacheCreateFlagBits ( PipelineCacheCreateFlags- , PipelineCacheCreateFlagBits( PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT+ , PipelineCacheCreateFlagBits( PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT , .. ) ) where@@ -29,23 +29,23 @@ newtype PipelineCacheCreateFlagBits = PipelineCacheCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT' specifies that--- all commands that modify the created--- 'Vulkan.Core10.Handles.PipelineCache' will be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- | '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>. -- When set, the implementation /may/ skip any unnecessary processing -- needed to support simultaneous modification from multiple threads where -- allowed.-pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = PipelineCacheCreateFlagBits 0x00000001+pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = PipelineCacheCreateFlagBits 0x00000001 conNamePipelineCacheCreateFlagBits :: String conNamePipelineCacheCreateFlagBits = "PipelineCacheCreateFlagBits" enumPrefixPipelineCacheCreateFlagBits :: String-enumPrefixPipelineCacheCreateFlagBits = "PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"+enumPrefixPipelineCacheCreateFlagBits = "PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT" showTablePipelineCacheCreateFlagBits :: [(PipelineCacheCreateFlagBits, String)]-showTablePipelineCacheCreateFlagBits = [(PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, "")]+showTablePipelineCacheCreateFlagBits = [(PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, "")] instance Show PipelineCacheCreateFlagBits where showsPrec = enumShowsPrec enumPrefixPipelineCacheCreateFlagBits
src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs view
@@ -33,7 +33,7 @@ -- 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.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/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 = PipelineColorBlendStateCreateFlagBits 0x00000001
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -5,8 +5,6 @@ , PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT , PIPELINE_CREATE_DERIVATIVE_BIT , PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV- , PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT- , PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT , PIPELINE_CREATE_LIBRARY_BIT_KHR , PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV , PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR@@ -21,6 +19,8 @@ , PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR , PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT , PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+ , PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT+ , PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT , PIPELINE_CREATE_DISPATCH_BASE_BIT , PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT , ..@@ -134,21 +134,20 @@ -- -- - 'PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' specifies that the -- pipeline can be used in combination with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#device-generated-commands>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>. ----- - 'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'--- specifies that pipeline creation will fail if a compile is required--- for creation of a valid 'Vulkan.Core10.Handles.Pipeline' object;--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT' will be+-- - 'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' specifies+-- that pipeline creation will fail if a compile is required for+-- creation of a valid 'Vulkan.Core10.Handles.Pipeline' object;+-- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED' will be -- returned by pipeline creation, and the -- 'Vulkan.Core10.Handles.Pipeline' will be set to -- 'Vulkan.Core10.APIConstants.NULL_HANDLE'. -- -- - When creating multiple pipelines,--- 'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' specifies that--- control will be returned to the application on failure of the--- corresponding pipeline rather than continuing to create additional--- pipelines.+-- 'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' specifies that control+-- will be returned to the application on failure of the corresponding+-- pipeline rather than continuing to create additional pipelines. -- -- - 'PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' specifies that the -- pipeline is allowed to use @OpTraceRayMotionNV@.@@ -164,7 +163,7 @@ -- 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.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives> -- for more information. -- -- = See Also@@ -182,10 +181,6 @@ pattern PIPELINE_CREATE_DERIVATIVE_BIT = PipelineCreateFlagBits 0x00000004 -- 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_EARLY_RETURN_ON_FAILURE_BIT_EXT"-pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = PipelineCreateFlagBits 0x00000200--- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"-pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = PipelineCreateFlagBits 0x00000100 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" pattern PIPELINE_CREATE_LIBRARY_BIT_KHR = PipelineCreateFlagBits 0x00000800 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"@@ -214,6 +209,10 @@ pattern PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PipelineCreateFlagBits 0x00400000 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" pattern PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineCreateFlagBits 0x00200000+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"+pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = PipelineCreateFlagBits 0x00000200+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"+pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = PipelineCreateFlagBits 0x00000100 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT" pattern PIPELINE_CREATE_DISPATCH_BASE_BIT = PipelineCreateFlagBits 0x00000010 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"@@ -227,17 +226,15 @@ showTablePipelineCreateFlagBits :: [(PipelineCreateFlagBits, String)] showTablePipelineCreateFlagBits =- [ (PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT , "DISABLE_OPTIMIZATION_BIT")- , (PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT , "ALLOW_DERIVATIVES_BIT")- , (PIPELINE_CREATE_DERIVATIVE_BIT , "DERIVATIVE_BIT")- , (PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV , "RAY_TRACING_ALLOW_MOTION_BIT_NV")- , (PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT , "EARLY_RETURN_ON_FAILURE_BIT_EXT")- , (PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT, "FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT")- , (PIPELINE_CREATE_LIBRARY_BIT_KHR , "LIBRARY_BIT_KHR")- , (PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV , "INDIRECT_BINDABLE_BIT_NV")- , (PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR , "CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR")- , (PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR , "CAPTURE_STATISTICS_BIT_KHR")- , (PIPELINE_CREATE_DEFER_COMPILE_BIT_NV , "DEFER_COMPILE_BIT_NV")+ [ (PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT , "DISABLE_OPTIMIZATION_BIT")+ , (PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT , "ALLOW_DERIVATIVES_BIT")+ , (PIPELINE_CREATE_DERIVATIVE_BIT , "DERIVATIVE_BIT")+ , (PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV , "RAY_TRACING_ALLOW_MOTION_BIT_NV")+ , (PIPELINE_CREATE_LIBRARY_BIT_KHR , "LIBRARY_BIT_KHR")+ , (PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV , "INDIRECT_BINDABLE_BIT_NV")+ , (PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, "CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR")+ , (PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR , "CAPTURE_STATISTICS_BIT_KHR")+ , (PIPELINE_CREATE_DEFER_COMPILE_BIT_NV , "DEFER_COMPILE_BIT_NV") , ( PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR , "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" )@@ -255,8 +252,10 @@ , ( PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" )- , (PIPELINE_CREATE_DISPATCH_BASE_BIT , "DISPATCH_BASE_BIT")- , (PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, "VIEW_INDEX_FROM_DEVICE_INDEX_BIT")+ , (PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT , "EARLY_RETURN_ON_FAILURE_BIT")+ , (PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, "FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT")+ , (PIPELINE_CREATE_DISPATCH_BASE_BIT , "DISPATCH_BASE_BIT")+ , (PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT , "VIEW_INDEX_FROM_DEVICE_INDEX_BIT") ] instance Show PipelineCreateFlagBits where
src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs view
@@ -34,7 +34,7 @@ -- 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.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/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 = PipelineDepthStencilStateCreateFlagBits 0x00000002@@ -42,7 +42,7 @@ -- 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.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/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 = PipelineDepthStencilStateCreateFlagBits 0x00000001
src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs view
@@ -1,8 +1,8 @@ {-# language CPP #-} -- No documentation found for Chapter "PipelineShaderStageCreateFlagBits" module Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits ( PipelineShaderStageCreateFlags- , PipelineShaderStageCreateFlagBits( PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT- , PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT+ , PipelineShaderStageCreateFlagBits( PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT+ , PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT , .. ) ) where@@ -27,17 +27,19 @@ -- -- Note ----- If 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'--- and 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' are--- specified and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize>+-- If+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+-- 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> -- does not equal--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize> -- and no--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-required-subgroup-size required subgroup size>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- <https://www.khronos.org/registry/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. --@@ -48,15 +50,15 @@ newtype PipelineShaderStageCreateFlagBits = PipelineShaderStageCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' specifies--- that the subgroup sizes /must/ be launched with all invocations active--- in the compute stage.-pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = PipelineShaderStageCreateFlagBits 0x00000002--- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'--- specifies that the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- | 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' specifies that+-- the subgroup sizes /must/ be launched with all invocations active in the+-- compute stage.+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> -- /may/ vary in the shader stage.-pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = PipelineShaderStageCreateFlagBits 0x00000001+pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = PipelineShaderStageCreateFlagBits 0x00000001 conNamePipelineShaderStageCreateFlagBits :: String conNamePipelineShaderStageCreateFlagBits = "PipelineShaderStageCreateFlagBits"@@ -66,8 +68,8 @@ showTablePipelineShaderStageCreateFlagBits :: [(PipelineShaderStageCreateFlagBits, String)] showTablePipelineShaderStageCreateFlagBits =- [ (PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT , "REQUIRE_FULL_SUBGROUPS_BIT_EXT")- , (PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, "ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT")+ [ (PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT , "REQUIRE_FULL_SUBGROUPS_BIT")+ , (PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT, "ALLOW_VARYING_SUBGROUP_SIZE_BIT") ] instance Show PipelineShaderStageCreateFlagBits where
src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs view
@@ -18,7 +18,6 @@ , PIPELINE_STAGE_HOST_BIT , PIPELINE_STAGE_ALL_GRAPHICS_BIT , PIPELINE_STAGE_ALL_COMMANDS_BIT- , PIPELINE_STAGE_NONE_KHR , PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV , PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT@@ -28,6 +27,7 @@ , PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR , PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT , PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT+ , PIPELINE_STAGE_NONE , .. ) ) where@@ -50,7 +50,7 @@ -- = Description -- -- These values all have the same meaning as the equivalently named values--- for 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlags2KHR'.+-- for 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'. -- -- = See Also --@@ -67,81 +67,81 @@ -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlags' set to @0@ when -- specified in the second synchronization scope, but specifies no stage of -- execution when specified in the first scope.-pattern PIPELINE_STAGE_TOP_OF_PIPE_BIT = PipelineStageFlagBits 0x00000001+pattern PIPELINE_STAGE_TOP_OF_PIPE_BIT = PipelineStageFlagBits 0x00000001 -- | 'PIPELINE_STAGE_DRAW_INDIRECT_BIT' specifies the stage of the pipeline -- where @VkDrawIndirect*@ \/ @VkDispatchIndirect*@ \/ -- @VkTraceRaysIndirect*@ data structures are consumed. This stage also -- includes reading commands written by -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV'.-pattern PIPELINE_STAGE_DRAW_INDIRECT_BIT = PipelineStageFlagBits 0x00000002+pattern PIPELINE_STAGE_DRAW_INDIRECT_BIT = PipelineStageFlagBits 0x00000002 -- | 'PIPELINE_STAGE_VERTEX_INPUT_BIT' specifies the stage of the pipeline -- where vertex and index buffers are consumed.-pattern PIPELINE_STAGE_VERTEX_INPUT_BIT = PipelineStageFlagBits 0x00000004+pattern PIPELINE_STAGE_VERTEX_INPUT_BIT = PipelineStageFlagBits 0x00000004 -- | 'PIPELINE_STAGE_VERTEX_SHADER_BIT' specifies the vertex shader stage.-pattern PIPELINE_STAGE_VERTEX_SHADER_BIT = PipelineStageFlagBits 0x00000008+pattern PIPELINE_STAGE_VERTEX_SHADER_BIT = PipelineStageFlagBits 0x00000008 -- | 'PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' specifies the -- tessellation control shader stage.-pattern PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = PipelineStageFlagBits 0x00000010+pattern PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = PipelineStageFlagBits 0x00000010 -- | 'PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' specifies the -- tessellation evaluation shader stage.-pattern PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = PipelineStageFlagBits 0x00000020+pattern PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = PipelineStageFlagBits 0x00000020 -- | 'PIPELINE_STAGE_GEOMETRY_SHADER_BIT' specifies the geometry shader -- stage.-pattern PIPELINE_STAGE_GEOMETRY_SHADER_BIT = PipelineStageFlagBits 0x00000040+pattern PIPELINE_STAGE_GEOMETRY_SHADER_BIT = PipelineStageFlagBits 0x00000040 -- | 'PIPELINE_STAGE_FRAGMENT_SHADER_BIT' specifies the fragment shader -- stage.-pattern PIPELINE_STAGE_FRAGMENT_SHADER_BIT = PipelineStageFlagBits 0x00000080+pattern PIPELINE_STAGE_FRAGMENT_SHADER_BIT = PipelineStageFlagBits 0x00000080 -- | '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.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>+-- <https://www.khronos.org/registry/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+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.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>+-- <https://www.khronos.org/registry/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+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.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>+-- <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.-pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits 0x00000400+pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits 0x00000400 -- | 'PIPELINE_STAGE_COMPUTE_SHADER_BIT' specifies the execution of a compute -- shader.-pattern PIPELINE_STAGE_COMPUTE_SHADER_BIT = PipelineStageFlagBits 0x00000800+pattern PIPELINE_STAGE_COMPUTE_SHADER_BIT = PipelineStageFlagBits 0x00000800 -- | #synchronization-pipeline-stages-transfer# 'PIPELINE_STAGE_TRANSFER_BIT' -- specifies the following commands: -- -- - All--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>, -- including -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults' ----- - 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'+-- - 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' ----- - 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'+-- - 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdResolveImage2'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage' -- -- - All--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>,+-- <https://www.khronos.org/registry/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+pattern PIPELINE_STAGE_TRANSFER_BIT = PipelineStageFlagBits 0x00001000 -- | 'PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT' is equivalent to -- 'PIPELINE_STAGE_ALL_COMMANDS_BIT' with -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlags' set to @0@ when -- specified in the first synchronization scope, but specifies no stage of -- execution when specified in the second scope.-pattern PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = PipelineStageFlagBits 0x00002000+pattern PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = PipelineStageFlagBits 0x00002000 -- | 'PIPELINE_STAGE_HOST_BIT' specifies a pseudo-stage indicating execution -- on the host of reads\/writes of device memory. This stage is not invoked -- by any commands recorded in a command buffer.-pattern PIPELINE_STAGE_HOST_BIT = PipelineStageFlagBits 0x00004000+pattern PIPELINE_STAGE_HOST_BIT = PipelineStageFlagBits 0x00004000 -- | 'PIPELINE_STAGE_ALL_GRAPHICS_BIT' specifies the execution of all -- graphics pipeline stages, and is equivalent to the logical OR of: --@@ -176,39 +176,37 @@ -- - 'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - 'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'-pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT = PipelineStageFlagBits 0x00008000+pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT = PipelineStageFlagBits 0x00008000 -- | '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_NONE_KHR' specifies no stages of execution.-pattern PIPELINE_STAGE_NONE_KHR = PipelineStageFlagBits 0x00000000+pattern PIPELINE_STAGE_ALL_COMMANDS_BIT = PipelineStageFlagBits 0x00010000 -- | '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' -- is handled.-pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = PipelineStageFlagBits 0x00020000+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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = PipelineStageFlagBits 0x00800000+-- <https://www.khronos.org/registry/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+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+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' , -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR', or -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'-pattern PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = PipelineStageFlagBits 0x00200000+pattern PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = PipelineStageFlagBits 0x00200000 -- | 'PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the -- execution of -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',@@ -225,11 +223,13 @@ pattern PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = PipelineStageFlagBits 0x02000000 -- | 'PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of -- the pipeline where the predicate of conditional rendering is consumed.-pattern PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = PipelineStageFlagBits 0x00040000+pattern PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = PipelineStageFlagBits 0x00040000 -- | 'PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the -- pipeline where vertex attribute output values are written to the -- transform feedback buffers.-pattern PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = PipelineStageFlagBits 0x01000000+pattern PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = PipelineStageFlagBits 0x01000000+-- | 'PIPELINE_STAGE_NONE' specifies no stages of execution.+pattern PIPELINE_STAGE_NONE = PipelineStageFlagBits 0x00000000 conNamePipelineStageFlagBits :: String conNamePipelineStageFlagBits = "PipelineStageFlagBits"@@ -239,33 +239,33 @@ showTablePipelineStageFlagBits :: [(PipelineStageFlagBits, String)] showTablePipelineStageFlagBits =- [ (PIPELINE_STAGE_TOP_OF_PIPE_BIT , "TOP_OF_PIPE_BIT")- , (PIPELINE_STAGE_DRAW_INDIRECT_BIT , "DRAW_INDIRECT_BIT")- , (PIPELINE_STAGE_VERTEX_INPUT_BIT , "VERTEX_INPUT_BIT")- , (PIPELINE_STAGE_VERTEX_SHADER_BIT , "VERTEX_SHADER_BIT")- , (PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT , "TESSELLATION_CONTROL_SHADER_BIT")- , (PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT , "TESSELLATION_EVALUATION_SHADER_BIT")- , (PIPELINE_STAGE_GEOMETRY_SHADER_BIT , "GEOMETRY_SHADER_BIT")- , (PIPELINE_STAGE_FRAGMENT_SHADER_BIT , "FRAGMENT_SHADER_BIT")- , (PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT , "EARLY_FRAGMENT_TESTS_BIT")- , (PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT , "LATE_FRAGMENT_TESTS_BIT")- , (PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT , "COLOR_ATTACHMENT_OUTPUT_BIT")- , (PIPELINE_STAGE_COMPUTE_SHADER_BIT , "COMPUTE_SHADER_BIT")- , (PIPELINE_STAGE_TRANSFER_BIT , "TRANSFER_BIT")- , (PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT , "BOTTOM_OF_PIPE_BIT")- , (PIPELINE_STAGE_HOST_BIT , "HOST_BIT")- , (PIPELINE_STAGE_ALL_GRAPHICS_BIT , "ALL_GRAPHICS_BIT")- , (PIPELINE_STAGE_ALL_COMMANDS_BIT , "ALL_COMMANDS_BIT")- , (PIPELINE_STAGE_NONE_KHR , "NONE_KHR")- , (PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV , "COMMAND_PREPROCESS_BIT_NV")+ [ (PIPELINE_STAGE_TOP_OF_PIPE_BIT , "TOP_OF_PIPE_BIT")+ , (PIPELINE_STAGE_DRAW_INDIRECT_BIT , "DRAW_INDIRECT_BIT")+ , (PIPELINE_STAGE_VERTEX_INPUT_BIT , "VERTEX_INPUT_BIT")+ , (PIPELINE_STAGE_VERTEX_SHADER_BIT , "VERTEX_SHADER_BIT")+ , (PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT , "TESSELLATION_CONTROL_SHADER_BIT")+ , (PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, "TESSELLATION_EVALUATION_SHADER_BIT")+ , (PIPELINE_STAGE_GEOMETRY_SHADER_BIT , "GEOMETRY_SHADER_BIT")+ , (PIPELINE_STAGE_FRAGMENT_SHADER_BIT , "FRAGMENT_SHADER_BIT")+ , (PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT , "EARLY_FRAGMENT_TESTS_BIT")+ , (PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT , "LATE_FRAGMENT_TESTS_BIT")+ , (PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT , "COLOR_ATTACHMENT_OUTPUT_BIT")+ , (PIPELINE_STAGE_COMPUTE_SHADER_BIT , "COMPUTE_SHADER_BIT")+ , (PIPELINE_STAGE_TRANSFER_BIT , "TRANSFER_BIT")+ , (PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT , "BOTTOM_OF_PIPE_BIT")+ , (PIPELINE_STAGE_HOST_BIT , "HOST_BIT")+ , (PIPELINE_STAGE_ALL_GRAPHICS_BIT , "ALL_GRAPHICS_BIT")+ , (PIPELINE_STAGE_ALL_COMMANDS_BIT , "ALL_COMMANDS_BIT")+ , (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_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")- , (PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT , "TRANSFORM_FEEDBACK_BIT_EXT")+ , (PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT , "CONDITIONAL_RENDERING_BIT_EXT")+ , (PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT , "TRANSFORM_FEEDBACK_BIT_EXT")+ , (PIPELINE_STAGE_NONE , "NONE") ] instance Show PipelineStageFlagBits where
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -38,16 +38,16 @@ -- | | 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.2-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>. |+-- | | 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.2-extensions/html/vkspec.html#geometry geometry shader>. |+-- | | 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.2-extensions/html/vkspec.html#primsrast-polygons-basic facing determination>. |+-- | | 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. | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ --@@ -60,29 +60,30 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' newtype PrimitiveTopology = PrimitiveTopology Int32 deriving newtype (Eq, Ord, Storable, Zero) -- | 'PRIMITIVE_TOPOLOGY_POINT_LIST' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-point-lists separate point primitives>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-line-lists separate line primitives>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-line-strips connected line primitives>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-triangle-lists separate triangle primitives>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-triangle-strips connected triangle primitives>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-triangle-fans connected triangle primitives>+-- <https://www.khronos.org/registry/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@@@ -91,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.2-extensions/html/vkspec.html#drawing-line-lists-with-adjacency separate line primitives with adjacency>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-line-strips-with-adjacency connected line primitives with adjacency>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-triangle-lists-with-adjacency separate triangle primitives with adjacency>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-triangle-strips-with-adjacency connected triangle primitives with adjacency>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-patch-lists separate patch primitives>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#queries-occlusion occlusion queries>.+-- <https://www.khronos.org/registry/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
@@ -38,7 +38,7 @@ -- 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.2-extensions/html/vkspec.html#queries-operation-undefined Query Operation>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-undefined Query Operation>. -- -- Note --@@ -47,7 +47,7 @@ -- -- If a pipeline has @rasterizerDiscardEnable@ enabled, implementations -- /may/ discard primitives after the final--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/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 +67,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.2-extensions/html/vkspec.html#drawing input assembly>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing input assembly>+-- <https://www.khronos.org/registry/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 +83,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.2-extensions/html/vkspec.html#shaders-vertex-execution invoked>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-geometry-execution invoked>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution invoked>. -- In the case of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-invocations instanced geometry shaders>,+-- <https://www.khronos.org/registry/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 +106,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.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://www.khronos.org/registry/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 +129,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.2-extensions/html/vkspec.html#fragops-shader invoked>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-tessellation-control-execution invoked>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-tessellation-evaluation-execution invoked>.+-- <https://www.khronos.org/registry/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
src/Vulkan/Core10/Enums/QueryType.hs view
@@ -34,37 +34,37 @@ deriving newtype (Eq, Ord, Storable, Zero) -- | 'QUERY_TYPE_OCCLUSION' specifies an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-occlusion occlusion query>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#queries-pipestats pipeline statistics query>.+-- <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 -- | 'QUERY_TYPE_TIMESTAMP' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-timestamps timestamp query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps timestamp query>. pattern QUERY_TYPE_TIMESTAMP = QueryType 2 -- | 'QUERY_TYPE_PERFORMANCE_QUERY_INTEL' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-performance-intel Intel performance query>.+-- <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.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#acceleration-structure-copying serialization acceleration structure size query>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#queries-performance performance query>.+-- <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 -- | 'QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback transform feedback query>.+-- <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 {-# complete QUERY_TYPE_OCCLUSION, QUERY_TYPE_PIPELINE_STATISTICS,
src/Vulkan/Core10/Enums/QueueFlagBits.hs view
@@ -48,7 +48,7 @@ -- /optional/. -- -- For further details see--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-queues Queues>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#sparsememory Sparse Resources>).+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-protected-memory Protected Memory>).+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/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,13 +19,12 @@ , ERROR_FORMAT_NOT_SUPPORTED , ERROR_FRAGMENTED_POOL , ERROR_UNKNOWN- , PIPELINE_COMPILE_REQUIRED_EXT , OPERATION_NOT_DEFERRED_KHR , OPERATION_DEFERRED_KHR , THREAD_DONE_KHR , THREAD_IDLE_KHR , ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT- , ERROR_NOT_PERMITTED_EXT+ , ERROR_NOT_PERMITTED_KHR , ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT , ERROR_INVALID_SHADER_NV , ERROR_VALIDATION_FAILED_EXT@@ -34,6 +33,7 @@ , SUBOPTIMAL_KHR , ERROR_NATIVE_WINDOW_IN_USE_KHR , ERROR_SURFACE_LOST_KHR+ , PIPELINE_COMPILE_REQUIRED , ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS , ERROR_FRAGMENTATION , ERROR_INVALID_EXTERNAL_HANDLE@@ -119,7 +119,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.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>+-- <https://www.khronos.org/registry/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,10 +150,6 @@ -- | '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)--- | 'PIPELINE_COMPILE_REQUIRED_EXT' A requested pipeline creation would have--- required compilation, but the application requested compilation to not--- be performed.-pattern PIPELINE_COMPILE_REQUIRED_EXT = Result 1000297000 -- | 'OPERATION_NOT_DEFERRED_KHR' A deferred operation was requested and no -- operations were deferred. pattern OPERATION_NOT_DEFERRED_KHR = Result 1000268003@@ -173,8 +169,8 @@ -- due to implementation-dependent reasons, outside of the application’s -- control. pattern ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = Result (-1000255000)--- No documentation found for Nested "VkResult" "VK_ERROR_NOT_PERMITTED_EXT"-pattern ERROR_NOT_PERMITTED_EXT = Result (-1000174001)+-- No documentation found for Nested "VkResult" "VK_ERROR_NOT_PERMITTED_KHR"+pattern ERROR_NOT_PERMITTED_KHR = Result (-1000174001) -- No documentation found for Nested "VkResult" "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT" pattern ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = Result (-1000158000) -- | 'ERROR_INVALID_SHADER_NV' One or more shaders failed to compile or link.@@ -202,6 +198,10 @@ pattern ERROR_NATIVE_WINDOW_IN_USE_KHR = Result (-1000000001) -- | 'ERROR_SURFACE_LOST_KHR' A surface is no longer available. pattern ERROR_SURFACE_LOST_KHR = Result (-1000000000)+-- | 'PIPELINE_COMPILE_REQUIRED' A requested pipeline creation would have+-- required compilation, but the application requested compilation to not+-- be performed.+pattern PIPELINE_COMPILE_REQUIRED = Result 1000297000 -- | 'ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS' A buffer creation or memory -- allocation failed because the requested address is not available. A -- shader group handle assignment failed because the requested shader group@@ -238,13 +238,12 @@ ERROR_FORMAT_NOT_SUPPORTED, ERROR_FRAGMENTED_POOL, ERROR_UNKNOWN,- PIPELINE_COMPILE_REQUIRED_EXT, OPERATION_NOT_DEFERRED_KHR, OPERATION_DEFERRED_KHR, THREAD_DONE_KHR, THREAD_IDLE_KHR, ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,- ERROR_NOT_PERMITTED_EXT,+ ERROR_NOT_PERMITTED_KHR, ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT, ERROR_INVALID_SHADER_NV, ERROR_VALIDATION_FAILED_EXT,@@ -253,6 +252,7 @@ SUBOPTIMAL_KHR, ERROR_NATIVE_WINDOW_IN_USE_KHR, ERROR_SURFACE_LOST_KHR,+ PIPELINE_COMPILE_REQUIRED, ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, ERROR_FRAGMENTATION, ERROR_INVALID_EXTERNAL_HANDLE,@@ -285,13 +285,12 @@ , (ERROR_FORMAT_NOT_SUPPORTED , "ERROR_FORMAT_NOT_SUPPORTED") , (ERROR_FRAGMENTED_POOL , "ERROR_FRAGMENTED_POOL") , (ERROR_UNKNOWN , "ERROR_UNKNOWN")- , (PIPELINE_COMPILE_REQUIRED_EXT , "PIPELINE_COMPILE_REQUIRED_EXT") , (OPERATION_NOT_DEFERRED_KHR , "OPERATION_NOT_DEFERRED_KHR") , (OPERATION_DEFERRED_KHR , "OPERATION_DEFERRED_KHR") , (THREAD_DONE_KHR , "THREAD_DONE_KHR") , (THREAD_IDLE_KHR , "THREAD_IDLE_KHR") , (ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT, "ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT")- , (ERROR_NOT_PERMITTED_EXT , "ERROR_NOT_PERMITTED_EXT")+ , (ERROR_NOT_PERMITTED_KHR , "ERROR_NOT_PERMITTED_KHR") , (ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT, "ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT") , (ERROR_INVALID_SHADER_NV , "ERROR_INVALID_SHADER_NV") , (ERROR_VALIDATION_FAILED_EXT , "ERROR_VALIDATION_FAILED_EXT")@@ -300,6 +299,7 @@ , (SUBOPTIMAL_KHR , "SUBOPTIMAL_KHR") , (ERROR_NATIVE_WINDOW_IN_USE_KHR , "ERROR_NATIVE_WINDOW_IN_USE_KHR") , (ERROR_SURFACE_LOST_KHR , "ERROR_SURFACE_LOST_KHR")+ , (PIPELINE_COMPILE_REQUIRED , "PIPELINE_COMPILE_REQUIRED") , (ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, "ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS") , (ERROR_FRAGMENTATION , "ERROR_FRAGMENTATION") , (ERROR_INVALID_EXTERNAL_HANDLE , "ERROR_INVALID_EXTERNAL_HANDLE")
src/Vulkan/Core10/Enums/SampleCountFlagBits.hs view
@@ -34,7 +34,7 @@ -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
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.2-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>+-- <https://www.khronos.org/registry/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/SamplerMipmapMode.hs view
@@ -19,7 +19,7 @@ -- = Description -- -- These modes are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>. -- -- = See Also --
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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-layouts layout transition>+-- <https://www.khronos.org/registry/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/StencilOp.hs view
@@ -31,6 +31,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pipeline.StencilOpState',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' newtype StencilOp = StencilOp Int32 deriving newtype (Eq, Ord, Storable, Zero)
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -53,10 +53,6 @@ , 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_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR- , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR- , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR- , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR , 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@@ -64,8 +60,6 @@ , 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_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_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@@ -91,7 +85,6 @@ , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA- , STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT@@ -105,19 +98,7 @@ , 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_IMAGE_RESOLVE_2_KHR- , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR- , STRUCTURE_TYPE_IMAGE_BLIT_2_KHR- , STRUCTURE_TYPE_IMAGE_COPY_2_KHR- , STRUCTURE_TYPE_BUFFER_COPY_2_KHR- , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR- , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR- , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR- , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR- , STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR- , STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR- , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT , 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@@ -128,24 +109,11 @@ , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV- , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV- , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR- , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR- , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR- , STRUCTURE_TYPE_SUBMIT_INFO_2_KHR- , STRUCTURE_TYPE_DEPENDENCY_INFO_KHR- , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR- , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR- , STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV- , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT- , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT- , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR , STRUCTURE_TYPE_PRESENT_ID_KHR , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR@@ -159,10 +127,7 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT , STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM- , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR- , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV@@ -173,7 +138,6 @@ , STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV- , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR@@ -204,7 +168,6 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV@@ -220,14 +183,10 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR , STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR- , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT- , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT , STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT , STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR , STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD@@ -248,12 +207,14 @@ , 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- , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD+ , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR+ , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD@@ -261,7 +222,6 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT , STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT , STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT- , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT , STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT , STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV@@ -324,10 +284,6 @@ , STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT , STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT , STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT- , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT- , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID@@ -400,7 +356,6 @@ , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR@@ -420,11 +375,6 @@ , STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD , STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT , STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR- , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR- , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR- , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR- , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR- , STRUCTURE_TYPE_RENDERING_INFO_KHR , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX@@ -452,6 +402,58 @@ , STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR , STRUCTURE_TYPE_PRESENT_INFO_KHR , STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR+ , STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS+ , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES+ , STRUCTURE_TYPE_FORMAT_PROPERTIES_3+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES+ , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES+ , STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO+ , STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO+ , STRUCTURE_TYPE_RENDERING_INFO+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES+ , STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO+ , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES+ , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES+ , STRUCTURE_TYPE_IMAGE_RESOLVE_2+ , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2+ , STRUCTURE_TYPE_IMAGE_BLIT_2+ , STRUCTURE_TYPE_IMAGE_COPY_2+ , STRUCTURE_TYPE_BUFFER_COPY_2+ , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2+ , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2+ , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2+ , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2+ , STRUCTURE_TYPE_COPY_IMAGE_INFO_2+ , STRUCTURE_TYPE_COPY_BUFFER_INFO_2+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES+ , STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO+ , STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO+ , STRUCTURE_TYPE_SUBMIT_INFO_2+ , STRUCTURE_TYPE_DEPENDENCY_INFO+ , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2+ , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2+ , STRUCTURE_TYPE_MEMORY_BARRIER_2+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES+ , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO+ , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES+ , STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES , STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO , STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO , STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO@@ -621,20 +623,20 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionConstraintsInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferConstraintsInfoFUCHSIA',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',@@ -646,21 +648,21 @@ -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',--- 'Vulkan.Extensions.VK_KHR_synchronization2.CommandBufferSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo', -- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo', -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.CooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureToMemoryInfoKHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2', -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM', -- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyMemoryToAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX', -- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',@@ -678,9 +680,9 @@ -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',--- 'Vulkan.Extensions.VK_KHR_synchronization2.DependencyInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetLayoutBindingFlagsCreateInfo', -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',@@ -688,7 +690,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountLayoutSupport', -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',--- 'Vulkan.Extensions.VK_KHR_maintenance4.DeviceBufferMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceBufferMemoryRequirements', -- 'Vulkan.Core10.Device.DeviceCreateInfo', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceDeviceMemoryReportCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.DeviceDiagnosticsConfigCreateInfoNV',@@ -701,13 +703,13 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupSubmitInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupSwapchainCreateInfoKHR',--- 'Vulkan.Extensions.VK_KHR_maintenance4.DeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.DeviceMemoryOpaqueCaptureAddressInfo', -- 'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.DevicePrivateDataCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo', -- 'Vulkan.Core10.Device.DeviceQueueCreateInfo',--- 'Vulkan.Extensions.VK_EXT_global_priority.DeviceQueueGlobalPriorityCreateInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.DeviceQueueGlobalPriorityCreateInfoKHR', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.DeviceQueueInfo2', -- 'Vulkan.Extensions.VK_EXT_directfb_surface.DirectFBSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.DisplayEventInfoEXT',@@ -745,7 +747,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.FenceGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2',--- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2.FormatProperties3', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo',@@ -762,9 +764,9 @@ -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT', -- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT',@@ -773,11 +775,11 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2', -- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.ImagePipeSurfaceCreateInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR',+-- '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_KHR_swapchain.ImageSwapchainCreateInfoKHR',@@ -808,7 +810,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo', -- 'Vulkan.Core10.Memory.MemoryAllocateInfo', -- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryFdPropertiesKHR',@@ -869,7 +871,7 @@ -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',@@ -894,27 +896,27 @@ -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- '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_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',--- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',+-- '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', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures', -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', -- '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',@@ -930,7 +932,7 @@ -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',@@ -938,7 +940,7 @@ -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',@@ -966,35 +968,35 @@ -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',--- 'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- '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.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductPropertiesKHR',+-- '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_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures', -- 'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_synchronization2.PhysicalDeviceSynchronization2FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties',--- 'Vulkan.Extensions.VK_EXT_tooling_info.PhysicalDeviceToolPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.PhysicalDeviceToolProperties', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',@@ -1007,11 +1009,13 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Features',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',--- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures', -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',@@ -1020,7 +1024,7 @@ -- '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',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo',@@ -1042,11 +1046,11 @@ -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo', -- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo', -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT',@@ -1063,14 +1067,14 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',--- 'Vulkan.Extensions.VK_EXT_private_data.PrivateDataSlotCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PrivateDataSlotCreateInfo', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo', -- 'Vulkan.Core10.Query.QueryPoolCreateInfo', -- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR', -- 'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL', -- 'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT',+-- '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>, -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',@@ -1087,11 +1091,11 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo',@@ -1106,7 +1110,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo', -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo',@@ -1116,7 +1120,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2', -- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.StreamDescriptorSurfaceCreateInfoGGP', -- 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassBeginInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',@@ -1207,7 +1211,7 @@ -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlock', -- 'Vulkan.Extensions.VK_KHR_xcb_surface.XcbSurfaceCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_xlib_surface.XlibSurfaceCreateInfoKHR' newtype StructureType = StructureType Int32@@ -1319,14 +1323,6 @@ 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_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR"-pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = StructureType 1000413003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR"-pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = StructureType 1000413002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = StructureType 1000413001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = StructureType 1000413000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = StructureType 1000412000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"@@ -1341,10 +1337,6 @@ 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_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = StructureType 1000388001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = StructureType 1000388000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = StructureType 1000381001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"@@ -1395,8 +1387,6 @@ pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = StructureType 1000364001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR"-pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = StructureType 1000360000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = StructureType 1000356000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"@@ -1423,32 +1413,8 @@ 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_IMAGE_RESOLVE_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = StructureType 1000337010--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR"-pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = StructureType 1000337009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = StructureType 1000337008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_COPY_2_KHR = StructureType 1000337007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR"-pattern STRUCTURE_TYPE_BUFFER_COPY_2_KHR = StructureType 1000337006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = StructureType 1000337005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = StructureType 1000337004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = StructureType 1000337003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = StructureType 1000337002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = StructureType 1000337001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR"-pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = StructureType 1000337000 -- 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_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = StructureType 1000335000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM" pattern STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = StructureType 1000333000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"@@ -1469,42 +1435,16 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = StructureType 1000326001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = StructureType 1000326000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = StructureType 1000325000 -- 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_CHECKPOINT_DATA_2_NV" 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_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = StructureType 1000314007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = StructureType 1000314006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR"-pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = StructureType 1000314005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR"-pattern STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = StructureType 1000314004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR"-pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = StructureType 1000314003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR"-pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = StructureType 1000314002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR"-pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = StructureType 1000314001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR"-pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = StructureType 1000314000 -- 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" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = StructureType 1000300000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = StructureType 1000297000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = StructureType 1000295002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = StructureType 1000295001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = StructureType 1000295000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = StructureType 1000294001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"@@ -1531,14 +1471,8 @@ pattern STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = StructureType 1000282001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM" pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = StructureType 1000282000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = StructureType 1000281001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = StructureType 1000281000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = StructureType 1000280001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = StructureType 1000280000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV" pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = StructureType 1000278001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"@@ -1559,8 +1493,6 @@ pattern STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = StructureType 1000277001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = StructureType 1000277000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = StructureType 1000276000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"@@ -1621,8 +1553,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT" pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = StructureType 1000247000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = StructureType 1000245000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = StructureType 1000244002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"@@ -1653,12 +1583,6 @@ pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = StructureType 1000226001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" pattern STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000226000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = StructureType 1000225002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = StructureType 1000225001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = StructureType 1000225000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = StructureType 1000218002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"@@ -1667,8 +1591,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = StructureType 1000218000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = StructureType 1000217000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = StructureType 1000215000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = StructureType 1000214000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"@@ -1709,8 +1631,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = StructureType 1000202000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = StructureType 1000201000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = StructureType 1000192000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP" pattern STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = StructureType 1000191000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"@@ -1721,6 +1641,12 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = StructureType 1000190000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD" pattern STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = StructureType 1000189000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = StructureType 1000388001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = StructureType 1000388000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = StructureType 1000174000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = StructureType 1000185000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"@@ -1735,8 +1661,6 @@ pattern STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = StructureType 1000178001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT" pattern STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = StructureType 1000178000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = StructureType 1000174000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT" pattern STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = StructureType 1000170001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"@@ -1861,14 +1785,6 @@ pattern STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = StructureType 1000143001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" pattern STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = StructureType 1000143000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = StructureType 1000138003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT"-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = StructureType 1000138002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = StructureType 1000138001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = StructureType 1000138000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID" pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = StructureType 1000129006 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"@@ -2013,8 +1929,6 @@ 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" pattern STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = StructureType 1000067000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = StructureType 1000066000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN" pattern STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = StructureType 1000062000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"@@ -2053,16 +1967,6 @@ pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = StructureType 1000044007 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" pattern STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000044006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = StructureType 1000044004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = StructureType 1000044003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = StructureType 1000044002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR"-pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = StructureType 1000044001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INFO_KHR"-pattern STRUCTURE_TYPE_RENDERING_INFO_KHR = StructureType 1000044000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD" pattern STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = StructureType 1000041000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"@@ -2117,6 +2021,110 @@ pattern STRUCTURE_TYPE_PRESENT_INFO_KHR = StructureType 1000001001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR" pattern STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000001000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"+pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = StructureType 1000413003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"+pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = StructureType 1000413002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = StructureType 1000413001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = StructureType 1000413000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"+pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = StructureType 1000360000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = StructureType 1000281001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = StructureType 1000280001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = StructureType 1000280000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = StructureType 1000044004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = StructureType 1000044003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = StructureType 1000044002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"+pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = StructureType 1000044001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_INFO"+pattern STRUCTURE_TYPE_RENDERING_INFO = StructureType 1000044000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = StructureType 1000066000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = StructureType 1000138003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = StructureType 1000138002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = StructureType 1000138001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = StructureType 1000138000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = StructureType 1000225002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = StructureType 1000225001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = StructureType 1000225000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"+pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2 = StructureType 1000337010+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"+pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = StructureType 1000337009+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_BLIT_2"+pattern STRUCTURE_TYPE_IMAGE_BLIT_2 = StructureType 1000337008+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COPY_2"+pattern STRUCTURE_TYPE_IMAGE_COPY_2 = StructureType 1000337007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COPY_2"+pattern STRUCTURE_TYPE_BUFFER_COPY_2 = StructureType 1000337006+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = StructureType 1000337005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = StructureType 1000337004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = StructureType 1000337003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = StructureType 1000337002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"+pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = StructureType 1000337001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"+pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = StructureType 1000337000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = StructureType 1000335000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = StructureType 1000325000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = StructureType 1000314007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = StructureType 1000314006+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"+pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = StructureType 1000314005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO_2"+pattern STRUCTURE_TYPE_SUBMIT_INFO_2 = StructureType 1000314004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPENDENCY_INFO"+pattern STRUCTURE_TYPE_DEPENDENCY_INFO = StructureType 1000314003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"+pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = StructureType 1000314002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"+pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = StructureType 1000314001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"+pattern STRUCTURE_TYPE_MEMORY_BARRIER_2 = StructureType 1000314000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = StructureType 1000297000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"+pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = StructureType 1000295002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"+pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = StructureType 1000295001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = StructureType 1000295000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = StructureType 1000276000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = StructureType 1000245000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = StructureType 1000215000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = StructureType 1000192000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = StructureType 54+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = StructureType 53 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO" pattern STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = StructureType 1000257004 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"@@ -2400,10 +2408,6 @@ 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_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,- STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,- STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,- STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR, 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,@@ -2411,8 +2415,6 @@ 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_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_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,@@ -2438,7 +2440,6 @@ STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA, STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA, STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,- STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,@@ -2452,19 +2453,7 @@ 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_IMAGE_RESOLVE_2_KHR,- STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,- STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,- STRUCTURE_TYPE_IMAGE_COPY_2_KHR,- STRUCTURE_TYPE_BUFFER_COPY_2_KHR,- STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,- STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,- STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,- STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,- STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,- STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,- STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, 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,@@ -2475,24 +2464,11 @@ STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,- STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV, STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,- STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,- STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,- STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,- STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,- STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,- STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,- STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,- STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,- STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,- STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,- STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, STRUCTURE_TYPE_PRESENT_ID_KHR, STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,@@ -2506,10 +2482,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM, STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,- STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR, STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,@@ -2520,7 +2493,6 @@ STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV, STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR, STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,@@ -2551,7 +2523,6 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT, STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,@@ -2567,14 +2538,10 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR, STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,- STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,- STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR, STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA, STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD, STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,@@ -2595,12 +2562,14 @@ 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,- STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT, STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP, STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,+ STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,+ STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT, STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,@@ -2608,7 +2577,6 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT, STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,- STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT, STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT, STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,@@ -2671,10 +2639,6 @@ STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT, STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT, STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,- STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,- STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID, STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID, STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,@@ -2747,7 +2711,6 @@ STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT, STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN, STRUCTURE_TYPE_VALIDATION_FLAGS_EXT, STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,@@ -2767,11 +2730,6 @@ STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD, STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT, STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,- STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,- STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,- STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,- STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,- STRUCTURE_TYPE_RENDERING_INFO_KHR, STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD, STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX, STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,@@ -2799,6 +2757,58 @@ STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR, STRUCTURE_TYPE_PRESENT_INFO_KHR, STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,+ STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,+ STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,+ STRUCTURE_TYPE_FORMAT_PROPERTIES_3,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,+ STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,+ STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,+ STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,+ STRUCTURE_TYPE_RENDERING_INFO,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,+ STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,+ STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,+ STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,+ STRUCTURE_TYPE_IMAGE_RESOLVE_2,+ STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,+ STRUCTURE_TYPE_IMAGE_BLIT_2,+ STRUCTURE_TYPE_IMAGE_COPY_2,+ STRUCTURE_TYPE_BUFFER_COPY_2,+ STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,+ STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,+ STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,+ STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,+ STRUCTURE_TYPE_COPY_IMAGE_INFO_2,+ STRUCTURE_TYPE_COPY_BUFFER_INFO_2,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,+ STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,+ STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,+ STRUCTURE_TYPE_SUBMIT_INFO_2,+ STRUCTURE_TYPE_DEPENDENCY_INFO,+ STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,+ STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,+ STRUCTURE_TYPE_MEMORY_BARRIER_2,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,+ STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,+ STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,+ STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES, STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,@@ -2984,10 +2994,6 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM" )- , (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR , "DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR")- , (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR , "DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR, "PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR , "PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT , "PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT" )@@ -3001,10 +3007,6 @@ , (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_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT , "QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT")- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT- , "PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"- ) , (STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT , "PIPELINE_COLOR_WRITE_CREATE_INFO_EXT") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, "PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT") , (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX , "SCREEN_SURFACE_CREATE_INFO_QNX")@@ -3036,7 +3038,6 @@ , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA") , (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA") , (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")- , (STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR , "FORMAT_PROPERTIES_3_KHR") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT , "PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT" )@@ -3060,22 +3061,10 @@ , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM" ) , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")- , (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR , "IMAGE_RESOLVE_2_KHR")- , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR , "BUFFER_IMAGE_COPY_2_KHR")- , (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR , "IMAGE_BLIT_2_KHR")- , (STRUCTURE_TYPE_IMAGE_COPY_2_KHR , "IMAGE_COPY_2_KHR")- , (STRUCTURE_TYPE_BUFFER_COPY_2_KHR , "BUFFER_COPY_2_KHR")- , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR , "RESOLVE_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR , "BLIT_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR , "COPY_IMAGE_TO_BUFFER_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR , "COPY_BUFFER_TO_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR , "COPY_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR , "COPY_BUFFER_INFO_2_KHR") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR" )- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, "PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT")- , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM , "COPY_COMMAND_TRANSFORM_INFO_QCOM")+ , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM, "COPY_COMMAND_TRANSFORM_INFO_QCOM") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT" )@@ -3101,33 +3090,16 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV" )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR- , "PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"- ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR , "PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR" )- , (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_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR, "PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR")- , (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR , "COMMAND_BUFFER_SUBMIT_INFO_KHR")- , (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR , "SEMAPHORE_SUBMIT_INFO_KHR")- , (STRUCTURE_TYPE_SUBMIT_INFO_2_KHR , "SUBMIT_INFO_2_KHR")- , (STRUCTURE_TYPE_DEPENDENCY_INFO_KHR , "DEPENDENCY_INFO_KHR")- , (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR , "IMAGE_MEMORY_BARRIER_2_KHR")- , (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR , "BUFFER_MEMORY_BARRIER_2_KHR")- , (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR , "MEMORY_BARRIER_2_KHR")- , (STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV , "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")+ , (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_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_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT- , "PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"- )- , (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT , "PRIVATE_DATA_SLOT_CREATE_INFO_EXT")- , (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT , "DEVICE_PRIVATE_DATA_CREATE_INFO_EXT")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, "PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")- , (STRUCTURE_TYPE_PRESENT_ID_KHR , "PRESENT_ID_KHR")- , (STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR , "PIPELINE_LIBRARY_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")+ , (STRUCTURE_TYPE_PRESENT_ID_KHR , "PRESENT_ID_KHR")+ , (STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR , "PIPELINE_LIBRARY_CREATE_INFO_KHR") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT" )@@ -3146,18 +3118,9 @@ , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM , "COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM" )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT- , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"- ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR- , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR"- )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR- , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR"- ) , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV" )@@ -3176,9 +3139,6 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV" )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT- , "PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"- ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT" )@@ -3231,7 +3191,6 @@ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR") , (STRUCTURE_TYPE_VALIDATION_FEATURES_EXT , "VALIDATION_FEATURES_EXT")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT , "PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT") , (STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT , "BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT , "PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"@@ -3259,15 +3218,6 @@ , "PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR" ) , (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT- , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"- )- , ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT- , "PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"- )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT- , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"- ) , ( STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT , "RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT" )@@ -3277,10 +3227,7 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT" )- , (STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT, "METAL_SURFACE_CREATE_INFO_EXT")- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR- , "PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"- )+ , (STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT , "METAL_SURFACE_CREATE_INFO_EXT") , (STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA , "IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA") , (STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD , "SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD") , (STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD , "DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD")@@ -3311,8 +3258,7 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV , "PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV" )- , (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT, "PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT")- , (STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP , "PRESENT_FRAME_TOKEN_GGP")+ , (STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP, "PRESENT_FRAME_TOKEN_GGP") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT" )@@ -3323,6 +3269,11 @@ , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT" ) , (STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, "DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD")+ , (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR , "QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR+ , "PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"+ )+ , (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR, "DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD") , (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT , "CALIBRATED_TIMESTAMP_INFO_EXT") , (STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD , "PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD")@@ -3330,9 +3281,8 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT" )- , (STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT , "MEMORY_HOST_POINTER_PROPERTIES_EXT")- , (STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT , "IMPORT_MEMORY_HOST_POINTER_INFO_EXT")- , (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT, "DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT")+ , (STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT , "MEMORY_HOST_POINTER_PROPERTIES_EXT")+ , (STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT, "IMPORT_MEMORY_HOST_POINTER_INFO_EXT") , ( STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT , "FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT" )@@ -3439,16 +3389,6 @@ , (STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT, "PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT") , (STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT , "RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT") , (STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT , "SAMPLE_LOCATIONS_INFO_EXT")- , ( STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT- , "DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"- )- , (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT, "WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT")- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT- , "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"- )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT- , "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"- ) , ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID" )@@ -3545,22 +3485,19 @@ , (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_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT- , "PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_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_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" )@@ -3573,17 +3510,12 @@ , ( STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" )- , (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR , "COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR, "PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR")- , (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR , "PIPELINE_RENDERING_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR , "RENDERING_ATTACHMENT_INFO_KHR")- , (STRUCTURE_TYPE_RENDERING_INFO_KHR , "RENDERING_INFO_KHR")- , (STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD , "TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD")- , (STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX , "IMAGE_VIEW_ADDRESS_PROPERTIES_NVX")- , (STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX , "IMAGE_VIEW_HANDLE_INFO_NVX")- , (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX , "CU_LAUNCH_INFO_NVX")- , (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX , "CU_FUNCTION_CREATE_INFO_NVX")- , (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX , "CU_MODULE_CREATE_INFO_NVX")+ , (STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD, "TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD")+ , (STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX , "IMAGE_VIEW_ADDRESS_PROPERTIES_NVX")+ , (STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX , "IMAGE_VIEW_HANDLE_INFO_NVX")+ , (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX , "CU_LAUNCH_INFO_NVX")+ , (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX , "CU_FUNCTION_CREATE_INFO_NVX")+ , (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX , "CU_MODULE_CREATE_INFO_NVX") , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT , "PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT" )@@ -3600,17 +3532,91 @@ , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD , "PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD" )- , (STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT , "DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT")- , (STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR , "WIN32_SURFACE_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR , "ANDROID_SURFACE_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR , "WAYLAND_SURFACE_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR , "XCB_SURFACE_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR , "XLIB_SURFACE_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR , "DISPLAY_PRESENT_INFO_KHR")- , (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR , "DISPLAY_SURFACE_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR , "DISPLAY_MODE_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_PRESENT_INFO_KHR , "PRESENT_INFO_KHR")- , (STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR , "SWAPCHAIN_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT , "DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT")+ , (STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR , "WIN32_SURFACE_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR , "ANDROID_SURFACE_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR , "WAYLAND_SURFACE_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR , "XCB_SURFACE_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR , "XLIB_SURFACE_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR , "DISPLAY_PRESENT_INFO_KHR")+ , (STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR , "DISPLAY_SURFACE_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR , "DISPLAY_MODE_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_PRESENT_INFO_KHR , "PRESENT_INFO_KHR")+ , (STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR , "SWAPCHAIN_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS , "DEVICE_IMAGE_MEMORY_REQUIREMENTS")+ , (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS , "DEVICE_BUFFER_MEMORY_REQUIREMENTS")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, "PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES , "PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES")+ , (STRUCTURE_TYPE_FORMAT_PROPERTIES_3 , "FORMAT_PROPERTIES_3")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES+ , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES+ , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES+ , "PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"+ )+ , (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO , "COMMAND_BUFFER_INHERITANCE_RENDERING_INFO")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, "PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES")+ , (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO , "PIPELINE_RENDERING_CREATE_INFO")+ , (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO , "RENDERING_ATTACHMENT_INFO")+ , (STRUCTURE_TYPE_RENDERING_INFO , "RENDERING_INFO")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES+ , "PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"+ )+ , ( STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO+ , "DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"+ )+ , (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK , "WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES , "PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES")+ , ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO+ , "PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES+ , "PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"+ )+ , (STRUCTURE_TYPE_IMAGE_RESOLVE_2 , "IMAGE_RESOLVE_2")+ , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 , "BUFFER_IMAGE_COPY_2")+ , (STRUCTURE_TYPE_IMAGE_BLIT_2 , "IMAGE_BLIT_2")+ , (STRUCTURE_TYPE_IMAGE_COPY_2 , "IMAGE_COPY_2")+ , (STRUCTURE_TYPE_BUFFER_COPY_2 , "BUFFER_COPY_2")+ , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 , "RESOLVE_IMAGE_INFO_2")+ , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 , "BLIT_IMAGE_INFO_2")+ , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 , "COPY_IMAGE_TO_BUFFER_INFO_2")+ , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 , "COPY_BUFFER_TO_IMAGE_INFO_2")+ , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2 , "COPY_IMAGE_INFO_2")+ , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2 , "COPY_BUFFER_INFO_2")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, "PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES+ , "PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"+ )+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, "PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES")+ , (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO , "COMMAND_BUFFER_SUBMIT_INFO")+ , (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO , "SEMAPHORE_SUBMIT_INFO")+ , (STRUCTURE_TYPE_SUBMIT_INFO_2 , "SUBMIT_INFO_2")+ , (STRUCTURE_TYPE_DEPENDENCY_INFO , "DEPENDENCY_INFO")+ , (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 , "IMAGE_MEMORY_BARRIER_2")+ , (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 , "BUFFER_MEMORY_BARRIER_2")+ , (STRUCTURE_TYPE_MEMORY_BARRIER_2 , "MEMORY_BARRIER_2")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES+ , "PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"+ )+ , (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO , "PRIVATE_DATA_SLOT_CREATE_INFO")+ , (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO , "DEVICE_PRIVATE_DATA_CREATE_INFO")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, "PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES+ , "PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"+ )+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES, "PHYSICAL_DEVICE_TOOL_PROPERTIES")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES+ , "PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"+ )+ , (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO , "PIPELINE_CREATION_FEEDBACK_CREATE_INFO")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES , "PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES , "PHYSICAL_DEVICE_VULKAN_1_3_FEATURES") , (STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO , "DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO") , (STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO , "MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO") , (STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO , "BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO")
src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs view
@@ -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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/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.
src/Vulkan/Core10/Event.hs view
@@ -87,7 +87,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.2-extensions/html/vkspec.html#synchronization-events events>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events events>, -- and 'createEvent' /must/ not be used -- -- == Valid Usage (Implicit)@@ -131,7 +131,7 @@ -- information about how the event is to be created. EventCreateInfo -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Event)@@ -219,7 +219,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -264,7 +264,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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- <https://www.khronos.org/registry/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. --@@ -304,7 +304,7 @@ -- -- #VUID-vkGetEventStatus-event-03940# @event@ /must/ not have been created -- with- -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+ -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT' -- -- #VUID-vkGetEventStatus-event-parameter# @event@ /must/ be a valid -- 'Vulkan.Core10.Handles.Event' handle@@ -344,7 +344,7 @@ -- -- - #VUID-vkSetEvent-event-03941# @event@ /must/ not have been created -- with--- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+-- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT' -- -- == Valid Usage (Implicit) --@@ -420,12 +420,12 @@ -- -- - #VUID-vkResetEvent-event-03822# There /must/ be an execution -- dependency between 'resetEvent' and the execution of any--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR' that--- includes @event@ in its @pEvents@ parameter+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'+-- that includes @event@ in its @pEvents@ parameter -- -- - #VUID-vkResetEvent-event-03823# @event@ /must/ not have been created -- with--- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+-- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -184,6 +184,12 @@ -- be enabled together due to behavioral differences, or any extension that -- 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@.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter#
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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-fences-importing payload imported>+-- <https://www.khronos.org/registry/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.@@ -349,18 +349,18 @@ -- | '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.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. |+-- | | <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>),+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-host-allocation-scope[here^].+-- > described link:https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fundamentals-errorcodes Return Codes>.+-- <https://www.khronos.org/registry/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
@@ -117,13 +117,13 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageBlit',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind' data Offset3D = Offset3D { -- | @x@ is the x offset.@@ -260,13 +260,13 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind'@@ -335,10 +335,11 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV', -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getPhysicalDevicePresentRectanglesKHR' data Rect2D = Rect2D@@ -447,7 +448,7 @@ -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',@@ -464,21 +465,21 @@ -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- '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_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',+-- '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', -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',@@ -488,13 +489,13 @@ -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PhysicalDevicePrivateDataFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties', -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',@@ -515,27 +516,27 @@ -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',--- 'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- '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.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductPropertiesKHR',+-- '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_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.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceSparseProperties', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',--- 'Vulkan.Extensions.VK_KHR_synchronization2.PhysicalDeviceSynchronization2FeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',@@ -547,11 +548,13 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Features',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',--- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',@@ -588,12 +591,19 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',@@ -742,12 +752,12 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',@@ -765,12 +775,13 @@ -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',@@ -786,6 +797,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -91,12 +91,12 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',@@ -114,12 +114,13 @@ -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',--- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',@@ -135,6 +136,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
src/Vulkan/Core10/Handles.hs view
@@ -190,6 +190,7 @@ -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.getPhysicalDeviceToolProperties', -- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>,@@ -263,6 +264,7 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.createIndirectCommandsLayoutNV', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.createQueryPool', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',@@ -305,6 +307,7 @@ -- 'Vulkan.Core10.Pipeline.destroyPipeline', -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache', -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot', -- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT', -- 'Vulkan.Core10.Query.destroyQueryPool', -- 'Vulkan.Core10.Pass.destroyRenderPass',@@ -343,13 +346,16 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport', -- 'Vulkan.Extensions.VK_KHR_maintenance3.getDescriptorSetLayoutSupportKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getDeviceAccelerationStructureCompatibilityKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceBufferMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.getDeviceGroupPeerMemoryFeatures', -- 'Vulkan.Extensions.VK_KHR_device_group.getDeviceGroupPeerMemoryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.getDeviceGroupPresentCapabilitiesKHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getDeviceGroupSurfacePresentModes2EXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getDeviceGroupSurfacePresentModesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR', -- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddress',@@ -389,6 +395,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.Core13.Promoted_From_VK_EXT_private_data.getPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT', -- 'Vulkan.Core10.Query.getQueryPoolResults', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingCaptureReplayShaderGroupHandlesKHR',@@ -436,6 +443,7 @@ -- 'Vulkan.Core10.Event.setEvent', -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.signalSemaphoreKHR',@@ -482,6 +490,7 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', -- 'Vulkan.Extensions.VK_INTEL_performance_query.queueSetPerformanceConfigurationINTEL', -- 'Vulkan.Core10.Queue.queueSubmit',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.queueSubmit2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR', -- 'Vulkan.Core10.Queue.queueWaitIdle' data Queue = Queue@@ -503,7 +512,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_KHR_synchronization2.CommandBufferSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo', -- 'Vulkan.Core10.Queue.SubmitInfo', -- 'Vulkan.Core10.CommandBuffer.allocateCommandBuffers', -- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer',@@ -514,6 +523,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR>,@@ -525,8 +535,10 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR',@@ -539,12 +551,16 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdCopyAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureToMemoryKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBuffer2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBuffer2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyMemoryToAccelerationStructureKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',@@ -581,6 +597,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdEndRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdEndRenderPass2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdEndRendering', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdEndRenderingKHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR>,@@ -592,36 +609,47 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdNextSubpass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdNextSubpass2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdPipelineBarrier',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdResolveImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdSetDeviceMask', -- 'Vulkan.Extensions.VK_KHR_device_group.cmdSetDeviceMaskKHR', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.cmdSetFragmentShadingRateEnumNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth',@@ -630,22 +658,29 @@ -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceMarkerINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceOverrideINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceStreamMarkerINTEL',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask', -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV', -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV',+-- '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_pipeline.cmdTraceRaysIndirectKHR',@@ -653,12 +688,14 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD', -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR', -- 'Vulkan.Core10.CommandBuffer.endCommandBuffer', -- 'Vulkan.Core10.CommandBuffer.freeCommandBuffers',@@ -743,13 +780,13 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.BufferMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',@@ -765,6 +802,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',@@ -824,18 +862,18 @@ -- -- <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_bind_memory2.BindImageMemoryInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',+-- '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.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2', -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',--- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBindInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageOpaqueMemoryBindInfo', -- 'Vulkan.Core10.MemoryManagement.bindImageMemory',@@ -870,7 +908,7 @@ -- 'Vulkan.Core10.Pass.FramebufferCreateInfo', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- '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>,@@ -1061,6 +1099,7 @@ -- 'Vulkan.Core10.Fence.getFenceStatus', -- 'Vulkan.Core10.SparseResourceMemoryManagement.queueBindSparse', -- 'Vulkan.Core10.Queue.queueSubmit',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.queueSubmit2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT',@@ -1089,7 +1128,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo', -- 'Vulkan.Core10.Queue.SubmitInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR',@@ -1112,10 +1151,13 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', -- 'Vulkan.Core10.Event.createEvent', 'Vulkan.Core10.Event.destroyEvent', -- 'Vulkan.Core10.Event.getEventStatus', 'Vulkan.Core10.Event.resetEvent',@@ -1143,6 +1185,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR', -- 'Vulkan.Core10.Query.createQueryPool', -- 'Vulkan.Core10.Query.destroyQueryPool',
src/Vulkan/Core10/Image.hs view
@@ -123,7 +123,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.2-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen >+-- <https://www.khronos.org/registry/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 --@@ -168,7 +168,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Image)@@ -261,7 +261,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -290,14 +290,14 @@ -- = Description -- -- If the image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-device-hostaccess host access>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- <https://www.khronos.org/registry/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 +305,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.2-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#glossary-drm-format-modifier DRM format modifier>+-- <https://www.khronos.org/registry/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 +359,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-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 +368,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-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',@@ -470,11 +470,11 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' -- -- Images created with one of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+-- <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>, -- 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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://www.khronos.org/registry/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: --@@ -511,7 +511,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.2-extensions/html/vkspec.html#resources-image-views Image Views>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views> -- for more detail). -- -- == Image Creation Limits@@ -528,7 +528,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.2-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifiers>+-- <https://www.khronos.org/registry/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 +548,7 @@ -- -- - Let @VkBool32 imageCreateMaybeLinear@ indicate if the resultant -- image may be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>. -- -- - If @tiling@ is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', then@@ -756,7 +756,7 @@ -- -- - #VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251# Each of the -- following values (as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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 +819,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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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 +849,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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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 +866,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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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@@ -902,14 +902,14 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@ -- -- - #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset> -- 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.2-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset> -- 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@@ -925,22 +925,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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images> -- 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.2-extensions/html/vkspec.html#features-sparseBinding sparse bindings>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparse bindings> -- 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.2-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT' --@@ -955,21 +955,21 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00971# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyImage2D sparse residency for 2D images>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage2D sparse residency for 2D images> -- 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.2-extensions/html/vkspec.html#features-sparseResidencyImage3D sparse residency for 3D images>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage3D sparse residency for 3D images> -- 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.2-extensions/html/vkspec.html#features-sparseResidency2Samples sparse residency for images with 2 samples>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency2Samples sparse residency for images with 2 samples> -- 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 +977,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00974# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidency4Samples sparse residency for images with 4 samples>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency4Samples sparse residency for images with 4 samples> -- 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 +985,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00975# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidency8Samples sparse residency for images with 8 samples>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency8Samples sparse residency for images with 8 samples> -- 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 +993,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00976# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidency16Samples sparse residency for images with 16 samples>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency16Samples sparse residency for images with 16 samples> -- feature is not enabled, @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_16_BIT',@@ -1072,13 +1072,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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#compressed_image_formats compressed image format>+-- <https://www.khronos.org/registry/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 +1098,30 @@ -- -- - #VUID-VkImageCreateInfo-format-06410# If the image @format@ is one -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+-- <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>, -- @mipLevels@ /must/ be 1 -- -- - #VUID-VkImageCreateInfo-format-06411# If the image @format@ is one -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+-- <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>, -- @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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+-- <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>, -- @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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+-- <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.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://www.khronos.org/registry/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 +1255,7 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@ -- -- - #VUID-VkImageCreateInfo-format-02538# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images> -- 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'@@ -1344,7 +1344,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.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility compatibility table> -- -- - #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'@@ -1423,7 +1423,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_KHR_maintenance4.DeviceImageMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', -- 'Vulkan.Core10.FundamentalTypes.Extent3D', -- 'Vulkan.Core10.Enums.Format.Format', -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags',@@ -1460,7 +1460,7 @@ , -- | @samples@ is a -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value -- specifying the number of- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling samples per texel>.+ -- <https://www.khronos.org/registry/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 +1480,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.2-extensions/html/vkspec.html#resources-image-layouts Image Layouts>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts Image Layouts>. initialLayout :: ImageLayout } deriving (Typeable)@@ -1590,7 +1590,7 @@ -- = Description -- -- If the image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://www.khronos.org/registry/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 +1636,7 @@ -- interleaved memory allocation. -- -- If the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/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 +1658,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.2-extensions/html/vkspec.html#glossary-drm-format-modifier modifier>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>, -- then @rowPitch@, @arrayPitch@, and @depthPitch@ have an -- implementation-dependent meaning. --
src/Vulkan/Core10/ImageView.hs view
@@ -140,7 +140,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (ImageView)@@ -229,7 +229,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -364,7 +364,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.+-- <https://www.khronos.org/registry/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 +394,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>,+-- <https://www.khronos.org/registry/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@@ -447,7 +447,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.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'ImageViewCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage'@@ -555,13 +555,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes>+-- <https://www.khronos.org/registry/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 +575,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.2-extensions/html/vkspec.html#fundamentals-fixedfpconv Conversion from Normalized Fixed-Point to Floating-Point>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#copies-images-format-size-compatibility copying data between images>.+-- <https://www.khronos.org/registry/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 +593,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y’CBCR conversion>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- <https://www.khronos.org/registry/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 +608,37 @@ -- when sampling the image. -- -- If the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. -- -- 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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-compatible-planes compatible>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-compatible-planes plane compatibility>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-chroma-reconstruction Chroma Reconstruction>.+-- <https://www.khronos.org/registry/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,7 +681,7 @@ -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' -- -- - #VUID-VkImageViewCreateInfo-viewType-01004# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-imageCubeArray image cube map arrays>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCubeArray image cube map arrays> -- feature is not enabled, @viewType@ /must/ not be -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' --@@ -718,67 +718,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.2-extensions/html/vkspec.html#valid-imageview-imageusage valid image usage>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',+-- '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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- must contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',+-- '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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/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@@ -834,7 +834,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.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing> -- -- - #VUID-VkImageViewCreateInfo-subresourceRange-02725# If -- @subresourceRange.layerCount@ is not@@ -850,7 +850,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.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>+-- <https://www.khronos.org/registry/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@@ -858,10 +858,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes> -- -- - #VUID-VkImageViewCreateInfo-image-01583# If @image@ was created with -- the@@ -895,7 +895,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/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',@@ -904,20 +904,20 @@ -- 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.2-extensions/html/vkspec.html#formats-compatible-planes>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/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 @format@ is -- one of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y’CBCR conversion>,+-- <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>, -- then the @pNext@ chain /must/ include a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' -- structure with a conversion value other than@@ -937,7 +937,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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- - #VUID-VkImageViewCreateInfo-image-01020# If @image@ is non-sparse -- then it /must/ be bound completely and contiguously to a single@@ -945,23 +945,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.2-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://www.khronos.org/registry/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@@ -971,36 +971,36 @@ -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' -- -- - #VUID-VkImageViewCreateInfo-image-02087# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage feature>+-- <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 -- '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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+-- <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 -- '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.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+-- <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 -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-layeredShadingRateAttachments layeredShadingRateAttachments>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-fragmentDensityMapDynamic dynamic fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDynamic dynamic fragment density map> -- 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.2-extensions/html/vkspec.html#features-fragmentDensityMapDeferred deferred fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDeferred deferred fragment density map> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT' --@@ -1015,10 +1015,10 @@ -- 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.2-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-invocationMask invocationMask feature>+-- <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 -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI', -- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'@@ -1121,7 +1121,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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://www.khronos.org/registry/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
src/Vulkan/Core10/LayerDiscovery.hs view
@@ -244,7 +244,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.2-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+ -- <https://www.khronos.org/registry/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
@@ -140,7 +140,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.2-extensions/html/vkspec.html#limits-maxMemoryAllocationCount maxMemoryAllocationCount>+-- <https://www.khronos.org/registry/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 +228,7 @@ -- created from -- -- - #VUID-vkAllocateMemory-deviceCoherentMemory-02790# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>+-- <https://www.khronos.org/registry/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 +285,7 @@ -- permitted by the implementation. (MemoryAllocateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DeviceMemory)@@ -342,7 +342,7 @@ -- -- How memory objects are bound to Images and Buffers is described in -- detail in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-association Resource Memory Association>+-- <https://www.khronos.org/registry/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 +351,7 @@ -- Note -- -- As described--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-unmap-does-not-flush below>,+-- <https://www.khronos.org/registry/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 +393,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -444,7 +444,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.2-extensions/html/vkspec.html#synchronization-submission-host-writes here>+-- <https://www.khronos.org/registry/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 +463,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.2-extensions/html/vkspec.html#synchronization Synchronization and Cache Control>+-- <https://www.khronos.org/registry/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 +635,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.2-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible memory domain operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-types access type>.+-- <https://www.khronos.org/registry/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 +718,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.2-extensions/html/vkspec.html#synchronization-access-types access types>,+-- <https://www.khronos.org/registry/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.@@ -1205,7 +1205,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.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>,+-- <https://www.khronos.org/registry/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@@@ -1222,7 +1222,7 @@ -- includes -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT', -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay> -- feature /must/ be enabled -- -- - #VUID-VkMemoryAllocateInfo-flags-03331# If@@ -1230,7 +1230,7 @@ -- includes -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT', -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> -- feature /must/ be enabled -- -- - #VUID-VkMemoryAllocateInfo-pNext-03332# If the @pNext@ chain
src/Vulkan/Core10/OtherTypes.hs view
@@ -72,15 +72,15 @@ -- = Description -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://www.khronos.org/registry/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,7 +231,7 @@ -- <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.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+-- <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@@ -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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/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,28 +374,28 @@ -- 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.2-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+-- <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.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+-- <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.@@ -590,7 +590,7 @@ -- 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_OPTIMAL_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL', -- @image@ /must/ have been created with -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- or@@ -602,7 +602,7 @@ -- 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_READ_ONLY_OPTIMAL_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL', -- @image@ /must/ have been created with at least one of -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or@@ -681,7 +681,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> -- -- - #VUID-VkImageMemoryBarrier-synchronization2-03857# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>+-- <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@@ -727,28 +727,28 @@ next :: Chain es , -- | @srcAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views image subresource range>+ -- <https://www.khronos.org/registry/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 +945,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.2-extensions/html/vkspec.html#fxvertex-input>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input> -- -- - #VUID-VkDrawIndirectCommand-firstInstance-00501# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance> -- feature is not enabled, @firstInstance@ /must/ be @0@ -- -- = See Also@@ -1026,7 +1026,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.2-extensions/html/vkspec.html#fxvertex-input>+-- <https://www.khronos.org/registry/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 +1036,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' -- -- - #VUID-VkDrawIndexedIndirectCommand-firstInstance-00554# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass-layout-transitions automatic layout transitions>.+-- <https://www.khronos.org/registry/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. --@@ -600,9 +600,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.2-extensions/html/vkspec.html#fundamentals-numerics Numeric Representation and Computation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-numerics Numeric Representation and Computation> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-fixedconv Fixed-Point Data Conversions>.+-- <https://www.khronos.org/registry/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',@@ -650,7 +650,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.2-extensions/html/vkspec.html#renderpass-feedbackloop below>.+-- <https://www.khronos.org/registry/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@@ -712,7 +712,7 @@ -- -- - #VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-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',@@ -722,7 +722,7 @@ -- -- - #VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-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',@@ -1031,7 +1031,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.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/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@@ -1039,7 +1039,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.2-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- <https://www.khronos.org/registry/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. --@@ -1175,7 +1175,7 @@ -- in @pInputAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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@@ -1185,7 +1185,7 @@ -- in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1193,7 +1193,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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1201,42 +1201,42 @@ -- @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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- '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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- '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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- '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@@ -1269,7 +1269,7 @@ -- -- - #VUID-VkSubpassDescription-None-04437# Each attachment /must/ follow -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements>+-- <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@@ -1453,7 +1453,7 @@ -- -- If @srcSubpass@ is equal to @dstSubpass@ then the 'SubpassDependency' -- describes a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependency>,+-- <https://www.khronos.org/registry/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@@ -1462,9 +1462,9 @@ -- -- If @srcSubpass@ is equal to -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', the first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://www.khronos.org/registry/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@@ -1472,14 +1472,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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://www.khronos.org/registry/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@@ -1487,29 +1487,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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- <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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass-layout-transitions image layout transitions>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions image layout transitions> -- within the render pass. -- -- Note@@ -1641,28 +1641,28 @@ -- - #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.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest>+-- <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-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.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+-- <https://www.khronos.org/registry/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' --@@ -1724,20 +1724,20 @@ , -- | @srcStageMask@ is a bitmask of -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://www.khronos.org/registry/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'.@@ -1930,7 +1930,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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://www.khronos.org/registry/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@@ -1938,7 +1938,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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> -- identified by the @pipelineBindPoint@ member of the destination -- subpass --@@ -2092,9 +2092,9 @@ -- Other than the exceptions listed below, applications /must/ ensure that -- all accesses to memory that backs image subresources used as attachments -- in a given render pass instance either happen-before the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops load operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops load operations> -- for those attachments, or happen-after the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops store operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops store operations> -- for those attachments. -- -- The exceptions to the general rule are:@@ -2198,7 +2198,7 @@ -- - #VUID-VkFramebufferCreateInfo-renderPass-02553# If @renderpass@ is -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @renderPass@ has a -- fragment density map attachment, and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature>+-- <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 -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'@@ -2206,7 +2206,7 @@ -- -- - #VUID-VkFramebufferCreateInfo-renderPass-06502# If @renderPass@ was -- created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>+-- <https://www.khronos.org/registry/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'.@@ -2300,7 +2300,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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@@ -2311,7 +2311,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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@ --@@ -2320,7 +2320,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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@@ -2332,7 +2332,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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@@ -2356,21 +2356,21 @@ -- -- - #VUID-VkFramebufferCreateInfo-width-00886# @width@ /must/ be less -- than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-maxFramebufferLayers maxFramebufferLayers>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferLayers maxFramebufferLayers> -- -- - #VUID-VkFramebufferCreateInfo-renderPass-02531# If @renderpass@ is -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @renderPass@ was@@ -2383,7 +2383,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.2-extensions/html/vkspec.html#features-imagelessFramebuffer imageless framebuffer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-imagelessFramebuffer imageless framebuffer> -- feature is not enabled, @flags@ /must/ not include -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT' --@@ -2449,7 +2449,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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@@ -2463,7 +2463,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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@@ -2477,7 +2477,7 @@ -- @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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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 @renderpass@ is not@@ -2485,7 +2485,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://www.khronos.org/registry/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@@ -2631,7 +2631,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.2-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+ -- <https://www.khronos.org/registry/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
@@ -166,7 +166,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags)@@ -182,11 +182,11 @@ import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PipelineRenderingCreateInfoKHR)+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.Extensions.VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT)+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)@@ -299,15 +299,15 @@ -- -- - #VUID-vkCreateGraphicsPipelines-pipelineCache-02876# If -- @pipelineCache@ was created with--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', -- host access to @pipelineCache@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+-- <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_EXT'+-- '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@. --@@ -347,7 +347,7 @@ -- -- - 'Vulkan.Core10.Enums.Result.SUCCESS' ----- - 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+-- - '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>] --@@ -369,7 +369,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.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- <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@@ -377,7 +377,7 @@ -- structures. ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo)) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <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))@@ -438,9 +438,9 @@ -- -- - #VUID-vkCreateComputePipelines-pipelineCache-02873# If -- @pipelineCache@ was created with--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', -- host access to @pipelineCache@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized> -- -- == Valid Usage (Implicit) --@@ -477,7 +477,7 @@ -- -- - 'Vulkan.Core10.Enums.Result.SUCCESS' ----- - 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+-- - '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>] --@@ -499,7 +499,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.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- <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@@ -507,7 +507,7 @@ -- structures. ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo)) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <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))@@ -597,7 +597,7 @@ -> -- | @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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -647,7 +647,7 @@ -- -- 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.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>+-- <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@@ -657,15 +657,15 @@ -- 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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <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.2-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>+-- <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.2-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>. -- -- == Valid Usage --@@ -711,6 +711,7 @@ -- '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).@@ -935,24 +936,24 @@ -- == Valid Usage -- -- - #VUID-VkPipelineShaderStageCreateInfo-stage-00704# 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.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.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <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.2-extensions/html/vkspec.html#features-meshShader mesh shader>+-- <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.2-extensions/html/vkspec.html#features-taskShader task shader>+-- <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' --@@ -1020,13 +1021,13 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryShaderInvocations@ -- -- - #VUID-VkPipelineShaderStageCreateInfo-stage-02596# If @stage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,+-- <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@@ -1065,74 +1066,74 @@ -- -- - #VUID-VkPipelineShaderStageCreateInfo-flags-02784# If @flags@ has -- the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' -- flag set, the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>+-- <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_EXT'+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' -- flag set, the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>+-- <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.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+-- '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_EXT'+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' -- flag set -- -- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02755# If a--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+-- '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.2-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>+-- <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.2-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages> -- -- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02756# If a--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+-- '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.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'::@requiredSubgroupSize@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@ -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups> -- -- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02757# If a--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+-- '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_EXT'+-- '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.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'::@requiredSubgroupSize@+-- '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_EXT'+-- '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_EXT'+-- '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.2-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+-- <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_EXT'+-- '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_EXT'+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' -- flag set and no--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+-- '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.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>+-- <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.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>+-- <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@@ -1144,7 +1145,7 @@ -- -- - #VUID-VkPipelineShaderStageCreateInfo-pNext-pNext# @pNext@ /must/ be -- @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' -- -- - #VUID-VkPipelineShaderStageCreateInfo-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique@@ -1198,7 +1199,7 @@ name :: ByteString , -- | @pSpecializationInfo@ is a pointer to a 'SpecializationInfo' structure, -- as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>,+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>, -- or @NULL@. specializationInfo :: Maybe SpecializationInfo }@@ -1214,7 +1215,7 @@ getNext PipelineShaderStageCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b extends _ f- | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f | otherwise = Nothing instance (Extendss PipelineShaderStageCreateInfo es, PokeChain es) => ToCStruct (PipelineShaderStageCreateInfo es) where@@ -1275,7 +1276,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- == Valid Usage --@@ -1313,11 +1314,11 @@ -- 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.2-extensions/html/vkspec.html#interfaces Shader Interfaces>+-- <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.2-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>+-- <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@@ -1367,11 +1368,11 @@ -- -- - #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+-- <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_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' -- or--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- == Valid Usage (Implicit) --@@ -1382,7 +1383,7 @@ -- 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.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', -- or -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI' --@@ -1446,7 +1447,7 @@ extends _ f | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f | Just Refl <- eqT @e @SubpassShadingPipelineCreateInfoHUAWEI = Just f- | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f | otherwise = Nothing instance (Extendss ComputePipelineCreateInfo es, PokeChain es) => ToCStruct (ComputePipelineCreateInfo es) where@@ -1837,7 +1838,7 @@ -- '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.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>+-- <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@@ -1845,11 +1846,11 @@ -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', -- and @primitiveRestartEnable@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>+-- <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.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <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',@@ -1858,7 +1859,7 @@ -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY' -- -- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430# 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.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' --@@ -1911,11 +1912,11 @@ -- 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.2-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>+ -- <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.2-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>+ -- <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 }@@ -2060,12 +2061,12 @@ -- == Valid Usage -- -- - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <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.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <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@ --@@ -2091,20 +2092,20 @@ -- -- - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If the -- graphics pipeline is being created without--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- '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_EXT'+-- '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_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- set then @scissorCount@ /must/ be @0@, otherwise it /must/ be -- greater than @0@ --@@ -2160,7 +2161,7 @@ -- is ignored. viewports :: Vector Viewport , -- | @scissorCount@ is the number of- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-scissor scissors>+ -- <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@@ -2272,19 +2273,19 @@ -- '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.2-extensions/html/vkspec.html#primsrast-order Rasterization Order>.+-- <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.2-extensions/html/vkspec.html#features-depthClamp depth clamping>+-- <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.2-extensions/html/vkspec.html#features-fillModeNonSolid non-solid fill modes>+-- <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'@@ -2353,12 +2354,12 @@ flags :: PipelineRasterizationStateCreateFlags , -- | @depthClampEnable@ controls whether to clamp the fragment’s depth values -- as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth Depth Test>.+ -- <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.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.+ -- <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@@ -2482,9 +2483,9 @@ -- = Description -- -- Each bit in the sample mask is associated with a unique--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <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.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>.+-- <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.@@ -2496,13 +2497,13 @@ -- -- - #VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sampleRateShading sample rate shading>+-- <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.2-extensions/html/vkspec.html#features-alphaToOne alpha to one>+-- <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' --@@ -2565,24 +2566,24 @@ -- specifying the number of samples used in rasterization. rasterizationSamples :: SampleCountFlagBits , -- | @sampleShadingEnable@ /can/ be used to enable- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.+ -- <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.2-extensions/html/vkspec.html#fragops-samplemask sample mask test>.+ -- <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.2-extensions/html/vkspec.html#fragops-covg Multisample Coverage>+ -- <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.2-extensions/html/vkspec.html#fragops-covg Multisample Coverage>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>. alphaToOneEnable :: Bool } deriving (Typeable)@@ -2678,7 +2679,7 @@ -- -- - #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+-- <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',@@ -2687,7 +2688,7 @@ -- -- - #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+-- <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',@@ -2696,7 +2697,7 @@ -- -- - #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+-- <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',@@ -2705,7 +2706,7 @@ -- -- - #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>+-- <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',@@ -2714,21 +2715,21 @@ -- -- - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406# If -- either of @colorBlendOp@ or @alphaBlendOp@ is an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- <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.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- <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.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- <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#@@ -2769,7 +2770,7 @@ -- -- - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410# If -- @colorBlendOp@ or @alphaBlendOp@ is an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- <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@@@ -2856,7 +2857,7 @@ -- '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.2-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>.+ -- <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)@@ -2926,13 +2927,13 @@ -- == Valid Usage -- -- - #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-independentBlend independent blending>+-- <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.2-extensions/html/vkspec.html#features-logicOp logic operations>+-- <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' --@@ -2942,7 +2943,7 @@ -- -- - #VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rasterizationOrderColorAttachmentAccess rasterizationOrderColorAttachmentAccess>+-- <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' --@@ -2988,7 +2989,7 @@ -- specifying additional color blending information. flags :: PipelineColorBlendStateCreateFlags , -- | @logicOpEnable@ controls whether to apply- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop Logical Operations>.+ -- <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@@ -2999,7 +3000,7 @@ , -- | @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.2-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>. blendConstants :: (Float, Float, Float, Float) } deriving (Typeable)@@ -3277,7 +3278,7 @@ -- -- - #VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depth bounds testing>+-- <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' --@@ -3294,13 +3295,13 @@ -- -- - #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess rasterizationOrderDepthAttachmentAccess>+-- <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.2-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess rasterizationOrderStencilAttachmentAccess>+-- <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' --@@ -3341,36 +3342,36 @@ -- specifying additional depth\/stencil state information. flags :: PipelineDepthStencilStateCreateFlags , -- | @depthTestEnable@ controls whether- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth depth testing>+ -- <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.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+ -- <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.2-extensions/html/vkspec.html#fragops-depth depth test>.+ -- <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.2-extensions/html/vkspec.html#fragops-dbt depth bounds testing>+ -- <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.2-extensions/html/vkspec.html#fragops-stencil stencil testing>+ -- <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.2-extensions/html/vkspec.html#fragops-stencil stencil test>.+ -- <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.2-extensions/html/vkspec.html#fragops-dbt depth bounds test>.+ -- <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.2-extensions/html/vkspec.html#fragops-dbt depth bounds test>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>. maxDepthBounds :: Float } deriving (Typeable)@@ -3453,18 +3454,18 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output state>.+-- <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: --@@ -3533,20 +3534,20 @@ -- - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter -- -- A complete graphics pipeline always includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state>, -- with other subsets included depending on that state. If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- includes a vertex shader, then--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-pre-rasterization pre-rasterization shader state> -- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state is enabled--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment 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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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. -- -- Pipelines /must/ be created with a complete set of pipeline state.@@ -3584,7 +3585,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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'@@ -3599,7 +3600,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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'@@ -3610,19 +3611,19 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-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.2-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-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'@@ -3630,14 +3631,14 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-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@@ -3645,14 +3646,14 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-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@@ -3660,44 +3661,44 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-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.2-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-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.2-extensions/html/vkspec.html#shaders-geometry-execution compatible>+-- <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.2-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-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.2-extensions/html/vkspec.html#shaders-geometry-execution compatible>+-- <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.2-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-pre-rasterization pre-rasterization shader state> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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@@ -3706,7 +3707,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -3715,37 +3716,37 @@ -- - #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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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.2-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-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.2-extensions/html/vkspec.html#interfaces Shader Interfaces>+-- <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.2-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-pre-rasterization pre-rasterization shader state> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <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.2-extensions/html/vkspec.html#interfaces Shader Interfaces>+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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@@ -3755,7 +3756,7 @@ -- - #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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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@@ -3766,9 +3767,9 @@ -- - #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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- <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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <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',@@ -3779,34 +3780,34 @@ -- - #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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- <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.2-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-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_EXT',+-- '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.2-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-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_EXT',+-- '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.2-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-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@@ -3814,29 +3815,29 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If -- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-pre-rasterization pre-rasterization shader state>, -- and the graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- '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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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@@ -3844,14 +3845,14 @@ -- - #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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- <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.2-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-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@@ -3861,7 +3862,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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@@ -3872,7 +3873,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@@ -3888,7 +3889,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@@ -3904,7 +3905,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@@ -3916,7 +3917,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If -- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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@@ -3925,12 +3926,12 @@ -- @InterpolateAtSample@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-layout-00756# @layout@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@@ -3939,7 +3940,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@@ -3947,7 +3948,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@@ -3956,7 +3957,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@@ -3965,7 +3966,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If -- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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@,@@ -3976,11 +3977,11 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader 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.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+-- <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@@ -3988,7 +3989,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06047# If @renderPass@ -- is a valid renderPass, the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -3996,21 +3997,21 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06048# If @renderPass@ -- is a valid renderPass, the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-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.2-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-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@@ -4022,7 +4023,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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@@ -4034,7 +4035,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -4051,7 +4052,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -4063,7 +4064,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -4075,7 +4076,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -4087,26 +4088,26 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-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.2-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-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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <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.2-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-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@@ -4117,7 +4118,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -4128,9 +4129,9 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state>, -- and the last--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <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@@@ -4138,17 +4139,17 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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.2-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-pre-rasterization pre-rasterization shader state> -- and at least one of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, -- the @lineRasterizationMode@ member of a -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT' -- structure included in the @pNext@ chain of @pRasterizationState@ is@@ -4161,7 +4162,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-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@@ -4208,73 +4209,73 @@ -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState> -- feature is not enabled, there /must/ be no element of the -- @pDynamicStates@ member of @pDynamicState@ set to--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT',--- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE',+-- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state>, -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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.2-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-pre-rasterization pre-rasterization shader state>, -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- '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.2-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-pre-rasterization pre-rasterization shader state>, -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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.2-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-pre-rasterization pre-rasterization shader state>, -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- '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-04868# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2> -- feature is not enabled, there /must/ be no element of the -- @pDynamicStates@ member of @pDynamicState@ set to--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE',+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE', -- or--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+-- <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.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+-- <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'@@ -4282,29 +4283,29 @@ -- - #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.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <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.2-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-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.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+-- <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_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' -- or--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+-- '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.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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@,@@ -4313,9 +4314,9 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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@,@@ -4324,9 +4325,9 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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@,@@ -4335,9 +4336,9 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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@,@@ -4346,9 +4347,9 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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@,@@ -4357,9 +4358,9 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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@,@@ -4368,13 +4369,13 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature>+-- <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@@ -4383,13 +4384,13 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+-- <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@@ -4397,13 +4398,13 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+-- <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@@ -4411,11 +4412,11 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503# -- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- <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_EXT'+-- '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@@ -4423,29 +4424,29 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504# -- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- <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.2-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-pre-rasterization pre-rasterization shader state> -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- <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.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>+-- <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@@ -4457,13 +4458,13 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums feature>+-- <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@@ -4471,13 +4472,13 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature>+-- <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@@ -4485,13 +4486,13 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+-- <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@@ -4499,13 +4500,13 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+-- <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@@ -4513,11 +4514,11 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573# -- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>+-- <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@@ -4529,11 +4530,11 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates feature>+-- <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@@ -4545,11 +4546,11 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <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.2-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates feature>+-- <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@@ -4562,19 +4563,19 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the -- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-pre-rasterization pre-rasterization shader state> -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+-- <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-None-04893# The pipeline /must/ -- be created with a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-complete complete set of state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-complete complete set of state> -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <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'@@ -4606,18 +4607,18 @@ -- attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- - #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06052# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering> -- feature is not enabled, @renderPass@ /must/ not be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- - #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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, -- and either of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::depthAttachmentFormat+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::depthAttachmentFormat -- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::stencilAttachmentFormat+-- '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@@ -4625,82 +4626,82 @@ -- - #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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>, -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::colorAttachmentCount+-- '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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- <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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::colorAttachmentCount+-- '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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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.2-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-pre-rasterization pre-rasterization shader state>, -- the @viewMask@ member of a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+-- '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.2-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader>+-- <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.2-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-pre-rasterization pre-rasterization shader state>, -- the @viewMask@ member of a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+-- '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.2-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader>+-- <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.2-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-pre-rasterization pre-rasterization shader state>, -- and the @viewMask@ member of a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+-- '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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'+-- '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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- <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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', -- if its--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <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@@ -4709,7 +4710,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06063# If the pipeline -- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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'@@ -4717,12 +4718,12 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV', -- the @colorAttachmentCount@ member of that structure /must/ be equal -- to the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06466# If @pStages@ -- includes a fragment shader stage, and the fragment shader code -- enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>,+-- <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'@@ -4731,7 +4732,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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',@@ -4739,7 +4740,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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'@@ -4749,7 +4750,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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'@@ -4758,7 +4759,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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',@@ -4767,7 +4768,7 @@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline is -- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- <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',@@ -4786,11 +4787,11 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', -- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT',+-- '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_dynamic_rendering.PipelineRenderingCreateInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', -- or -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV' --@@ -4866,7 +4867,7 @@ , -- | @pInputAssemblyState@ is a pointer to a -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input -- assembly behavior, as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing Drawing Commands>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing Drawing Commands>. -- It is ignored if the pipeline includes a mesh shader stage. inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo , -- | @pTessellationState@ is a pointer to a@@ -4906,7 +4907,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.2-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+ -- <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@@ -4932,11 +4933,11 @@ extends _ f | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f | Just Refl <- eqT @e @AttachmentSampleCountInfoAMD = Just f- | Just Refl <- eqT @e @PipelineRenderingCreateInfoKHR = Just f+ | Just Refl <- eqT @e @PipelineRenderingCreateInfo = Just f | Just Refl <- eqT @e @PipelineFragmentShadingRateEnumStateCreateInfoNV = Just f | Just Refl <- eqT @e @PipelineFragmentShadingRateStateCreateInfoKHR = Just f | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f- | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f | Just Refl <- eqT @e @PipelineRepresentativeFragmentTestStateCreateInfoNV = Just f | Just Refl <- eqT @e @PipelineDiscardRectangleStateCreateInfoEXT = Just f | Just Refl <- eqT @e @GraphicsPipelineShaderGroupsCreateInfoNV = Just f
src/Vulkan/Core10/PipelineCache.hs view
@@ -112,9 +112,9 @@ -- multiple threads simultaneously. -- -- If @flags@ of @pCreateInfo@ includes--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+-- '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.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#pipelines-cache-header Pipeline Cache Header>+-- <https://www.khronos.org/registry/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,9 +473,9 @@ -- -- - #VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+-- <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.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT' -- -- == Valid Usage (Implicit) --
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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -391,10 +391,10 @@ -- number of bindings 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_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- accessible to any given shader stage across all elements of -- @pSetLayouts@ /must/ be less than or equal to--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxPerStageDescriptorInlineUniformBlocks@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxPerStageDescriptorInlineUniformBlocks@ -- -- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-03022# The total -- number of descriptors with a @descriptorType@ of@@ -450,10 +450,10 @@ -- -- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-02215# The total -- number of bindings with a @descriptorType@ of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- accessible to any given shader stage across all elements of -- @pSetLayouts@ /must/ be less than or equal to--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ -- -- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-03028# The total -- number of descriptors in descriptor set layouts created without the@@ -537,10 +537,10 @@ -- number of bindings 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_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- accessible across all shader stages and across all elements of -- @pSetLayouts@ /must/ be less than or equal to--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxDescriptorSetInlineUniformBlocks@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxDescriptorSetInlineUniformBlocks@ -- -- - #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036# The total number -- of descriptors of the type@@ -606,10 +606,10 @@ -- -- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-02217# The total -- number of bindings with a @descriptorType@ of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- accessible across all shader stages and across all elements of -- @pSetLayouts@ /must/ be less than or equal to--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxDescriptorSetUpdateAfterBindInlineUniformBlocks@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ -- -- - #VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292# Any two -- elements of @pPushConstantRanges@ /must/ not include the same stage@@ -667,7 +667,7 @@ -- '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.2-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers ::maxDescriptorSetSubsampledSamplers>+-- <https://www.khronos.org/registry/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
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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -278,7 +278,7 @@ -- 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.2-extensions/html/vkspec.html#queries-wait-bit-not-set below>.+-- <https://www.khronos.org/registry/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@@ -403,7 +403,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.2-extensions/html/vkspec.html#queries-operation-memorylayout here>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here> -- -- - #VUID-vkGetQueryPoolResults-queryType-00818# If the @queryType@ used -- to create @queryPool@ was@@ -515,7 +515,7 @@ -- == Valid Usage -- -- - #VUID-VkQueryPoolCreateInfo-queryType-00791# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries> -- feature is not enabled, @queryType@ /must/ not be -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' --@@ -580,7 +580,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.2-extensions/html/vkspec.html#queries-pipestats>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats>. pipelineStatistics :: QueryPipelineStatisticFlags } deriving (Typeable)
src/Vulkan/Core10/Queue.hs view
@@ -177,7 +177,7 @@ -- = Description -- -- 'queueSubmit' is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- <https://www.khronos.org/registry/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 +186,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.2-extensions/html/vkspec.html#synchronization-semaphores semaphore>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores semaphore> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fences fence>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences fence> -- sections of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation> -- section of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization explicit synchronization primitives>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>, -- back to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.+-- <https://www.khronos.org/registry/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 +230,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.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. -- -- == Valid Usage --@@ -257,7 +257,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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+-- <https://www.khronos.org/registry/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 +281,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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/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 +311,13 @@ -- -- - #VUID-vkQueueSubmit-pSubmits-02207# If any element of -- @pSubmits->pCommandBuffers@ includes a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>,+-- <https://www.khronos.org/registry/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 +326,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.2-extensions/html/vkspec.html#profiling-lock profiling lock>+-- <https://www.khronos.org/registry/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@@ -412,7 +412,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.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+ -- <https://www.khronos.org/registry/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 +458,7 @@ -- -- 'queueWaitIdle' is equivalent to having submitted a valid fence to every -- previously executed--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>+-- <https://www.khronos.org/registry/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'.@@ -599,11 +599,11 @@ -- -- The order that command buffers appear in @pCommandBuffers@ is used to -- determine--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization explicit synchronization primitives>,+-- <https://www.khronos.org/registry/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@@ -696,7 +696,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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://www.khronos.org/registry/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 +708,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.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://www.khronos.org/registry/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 +719,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.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://www.khronos.org/registry/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 +737,33 @@ -- -- - #VUID-VkSubmitInfo-pCommandBuffers-06193# If @pCommandBuffers@ -- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <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 the render pass instance that resumes it -- -- - #VUID-VkSubmitInfo-pCommandBuffers-06016# If @pCommandBuffers@ -- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <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 the render pass instance that resumes it -- -- - #VUID-VkSubmitInfo-variableSampleLocations-06017# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+-- <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.2-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <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@@ -833,7 +833,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.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.+ -- <https://www.khronos.org/registry/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 +845,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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>. signalSemaphores :: Vector Semaphore } deriving (Typeable)
src/Vulkan/Core10/QueueSemaphore.hs view
@@ -123,7 +123,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Semaphore)@@ -212,7 +212,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()
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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-texel-filtering magnification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-maxSamplerAllocationCount maxSamplerAllocationCount>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-samplerAnisotropy anisotropic sampling>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerAnisotropy anisotropic sampling> -- 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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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',@@ -395,11 +395,11 @@ -- /must/ be set to -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE' -- if--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- is enabled -- -- - #VUID-VkSamplerCreateInfo-addressModeU-01079# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>+-- <https://www.khronos.org/registry/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@@ -463,7 +463,7 @@ -- /must/ be included in the @pNext@ chain -- -- - #VUID-VkSamplerCreateInfo-customBorderColors-04085# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-customBorderColors customBorderColors>+-- <https://www.khronos.org/registry/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,7 +480,7 @@ -- - #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.2-extensions/html/vkspec.html#limits-maxCustomBorderColorSamplers maxCustomBorderColorSamplers>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCustomBorderColorSamplers maxCustomBorderColorSamplers> -- member of the -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT' -- structure@@ -572,13 +572,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.2-extensions/html/vkspec.html#textures-level-of-detail-operation Level-of-Detail Operation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-texel-anisotropic-filtering Texel Anisotropic Filtering>+ -- <https://www.khronos.org/registry/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@@ -596,14 +596,14 @@ , -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value -- specifying the comparison function to apply to fetched data before -- filtering as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation Depth Compare Operation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-level-of-detail-operation minimum of the computed LOD value>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-level-of-detail-operation maximum of the computed LOD value>.+ -- <https://www.khronos.org/registry/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,9 +97,9 @@ -- -- 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.2-extensions/html/vkspec.html#pipelines-compute Compute Pipelines>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-compute Compute Pipelines> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-graphics Graphics Pipelines>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics Graphics Pipelines>. -- -- == Valid Usage (Implicit) --@@ -145,7 +145,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (ShaderModule)@@ -238,7 +238,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -267,16 +267,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.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+-- <https://www.khronos.org/registry/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 +289,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.2-extensions/html/vkspec.html#spirvenv-module-validation Capabilities>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Capabilities> -- section of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-extensions Extension>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions Extension> -- section of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>+-- <https://www.khronos.org/registry/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)
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -356,7 +356,7 @@ -- = Description -- -- 'queueBindSparse' is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+-- <https://www.khronos.org/registry/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@@ -488,7 +488,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.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>. Fence -> io () queueBindSparse queue bindInfo fence = liftIO . evalContT $ do@@ -752,7 +752,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.2-extensions/html/vkspec.html#resources-association>+-- <https://www.khronos.org/registry/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@@ -882,7 +882,7 @@ -- == Valid Usage -- -- - #VUID-VkSparseImageMemoryBind-memory-01104# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency> -- 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@@ -890,11 +890,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.2-extensions/html/vkspec.html#resources-association>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views>)+-- <https://www.khronos.org/registry/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@@ -1281,7 +1281,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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- is executed -- -- - #VUID-VkBindSparseInfo-pWaitSemaphores-03250# For each element of@@ -1293,7 +1293,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.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- - #VUID-VkBindSparseInfo-pSignalSemaphores-03251# For each element of -- @pSignalSemaphores@ created with a@@ -1304,7 +1304,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.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- == Valid Usage (Implicit) --@@ -1361,7 +1361,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.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.+ -- <https://www.khronos.org/registry/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.@@ -1377,7 +1377,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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-rangeexpand Sampler Y′CBCR Range Expansion>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures Image Operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#img-tessellation-topology-ul>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#img-tessellation-topology-ll>.+-- <https://www.khronos.org/registry/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
@@ -279,7 +279,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.2-extensions/html/vkspec.html#memory-protected-access-rules>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-access-rules> -- for more information. protectedNoFault :: Bool } deriving (Typeable, Eq)
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.2-extensions/html/vkspec.html#features-shaderSubgroupUniformControlFlow shaderSubgroupUniformControlFlow>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-quad-operations quad group operations>+ -- <https://www.khronos.org/registry/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_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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -421,16 +421,16 @@ -- 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.2-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- - #VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226# If -- @descriptor@ type is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- @dstArrayElement@ /must/ be an integer multiple of @4@ -- -- - #VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227# If -- @descriptor@ type is--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', -- @descriptorCount@ /must/ be an integer multiple of @4@ -- -- == Valid Usage (Implicit)@@ -451,7 +451,7 @@ , -- | @dstArrayElement@ is the starting element in the array belonging to -- @dstBinding@. If the descriptor binding identified by @dstBinding@ has a -- descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @dstArrayElement@ specifies the starting byte offset to update. dstArrayElement :: Word32 , -- | @descriptorCount@ is the number of descriptors to update. If@@ -460,7 +460,7 @@ -- manner similar to 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet' -- above. If the descriptor binding identified by @dstBinding@ has a -- descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @descriptorCount@ specifies the number of bytes to update and the -- remaining array elements in the destination binding refer to the -- remaining number of bytes in it.@@ -481,7 +481,7 @@ -- -- The stride is useful in case the bindings are stored in structs along -- with other data. If @descriptorType@ is- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then the value of @stride@ is ignored and the stride is assumed to be -- @1@, i.e. the descriptor update information for them is always specified -- as a contiguous range.
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -286,7 +286,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDispatchBase-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -342,7 +342,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDispatchBase-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -350,7 +350,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -800,12 +800,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.2-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight> -- -- == Valid Usage (Implicit) --
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.2-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-memory-handle-types-compatibility External memory handle types compatibility> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-semaphore-handle-types-compatibility External semaphore handle types compatibility> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility External fence 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> -- -- 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
@@ -476,7 +476,9 @@ -- <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', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV', -- 'getImageMemoryRequirements2',@@ -544,6 +546,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>, -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR', -- 'getImageSparseMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2KHR'
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -72,7 +72,7 @@ import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.Format (Format(..)) import Vulkan.Core10.DeviceInitialization (FormatProperties)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_format_feature_flags2 (FormatProperties3KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo) import Vulkan.Core10.DeviceInitialization (ImageFormatProperties)@@ -127,7 +127,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)@@ -148,25 +148,25 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) 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_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)+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) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4PropertiesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)@@ -182,7 +182,7 @@ 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.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)+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.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)@@ -190,7 +190,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)@@ -218,30 +218,30 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+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.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.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)+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_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) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)+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.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlPropertiesEXT)+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_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PhysicalDeviceSynchronization2FeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)+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.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)@@ -255,17 +255,19 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features)+import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (QueueFamilyGlobalPriorityPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR) import Vulkan.Core10.DeviceInitialization (QueueFamilyProperties) import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..))@@ -722,44 +724,45 @@ | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeaturesKHR = 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 @PhysicalDeviceShaderIntegerDotProductFeaturesKHR = 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 @PhysicalDeviceSynchronization2FeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f | 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 @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f- | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = Just f- | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceBorderColorSwizzleFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f+ | Just Refl <- eqT @e @PhysicalDeviceVulkan13Features = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkan12Features = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkan11Features = Just f- | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDevicePipelineCreationCacheControlFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceLineRasterizationFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeatures = Just f | Just Refl <- eqT @e @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSeparateDepthStencilLayoutsFeatures = Just f@@ -772,7 +775,7 @@ | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceYcbcrImageArraysFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceImagelessFramebufferFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceBufferDeviceAddressFeatures = Just f@@ -809,12 +812,12 @@ | Just Refl <- eqT @e @PhysicalDeviceTimelineSemaphoreFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceDescriptorIndexingFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceDeviceMemoryReportFeaturesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f- | Just Refl <- eqT @e @PhysicalDeviceMaintenance4FeaturesKHR = Just f- | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f+ | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceBlendOperationAdvancedFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceProtectedMemoryFeatures = Just f@@ -825,7 +828,7 @@ | Just Refl <- eqT @e @PhysicalDevicePresentIdFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f- | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f | otherwise = Nothing @@ -895,10 +898,10 @@ -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT',+-- '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.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT', -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',@@ -917,18 +920,19 @@ -- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',--- 'Vulkan.Extensions.VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductPropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties', -- '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',--- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',--- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', or--- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties'+-- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',+-- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', or+-- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties' -- -- - #VUID-VkPhysicalDeviceProperties2-sType-unique# The @sType@ value of -- each struct in the @pNext@ chain /must/ be unique@@ -963,19 +967,20 @@ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductPropertiesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductProperties = Just f | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2PropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorPropertiesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceVulkan13Properties = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkan12Properties = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkan11Properties = Just f | Just Refl <- eqT @e @PhysicalDeviceLineRasterizationPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingPropertiesHUAWEI = Just f- | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlPropertiesEXT = Just f- | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentPropertiesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlProperties = Just f+ | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentProperties = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderSMBuiltinsPropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryPropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixPropertiesNV = Just f@@ -998,9 +1003,9 @@ | Just Refl <- eqT @e @PhysicalDeviceConservativeRasterizationPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryHostPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFloatControlsProperties = Just f- | Just Refl <- eqT @e @PhysicalDeviceMaintenance4PropertiesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Properties = Just f | Just Refl <- eqT @e @PhysicalDeviceMaintenance3Properties = Just f- | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockPropertiesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockProperties = Just f | Just Refl <- eqT @e @PhysicalDeviceBlendOperationAdvancedPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSampleLocationsPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSamplerFilterMinmaxProperties = Just f@@ -1060,7 +1065,7 @@ -- @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesList2EXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT',--- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR',+-- '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>,@@ -1100,7 +1105,7 @@ extends :: forall e b proxy. Typeable e => proxy e -> (Extends FormatProperties2 e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @DrmFormatModifierPropertiesList2EXT = Just f- | Just Refl <- eqT @e @FormatProperties3KHR = Just f+ | Just Refl <- eqT @e @FormatProperties3 = Just f | Just Refl <- eqT @e @DrmFormatModifierPropertiesListEXT = Just f | otherwise = Nothing @@ -1424,7 +1429,7 @@ -- either @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>, -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR>@@ -1462,7 +1467,7 @@ extends _ f | Just Refl <- eqT @e @QueueFamilyCheckpointProperties2NV = Just f | Just Refl <- eqT @e @QueueFamilyCheckpointPropertiesNV = Just f- | Just Refl <- eqT @e @QueueFamilyGlobalPriorityPropertiesEXT = Just f+ | Just Refl <- eqT @e @QueueFamilyGlobalPriorityPropertiesKHR = Just f | otherwise = Nothing instance (Extendss QueueFamilyProperties2 es, PokeChain es) => ToCStruct (QueueFamilyProperties2 es) where
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.2-extensions/html/vkspec.html#geometry geometry shaders>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#tessellation tessellation shaders>.+-- <https://www.khronos.org/registry/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,9 @@ -- additional broadcasting. -- -- Some implementations /may/ not support multiview in conjunction with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview-gs geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs geometry shaders> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview-tess tessellation shaders>.+-- <https://www.khronos.org/registry/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
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -128,15 +128,15 @@ -- -- The interpretation of the configured sampler Y′CBCR conversion is -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures Image Operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-samplerYcbcrConversion sampler Y′CBCR conversion feature>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerYcbcrConversion sampler Y′CBCR conversion 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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-conversion-to-rgba conversion to RGBA>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures Image Operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+ -- <https://www.khronos.org/registry/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
@@ -358,9 +358,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.2-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://www.khronos.org/registry/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 +369,9 @@ , -- | @subgroupSupportedOperations@ is a bitmask of -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits' -- specifying the sets of- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://www.khronos.org/registry/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 +380,7 @@ subgroupSupportedOperations :: SubgroupFeatureFlags , -- | #limits-subgroupQuadOperationsInAllStages# -- @subgroupQuadOperationsInAllStages@ is a boolean specifying whether- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-quad-operations quad group operations>+ -- <https://www.khronos.org/registry/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@@ -600,7 +600,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.2-extensions/html/vkspec.html#features-requirements Feature Requirements>+-- <https://www.khronos.org/registry/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,7 +805,7 @@ -- - #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.2-extensions/html/vkspec.html#limits-filterMinmaxSingleComponentFormats-minimum-requirements filterMinmaxSingleComponentFormats>+-- <https://www.khronos.org/registry/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
src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs view
@@ -86,11 +86,13 @@ -- the purposes of counting against limits such as @maxDescriptorSet@* and -- @maxPerStageDescriptor@*, the full value of @descriptorCount@ is -- counted, except for descriptor bindings with a descriptor type of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'--- where @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.2-extensions/html/vkspec.html#limits-maxInlineUniformBlockSize maxInlineUniformBlockSize>--- limit instead.+-- '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>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize>+-- limits instead. pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = DescriptorBindingFlagBits 0x00000008 conNameDescriptorBindingFlagBits :: String
src/Vulkan/Core12/Enums/DriverId.hs view
@@ -21,6 +21,7 @@ , DRIVER_ID_MESA_V3DV , DRIVER_ID_MESA_PANVK , DRIVER_ID_SAMSUNG_PROPRIETARY+ , DRIVER_ID_MESA_VENUS , .. )) where @@ -102,6 +103,8 @@ pattern DRIVER_ID_MESA_PANVK = DriverId 20 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_SAMSUNG_PROPRIETARY" 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 {-# complete DRIVER_ID_AMD_PROPRIETARY, DRIVER_ID_AMD_OPEN_SOURCE, DRIVER_ID_MESA_RADV,@@ -122,7 +125,8 @@ DRIVER_ID_MESA_TURNIP, DRIVER_ID_MESA_V3DV, DRIVER_ID_MESA_PANVK,- DRIVER_ID_SAMSUNG_PROPRIETARY :: DriverId #-}+ DRIVER_ID_SAMSUNG_PROPRIETARY,+ DRIVER_ID_MESA_VENUS :: DriverId #-} conNameDriverId :: String conNameDriverId = "DriverId"@@ -153,6 +157,7 @@ , (DRIVER_ID_MESA_V3DV , "MESA_V3DV") , (DRIVER_ID_MESA_PANVK , "MESA_PANVK") , (DRIVER_ID_SAMSUNG_PROPRIETARY , "SAMSUNG_PROPRIETARY")+ , (DRIVER_ID_MESA_VENUS , "MESA_VENUS") ] instance Show DriverId where
src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs view
@@ -30,7 +30,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve VK_KHR_depth_stencil_resolve>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2 VK_VERSION_1_2>,--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingAttachmentInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'ResolveModeFlags', -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve' newtype ResolveModeFlagBits = ResolveModeFlagBits Flags
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.2-extensions/html/vkspec.html#textures-unnormalized-to-integer the image operations chapter>.+-- <https://www.khronos.org/registry/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/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.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>. quadDivergentImplicitLod :: Bool , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindSamplers# -- @maxPerStageDescriptorUpdateAfterBindSamplers@ is similar to@@ -806,9 +806,9 @@ -- -- - #VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211# -- If--- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT'::@descriptorBindingInlineUniformBlockUpdateAfterBind@+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures'::@descriptorBindingInlineUniformBlockUpdateAfterBind@ -- is not enabled, all bindings with descriptor type--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- /must/ not use -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' --@@ -927,7 +927,7 @@ -- variable count descriptor binding in the corresponding descriptor set -- layout. If the variable count descriptor binding in the corresponding -- descriptor set layout has a descriptor type of--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @pDescriptorCounts@[i] specifies the binding’s capacity in bytes. -- If -- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo'::@pSetLayouts@[i]@@ -1042,7 +1042,7 @@ -- supported in the highest numbered binding of the layout, if that binding -- is variable-sized. If the highest numbered binding of the layout has a -- descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- then @maxVariableDescriptorCount@ indicates the maximum byte size -- supported for the binding, if that binding is variable-sized. maxVariableDescriptorCount :: Word32 }
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.2-extensions/html/vkspec.html#features-hostQueryReset hostQueryReset>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -169,16 +169,16 @@ -- == Valid Usage -- -- - #VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressEXT ::bufferDeviceAddress>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDeviceEXT ::bufferDeviceAddressMultiDevice>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDeviceEXT ::bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -240,12 +240,12 @@ -- == Valid Usage -- -- - #VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://www.khronos.org/registry/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
@@ -92,7 +92,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (MemoryBarrier2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)@@ -183,7 +183,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (RenderPass)@@ -562,7 +562,7 @@ -- -- - #VUID-vkCmdEndRenderPass2-None-06171# The current render pass -- instance /must/ not have been begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- -- == Valid Usage (Implicit) --@@ -638,7 +638,7 @@ -- those parameters. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <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, -- @initialLayout@ and @finalLayout@ /can/ be set to a layout that only -- specifies the layout of the depth aspect.@@ -696,7 +696,7 @@ -- -- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03298# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-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',@@ -706,7 +706,7 @@ -- -- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03299# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-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',@@ -966,7 +966,7 @@ -- other than an input attachment reference. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/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.@@ -988,7 +988,7 @@ -- -- - #VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is not enabled, and @attachment@ is not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', @layout@ /must/ not -- be@@ -1200,7 +1200,7 @@ -- in @pInputAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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@@ -1210,7 +1210,7 @@ -- in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1218,7 +1218,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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1226,42 +1226,42 @@ -- @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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- '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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- '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.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkSubpassDescription2-pColorAttachments-03070# If the -- @VK_AMD_mixed_attachment_samples@ extension is enabled, all@@ -1294,7 +1294,7 @@ -- -- - #VUID-VkSubpassDescription2-None-04439# Attachments /must/ follow -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements>+-- <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@@ -1535,12 +1535,12 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewOffsets@ -- has on each corresponding subpass dependency. ----- If a 'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR'--- structure is included in the @pNext@ chain, @srcStageMask@,--- @dstStageMask@, @srcAccessMask@, and @dstAccessMask@ parameters are--- ignored. The synchronization and access scopes instead are defined by--- the parameters of--- 'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR'.+-- If a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2' is+-- included in the @pNext@ chain, @srcStageMask@, @dstStageMask@,+-- @srcAccessMask@, and @dstAccessMask@ parameters are ignored. The+-- synchronization and access scopes instead are defined by the parameters+-- of 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2'. -- -- == Valid Usage --@@ -1648,24 +1648,24 @@ -- - #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.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+-- <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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest>+-- <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-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.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- - #VUID-VkSubpassDependency2-dependencyFlags-03090# If -- @dependencyFlags@ includes@@ -1681,7 +1681,7 @@ -- -- - #VUID-VkSubpassDependency2-srcSubpass-02245# If @srcSubpass@ equals -- @dstSubpass@, and @srcStageMask@ and @dstStageMask@ both include a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+-- <https://www.khronos.org/registry/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' --@@ -1700,7 +1700,7 @@ -- -- - #VUID-VkSubpassDependency2-pNext-pNext# @pNext@ /must/ be @NULL@ or -- a pointer to a valid instance of--- 'Vulkan.Extensions.VK_KHR_synchronization2.MemoryBarrier2KHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.MemoryBarrier2' -- -- - #VUID-VkSubpassDependency2-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -1748,20 +1748,20 @@ , -- | @srcStageMask@ is a bitmask of -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://www.khronos.org/registry/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'.@@ -1782,7 +1782,7 @@ getNext SubpassDependency2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubpassDependency2 e => b) -> Maybe b extends _ f- | Just Refl <- eqT @e @MemoryBarrier2KHR = Just f+ | Just Refl <- eqT @e @MemoryBarrier2 = Just f | otherwise = Nothing instance (Extendss SubpassDependency2 es, PokeChain es) => ToCStruct (SubpassDependency2 es) where@@ -1926,7 +1926,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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://www.khronos.org/registry/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@@ -1934,7 +1934,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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> -- identified by the @pipelineBindPoint@ member of the destination -- subpass --@@ -1997,7 +1997,7 @@ -- - #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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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' --
src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs view
@@ -190,7 +190,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.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://www.khronos.org/registry/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' --
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -71,7 +71,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawIndirectCount-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -127,7 +127,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndirectCount-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -135,7 +135,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -336,50 +336,50 @@ -- -- - #VUID-vkCmdDrawIndirectCount-viewportCount-03417# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawIndirectCount-scissorCount-03418# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawIndirectCount-viewportCount-03419# If the bound -- graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawIndirectCount-viewportCount-04137# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -387,11 +387,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectCount-viewportCount-04138# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -399,11 +399,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectCount-viewportCount-04139# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -411,11 +411,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectCount-viewportCount-04140# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -423,11 +423,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141# If -- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -435,11 +435,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142# If -- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -447,21 +447,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectCount-None-04876# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawIndirectCount-None-04877# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -479,14 +479,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawIndirectCount-blendEnable-04727# If rasterization is@@ -509,7 +509,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06172# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -518,7 +518,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06173# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -527,7 +527,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06174# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -536,7 +536,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06175# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -545,7 +545,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06176# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -554,7 +554,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06177# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -563,61 +563,61 @@ -- -- - #VUID-vkCmdDrawIndirectCount-viewMask-06178# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06183# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -626,7 +626,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06184# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -639,11 +639,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -655,13 +655,13 @@ -- -- - #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -669,17 +669,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -687,7 +687,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188# If the -- currently bound pipeline was created without a@@ -695,11 +695,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -708,37 +708,37 @@ -- -- - #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectCount-renderPass-06198# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -761,7 +761,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-primitiveTopology-03420# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- '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@@ -777,7 +777,7 @@ -- pipeline was created with both the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -785,7 +785,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-pStrides-04913# If the bound graphics -- pipeline was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -813,7 +813,7 @@ -- -- - #VUID-vkCmdDrawIndirectCount-None-04879# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- '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@@ -1015,7 +1015,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1071,7 +1071,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -1079,7 +1079,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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'@@ -1282,50 +1282,50 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419# If the -- bound graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1333,11 +1333,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1345,11 +1345,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1357,11 +1357,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1369,11 +1369,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1381,11 +1381,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1393,21 +1393,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04876# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawIndexedIndirectCount-None-04877# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -1425,14 +1425,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727# If@@ -1456,7 +1456,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06172# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1465,7 +1465,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06173# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1474,7 +1474,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06174# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1483,7 +1483,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06175# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1492,7 +1492,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06176# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1501,7 +1501,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06177# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1510,61 +1510,61 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06183# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1573,7 +1573,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06184# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1586,11 +1586,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1602,13 +1602,13 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -1616,17 +1616,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -1634,7 +1634,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1642,11 +1642,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1655,37 +1655,37 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -1709,7 +1709,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- '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@@ -1725,7 +1725,7 @@ -- graphics pipeline was created with both the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1733,7 +1733,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913# If the bound -- graphics pipeline was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1761,7 +1761,7 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04879# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- '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
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.2-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-timelineSemaphore timelineSemaphore>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Buffer Layout>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-model Vulkan Memory Model>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-model-availability-visibility availability and visibility chains>+ -- <https://www.khronos.org/registry/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
@@ -0,0 +1,875 @@+{-# language CPP #-}+-- No documentation found for Chapter "Core13"+module Vulkan.Core13 ( pattern API_VERSION_1_3+ , PhysicalDeviceVulkan13Features(..)+ , PhysicalDeviceVulkan13Properties(..)+ , StructureType(..)+ , module Vulkan.Core13.Enums+ , module Vulkan.Core13.Handles+ , module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state+ , module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2+ , module Vulkan.Core13.Promoted_From_VK_EXT_image_robustness+ , module Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block+ , module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control+ , module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback+ , module Vulkan.Core13.Promoted_From_VK_EXT_private_data+ , module Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation+ , module Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control+ , module Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment+ , module Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr+ , module Vulkan.Core13.Promoted_From_VK_EXT_tooling_info+ , module Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2+ , module Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering+ , module Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2+ , module Vulkan.Core13.Promoted_From_VK_KHR_maintenance4+ , module Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product+ , module Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation+ , module Vulkan.Core13.Promoted_From_VK_KHR_synchronization2+ , module Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory+ ) where+import Vulkan.Core13.Enums+import Vulkan.Core13.Handles+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2+import Vulkan.Core13.Promoted_From_VK_EXT_image_robustness+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback+import Vulkan.Core13.Promoted_From_VK_EXT_private_data+import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control+import Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment+import Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr+import Vulkan.Core13.Promoted_From_VK_EXT_tooling_info+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering+import Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product+import Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2+import Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory+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.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 (DeviceSize)+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+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.Enums.StructureType (StructureType(..))+pattern API_VERSION_1_3 :: Word32+pattern API_VERSION_1_3 = MAKE_API_VERSION 1 3 0+++-- | VkPhysicalDeviceVulkan13Features - Structure describing the Vulkan 1.3+-- features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceVulkan13Features' 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. 'PhysicalDeviceVulkan13Features' /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_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVulkan13Features = PhysicalDeviceVulkan13Features+ { -- | #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.2-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.2-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+ , -- | #features-inlineUniformBlock# @inlineUniformBlock@ indicates whether the+ -- implementation supports inline uniform block descriptors. If this+ -- feature is not enabled,+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+ -- /must/ not be used.+ inlineUniformBlock :: Bool+ , -- | #features-descriptorBindingInlineUniformBlockUpdateAfterBind#+ -- @descriptorBindingInlineUniformBlockUpdateAfterBind@ indicates whether+ -- the implementation supports updating inline uniform block descriptors+ -- after a set is bound. If this feature is not enabled,+ -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'+ -- /must/ not be used with+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'.+ descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool+ , -- | #features-pipelineCreationCacheControl# @pipelineCreationCacheControl@+ -- indicates that the implementation supports:+ --+ -- - The following /can/ be used in @Vk*PipelineCreateInfo@::@flags@:+ --+ -- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+ --+ -- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'+ --+ -- - The following /can/ be used in+ -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo'::@flags@:+ --+ -- - 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT'+ pipelineCreationCacheControl :: Bool+ , -- | #features-privateData# @privateData@ indicates whether the+ -- implementation supports private data. See+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#private-data Private Data>.+ privateData :: Bool+ , -- | #features-shaderDemoteToHelperInvocation#+ -- @shaderDemoteToHelperInvocation@ indicates whether the implementation+ -- supports the SPIR-V @DemoteToHelperInvocationEXT@ capability.+ shaderDemoteToHelperInvocation :: Bool+ , -- | #features-shaderTerminateInvocation# @shaderTerminateInvocation@+ -- specifies whether the implementation supports SPIR-V modules that use+ -- the @SPV_KHR_terminate_invocation@ extension.+ shaderTerminateInvocation :: Bool+ , -- | #features-subgroupSizeControl# @subgroupSizeControl@ indicates whether+ -- the implementation supports controlling shader subgroup sizes via the+ -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+ -- flag and the+ -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'+ -- structure.+ subgroupSizeControl :: Bool+ , -- | #features-computeFullSubgroups# @computeFullSubgroups@ indicates whether+ -- the implementation supports requiring full subgroups in compute shaders+ -- via the+ -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+ -- flag.+ computeFullSubgroups :: Bool+ , -- | #features-synchronization2# @synchronization2@ indicates whether the+ -- implementation supports the new set of synchronization commands+ -- introduced in @VK_KHR_synchronization2@.+ synchronization2 :: Bool+ , -- | #features-textureCompressionASTC_HDR# @textureCompressionASTC_HDR@+ -- indicates whether all of the ASTC HDR compressed texture formats are+ -- supported. If this feature is enabled, then the+ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',+ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+ -- and+ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+ -- features /must/ be supported in @optimalTilingFeatures@ for the+ -- following formats:+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK'+ --+ -- To query for additional properties, or if the feature is not enabled,+ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+ -- and+ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties'+ -- /can/ be used to check for supported properties of individual formats as+ -- normal.+ textureCompressionASTC_HDR :: Bool+ , -- | #features-shaderZeroInitializeWorkgroupMemory#+ -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the+ -- implementation supports initializing a variable in Workgroup storage+ -- class.+ shaderZeroInitializeWorkgroupMemory :: Bool+ , -- | #features-dynamicRendering# @dynamicRendering@ specifies that the+ -- implementation supports dynamic render pass instances using the+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+ -- command.+ dynamicRendering :: Bool+ , -- | #features-shaderIntegerDotProduct# @shaderIntegerDotProduct@ specifies+ -- whether shader modules /can/ declare the @DotProductInputAllKHR@,+ -- @DotProductInput4x8BitKHR@, @DotProductInput4x8BitPackedKHR@ and+ -- @DotProductKHR@ capabilities.+ shaderIntegerDotProduct :: Bool+ , -- | #features-maintenance4# @maintenance4@ indicates that the implementation+ -- supports the following:+ --+ -- - The application /may/ destroy a+ -- 'Vulkan.Core10.Handles.PipelineLayout' object immediately after+ -- using it to create another object.+ --+ -- - @LocalSizeId@ /can/ be used as an alternative to @LocalSize@ to+ -- specify the local workgroup size with specialization constants.+ --+ -- - Images created with identical creation parameters will always have+ -- the same alignment requirements.+ --+ -- - The size memory requirement of a buffer or image is never greater+ -- than that of another buffer or image created with a greater or equal+ -- size.+ --+ -- - Push constants do not have to be initialized before they are+ -- dynamically accessed.+ --+ -- - The interface matching rules allow a larger output vector to match+ -- with a smaller input vector, with additional values being discarded.+ maintenance4 :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVulkan13Features)+#endif+deriving instance Show PhysicalDeviceVulkan13Features++instance ToCStruct PhysicalDeviceVulkan13Features where+ withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceVulkan13Features{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustImageAccess))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (inlineUniformBlock))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (descriptorBindingInlineUniformBlockUpdateAfterBind))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (pipelineCreationCacheControl))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (privateData))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (shaderDemoteToHelperInvocation))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (shaderTerminateInvocation))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (subgroupSizeControl))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (computeFullSubgroups))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (synchronization2))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_HDR))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (dynamicRendering))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (shaderIntegerDotProduct))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (maintenance4))+ f+ cStructSize = 80+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES)+ 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))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceVulkan13Features where+ peekCStruct p = do+ robustImageAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ inlineUniformBlock <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ descriptorBindingInlineUniformBlockUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ pipelineCreationCacheControl <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+ privateData <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+ shaderDemoteToHelperInvocation <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+ shaderTerminateInvocation <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+ subgroupSizeControl <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+ computeFullSubgroups <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+ synchronization2 <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+ textureCompressionASTC_HDR <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+ shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+ dynamicRendering <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+ shaderIntegerDotProduct <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+ maintenance4 <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+ pure $ PhysicalDeviceVulkan13Features+ (bool32ToBool robustImageAccess) (bool32ToBool inlineUniformBlock) (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind) (bool32ToBool pipelineCreationCacheControl) (bool32ToBool privateData) (bool32ToBool shaderDemoteToHelperInvocation) (bool32ToBool shaderTerminateInvocation) (bool32ToBool subgroupSizeControl) (bool32ToBool computeFullSubgroups) (bool32ToBool synchronization2) (bool32ToBool textureCompressionASTC_HDR) (bool32ToBool shaderZeroInitializeWorkgroupMemory) (bool32ToBool dynamicRendering) (bool32ToBool shaderIntegerDotProduct) (bool32ToBool maintenance4)++instance Storable PhysicalDeviceVulkan13Features where+ sizeOf ~_ = 80+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVulkan13Features where+ zero = PhysicalDeviceVulkan13Features+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkPhysicalDeviceVulkan13Properties - Structure specifying physical+-- device properties for functionality promoted to Vulkan 1.3+--+-- = Description+--+-- If the 'PhysicalDeviceVulkan13Properties' 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 properties correspond to Vulkan 1.3 functionality.+--+-- The members of 'PhysicalDeviceVulkan13Properties' /must/ have the same+-- values as the corresponding members of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVulkan13Properties = PhysicalDeviceVulkan13Properties+ { -- | #limits-minSubgroupSize# @minSubgroupSize@ is the minimum subgroup size+ -- supported by this device. @minSubgroupSize@ is at least one if any of+ -- the physical device’s queues support+ -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+ -- '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.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+ minSubgroupSize :: Word32+ , -- | #limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum subgroup size+ -- supported by this device. @maxSubgroupSize@ is at least one if any of+ -- the physical device’s queues support+ -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+ -- '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.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+ maxSubgroupSize :: Word32+ , -- | #limits-maxComputeWorkgroupSubgroups# @maxComputeWorkgroupSubgroups@ is+ -- the maximum number of subgroups supported by the implementation within a+ -- workgroup.+ maxComputeWorkgroupSubgroups :: Word32+ , -- | #limits-requiredSubgroupSizeStages# @requiredSubgroupSizeStages@ is a+ -- bitfield of what shader stages support having a required subgroup size+ -- specified.+ requiredSubgroupSizeStages :: ShaderStageFlags+ , -- | #limits-maxInlineUniformBlockSize# @maxInlineUniformBlockSize@ is the+ -- maximum size in bytes of an+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>+ -- binding.+ maxInlineUniformBlockSize :: Word32+ , -- No documentation found for Nested "VkPhysicalDeviceVulkan13Properties" "maxPerStageDescriptorInlineUniformBlocks"+ maxPerStageDescriptorInlineUniformBlocks :: Word32+ , -- | #limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#+ -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to+ -- @maxPerStageDescriptorInlineUniformBlocks@ but counts descriptor+ -- bindings from descriptor sets created with or without the+ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+ -- bit set.+ maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32+ , -- | #limits-maxDescriptorSetInlineUniformBlocks#+ -- @maxDescriptorSetInlineUniformBlocks@ is the maximum number of inline+ -- uniform block bindings that /can/ be included in descriptor bindings in+ -- a pipeline layout across all pipeline shader stages and descriptor set+ -- numbers. Descriptor bindings with a descriptor type of+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+ -- count against this limit. Only descriptor bindings in descriptor set+ -- layouts created without the+ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+ -- bit set count against this limit.+ maxDescriptorSetInlineUniformBlocks :: Word32+ , -- | #limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks#+ -- @maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ is similar to+ -- @maxDescriptorSetInlineUniformBlocks@ but counts descriptor bindings+ -- from descriptor sets created with or without the+ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+ -- bit set.+ maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32+ , -- | #limits-maxInlineUniformTotalSize# @maxInlineUniformTotalSize@ is the+ -- maximum total size in bytes of all inline uniform block bindings, across+ -- all pipeline shader stages and descriptor set numbers, that /can/ be+ -- included in a pipeline layout. Descriptor bindings with a descriptor+ -- type of+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+ -- count against this limit.+ maxInlineUniformTotalSize :: Word32+ , -- | @integerDotProduct8BitUnsignedAccelerated@ is a boolean that will be+ -- '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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool+ , -- | #limits-storageTexelBufferOffsetAlignmentBytes#+ -- @storageTexelBufferOffsetAlignmentBytes@ is a byte alignment that is+ -- sufficient for a storage texel buffer of any format. The value /must/ be+ -- a power of two.+ storageTexelBufferOffsetAlignmentBytes :: DeviceSize+ , -- | #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+ -- sufficient for a uniform texel buffer of any format. The value /must/ be+ -- a power of two.+ uniformTexelBufferOffsetAlignmentBytes :: DeviceSize+ , -- | #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.+ maxBufferSize :: DeviceSize+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVulkan13Properties)+#endif+deriving instance Show PhysicalDeviceVulkan13Properties++instance ToCStruct PhysicalDeviceVulkan13Properties where+ withCStruct x f = allocaBytes 216 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceVulkan13Properties{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (minSubgroupSize)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (maxSubgroupSize)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (maxComputeWorkgroupSubgroups)+ poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (requiredSubgroupSizeStages)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (maxInlineUniformBlockSize)+ poke ((p `plusPtr` 36 :: Ptr Word32)) (maxPerStageDescriptorInlineUniformBlocks)+ poke ((p `plusPtr` 40 :: Ptr Word32)) (maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks)+ poke ((p `plusPtr` 44 :: Ptr Word32)) (maxDescriptorSetInlineUniformBlocks)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindInlineUniformBlocks)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (maxInlineUniformTotalSize)+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitUnsignedAccelerated))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitSignedAccelerated))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedUnsignedAccelerated))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedSignedAccelerated))+ poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedMixedSignednessAccelerated))+ poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitUnsignedAccelerated))+ poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitSignedAccelerated))+ poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitUnsignedAccelerated))+ poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitSignedAccelerated))+ poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitUnsignedAccelerated))+ poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitSignedAccelerated))+ poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))+ poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitSignedAccelerated))+ poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))+ poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))+ poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))+ poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))+ poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitSignedAccelerated))+ poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))+ poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitSignedAccelerated))+ poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))+ poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitSignedAccelerated))+ poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 176 :: Ptr DeviceSize)) (storageTexelBufferOffsetAlignmentBytes)+ poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (storageTexelBufferOffsetSingleTexelAlignment))+ poke ((p `plusPtr` 192 :: Ptr DeviceSize)) (uniformTexelBufferOffsetAlignmentBytes)+ poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (uniformTexelBufferOffsetSingleTexelAlignment))+ poke ((p `plusPtr` 208 :: Ptr DeviceSize)) (maxBufferSize)+ f+ cStructSize = 216+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 140 :: Ptr Bool32)) (boolToBool32 (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))+ poke ((p `plusPtr` 160 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 164 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 168 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 172 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 176 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 184 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 192 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 200 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 208 :: Ptr DeviceSize)) (zero)+ f++instance FromCStruct PhysicalDeviceVulkan13Properties where+ peekCStruct p = do+ minSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ maxSubgroupSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ maxComputeWorkgroupSubgroups <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ requiredSubgroupSizeStages <- peek @ShaderStageFlags ((p `plusPtr` 28 :: Ptr ShaderStageFlags))+ maxInlineUniformBlockSize <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ maxPerStageDescriptorInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+ maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+ maxDescriptorSetInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+ maxInlineUniformTotalSize <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+ integerDotProduct8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+ integerDotProduct8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+ integerDotProduct8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+ integerDotProduct4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+ integerDotProduct4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+ integerDotProduct4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))+ integerDotProduct16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))+ integerDotProduct16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))+ integerDotProduct16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))+ integerDotProduct32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))+ integerDotProduct32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))+ integerDotProduct32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))+ integerDotProduct64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))+ integerDotProduct64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))+ integerDotProduct64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 136 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 140 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 160 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 164 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 168 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 172 :: Ptr Bool32))+ storageTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 176 :: Ptr DeviceSize))+ storageTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 184 :: Ptr Bool32))+ uniformTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 192 :: Ptr DeviceSize))+ uniformTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 200 :: Ptr Bool32))+ maxBufferSize <- peek @DeviceSize ((p `plusPtr` 208 :: Ptr DeviceSize))+ pure $ PhysicalDeviceVulkan13Properties+ minSubgroupSize maxSubgroupSize maxComputeWorkgroupSubgroups requiredSubgroupSizeStages maxInlineUniformBlockSize maxPerStageDescriptorInlineUniformBlocks maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks maxDescriptorSetInlineUniformBlocks maxDescriptorSetUpdateAfterBindInlineUniformBlocks maxInlineUniformTotalSize (bool32ToBool integerDotProduct8BitUnsignedAccelerated) (bool32ToBool integerDotProduct8BitSignedAccelerated) (bool32ToBool integerDotProduct8BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProduct16BitUnsignedAccelerated) (bool32ToBool integerDotProduct16BitSignedAccelerated) (bool32ToBool integerDotProduct16BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct32BitUnsignedAccelerated) (bool32ToBool integerDotProduct32BitSignedAccelerated) (bool32ToBool integerDotProduct32BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct64BitUnsignedAccelerated) (bool32ToBool integerDotProduct64BitSignedAccelerated) (bool32ToBool integerDotProduct64BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated) storageTexelBufferOffsetAlignmentBytes (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment) uniformTexelBufferOffsetAlignmentBytes (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment) maxBufferSize++instance Storable PhysicalDeviceVulkan13Properties where+ sizeOf ~_ = 216+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVulkan13Properties where+ zero = PhysicalDeviceVulkan13Properties+ 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+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+
+ src/Vulkan/Core13.hs-boot view
@@ -0,0 +1,25 @@+{-# language CPP #-}+-- No documentation found for Chapter "Core13"+module Vulkan.Core13 ( PhysicalDeviceVulkan13Features+ , PhysicalDeviceVulkan13Properties+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceVulkan13Features++instance ToCStruct PhysicalDeviceVulkan13Features+instance Show PhysicalDeviceVulkan13Features++instance FromCStruct PhysicalDeviceVulkan13Features+++data PhysicalDeviceVulkan13Properties++instance ToCStruct PhysicalDeviceVulkan13Properties+instance Show PhysicalDeviceVulkan13Properties++instance FromCStruct PhysicalDeviceVulkan13Properties+
+ src/Vulkan/Core13/Enums.hs view
@@ -0,0 +1,20 @@+{-# language CPP #-}+-- No documentation found for Chapter "Enums"+module Vulkan.Core13.Enums ( module Vulkan.Core13.Enums.AccessFlags2+ , module Vulkan.Core13.Enums.FormatFeatureFlags2+ , module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits+ , module Vulkan.Core13.Enums.PipelineStageFlags2+ , module Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits+ , module Vulkan.Core13.Enums.RenderingFlagBits+ , module Vulkan.Core13.Enums.SubmitFlagBits+ , module Vulkan.Core13.Enums.ToolPurposeFlagBits+ ) where+import Vulkan.Core13.Enums.AccessFlags2+import Vulkan.Core13.Enums.FormatFeatureFlags2+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits+import Vulkan.Core13.Enums.PipelineStageFlags2+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits+import Vulkan.Core13.Enums.RenderingFlagBits+import Vulkan.Core13.Enums.SubmitFlagBits+import Vulkan.Core13.Enums.ToolPurposeFlagBits+
+ src/Vulkan/Core13/Enums/AccessFlags2.hs view
@@ -0,0 +1,479 @@+{-# language CPP #-}+-- No documentation found for Chapter "AccessFlags2"+module Vulkan.Core13.Enums.AccessFlags2 ( pattern ACCESS_2_NONE_KHR+ , pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR+ , pattern ACCESS_2_INDEX_READ_BIT_KHR+ , pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR+ , pattern ACCESS_2_UNIFORM_READ_BIT_KHR+ , pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR+ , pattern ACCESS_2_SHADER_READ_BIT_KHR+ , pattern ACCESS_2_SHADER_WRITE_BIT_KHR+ , pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR+ , pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR+ , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR+ , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR+ , pattern ACCESS_2_TRANSFER_READ_BIT_KHR+ , pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR+ , pattern ACCESS_2_HOST_READ_BIT_KHR+ , pattern ACCESS_2_HOST_WRITE_BIT_KHR+ , pattern ACCESS_2_MEMORY_READ_BIT_KHR+ , pattern ACCESS_2_MEMORY_WRITE_BIT_KHR+ , pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR+ , pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR+ , pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR+ , AccessFlags2+ , AccessFlagBits2( ACCESS_2_NONE+ , ACCESS_2_INDIRECT_COMMAND_READ_BIT+ , ACCESS_2_INDEX_READ_BIT+ , ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT+ , ACCESS_2_UNIFORM_READ_BIT+ , ACCESS_2_INPUT_ATTACHMENT_READ_BIT+ , ACCESS_2_SHADER_READ_BIT+ , ACCESS_2_SHADER_WRITE_BIT+ , ACCESS_2_COLOR_ATTACHMENT_READ_BIT+ , ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT+ , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT+ , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT+ , ACCESS_2_TRANSFER_READ_BIT+ , ACCESS_2_TRANSFER_WRITE_BIT+ , ACCESS_2_HOST_READ_BIT+ , ACCESS_2_HOST_WRITE_BIT+ , ACCESS_2_MEMORY_READ_BIT+ , ACCESS_2_MEMORY_WRITE_BIT+ , ACCESS_2_SHADER_SAMPLED_READ_BIT+ , ACCESS_2_SHADER_STORAGE_READ_BIT+ , ACCESS_2_SHADER_STORAGE_WRITE_BIT+ , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI+ , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT+ , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT+ , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR+ , ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR+ , ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR+ , ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV+ , ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV+ , ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT+ , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT+ , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT+ , ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT+ , ..+ )+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags64)+-- No documentation found for TopLevel "VK_ACCESS_2_NONE_KHR"+pattern ACCESS_2_NONE_KHR = ACCESS_2_NONE+++-- No documentation found for TopLevel "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR"+pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = ACCESS_2_INDIRECT_COMMAND_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_INDEX_READ_BIT_KHR"+pattern ACCESS_2_INDEX_READ_BIT_KHR = ACCESS_2_INDEX_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR"+pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_UNIFORM_READ_BIT_KHR"+pattern ACCESS_2_UNIFORM_READ_BIT_KHR = ACCESS_2_UNIFORM_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR"+pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = ACCESS_2_INPUT_ATTACHMENT_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_READ_BIT_KHR"+pattern ACCESS_2_SHADER_READ_BIT_KHR = ACCESS_2_SHADER_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_WRITE_BIT_KHR"+pattern ACCESS_2_SHADER_WRITE_BIT_KHR = ACCESS_2_SHADER_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR"+pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR"+pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR"+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR"+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_READ_BIT_KHR"+pattern ACCESS_2_TRANSFER_READ_BIT_KHR = ACCESS_2_TRANSFER_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR"+pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR = ACCESS_2_TRANSFER_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_HOST_READ_BIT_KHR"+pattern ACCESS_2_HOST_READ_BIT_KHR = ACCESS_2_HOST_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_HOST_WRITE_BIT_KHR"+pattern ACCESS_2_HOST_WRITE_BIT_KHR = ACCESS_2_HOST_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_READ_BIT_KHR"+pattern ACCESS_2_MEMORY_READ_BIT_KHR = ACCESS_2_MEMORY_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_WRITE_BIT_KHR"+pattern ACCESS_2_MEMORY_WRITE_BIT_KHR = ACCESS_2_MEMORY_WRITE_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR"+pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = ACCESS_2_SHADER_SAMPLED_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR"+pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = ACCESS_2_SHADER_STORAGE_READ_BIT+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR"+pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = ACCESS_2_SHADER_STORAGE_WRITE_BIT+++type AccessFlags2 = AccessFlagBits2++-- | VkAccessFlagBits2 - Access flags for VkAccessFlags2+--+-- = Description+--+-- Note+--+-- In situations where an application wishes to select all access types for+-- a given set of pipeline stages, 'ACCESS_2_MEMORY_READ_BIT' or+-- 'ACCESS_2_MEMORY_WRITE_BIT' can be used. This is particularly useful+-- when specifying stages that only have a single access type.+--+-- Note+--+-- The 'AccessFlags2' bitmask goes beyond the 31 individual bit flags+-- allowable within a C99 enum, which is how+-- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' is defined. The+-- first 31 values are common to both, and are interchangeable.+--+-- = 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>+newtype AccessFlagBits2 = AccessFlagBits2 Flags64+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'ACCESS_2_NONE' specifies no accesses.+pattern ACCESS_2_NONE = AccessFlagBits2 0x0000000000000000+-- | 'ACCESS_2_INDIRECT_COMMAND_READ_BIT' specifies read access to command+-- data read from indirect buffers as part of an indirect build, trace,+-- drawing or dispatch command. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT'+-- pipeline stage.+pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT = AccessFlagBits2 0x0000000000000001+-- | 'ACCESS_2_INDEX_READ_BIT' specifies read access to an index buffer as+-- part of an indexed drawing command, bound by+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access+-- occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT'+-- pipeline stage.+pattern ACCESS_2_INDEX_READ_BIT = AccessFlagBits2 0x0000000000000002+-- | 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT' specifies read access to a vertex+-- buffer as part of a drawing command, bound by+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. Such access+-- occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT'+-- 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>+-- 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>+-- 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'+-- or+-- '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_UNIFORM_READ_BIT'+--+-- - 'ACCESS_2_SHADER_SAMPLED_READ_BIT'+--+-- - 'ACCESS_2_SHADER_STORAGE_READ_BIT'+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>,+-- 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>,+-- or via certain+-- <https://www.khronos.org/registry/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>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- pipeline stage.+pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000080+-- | '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>+-- 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>.+-- 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>,+-- via+-- <https://www.khronos.org/registry/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>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'+-- pipeline stages.+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>,+-- via+-- <https://www.khronos.org/registry/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>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'+-- pipeline stages.+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>+-- 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+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT'+-- pipeline stages.+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>+-- or+-- <https://www.khronos.org/registry/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',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT'+-- pipeline stages.+pattern ACCESS_2_TRANSFER_WRITE_BIT = AccessFlagBits2 0x0000000000001000+-- | 'ACCESS_2_HOST_READ_BIT' specifies read access by a host operation.+-- Accesses of this type are not performed through a resource, but directly+-- on memory. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+-- pipeline stage.+pattern ACCESS_2_HOST_READ_BIT = AccessFlagBits2 0x0000000000002000+-- | 'ACCESS_2_HOST_WRITE_BIT' specifies write access by a host operation.+-- Accesses of this type are not performed through a resource, but directly+-- on memory. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+-- pipeline stage.+pattern ACCESS_2_HOST_WRITE_BIT = AccessFlagBits2 0x0000000000004000+-- | 'ACCESS_2_MEMORY_READ_BIT' specifies all read accesses. It is always+-- valid in any access mask, and is treated as equivalent to setting all+-- @READ@ access flags that are valid where it is used.+pattern ACCESS_2_MEMORY_READ_BIT = AccessFlagBits2 0x0000000000008000+-- | 'ACCESS_2_MEMORY_WRITE_BIT' specifies all write accesses. It is always+-- valid in any access mask, and is treated as equivalent to setting all+-- @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>+-- or+-- <https://www.khronos.org/registry/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>,+-- or+-- <https://www.khronos.org/registry/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>,+-- or+-- <https://www.khronos.org/registry/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_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'+-- pipeline stage.+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>,+-- including+-- <https://www.khronos.org/registry/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>+-- during dynamic+-- <https://www.khronos.org/registry/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>+-- 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.+pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits2 0x0000000000400000+-- | '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>+-- 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+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- pipeline stage.+pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits2 0x0000000000200000+-- | 'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read+-- access to a fragment shading rate attachment during rasterization. Such+-- access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- pipeline stage.+pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2 0x0000000000800000+-- | 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the+-- target command buffer preprocess outputs. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- pipeline stage.+pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits2 0x0000000000040000+-- | 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from buffer+-- inputs to+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- pipeline stage.+pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits2 0x0000000000020000+-- | 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a+-- predicate as part of conditional rendering. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits2 0x0000000000100000+-- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write+-- access to a transform feedback counter buffer which is written when+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'+-- executes. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2 0x0000000008000000+-- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access+-- to a transform feedback counter buffer which is read when+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'+-- executes. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2 0x0000000004000000+-- | 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a+-- transform feedback buffer made when transform feedback is active. Such+-- access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits2 0x0000000002000000++conNameAccessFlagBits2 :: String+conNameAccessFlagBits2 = "AccessFlagBits2"++enumPrefixAccessFlagBits2 :: String+enumPrefixAccessFlagBits2 = "ACCESS_2_"++showTableAccessFlagBits2 :: [(AccessFlagBits2, String)]+showTableAccessFlagBits2 =+ [ (ACCESS_2_NONE , "NONE")+ , (ACCESS_2_INDIRECT_COMMAND_READ_BIT , "INDIRECT_COMMAND_READ_BIT")+ , (ACCESS_2_INDEX_READ_BIT , "INDEX_READ_BIT")+ , (ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT , "VERTEX_ATTRIBUTE_READ_BIT")+ , (ACCESS_2_UNIFORM_READ_BIT , "UNIFORM_READ_BIT")+ , (ACCESS_2_INPUT_ATTACHMENT_READ_BIT , "INPUT_ATTACHMENT_READ_BIT")+ , (ACCESS_2_SHADER_READ_BIT , "SHADER_READ_BIT")+ , (ACCESS_2_SHADER_WRITE_BIT , "SHADER_WRITE_BIT")+ , (ACCESS_2_COLOR_ATTACHMENT_READ_BIT , "COLOR_ATTACHMENT_READ_BIT")+ , (ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT , "COLOR_ATTACHMENT_WRITE_BIT")+ , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT , "DEPTH_STENCIL_ATTACHMENT_READ_BIT")+ , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")+ , (ACCESS_2_TRANSFER_READ_BIT , "TRANSFER_READ_BIT")+ , (ACCESS_2_TRANSFER_WRITE_BIT , "TRANSFER_WRITE_BIT")+ , (ACCESS_2_HOST_READ_BIT , "HOST_READ_BIT")+ , (ACCESS_2_HOST_WRITE_BIT , "HOST_WRITE_BIT")+ , (ACCESS_2_MEMORY_READ_BIT , "MEMORY_READ_BIT")+ , (ACCESS_2_MEMORY_WRITE_BIT , "MEMORY_WRITE_BIT")+ , (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_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")+ , (ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")+ , (ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, "ACCELERATION_STRUCTURE_READ_BIT_KHR")+ , (ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")+ , (ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV , "COMMAND_PREPROCESS_WRITE_BIT_NV")+ , (ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV , "COMMAND_PREPROCESS_READ_BIT_NV")+ , (ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, "CONDITIONAL_RENDERING_READ_BIT_EXT")+ , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT")+ , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")+ , (ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")+ ]++instance Show AccessFlagBits2 where+ showsPrec = enumShowsPrec enumPrefixAccessFlagBits2+ showTableAccessFlagBits2+ conNameAccessFlagBits2+ (\(AccessFlagBits2 x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read AccessFlagBits2 where+ readPrec = enumReadPrec enumPrefixAccessFlagBits2 showTableAccessFlagBits2 conNameAccessFlagBits2 AccessFlagBits2+
+ src/Vulkan/Core13/Enums/AccessFlags2.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "AccessFlags2"+module Vulkan.Core13.Enums.AccessFlags2 ( AccessFlags2+ , AccessFlagBits2+ ) where++++type AccessFlags2 = AccessFlagBits2++data AccessFlagBits2+
+ src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs view
@@ -0,0 +1,691 @@+{-# language CPP #-}+-- No documentation found for Chapter "FormatFeatureFlags2"+module Vulkan.Core13.Enums.FormatFeatureFlags2 ( pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR+ , pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR+ , pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR+ , pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR+ , pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR+ , pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR+ , pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR+ , pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR+ , pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR+ , pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR+ , pattern FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR+ , pattern FORMAT_FEATURE_2_BLIT_DST_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT+ , pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR+ , pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR+ , pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR+ , pattern FORMAT_FEATURE_2_DISJOINT_BIT_KHR+ , pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR+ , pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR+ , pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR+ , pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR+ , FormatFeatureFlags2+ , FormatFeatureFlagBits2( FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT+ , FORMAT_FEATURE_2_STORAGE_IMAGE_BIT+ , FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT+ , FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT+ , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT+ , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT+ , FORMAT_FEATURE_2_VERTEX_BUFFER_BIT+ , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT+ , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT+ , FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT+ , FORMAT_FEATURE_2_BLIT_SRC_BIT+ , FORMAT_FEATURE_2_BLIT_DST_BIT+ , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT+ , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT+ , FORMAT_FEATURE_2_TRANSFER_SRC_BIT+ , FORMAT_FEATURE_2_TRANSFER_DST_BIT+ , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT+ , FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT+ , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+ , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+ , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+ , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+ , FORMAT_FEATURE_2_DISJOINT_BIT+ , FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT+ , 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_LINEAR_COLOR_ATTACHMENT_BIT_NV+ , FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+ , FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT+ , FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR+ , ..+ )+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags64)+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = FORMAT_FEATURE_2_STORAGE_IMAGE_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR"+pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR"+pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = FORMAT_FEATURE_2_VERTEX_BUFFER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR"+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR"+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR"+pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR"+pattern FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = FORMAT_FEATURE_2_BLIT_SRC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR"+pattern FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = FORMAT_FEATURE_2_BLIT_DST_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR"+pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = FORMAT_FEATURE_2_TRANSFER_SRC_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR"+pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = FORMAT_FEATURE_2_TRANSFER_DST_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"+pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR"+pattern FORMAT_FEATURE_2_DISJOINT_BIT_KHR = FORMAT_FEATURE_2_DISJOINT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR"+pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR"+pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR"+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT+++type FormatFeatureFlags2 = FormatFeatureFlagBits2++-- | VkFormatFeatureFlagBits2 - Bitmask specifying features supported by a+-- buffer+--+-- = Description+--+-- The following bits /may/ be set in @linearTilingFeatures@ and+-- @optimalTilingFeatures@, specifying that the features are supported by+-- <VkImage.html images> or <VkImageView.html image views> or+-- <VkSamplerYcbcrConversion.html sampler Y′CBCR conversion objects>+-- created with the queried+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:+--+-- - '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>.+--+-- - '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>.+--+-- - 'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image+-- view /can/ be used as storage image that supports atomic operations.+--+-- - 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT' specifies that an image view+-- /can/ be used as a framebuffer color attachment and as an input+-- attachment.+--+-- - 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT' specifies that an+-- image view /can/ be used as a framebuffer color attachment that+-- supports blending and as an input attachment.+--+-- - 'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that an+-- image view /can/ be used as a framebuffer depth\/stencil attachment+-- and as an input attachment.+--+-- - 'FORMAT_FEATURE_2_BLIT_SRC_BIT' specifies that an image /can/ be+-- used as @srcImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+--+-- - 'FORMAT_FEATURE_2_BLIT_DST_BIT' specifies that an image /can/ be+-- used as @dstImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+--+-- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' is also set, an image view+-- /can/ be used with a sampler that has either of @magFilter@ or+-- @minFilter@ set to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or+-- @mipmapMode@ set to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'.+-- If 'FORMAT_FEATURE_2_BLIT_SRC_BIT' is also set, an image can be used+-- as the @srcImage@ to+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@+-- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only+-- be exposed for formats that also support the+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' or+-- 'FORMAT_FEATURE_2_BLIT_SRC_BIT'.+--+-- If the format being queried is a depth\/stencil format, this bit+-- only specifies that the depth aspect (not the stencil aspect) of an+-- image of this format supports linear filtering. Where depth+-- comparison is supported it /may/ be linear filtered whether this bit+-- is present or not, but where this bit is not present the filtered+-- value /may/ be computed in an implementation-dependent manner which+-- differs from the normal rules of linear filtering. The resulting+-- value /must/ be in the range [0,1] and /should/ be proportional to,+-- or a weighted average of, the number of comparison passes or+-- failures.+--+-- - '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>.+--+-- - '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>+-- and+-- <https://www.khronos.org/registry/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+-- a min or max+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'.+-- This bit /must/ only be exposed for formats that also support the+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'.+--+-- - '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+-- '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>+-- 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'+-- @xChromaOffset@ and\/or @yChromaOffset@ of+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'.+-- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.+-- If a format does not incorporate chroma downsampling (it is not a+-- “422” or “420” format) but the implementation supports sampler+-- Y′CBCR conversion for this format, the implementation /must/ set+-- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT'.+--+-- - '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>+-- 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'+-- @xChromaOffset@ and\/or @yChromaOffset@ of+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.+-- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If+-- 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>+-- 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>+-- using this format as a source with @chromaFilter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'.+--+-- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT'+-- specifies that the format can have different chroma, min, and mag+-- filters.+--+-- - '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>.+-- If this bit is not present, reconstruction is implicit by default.+--+-- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'+-- specifies that reconstruction /can/ be forcibly made explicit by+-- setting+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@+-- to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being+-- queried supports+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT'+-- it /must/ also support+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'.+--+-- - 'FORMAT_FEATURE_2_DISJOINT_BIT' specifies that a multi-planar image+-- /can/ have the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'+-- set during image creation. An implementation /must/ not set+-- 'FORMAT_FEATURE_2_DISJOINT_BIT' for /single-plane formats/.+--+-- - '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>.+--+-- - '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>.+-- An implementation /must/ not set this feature for formats with+-- numeric type other than @*UINT@, or set it as a buffer feature.+--+-- - '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>+-- 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>+-- for write operations without specifying a format.+--+-- - '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.+--+-- - '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>.+-- This bit will be set for renderable color formats in the+-- @linearTilingFeatures@. This /must/ not be set in the+-- @optimalTilingFeatures@ or @bufferFeatures@ members.+--+-- 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+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:+--+-- - 'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT' specifies that the+-- format /can/ be used to create a buffer view that /can/ be bound to+-- a+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+-- descriptor.+--+-- - 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT' specifies that the+-- format /can/ be used to create a buffer view that /can/ be bound to+-- a+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+-- descriptor.+--+-- - 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' specifies that+-- atomic operations are supported on+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+-- with this format.+--+-- - 'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT' specifies that the format /can/+-- be used as a vertex attribute format+-- ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).+--+-- - '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>+-- ('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>+-- builds.+--+-- = 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>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>+newtype FormatFeatureFlagBits2 = FormatFeatureFlagBits2 Flags64+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | '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>.+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>.+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.+pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = FormatFeatureFlagBits2 0x0000000000000004+-- | 'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT' specifies that the format+-- /can/ be used to create a buffer view that /can/ be bound to a+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+-- descriptor.+pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = FormatFeatureFlagBits2 0x0000000000000008+-- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT' specifies that the format+-- /can/ be used to create a buffer view that /can/ be bound to a+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+-- descriptor.+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = FormatFeatureFlagBits2 0x0000000000000010+-- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' specifies that atomic+-- operations are supported on+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+-- with this format.+pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = FormatFeatureFlagBits2 0x0000000000000020+-- | 'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT' specifies that the format /can/ be+-- used as a vertex attribute format+-- ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).+pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = FormatFeatureFlagBits2 0x0000000000000040+-- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT' specifies that an image view+-- /can/ be used as a framebuffer color attachment and as an input+-- attachment.+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = FormatFeatureFlagBits2 0x0000000000000080+-- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT' specifies that an image+-- view /can/ be used as a framebuffer color attachment that supports+-- blending and as an input attachment.+pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = FormatFeatureFlagBits2 0x0000000000000100+-- | 'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that an image+-- view /can/ be used as a framebuffer depth\/stencil attachment and as an+-- input attachment.+pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = FormatFeatureFlagBits2 0x0000000000000200+-- | 'FORMAT_FEATURE_2_BLIT_SRC_BIT' specifies that an image /can/ be used as+-- @srcImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+pattern FORMAT_FEATURE_2_BLIT_SRC_BIT = FormatFeatureFlagBits2 0x0000000000000400+-- | 'FORMAT_FEATURE_2_BLIT_DST_BIT' specifies that an image /can/ be used as+-- @dstImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.+pattern FORMAT_FEATURE_2_BLIT_DST_BIT = FormatFeatureFlagBits2 0x0000000000000800+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' is also set, an image view /can/ be+-- used with a sampler that has either of @magFilter@ or @minFilter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or @mipmapMode@ set to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. If+-- 'FORMAT_FEATURE_2_BLIT_SRC_BIT' is also set, an image can be used as the+-- @srcImage@ to 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@+-- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be+-- exposed for formats that also support the+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' or 'FORMAT_FEATURE_2_BLIT_SRC_BIT'.+--+-- If the format being queried is a depth\/stencil format, this bit only+-- specifies that the depth aspect (not the stencil aspect) of an image of+-- this format supports linear filtering. Where depth comparison is+-- supported it /may/ be linear filtered whether this bit is present or+-- not, but where this bit is not present the filtered value /may/ be+-- computed in an implementation-dependent manner which differs from the+-- normal rules of linear filtering. The resulting value /must/ be in the+-- range [0,1] and /should/ be proportional to, or a weighted average of,+-- the number of comparison passes or failures.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = FormatFeatureFlagBits2 0x0000000000001000+-- | '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+-- '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>.+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>+-- and+-- <https://www.khronos.org/registry/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+-- min or max+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'. This+-- bit /must/ only be exposed for formats that also support the+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'.+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>+-- 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'+-- @xChromaOffset@ and\/or @yChromaOffset@ of+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. Otherwise+-- both @xChromaOffset@ and @yChromaOffset@ /must/ be+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'. If a+-- format does not incorporate chroma downsampling (it is not a “422” or+-- “420” format) but the implementation supports sampler Y′CBCR conversion+-- for this format, the implementation /must/ set+-- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT'.+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>+-- 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+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT'+-- specifies that the format can have different chroma, min, and mag+-- filters.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT =+ 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>.+-- 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+-- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'+-- specifies that reconstruction /can/ be forcibly made explicit by setting+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@+-- to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being queried+-- supports+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT'+-- it /must/ also support+-- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'.+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT =+ FormatFeatureFlagBits2 0x0000000000200000+-- | 'FORMAT_FEATURE_2_DISJOINT_BIT' specifies that a multi-planar image+-- /can/ have the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' set+-- during image creation. An implementation /must/ not set+-- 'FORMAT_FEATURE_2_DISJOINT_BIT' for /single-plane formats/.+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>+-- 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'+-- @xChromaOffset@ and\/or @yChromaOffset@ of+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.+-- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be+-- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If+-- 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>+-- 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 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>+-- 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>+-- 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_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>.+-- 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>.+-- 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>.+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>+-- ('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>+-- builds.+pattern FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits2 0x0000000020000000++conNameFormatFeatureFlagBits2 :: String+conNameFormatFeatureFlagBits2 = "FormatFeatureFlagBits2"++enumPrefixFormatFeatureFlagBits2 :: String+enumPrefixFormatFeatureFlagBits2 = "FORMAT_FEATURE_2_"++showTableFormatFeatureFlagBits2 :: [(FormatFeatureFlagBits2, String)]+showTableFormatFeatureFlagBits2 =+ [ (FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT , "SAMPLED_IMAGE_BIT")+ , (FORMAT_FEATURE_2_STORAGE_IMAGE_BIT , "STORAGE_IMAGE_BIT")+ , (FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT , "STORAGE_IMAGE_ATOMIC_BIT")+ , (FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT , "UNIFORM_TEXEL_BUFFER_BIT")+ , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT , "STORAGE_TEXEL_BUFFER_BIT")+ , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT, "STORAGE_TEXEL_BUFFER_ATOMIC_BIT")+ , (FORMAT_FEATURE_2_VERTEX_BUFFER_BIT , "VERTEX_BUFFER_BIT")+ , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT , "COLOR_ATTACHMENT_BIT")+ , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT , "COLOR_ATTACHMENT_BLEND_BIT")+ , (FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT , "DEPTH_STENCIL_ATTACHMENT_BIT")+ , (FORMAT_FEATURE_2_BLIT_SRC_BIT , "BLIT_SRC_BIT")+ , (FORMAT_FEATURE_2_BLIT_DST_BIT , "BLIT_DST_BIT")+ , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT, "SAMPLED_IMAGE_FILTER_LINEAR_BIT")+ , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT , "SAMPLED_IMAGE_FILTER_CUBIC_BIT")+ , (FORMAT_FEATURE_2_TRANSFER_SRC_BIT , "TRANSFER_SRC_BIT")+ , (FORMAT_FEATURE_2_TRANSFER_DST_BIT , "TRANSFER_DST_BIT")+ , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT, "SAMPLED_IMAGE_FILTER_MINMAX_BIT")+ , (FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT , "MIDPOINT_CHROMA_SAMPLES_BIT")+ , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+ , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"+ )+ , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+ , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"+ )+ , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+ , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"+ )+ , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+ , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"+ )+ , (FORMAT_FEATURE_2_DISJOINT_BIT , "DISJOINT_BIT")+ , (FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT , "COSITED_CHROMA_SAMPLES_BIT")+ , (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_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")+ , (FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR")+ ]++instance Show FormatFeatureFlagBits2 where+ showsPrec = enumShowsPrec enumPrefixFormatFeatureFlagBits2+ showTableFormatFeatureFlagBits2+ conNameFormatFeatureFlagBits2+ (\(FormatFeatureFlagBits2 x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read FormatFeatureFlagBits2 where+ readPrec = enumReadPrec enumPrefixFormatFeatureFlagBits2+ showTableFormatFeatureFlagBits2+ conNameFormatFeatureFlagBits2+ FormatFeatureFlagBits2+
+ src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "FormatFeatureFlags2"+module Vulkan.Core13.Enums.FormatFeatureFlags2 ( FormatFeatureFlags2+ , FormatFeatureFlagBits2+ ) where++++type FormatFeatureFlags2 = FormatFeatureFlagBits2++data FormatFeatureFlagBits2+
+ src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs view
@@ -0,0 +1,123 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineCreationFeedbackFlagBits"+module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits ( pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT+ , pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT+ , pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT+ , PipelineCreationFeedbackFlags+ , PipelineCreationFeedbackFlagBits( PIPELINE_CREATION_FEEDBACK_VALID_BIT+ , PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT+ , PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT+ , ..+ )+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"+pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = PIPELINE_CREATION_FEEDBACK_VALID_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"+pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"+pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT+++type PipelineCreationFeedbackFlags = PipelineCreationFeedbackFlagBits++-- | VkPipelineCreationFeedbackFlagBits - Bitmask specifying pipeline or+-- pipeline stage creation feedback+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedback',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',+-- 'PipelineCreationFeedbackFlags'+newtype PipelineCreationFeedbackFlagBits = PipelineCreationFeedbackFlagBits Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'PIPELINE_CREATION_FEEDBACK_VALID_BIT' indicates that the feedback+-- information is valid.+pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT = PipelineCreationFeedbackFlagBits 0x00000001+-- | 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'+-- indicates that a readily usable pipeline or pipeline stage was found in+-- the @pipelineCache@ specified by the application in the pipeline+-- creation command.+--+-- An implementation /should/ set the+-- 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT' bit if+-- it was able to avoid the large majority of pipeline or pipeline stage+-- creation work by using the @pipelineCache@ parameter of+-- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV', or+-- 'Vulkan.Core10.Pipeline.createComputePipelines'. When an implementation+-- sets this bit for the entire pipeline, it /may/ leave it unset for any+-- stage.+--+-- Note+--+-- 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+-- 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+-- | 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT' indicates+-- that the base pipeline specified by the @basePipelineHandle@ or+-- @basePipelineIndex@ member of the @Vk*PipelineCreateInfo@ structure was+-- used to accelerate the creation of the pipeline.+--+-- An implementation /should/ set the+-- 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT' bit if it+-- was able to avoid a significant amount of work by using the base+-- pipeline.+--+-- Note+--+-- 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.+pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = PipelineCreationFeedbackFlagBits 0x00000004++conNamePipelineCreationFeedbackFlagBits :: String+conNamePipelineCreationFeedbackFlagBits = "PipelineCreationFeedbackFlagBits"++enumPrefixPipelineCreationFeedbackFlagBits :: String+enumPrefixPipelineCreationFeedbackFlagBits = "PIPELINE_CREATION_FEEDBACK_"++showTablePipelineCreationFeedbackFlagBits :: [(PipelineCreationFeedbackFlagBits, String)]+showTablePipelineCreationFeedbackFlagBits =+ [ (PIPELINE_CREATION_FEEDBACK_VALID_BIT , "VALID_BIT")+ , (PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT, "APPLICATION_PIPELINE_CACHE_HIT_BIT")+ , (PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT , "BASE_PIPELINE_ACCELERATION_BIT")+ ]++instance Show PipelineCreationFeedbackFlagBits where+ showsPrec = enumShowsPrec enumPrefixPipelineCreationFeedbackFlagBits+ showTablePipelineCreationFeedbackFlagBits+ conNamePipelineCreationFeedbackFlagBits+ (\(PipelineCreationFeedbackFlagBits x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read PipelineCreationFeedbackFlagBits where+ readPrec = enumReadPrec enumPrefixPipelineCreationFeedbackFlagBits+ showTablePipelineCreationFeedbackFlagBits+ conNamePipelineCreationFeedbackFlagBits+ PipelineCreationFeedbackFlagBits+
+ src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineCreationFeedbackFlagBits"+module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits ( PipelineCreationFeedbackFlags+ , PipelineCreationFeedbackFlagBits+ ) where++++type PipelineCreationFeedbackFlags = PipelineCreationFeedbackFlagBits++data PipelineCreationFeedbackFlagBits+
+ src/Vulkan/Core13/Enums/PipelineStageFlags2.hs view
@@ -0,0 +1,471 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineStageFlags2"+module Vulkan.Core13.Enums.PipelineStageFlags2 ( pattern PIPELINE_STAGE_2_NONE_KHR+ , pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR+ , pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR+ , pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR+ , pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR+ , pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR+ , pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR+ , pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR+ , pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR+ , pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR+ , pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR+ , pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR+ , pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR+ , pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR+ , pattern PIPELINE_STAGE_2_TRANSFER_BIT+ , pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR+ , pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR+ , pattern PIPELINE_STAGE_2_HOST_BIT_KHR+ , pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR+ , pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR+ , pattern PIPELINE_STAGE_2_COPY_BIT_KHR+ , pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR+ , pattern PIPELINE_STAGE_2_BLIT_BIT_KHR+ , pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR+ , pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR+ , pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR+ , pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR+ , PipelineStageFlags2+ , PipelineStageFlagBits2( PIPELINE_STAGE_2_NONE+ , PIPELINE_STAGE_2_TOP_OF_PIPE_BIT+ , PIPELINE_STAGE_2_DRAW_INDIRECT_BIT+ , PIPELINE_STAGE_2_VERTEX_INPUT_BIT+ , PIPELINE_STAGE_2_VERTEX_SHADER_BIT+ , PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT+ , PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT+ , PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT+ , PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT+ , PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT+ , PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT+ , PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT+ , PIPELINE_STAGE_2_COMPUTE_SHADER_BIT+ , PIPELINE_STAGE_2_ALL_TRANSFER_BIT+ , PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT+ , PIPELINE_STAGE_2_HOST_BIT+ , PIPELINE_STAGE_2_ALL_GRAPHICS_BIT+ , PIPELINE_STAGE_2_ALL_COMMANDS_BIT+ , PIPELINE_STAGE_2_COPY_BIT+ , PIPELINE_STAGE_2_RESOLVE_BIT+ , PIPELINE_STAGE_2_BLIT_BIT+ , PIPELINE_STAGE_2_CLEAR_BIT+ , PIPELINE_STAGE_2_INDEX_INPUT_BIT+ , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT+ , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT+ , 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_FRAGMENT_DENSITY_PROCESS_BIT_EXT+ , PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR+ , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR+ , PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+ , PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV+ , PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT+ , PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT+ , ..+ )+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags64)+-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_NONE_KHR"+pattern PIPELINE_STAGE_2_NONE_KHR = PIPELINE_STAGE_2_NONE+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR"+pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = PIPELINE_STAGE_2_TOP_OF_PIPE_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR"+pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = PIPELINE_STAGE_2_DRAW_INDIRECT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = PIPELINE_STAGE_2_VERTEX_INPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = PIPELINE_STAGE_2_VERTEX_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR"+pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR"+pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR"+pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = PIPELINE_STAGE_2_COMPUTE_SHADER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR"+pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_ALL_TRANSFER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TRANSFER_BIT"+pattern PIPELINE_STAGE_2_TRANSFER_BIT = PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR"+pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_TRANSFER_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR"+pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_HOST_BIT_KHR"+pattern PIPELINE_STAGE_2_HOST_BIT_KHR = PIPELINE_STAGE_2_HOST_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR"+pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = PIPELINE_STAGE_2_ALL_GRAPHICS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR"+pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = PIPELINE_STAGE_2_ALL_COMMANDS_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_COPY_BIT_KHR"+pattern PIPELINE_STAGE_2_COPY_BIT_KHR = PIPELINE_STAGE_2_COPY_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR"+pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR = PIPELINE_STAGE_2_RESOLVE_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_BLIT_BIT_KHR"+pattern PIPELINE_STAGE_2_BLIT_BIT_KHR = PIPELINE_STAGE_2_BLIT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR"+pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR = PIPELINE_STAGE_2_CLEAR_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = PIPELINE_STAGE_2_INDEX_INPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR"+pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR"+pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT+++type PipelineStageFlags2 = PipelineStageFlagBits2++-- | VkPipelineStageFlagBits2 - Pipeline stage flags for+-- VkPipelineStageFlags2+--+-- = Description+--+-- Note+--+-- The @TOP@ and @BOTTOM@ pipeline stages are deprecated, and applications+-- should prefer 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' and+-- 'PIPELINE_STAGE_2_NONE'.+--+-- Note+--+-- The 'PipelineStageFlags2' bitmask goes beyond the 31 individual bit+-- flags allowable within a C99 enum, which is how+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' is+-- defined. The first 31 values are common to both, and are+-- interchangeable.+--+-- = 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>+newtype PipelineStageFlagBits2 = PipelineStageFlagBits2 Flags64+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'PIPELINE_STAGE_2_NONE' specifies no stages of execution.+pattern PIPELINE_STAGE_2_NONE = PipelineStageFlagBits2 0x0000000000000000+-- | 'PIPELINE_STAGE_2_TOP_OF_PIPE_BIT' is equivalent to+-- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' with+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' set to @0@ when+-- specified in the second synchronization scope, but equivalent to+-- 'PIPELINE_STAGE_2_NONE' in the first scope.+pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = PipelineStageFlagBits2 0x0000000000000001+-- | 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT' specifies the stage of the pipeline+-- where indirect command parameters are consumed. This stage also includes+-- reading commands written by+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.+pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = PipelineStageFlagBits2 0x0000000000000002+-- | 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT' is equivalent to the logical OR of:+--+-- - 'PIPELINE_STAGE_2_INDEX_INPUT_BIT'+--+-- - 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT'+pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT = PipelineStageFlagBits2 0x0000000000000004+-- | 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT' specifies the vertex shader stage.+pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT = PipelineStageFlagBits2 0x0000000000000008+-- | 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' specifies the+-- tessellation control shader stage.+pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = PipelineStageFlagBits2 0x0000000000000010+-- | 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' specifies the+-- tessellation evaluation shader stage.+pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = PipelineStageFlagBits2 0x0000000000000020+-- | 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' specifies the geometry shader+-- stage.+pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = PipelineStageFlagBits2 0x0000000000000040+-- | 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT' specifies the fragment shader+-- stage.+pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = PipelineStageFlagBits2 0x0000000000000080+-- | '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>+-- 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>+-- 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.+pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits2 0x0000000000000400+-- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' specifies the compute shader+-- stage.+pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = PipelineStageFlagBits2 0x0000000000000800+-- | 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT' is equivalent to specifying all of:+--+-- - 'PIPELINE_STAGE_2_COPY_BIT'+--+-- - 'PIPELINE_STAGE_2_BLIT_BIT'+--+-- - 'PIPELINE_STAGE_2_RESOLVE_BIT'+--+-- - 'PIPELINE_STAGE_2_CLEAR_BIT'+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+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' set to @0@ when+-- specified in the first synchronization scope, but equivalent to+-- 'PIPELINE_STAGE_2_NONE' in the second scope.+pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = PipelineStageFlagBits2 0x0000000000002000+-- | 'PIPELINE_STAGE_2_HOST_BIT' specifies a pseudo-stage indicating+-- execution on the host of reads\/writes of device memory. This stage is+-- not invoked by any commands recorded in a command buffer.+pattern PIPELINE_STAGE_2_HOST_BIT = PipelineStageFlagBits2 0x0000000000004000+-- | 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT' specifies the execution of all+-- graphics pipeline stages, and is equivalent to the logical OR of:+--+-- - 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT'+--+-- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT'+--+-- - 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'+--+-- - 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'+--+-- - 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+--+-- - 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- - 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = PipelineStageFlagBits2 0x0000000000008000+-- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' specifies all operations performed+-- 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>,+-- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'.+pattern PIPELINE_STAGE_2_COPY_BIT = PipelineStageFlagBits2 0x0000000100000000+-- | 'PIPELINE_STAGE_2_RESOLVE_BIT' specifies the execution of+-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'.+pattern PIPELINE_STAGE_2_RESOLVE_BIT = PipelineStageFlagBits2 0x0000000200000000+-- | 'PIPELINE_STAGE_2_BLIT_BIT' specifies the execution of+-- '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>,+-- with the exception of+-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.+pattern PIPELINE_STAGE_2_CLEAR_BIT = PipelineStageFlagBits2 0x0000000800000000+-- | 'PIPELINE_STAGE_2_INDEX_INPUT_BIT' specifies the stage of the pipeline+-- where index buffers are consumed.+pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT = PipelineStageFlagBits2 0x0000001000000000+-- | 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT' specifies the stage of the+-- pipeline where vertex buffers are consumed.+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>:+--+-- - 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT'+--+-- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = PipelineStageFlagBits2 0x0000004000000000+-- | '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.+pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = PipelineStageFlagBits2 0x0000010000000000+-- | '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_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>.+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>.+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>+-- or+-- <https://www.khronos.org/registry/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+-- | 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the+-- pipeline where device-side generation of commands via+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'+-- is handled.+pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = PipelineStageFlagBits2 0x0000000000020000+-- | 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of+-- the pipeline where the predicate of conditional rendering is consumed.+pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = PipelineStageFlagBits2 0x0000000000040000+-- | 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the+-- pipeline where vertex attribute output values are written to the+-- transform feedback buffers.+pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = PipelineStageFlagBits2 0x0000000001000000++conNamePipelineStageFlagBits2 :: String+conNamePipelineStageFlagBits2 = "PipelineStageFlagBits2"++enumPrefixPipelineStageFlagBits2 :: String+enumPrefixPipelineStageFlagBits2 = "PIPELINE_STAGE_2_"++showTablePipelineStageFlagBits2 :: [(PipelineStageFlagBits2, String)]+showTablePipelineStageFlagBits2 =+ [ (PIPELINE_STAGE_2_NONE , "NONE")+ , (PIPELINE_STAGE_2_TOP_OF_PIPE_BIT , "TOP_OF_PIPE_BIT")+ , (PIPELINE_STAGE_2_DRAW_INDIRECT_BIT , "DRAW_INDIRECT_BIT")+ , (PIPELINE_STAGE_2_VERTEX_INPUT_BIT , "VERTEX_INPUT_BIT")+ , (PIPELINE_STAGE_2_VERTEX_SHADER_BIT , "VERTEX_SHADER_BIT")+ , (PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT , "TESSELLATION_CONTROL_SHADER_BIT")+ , (PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT, "TESSELLATION_EVALUATION_SHADER_BIT")+ , (PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT , "GEOMETRY_SHADER_BIT")+ , (PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT , "FRAGMENT_SHADER_BIT")+ , (PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT , "EARLY_FRAGMENT_TESTS_BIT")+ , (PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT , "LATE_FRAGMENT_TESTS_BIT")+ , (PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT , "COLOR_ATTACHMENT_OUTPUT_BIT")+ , (PIPELINE_STAGE_2_COMPUTE_SHADER_BIT , "COMPUTE_SHADER_BIT")+ , (PIPELINE_STAGE_2_ALL_TRANSFER_BIT , "ALL_TRANSFER_BIT")+ , (PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT , "BOTTOM_OF_PIPE_BIT")+ , (PIPELINE_STAGE_2_HOST_BIT , "HOST_BIT")+ , (PIPELINE_STAGE_2_ALL_GRAPHICS_BIT , "ALL_GRAPHICS_BIT")+ , (PIPELINE_STAGE_2_ALL_COMMANDS_BIT , "ALL_COMMANDS_BIT")+ , (PIPELINE_STAGE_2_COPY_BIT , "COPY_BIT")+ , (PIPELINE_STAGE_2_RESOLVE_BIT , "RESOLVE_BIT")+ , (PIPELINE_STAGE_2_BLIT_BIT , "BLIT_BIT")+ , (PIPELINE_STAGE_2_CLEAR_BIT , "CLEAR_BIT")+ , (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_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_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")+ , (PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")+ , (PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV , "COMMAND_PREPROCESS_BIT_NV")+ , (PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT , "CONDITIONAL_RENDERING_BIT_EXT")+ , (PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT , "TRANSFORM_FEEDBACK_BIT_EXT")+ ]++instance Show PipelineStageFlagBits2 where+ showsPrec = enumShowsPrec enumPrefixPipelineStageFlagBits2+ showTablePipelineStageFlagBits2+ conNamePipelineStageFlagBits2+ (\(PipelineStageFlagBits2 x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read PipelineStageFlagBits2 where+ readPrec = enumReadPrec enumPrefixPipelineStageFlagBits2+ showTablePipelineStageFlagBits2+ conNamePipelineStageFlagBits2+ PipelineStageFlagBits2+
+ src/Vulkan/Core13/Enums/PipelineStageFlags2.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "PipelineStageFlags2"+module Vulkan.Core13.Enums.PipelineStageFlags2 ( PipelineStageFlags2+ , PipelineStageFlagBits2+ ) where++++type PipelineStageFlags2 = PipelineStageFlagBits2++data PipelineStageFlagBits2+
+ src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlagBits.hs view
@@ -0,0 +1,54 @@+{-# language CPP #-}+-- No documentation found for Chapter "PrivateDataSlotCreateFlagBits"+module Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits ( PrivateDataSlotCreateFlags+ , PrivateDataSlotCreateFlagBits(..)+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+type PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlagBits++-- | VkPrivateDataSlotCreateFlagBits - Bitmask specifying additional+-- parameters for private data slot creation+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'PrivateDataSlotCreateFlags'+newtype PrivateDataSlotCreateFlagBits = PrivateDataSlotCreateFlagBits Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++++conNamePrivateDataSlotCreateFlagBits :: String+conNamePrivateDataSlotCreateFlagBits = "PrivateDataSlotCreateFlagBits"++enumPrefixPrivateDataSlotCreateFlagBits :: String+enumPrefixPrivateDataSlotCreateFlagBits = ""++showTablePrivateDataSlotCreateFlagBits :: [(PrivateDataSlotCreateFlagBits, String)]+showTablePrivateDataSlotCreateFlagBits = []++instance Show PrivateDataSlotCreateFlagBits where+ showsPrec = enumShowsPrec enumPrefixPrivateDataSlotCreateFlagBits+ showTablePrivateDataSlotCreateFlagBits+ conNamePrivateDataSlotCreateFlagBits+ (\(PrivateDataSlotCreateFlagBits x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read PrivateDataSlotCreateFlagBits where+ readPrec = enumReadPrec enumPrefixPrivateDataSlotCreateFlagBits+ showTablePrivateDataSlotCreateFlagBits+ conNamePrivateDataSlotCreateFlagBits+ PrivateDataSlotCreateFlagBits+
+ src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "PrivateDataSlotCreateFlagBits"+module Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits ( PrivateDataSlotCreateFlags+ , PrivateDataSlotCreateFlagBits+ ) where++++type PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlagBits++data PrivateDataSlotCreateFlagBits+
+ src/Vulkan/Core13/Enums/RenderingFlagBits.hs view
@@ -0,0 +1,94 @@+{-# language CPP #-}+-- No documentation found for Chapter "RenderingFlagBits"+module Vulkan.Core13.Enums.RenderingFlagBits ( pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR+ , pattern RENDERING_SUSPENDING_BIT_KHR+ , pattern RENDERING_RESUMING_BIT_KHR+ , RenderingFlags+ , RenderingFlagBits( RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT+ , RENDERING_SUSPENDING_BIT+ , RENDERING_RESUMING_BIT+ , ..+ )+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"+pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT+++-- No documentation found for TopLevel "VK_RENDERING_SUSPENDING_BIT_KHR"+pattern RENDERING_SUSPENDING_BIT_KHR = RENDERING_SUSPENDING_BIT+++-- No documentation found for TopLevel "VK_RENDERING_RESUMING_BIT_KHR"+pattern RENDERING_RESUMING_BIT_KHR = RENDERING_RESUMING_BIT+++type RenderingFlags = RenderingFlagBits++-- | VkRenderingFlagBits - Bitmask specifying additional properties of a+-- dynamic render pass instance+--+-- = Description+--+-- The contents of @pRenderingInfo@ /must/ match between suspended render+-- pass instances and the render pass instances that resume them, other+-- than the presence or absence of the 'RENDERING_RESUMING_BIT',+-- 'RENDERING_SUSPENDING_BIT', and+-- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' flags. No action or+-- synchronization commands, or other render pass instances, are allowed+-- between suspending and resuming render pass instances.+--+-- = 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_VERSION_1_3 VK_VERSION_1_3>,+-- 'RenderingFlags'+newtype RenderingFlagBits = RenderingFlagBits Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' specifies that draw+-- calls for the render pass instance will be recorded in secondary command+-- buffers.+pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = RenderingFlagBits 0x00000001+-- | 'RENDERING_SUSPENDING_BIT' specifies that the render pass instance will+-- be suspended.+pattern RENDERING_SUSPENDING_BIT = RenderingFlagBits 0x00000002+-- | 'RENDERING_RESUMING_BIT' specifies that the render pass instance is+-- resuming an earlier suspended render pass instance.+pattern RENDERING_RESUMING_BIT = RenderingFlagBits 0x00000004++conNameRenderingFlagBits :: String+conNameRenderingFlagBits = "RenderingFlagBits"++enumPrefixRenderingFlagBits :: String+enumPrefixRenderingFlagBits = "RENDERING_"++showTableRenderingFlagBits :: [(RenderingFlagBits, String)]+showTableRenderingFlagBits =+ [ (RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, "CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT")+ , (RENDERING_SUSPENDING_BIT , "SUSPENDING_BIT")+ , (RENDERING_RESUMING_BIT , "RESUMING_BIT")+ ]++instance Show RenderingFlagBits where+ showsPrec = enumShowsPrec enumPrefixRenderingFlagBits+ showTableRenderingFlagBits+ conNameRenderingFlagBits+ (\(RenderingFlagBits x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read RenderingFlagBits where+ readPrec =+ enumReadPrec enumPrefixRenderingFlagBits showTableRenderingFlagBits conNameRenderingFlagBits RenderingFlagBits+
+ src/Vulkan/Core13/Enums/RenderingFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "RenderingFlagBits"+module Vulkan.Core13.Enums.RenderingFlagBits ( RenderingFlags+ , RenderingFlagBits+ ) where++++type RenderingFlags = RenderingFlagBits++data RenderingFlagBits+
+ src/Vulkan/Core13/Enums/SubmitFlagBits.hs view
@@ -0,0 +1,59 @@+{-# language CPP #-}+-- No documentation found for Chapter "SubmitFlagBits"+module Vulkan.Core13.Enums.SubmitFlagBits ( pattern SUBMIT_PROTECTED_BIT_KHR+ , SubmitFlags+ , SubmitFlagBits( SUBMIT_PROTECTED_BIT+ , ..+ )+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_SUBMIT_PROTECTED_BIT_KHR"+pattern SUBMIT_PROTECTED_BIT_KHR = SUBMIT_PROTECTED_BIT+++type SubmitFlags = SubmitFlagBits++-- | VkSubmitFlagBits - Bitmask specifying behavior of a submission+--+-- = 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>,+-- 'SubmitFlags'+newtype SubmitFlagBits = SubmitFlagBits Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'SUBMIT_PROTECTED_BIT' specifies that this batch is a protected+-- submission.+pattern SUBMIT_PROTECTED_BIT = SubmitFlagBits 0x00000001++conNameSubmitFlagBits :: String+conNameSubmitFlagBits = "SubmitFlagBits"++enumPrefixSubmitFlagBits :: String+enumPrefixSubmitFlagBits = "SUBMIT_PROTECTED_BIT"++showTableSubmitFlagBits :: [(SubmitFlagBits, String)]+showTableSubmitFlagBits = [(SUBMIT_PROTECTED_BIT, "")]++instance Show SubmitFlagBits where+ showsPrec = enumShowsPrec enumPrefixSubmitFlagBits+ showTableSubmitFlagBits+ conNameSubmitFlagBits+ (\(SubmitFlagBits x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read SubmitFlagBits where+ readPrec = enumReadPrec enumPrefixSubmitFlagBits showTableSubmitFlagBits conNameSubmitFlagBits SubmitFlagBits+
+ src/Vulkan/Core13/Enums/SubmitFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "SubmitFlagBits"+module Vulkan.Core13.Enums.SubmitFlagBits ( SubmitFlags+ , SubmitFlagBits+ ) where++++type SubmitFlags = SubmitFlagBits++data SubmitFlagBits+
+ src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs view
@@ -0,0 +1,124 @@+{-# language CPP #-}+-- No documentation found for Chapter "ToolPurposeFlagBits"+module Vulkan.Core13.Enums.ToolPurposeFlagBits ( pattern TOOL_PURPOSE_VALIDATION_BIT_EXT+ , pattern TOOL_PURPOSE_PROFILING_BIT_EXT+ , pattern TOOL_PURPOSE_TRACING_BIT_EXT+ , pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT+ , pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT+ , ToolPurposeFlags+ , ToolPurposeFlagBits( TOOL_PURPOSE_VALIDATION_BIT+ , TOOL_PURPOSE_PROFILING_BIT+ , TOOL_PURPOSE_TRACING_BIT+ , TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT+ , TOOL_PURPOSE_MODIFYING_FEATURES_BIT+ , TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT+ , TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT+ , ..+ )+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showString)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Foreign.Storable (Storable)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Vulkan.Core10.FundamentalTypes (Flags)+-- No documentation found for TopLevel "VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"+pattern TOOL_PURPOSE_VALIDATION_BIT_EXT = TOOL_PURPOSE_VALIDATION_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_PROFILING_BIT_EXT"+pattern TOOL_PURPOSE_PROFILING_BIT_EXT = TOOL_PURPOSE_PROFILING_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_TRACING_BIT_EXT"+pattern TOOL_PURPOSE_TRACING_BIT_EXT = TOOL_PURPOSE_TRACING_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"+pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT+++-- No documentation found for TopLevel "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"+pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = TOOL_PURPOSE_MODIFYING_FEATURES_BIT+++type ToolPurposeFlags = ToolPurposeFlagBits++-- | VkToolPurposeFlagBits - Bitmask specifying the purposes of an active+-- tool+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'ToolPurposeFlags'+newtype ToolPurposeFlagBits = ToolPurposeFlagBits Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'TOOL_PURPOSE_VALIDATION_BIT' specifies that the tool provides+-- validation of API usage.+pattern TOOL_PURPOSE_VALIDATION_BIT = ToolPurposeFlagBits 0x00000001+-- | 'TOOL_PURPOSE_PROFILING_BIT' specifies that the tool provides profiling+-- of API usage.+pattern TOOL_PURPOSE_PROFILING_BIT = ToolPurposeFlagBits 0x00000002+-- | 'TOOL_PURPOSE_TRACING_BIT' specifies that the tool is capturing data+-- about the application’s API usage, including anything from simple+-- logging to capturing data for later replay.+pattern TOOL_PURPOSE_TRACING_BIT = ToolPurposeFlagBits 0x00000004+-- | 'TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT' specifies that the tool provides+-- additional API features\/extensions on top of the underlying+-- implementation.+pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = ToolPurposeFlagBits 0x00000008+-- | 'TOOL_PURPOSE_MODIFYING_FEATURES_BIT' specifies that the tool modifies+-- 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>+-- 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>,+-- or+-- <https://www.khronos.org/registry/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+-- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT' or+-- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT'+pattern TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = ToolPurposeFlagBits 0x00000020++conNameToolPurposeFlagBits :: String+conNameToolPurposeFlagBits = "ToolPurposeFlagBits"++enumPrefixToolPurposeFlagBits :: String+enumPrefixToolPurposeFlagBits = "TOOL_PURPOSE_"++showTableToolPurposeFlagBits :: [(ToolPurposeFlagBits, String)]+showTableToolPurposeFlagBits =+ [ (TOOL_PURPOSE_VALIDATION_BIT , "VALIDATION_BIT")+ , (TOOL_PURPOSE_PROFILING_BIT , "PROFILING_BIT")+ , (TOOL_PURPOSE_TRACING_BIT , "TRACING_BIT")+ , (TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT, "ADDITIONAL_FEATURES_BIT")+ , (TOOL_PURPOSE_MODIFYING_FEATURES_BIT , "MODIFYING_FEATURES_BIT")+ , (TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT , "DEBUG_MARKERS_BIT_EXT")+ , (TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT, "DEBUG_REPORTING_BIT_EXT")+ ]++instance Show ToolPurposeFlagBits where+ showsPrec = enumShowsPrec enumPrefixToolPurposeFlagBits+ showTableToolPurposeFlagBits+ conNameToolPurposeFlagBits+ (\(ToolPurposeFlagBits x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read ToolPurposeFlagBits where+ readPrec = enumReadPrec enumPrefixToolPurposeFlagBits+ showTableToolPurposeFlagBits+ conNameToolPurposeFlagBits+ ToolPurposeFlagBits+
+ src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "ToolPurposeFlagBits"+module Vulkan.Core13.Enums.ToolPurposeFlagBits ( ToolPurposeFlags+ , ToolPurposeFlagBits+ ) where++++type ToolPurposeFlags = ToolPurposeFlagBits++data ToolPurposeFlagBits+
+ src/Vulkan/Core13/Handles.hs view
@@ -0,0 +1,57 @@+{-# language CPP #-}+-- No documentation found for Chapter "Handles"+module Vulkan.Core13.Handles ( PrivateDataSlot(..)+ , PhysicalDevice(..)+ , Device(..)+ , Queue(..)+ , CommandBuffer(..)+ , Buffer(..)+ , Image(..)+ , ImageView(..)+ , Fence(..)+ , Semaphore(..)+ , Event(..)+ , QueryPool(..)+ ) where++import GHC.Show (showParen)+import Numeric (showHex)+import Vulkan.Zero (Zero)+import Foreign.Storable (Storable)+import Data.Word (Word64)+import Vulkan.Core10.APIConstants (HasObjectType(..))+import Vulkan.Core10.APIConstants (IsHandle)+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PRIVATE_DATA_SLOT))+import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Event(..))+import Vulkan.Core10.Handles (Fence(..))+import Vulkan.Core10.Handles (Image(..))+import Vulkan.Core10.Handles (ImageView(..))+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (QueryPool(..))+import Vulkan.Core10.Handles (Queue(..))+import Vulkan.Core10.Handles (Semaphore(..))+-- | VkPrivateDataSlot - Opaque handle to a private data slot object+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',+-- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot',+-- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData',+-- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData',+-- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT'+newtype PrivateDataSlot = PrivateDataSlot Word64+ deriving newtype (Eq, Ord, Storable, Zero)+ deriving anyclass (IsHandle)+instance HasObjectType PrivateDataSlot where+ objectTypeAndHandle (PrivateDataSlot h) = (OBJECT_TYPE_PRIVATE_DATA_SLOT, h)+instance Show PrivateDataSlot where+ showsPrec p (PrivateDataSlot x) = showParen (p >= 11) (showString "PrivateDataSlot 0x" . showHex x)+
+ src/Vulkan/Core13/Handles.hs-boot view
@@ -0,0 +1,8 @@+{-# language CPP #-}+-- No documentation found for Chapter "Handles"+module Vulkan.Core13.Handles (PrivateDataSlot) where++++data PrivateDataSlot+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs view
@@ -0,0 +1,1294 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_extended_dynamic_state"+module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state ( cmdSetCullMode+ , cmdSetFrontFace+ , cmdSetPrimitiveTopology+ , cmdSetViewportWithCount+ , cmdSetScissorWithCount+ , cmdBindVertexBuffers2+ , cmdSetDepthTestEnable+ , cmdSetDepthWriteEnable+ , cmdSetDepthCompareOp+ , cmdSetDepthBoundsTestEnable+ , cmdSetStencilTestEnable+ , cmdSetStencilOp+ , DynamicState(..)+ ) 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 Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import qualified Data.Vector (null)+import Control.Monad.IO.Class (MonadIO)+import Foreign.Storable (Storable(poke))+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+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.Core10.Enums.CompareOp (CompareOp)+import Vulkan.Core10.Enums.CompareOp (CompareOp(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBindVertexBuffers2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCullMode))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBoundsTestEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthCompareOp))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthTestEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthWriteEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFrontFace))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveTopology))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetScissorWithCount))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilOp))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilTestEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWithCount))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.FrontFace (FrontFace)+import Vulkan.Core10.Enums.FrontFace (FrontFace(..))+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlagBits(..))+import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlags)+import Vulkan.Core10.Enums.StencilOp (StencilOp)+import Vulkan.Core10.Enums.StencilOp (StencilOp(..))+import Vulkan.Core10.Pipeline (Viewport)+import Vulkan.Core10.Enums.DynamicState (DynamicState(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetCullMode+ :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ()) -> Ptr CommandBuffer_T -> CullModeFlags -> IO ()++-- | vkCmdSetCullMode - Set cull mode dynamically for a command buffer+--+-- = Description+--+-- This command sets the cull mode for subsequent drawing commands when the+-- graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@cullMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetCullMode-None-03384# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetCullMode-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetCullMode-cullMode-parameter# @cullMode@ /must/ be a+-- valid combination of+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values+--+-- - #VUID-vkCmdSetCullMode-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-vkCmdSetCullMode-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags'+cmdSetCullMode :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @cullMode@ specifies the cull mode property to use for drawing.+ CullModeFlags+ -> io ()+cmdSetCullMode commandBuffer cullMode = liftIO $ do+ let vkCmdSetCullModePtr = pVkCmdSetCullMode (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetCullModePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCullMode is null" Nothing Nothing+ let vkCmdSetCullMode' = mkVkCmdSetCullMode vkCmdSetCullModePtr+ traceAroundEvent "vkCmdSetCullMode" (vkCmdSetCullMode' (commandBufferHandle (commandBuffer)) (cullMode))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetFrontFace+ :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ()) -> Ptr CommandBuffer_T -> FrontFace -> IO ()++-- | vkCmdSetFrontFace - Set front face orientation dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the front face orientation for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@frontFace@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetFrontFace-None-03383# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetFrontFace-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetFrontFace-frontFace-parameter# @frontFace@ /must/ be a+-- valid 'Vulkan.Core10.Enums.FrontFace.FrontFace' value+--+-- - #VUID-vkCmdSetFrontFace-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-vkCmdSetFrontFace-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.FrontFace.FrontFace'+cmdSetFrontFace :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value+ -- specifying the front-facing triangle orientation to be used for culling.+ FrontFace+ -> io ()+cmdSetFrontFace commandBuffer frontFace = liftIO $ do+ let vkCmdSetFrontFacePtr = pVkCmdSetFrontFace (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetFrontFacePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFrontFace is null" Nothing Nothing+ let vkCmdSetFrontFace' = mkVkCmdSetFrontFace vkCmdSetFrontFacePtr+ traceAroundEvent "vkCmdSetFrontFace" (vkCmdSetFrontFace' (commandBufferHandle (commandBuffer)) (frontFace))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetPrimitiveTopology+ :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) -> Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()++-- | vkCmdSetPrimitiveTopology - Set primitive topology state dynamically for+-- a command buffer+--+-- = Description+--+-- This command sets the primitive topology for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetPrimitiveTopology-None-03347# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameter#+-- @primitiveTopology@ /must/ be a valid+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value+--+-- - #VUID-vkCmdSetPrimitiveTopology-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-vkCmdSetPrimitiveTopology-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology'+cmdSetPrimitiveTopology :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @primitiveTopology@ specifies the primitive topology to use for drawing.+ PrimitiveTopology+ -> io ()+cmdSetPrimitiveTopology commandBuffer primitiveTopology = liftIO $ do+ let vkCmdSetPrimitiveTopologyPtr = pVkCmdSetPrimitiveTopology (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetPrimitiveTopologyPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveTopology is null" Nothing Nothing+ let vkCmdSetPrimitiveTopology' = mkVkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopologyPtr+ traceAroundEvent "vkCmdSetPrimitiveTopology" (vkCmdSetPrimitiveTopology' (commandBufferHandle (commandBuffer)) (primitiveTopology))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetViewportWithCount+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()++-- | vkCmdSetViewportWithCount - Set the viewport count and viewports+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the viewport count and viewports state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- and @pViewports@ values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetViewportWithCount-None-03393# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdSetViewportWithCount-viewportCount-03394# @viewportCount@+-- /must/ be between @1@ and+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+-- inclusive+--+-- - #VUID-vkCmdSetViewportWithCount-viewportCount-03395# 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-vkCmdSetViewportWithCount-commandBuffer-04819# @commandBuffer@+-- /must/ not have+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+-- enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetViewportWithCount-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetViewportWithCount-pViewports-parameter# @pViewports@+-- /must/ be a valid pointer to an array of @viewportCount@ valid+-- 'Vulkan.Core10.Pipeline.Viewport' structures+--+-- - #VUID-vkCmdSetViewportWithCount-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-vkCmdSetViewportWithCount-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetViewportWithCount-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'+cmdSetViewportWithCount :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pViewports@ specifies the viewports to use for drawing.+ ("viewports" ::: Vector Viewport)+ -> io ()+cmdSetViewportWithCount commandBuffer viewports = liftIO . evalContT $ do+ let vkCmdSetViewportWithCountPtr = pVkCmdSetViewportWithCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdSetViewportWithCountPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportWithCount is null" Nothing Nothing+ let vkCmdSetViewportWithCount' = mkVkCmdSetViewportWithCount vkCmdSetViewportWithCountPtr+ 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 "vkCmdSetViewportWithCount" (vkCmdSetViewportWithCount' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetScissorWithCount+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()++-- | vkCmdSetScissorWithCount - Set the scissor count and scissor rectangular+-- bounds dynamically for a command buffer+--+-- = Description+--+-- This command sets the scissor count and scissor rectangular bounds state+-- for subsequence drawing commands when the graphics pipeline is created+-- with 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- and @pScissors@ values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetScissorWithCount-None-03396# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdSetScissorWithCount-scissorCount-03397# @scissorCount@+-- /must/ be between @1@ and+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+-- inclusive+--+-- - #VUID-vkCmdSetScissorWithCount-scissorCount-03398# 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-vkCmdSetScissorWithCount-x-03399# The @x@ and @y@ members of+-- @offset@ member of any element of @pScissors@ /must/ be greater than+-- or equal to @0@+--+-- - #VUID-vkCmdSetScissorWithCount-offset-03400# Evaluation of+-- (@offset.x@ + @extent.width@) /must/ not cause a signed integer+-- addition overflow for any element of @pScissors@+--+-- - #VUID-vkCmdSetScissorWithCount-offset-03401# Evaluation of+-- (@offset.y@ + @extent.height@) /must/ not cause a signed integer+-- addition overflow for any element of @pScissors@+--+-- - #VUID-vkCmdSetScissorWithCount-commandBuffer-04820# @commandBuffer@+-- /must/ not have+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+-- enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetScissorWithCount-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetScissorWithCount-pScissors-parameter# @pScissors@+-- /must/ be a valid pointer to an array of @scissorCount@+-- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- - #VUID-vkCmdSetScissorWithCount-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-vkCmdSetScissorWithCount-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetScissorWithCount-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D'+cmdSetScissorWithCount :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pScissors@ specifies the scissors to use for drawing.+ ("scissors" ::: Vector Rect2D)+ -> io ()+cmdSetScissorWithCount commandBuffer scissors = liftIO . evalContT $ do+ let vkCmdSetScissorWithCountPtr = pVkCmdSetScissorWithCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdSetScissorWithCountPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissorWithCount is null" Nothing Nothing+ let vkCmdSetScissorWithCount' = mkVkCmdSetScissorWithCount vkCmdSetScissorWithCountPtr+ 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 "vkCmdSetScissorWithCount" (vkCmdSetScissorWithCount' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBindVertexBuffers2+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()++-- | vkCmdBindVertexBuffers2 - Bind vertex buffers to a command buffer and+-- dynamically set strides+--+-- = 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]. If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the+-- bound size of the vertex buffer starting from the corresponding elements+-- 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>+-- 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)>.+--+-- This command also \<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+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, strides are specified by the+-- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@ values+-- used to create the currently active pipeline.+--+-- If the bound pipeline state object was also 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'+-- /can/ be used instead of 'cmdBindVertexBuffers2' to set the stride.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBindVertexBuffers2-firstBinding-03355# @firstBinding@+-- /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-vkCmdBindVertexBuffers2-firstBinding-03356# The sum of+-- @firstBinding@ and @bindingCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-vkCmdBindVertexBuffers2-pOffsets-03357# All elements of+-- @pOffsets@ /must/ be less than the size of the corresponding element+-- in @pBuffers@+--+-- - #VUID-vkCmdBindVertexBuffers2-pSizes-03358# If @pSizes@ is not+-- @NULL@, all elements of @pOffsets@ plus @pSizes@ /must/ be less than+-- or equal to the size of the corresponding element in @pBuffers@+--+-- - #VUID-vkCmdBindVertexBuffers2-pBuffers-03359# All elements of+-- @pBuffers@ /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'+-- flag+--+-- - #VUID-vkCmdBindVertexBuffers2-pBuffers-03360# Each element of+-- @pBuffers@ that is non-sparse /must/ be bound completely and+-- 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>+-- feature is not enabled, all elements of @pBuffers@ /must/ not be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdBindVertexBuffers2-pBuffers-04112# If an element of+-- @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+-- corresponding element of @pOffsets@ /must/ be zero+--+-- - #VUID-vkCmdBindVertexBuffers2-pStrides-03362# If @pStrides@ is not+-- @NULL@ each element of @pStrides@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@+--+-- - #VUID-vkCmdBindVertexBuffers2-pStrides-06209# If @pStrides@ is not+-- @NULL@ each element of @pStrides@ /must/ be either 0 or greater than+-- or equal to the maximum extent of all vertex input attributes+-- fetched from the corresponding binding, where the extent is+-- calculated as the+-- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@offset@+-- plus+-- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@+-- size+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBindVertexBuffers2-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBindVertexBuffers2-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-vkCmdBindVertexBuffers2-pOffsets-parameter# @pOffsets@ /must/+-- be a valid pointer to an array of @bindingCount@+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- - #VUID-vkCmdBindVertexBuffers2-pSizes-parameter# If @pSizes@ is not+-- @NULL@, @pSizes@ /must/ be a valid pointer to an array of+-- @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- - #VUID-vkCmdBindVertexBuffers2-pStrides-parameter# If @pStrides@ is+-- not @NULL@, @pStrides@ /must/ be a valid pointer to an array of+-- @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- - #VUID-vkCmdBindVertexBuffers2-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-vkCmdBindVertexBuffers2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBindVertexBuffers2-bindingCount-arraylength# If any of+-- @pSizes@, or @pStrides@ are not @NULL@, @bindingCount@ /must/ be+-- greater than @0@+--+-- - #VUID-vkCmdBindVertexBuffers2-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdBindVertexBuffers2 :: 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)+ -> -- | @pSizes@ is @NULL@ or a pointer to an array of the size in bytes of+ -- vertex data bound from @pBuffers@.+ ("sizes" ::: Vector DeviceSize)+ -> -- | @pStrides@ is @NULL@ or a pointer to an array of buffer strides.+ ("strides" ::: Vector DeviceSize)+ -> io ()+cmdBindVertexBuffers2 commandBuffer firstBinding buffers offsets sizes strides = liftIO . evalContT $ do+ let vkCmdBindVertexBuffers2Ptr = pVkCmdBindVertexBuffers2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdBindVertexBuffers2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers2 is null" Nothing Nothing+ let vkCmdBindVertexBuffers2' = mkVkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2Ptr+ 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+ let pSizesLength = Data.Vector.length $ (sizes)+ lift $ unless (fromIntegral pSizesLength == pBuffersLength || pSizesLength == 0) $+ throwIO $ IOError Nothing InvalidArgument "" "pSizes and pBuffers must have the same length" Nothing Nothing+ let pStridesLength = Data.Vector.length $ (strides)+ lift $ unless (fromIntegral pStridesLength == pBuffersLength || pStridesLength == 0) $+ throwIO $ IOError Nothing InvalidArgument "" "pStrides 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)+ pSizes <- if Data.Vector.null (sizes)+ then pure nullPtr+ else do+ pPSizes <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (sizes))) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes))+ pure $ pPSizes+ pStrides <- if Data.Vector.null (strides)+ then pure nullPtr+ else do+ pPStrides <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (strides))) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPStrides `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((strides))+ pure $ pPStrides+ lift $ traceAroundEvent "vkCmdBindVertexBuffers2" (vkCmdBindVertexBuffers2' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes pStrides)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetDepthTestEnable+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthTestEnable - Set depth test enable dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth test enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthTestEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetDepthTestEnable-None-03352# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetDepthTestEnable-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-vkCmdSetDepthTestEnable-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthTestEnable :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @depthTestEnable@ specifies if the depth test is enabled.+ ("depthTestEnable" ::: Bool)+ -> io ()+cmdSetDepthTestEnable commandBuffer depthTestEnable = liftIO $ do+ let vkCmdSetDepthTestEnablePtr = pVkCmdSetDepthTestEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetDepthTestEnablePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthTestEnable is null" Nothing Nothing+ let vkCmdSetDepthTestEnable' = mkVkCmdSetDepthTestEnable vkCmdSetDepthTestEnablePtr+ traceAroundEvent "vkCmdSetDepthTestEnable" (vkCmdSetDepthTestEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthTestEnable)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetDepthWriteEnable+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthWriteEnable - Set depth write enable dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth write enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthWriteEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetDepthWriteEnable-None-03354# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetDepthWriteEnable-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-vkCmdSetDepthWriteEnable-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthWriteEnable :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @depthWriteEnable@ specifies if depth writes are enabled.+ ("depthWriteEnable" ::: Bool)+ -> io ()+cmdSetDepthWriteEnable commandBuffer depthWriteEnable = liftIO $ do+ let vkCmdSetDepthWriteEnablePtr = pVkCmdSetDepthWriteEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetDepthWriteEnablePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthWriteEnable is null" Nothing Nothing+ let vkCmdSetDepthWriteEnable' = mkVkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnablePtr+ traceAroundEvent "vkCmdSetDepthWriteEnable" (vkCmdSetDepthWriteEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthWriteEnable)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetDepthCompareOp+ :: FunPtr (Ptr CommandBuffer_T -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> CompareOp -> IO ()++-- | vkCmdSetDepthCompareOp - Set depth comparison operator dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth comparison operator for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthCompareOp@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetDepthCompareOp-None-03353# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameter#+-- @depthCompareOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+--+-- - #VUID-vkCmdSetDepthCompareOp-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-vkCmdSetDepthCompareOp-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp'+cmdSetDepthCompareOp :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @depthCompareOp@ specifies the depth comparison operator.+ ("depthCompareOp" ::: CompareOp)+ -> io ()+cmdSetDepthCompareOp commandBuffer depthCompareOp = liftIO $ do+ let vkCmdSetDepthCompareOpPtr = pVkCmdSetDepthCompareOp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetDepthCompareOpPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthCompareOp is null" Nothing Nothing+ let vkCmdSetDepthCompareOp' = mkVkCmdSetDepthCompareOp vkCmdSetDepthCompareOpPtr+ traceAroundEvent "vkCmdSetDepthCompareOp" (vkCmdSetDepthCompareOp' (commandBufferHandle (commandBuffer)) (depthCompareOp))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetDepthBoundsTestEnable+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthBoundsTestEnable - Set depth bounds test enable dynamically+-- for a command buffer+--+-- = Description+--+-- This command sets the depth bounds enable for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthBoundsTestEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetDepthBoundsTestEnable-None-03349# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetDepthBoundsTestEnable-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-vkCmdSetDepthBoundsTestEnable-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBoundsTestEnable :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @depthBoundsTestEnable@ specifies if the depth bounds test is enabled.+ ("depthBoundsTestEnable" ::: Bool)+ -> io ()+cmdSetDepthBoundsTestEnable commandBuffer depthBoundsTestEnable = liftIO $ do+ let vkCmdSetDepthBoundsTestEnablePtr = pVkCmdSetDepthBoundsTestEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetDepthBoundsTestEnablePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBoundsTestEnable is null" Nothing Nothing+ let vkCmdSetDepthBoundsTestEnable' = mkVkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnablePtr+ traceAroundEvent "vkCmdSetDepthBoundsTestEnable" (vkCmdSetDepthBoundsTestEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBoundsTestEnable)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetStencilTestEnable+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetStencilTestEnable - Set stencil test enable dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil test enable for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetStencilTestEnable-None-03350# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetStencilTestEnable-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-vkCmdSetStencilTestEnable-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetStencilTestEnable :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @stencilTestEnable@ specifies if the stencil test is enabled.+ ("stencilTestEnable" ::: Bool)+ -> io ()+cmdSetStencilTestEnable commandBuffer stencilTestEnable = liftIO $ do+ let vkCmdSetStencilTestEnablePtr = pVkCmdSetStencilTestEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetStencilTestEnablePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilTestEnable is null" Nothing Nothing+ let vkCmdSetStencilTestEnable' = mkVkCmdSetStencilTestEnable vkCmdSetStencilTestEnablePtr+ traceAroundEvent "vkCmdSetStencilTestEnable" (vkCmdSetStencilTestEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (stencilTestEnable)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetStencilOp+ :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()++-- | vkCmdSetStencilOp - Set stencil operation dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the stencil operation for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@failOp@,+-- @passOp@, @depthFailOp@, and @compareOp@ values used to create the+-- currently active pipeline, for both front and back faces.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetStencilOp-None-03351# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetStencilOp-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetStencilOp-faceMask-parameter# @faceMask@ /must/ be a+-- valid combination of+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- - #VUID-vkCmdSetStencilOp-faceMask-requiredbitmask# @faceMask@ /must/+-- not be @0@+--+-- - #VUID-vkCmdSetStencilOp-failOp-parameter# @failOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+--+-- - #VUID-vkCmdSetStencilOp-passOp-parameter# @passOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+--+-- - #VUID-vkCmdSetStencilOp-depthFailOp-parameter# @depthFailOp@ /must/+-- be a valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+--+-- - #VUID-vkCmdSetStencilOp-compareOp-parameter# @compareOp@ /must/ be a+-- valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+--+-- - #VUID-vkCmdSetStencilOp-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-vkCmdSetStencilOp-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags',+-- 'Vulkan.Core10.Enums.StencilOp.StencilOp'+cmdSetStencilOp :: 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 stencil operation.+ ("faceMask" ::: StencilFaceFlags)+ -> -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying+ -- the action performed on samples that fail the stencil test.+ ("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.+ ("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.+ ("depthFailOp" ::: StencilOp)+ -> -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+ -- specifying the comparison operator used in the stencil test.+ CompareOp+ -> io ()+cmdSetStencilOp commandBuffer faceMask failOp passOp depthFailOp compareOp = liftIO $ do+ let vkCmdSetStencilOpPtr = pVkCmdSetStencilOp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetStencilOpPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilOp is null" Nothing Nothing+ let vkCmdSetStencilOp' = mkVkCmdSetStencilOp vkCmdSetStencilOpPtr+ traceAroundEvent "vkCmdSetStencilOp" (vkCmdSetStencilOp' (commandBufferHandle (commandBuffer)) (faceMask) (failOp) (passOp) (depthFailOp) (compareOp))+ pure $ ()+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs view
@@ -0,0 +1,280 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_extended_dynamic_state2"+module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2 ( cmdSetRasterizerDiscardEnable+ , cmdSetDepthBiasEnable+ , cmdSetPrimitiveRestartEnable+ , DynamicState(..)+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Control.Monad.IO.Class (MonadIO)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+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.Dynamic (DeviceCmds(pVkCmdSetDepthBiasEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveRestartEnable))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizerDiscardEnable))+import Vulkan.Core10.Enums.DynamicState (DynamicState(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetRasterizerDiscardEnable+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetRasterizerDiscardEnable - Control whether primitives are+-- discarded before the rasterization stage dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the discard enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetRasterizerDiscardEnable-None-04871# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetRasterizerDiscardEnable-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-vkCmdSetRasterizerDiscardEnable-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_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetRasterizerDiscardEnable :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @rasterizerDiscardEnable@ controls whether primitives are discarded+ -- immediately before the rasterization stage.+ ("rasterizerDiscardEnable" ::: Bool)+ -> io ()+cmdSetRasterizerDiscardEnable commandBuffer rasterizerDiscardEnable = liftIO $ do+ let vkCmdSetRasterizerDiscardEnablePtr = pVkCmdSetRasterizerDiscardEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetRasterizerDiscardEnablePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRasterizerDiscardEnable is null" Nothing Nothing+ let vkCmdSetRasterizerDiscardEnable' = mkVkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnablePtr+ traceAroundEvent "vkCmdSetRasterizerDiscardEnable" (vkCmdSetRasterizerDiscardEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (rasterizerDiscardEnable)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetDepthBiasEnable+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthBiasEnable - Control whether to bias fragment depth values+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the depth bias enable for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetDepthBiasEnable-None-04872# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetDepthBiasEnable-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-vkCmdSetDepthBiasEnable-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_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBiasEnable :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @depthBiasEnable@ controls whether to bias fragment depth values.+ ("depthBiasEnable" ::: Bool)+ -> io ()+cmdSetDepthBiasEnable commandBuffer depthBiasEnable = liftIO $ do+ let vkCmdSetDepthBiasEnablePtr = pVkCmdSetDepthBiasEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetDepthBiasEnablePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBiasEnable is null" Nothing Nothing+ let vkCmdSetDepthBiasEnable' = mkVkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnablePtr+ traceAroundEvent "vkCmdSetDepthBiasEnable" (vkCmdSetDepthBiasEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBiasEnable)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetPrimitiveRestartEnable+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetPrimitiveRestartEnable - Set primitive assembly restart state+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the primitive restart enable for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetPrimitiveRestartEnable-None-04866# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetPrimitiveRestartEnable-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-vkCmdSetPrimitiveRestartEnable-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_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetPrimitiveRestartEnable :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @primitiveRestartEnable@ controls whether a special vertex index value+ -- is treated as restarting the assembly of primitives. It behaves in the+ -- same way as+ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@+ ("primitiveRestartEnable" ::: Bool)+ -> io ()+cmdSetPrimitiveRestartEnable commandBuffer primitiveRestartEnable = liftIO $ do+ let vkCmdSetPrimitiveRestartEnablePtr = pVkCmdSetPrimitiveRestartEnable (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetPrimitiveRestartEnablePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveRestartEnable is null" Nothing Nothing+ let vkCmdSetPrimitiveRestartEnable' = mkVkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnablePtr+ traceAroundEvent "vkCmdSetPrimitiveRestartEnable" (vkCmdSetPrimitiveRestartEnable' (commandBufferHandle (commandBuffer)) (boolToBool32 (primitiveRestartEnable)))+ pure $ ()+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs view
@@ -0,0 +1,103 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_image_robustness"+module Vulkan.Core13.Promoted_From_VK_EXT_image_robustness ( PhysicalDeviceImageRobustnessFeatures(..)+ , StructureType(..)+ ) 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.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_ROBUSTNESS_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceImageRobustnessFeatures - Structure describing the+-- out-of-bounds behavior for an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceImageRobustnessFeatures' 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. 'PhysicalDeviceImageRobustnessFeatures' /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_robustness VK_EXT_image_robustness>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceImageRobustnessFeatures = PhysicalDeviceImageRobustnessFeatures+ { -- | #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>+ -- 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>,+ -- with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A+ -- components based on the format.+ robustImageAccess :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceImageRobustnessFeatures)+#endif+deriving instance Show PhysicalDeviceImageRobustnessFeatures++instance ToCStruct PhysicalDeviceImageRobustnessFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceImageRobustnessFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustImageAccess))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceImageRobustnessFeatures where+ peekCStruct p = do+ robustImageAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceImageRobustnessFeatures+ (bool32ToBool robustImageAccess)++instance Storable PhysicalDeviceImageRobustnessFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceImageRobustnessFeatures where+ zero = PhysicalDeviceImageRobustnessFeatures+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_image_robustness"+module Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceImageRobustnessFeatures++instance ToCStruct PhysicalDeviceImageRobustnessFeatures+instance Show PhysicalDeviceImageRobustnessFeatures++instance FromCStruct PhysicalDeviceImageRobustnessFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs view
@@ -0,0 +1,352 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_inline_uniform_block"+module Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block ( PhysicalDeviceInlineUniformBlockFeatures(..)+ , PhysicalDeviceInlineUniformBlockProperties(..)+ , WriteDescriptorSetInlineUniformBlock(..)+ , DescriptorPoolInlineUniformBlockCreateInfo(..)+ , DescriptorType(..)+ , StructureType(..)+ ) 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.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.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK))+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(..))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceInlineUniformBlockFeatures - Structure describing inline+-- uniform block features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceInlineUniformBlockFeatures' 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. 'PhysicalDeviceInlineUniformBlockFeatures' /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_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceInlineUniformBlockFeatures = PhysicalDeviceInlineUniformBlockFeatures+ { -- | #extension-features-inlineUniformBlock# @inlineUniformBlock@ indicates+ -- whether the implementation supports inline uniform block descriptors. If+ -- this feature is not enabled,+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+ -- /must/ not be used.+ inlineUniformBlock :: Bool+ , -- | #extension-features-descriptorBindingInlineUniformBlockUpdateAfterBind#+ -- @descriptorBindingInlineUniformBlockUpdateAfterBind@ indicates whether+ -- the implementation supports updating inline uniform block descriptors+ -- after a set is bound. If this feature is not enabled,+ -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'+ -- /must/ not be used with+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'.+ descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInlineUniformBlockFeatures)+#endif+deriving instance Show PhysicalDeviceInlineUniformBlockFeatures++instance ToCStruct PhysicalDeviceInlineUniformBlockFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceInlineUniformBlockFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (inlineUniformBlock))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (descriptorBindingInlineUniformBlockUpdateAfterBind))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)+ 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 PhysicalDeviceInlineUniformBlockFeatures where+ peekCStruct p = do+ inlineUniformBlock <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ descriptorBindingInlineUniformBlockUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ pure $ PhysicalDeviceInlineUniformBlockFeatures+ (bool32ToBool inlineUniformBlock) (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind)++instance Storable PhysicalDeviceInlineUniformBlockFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInlineUniformBlockFeatures where+ zero = PhysicalDeviceInlineUniformBlockFeatures+ zero+ zero+++-- | VkPhysicalDeviceInlineUniformBlockProperties - Structure describing+-- inline uniform block properties that can be supported by an+-- implementation+--+-- = Description+--+-- If the 'PhysicalDeviceInlineUniformBlockProperties' 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_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+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>+ -- binding.+ maxInlineUniformBlockSize :: Word32+ , -- No documentation found for Nested "VkPhysicalDeviceInlineUniformBlockProperties" "maxPerStageDescriptorInlineUniformBlocks"+ maxPerStageDescriptorInlineUniformBlocks :: Word32+ , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#+ -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to+ -- @maxPerStageDescriptorInlineUniformBlocks@ but counts descriptor+ -- bindings from descriptor sets created with or without the+ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+ -- bit set.+ maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32+ , -- | #extension-limits-maxDescriptorSetInlineUniformBlocks#+ -- @maxDescriptorSetInlineUniformBlocks@ is the maximum number of inline+ -- uniform block bindings that /can/ be included in descriptor bindings in+ -- a pipeline layout across all pipeline shader stages and descriptor set+ -- numbers. Descriptor bindings with a descriptor type of+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'+ -- count against this limit. Only descriptor bindings in descriptor set+ -- layouts created without the+ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+ -- bit set count against this limit.+ maxDescriptorSetInlineUniformBlocks :: Word32+ , -- | #extension-limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks#+ -- @maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ is similar to+ -- @maxDescriptorSetInlineUniformBlocks@ but counts descriptor bindings+ -- from descriptor sets created with or without the+ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+ -- bit set.+ maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInlineUniformBlockProperties)+#endif+deriving instance Show PhysicalDeviceInlineUniformBlockProperties++instance ToCStruct PhysicalDeviceInlineUniformBlockProperties where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceInlineUniformBlockProperties{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockSize)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (maxPerStageDescriptorInlineUniformBlocks)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (maxDescriptorSetInlineUniformBlocks)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindInlineUniformBlocks)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+ f++instance FromCStruct PhysicalDeviceInlineUniformBlockProperties where+ peekCStruct p = do+ maxInlineUniformBlockSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ maxPerStageDescriptorInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ maxDescriptorSetInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+ maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pure $ PhysicalDeviceInlineUniformBlockProperties+ maxInlineUniformBlockSize maxPerStageDescriptorInlineUniformBlocks maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks maxDescriptorSetInlineUniformBlocks maxDescriptorSetUpdateAfterBindInlineUniformBlocks++instance Storable PhysicalDeviceInlineUniformBlockProperties where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInlineUniformBlockProperties where+ zero = PhysicalDeviceInlineUniformBlockProperties+ zero+ zero+ zero+ zero+ zero+++-- | VkWriteDescriptorSetInlineUniformBlock - Structure specifying inline+-- uniform block data+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data WriteDescriptorSetInlineUniformBlock = WriteDescriptorSetInlineUniformBlock+ { -- | @dataSize@ is the number of bytes of inline uniform block data pointed+ -- to by @pData@.+ --+ -- #VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222# @dataSize@+ -- /must/ be an integer multiple of @4@+ --+ -- #VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylength#+ -- @dataSize@ /must/ be greater than @0@+ dataSize :: Word32+ , -- | @pData@ is a pointer to @dataSize@ number of bytes of data to write to+ -- the inline uniform block.+ --+ -- #VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameter# @pData@+ -- /must/ be a valid pointer to an array of @dataSize@ bytes+ data' :: Ptr ()+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (WriteDescriptorSetInlineUniformBlock)+#endif+deriving instance Show WriteDescriptorSetInlineUniformBlock++instance ToCStruct WriteDescriptorSetInlineUniformBlock where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p WriteDescriptorSetInlineUniformBlock{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (dataSize)+ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+ f++instance FromCStruct WriteDescriptorSetInlineUniformBlock where+ peekCStruct p = do+ dataSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+ pure $ WriteDescriptorSetInlineUniformBlock+ dataSize pData++instance Storable WriteDescriptorSetInlineUniformBlock where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero WriteDescriptorSetInlineUniformBlock where+ zero = WriteDescriptorSetInlineUniformBlock+ zero+ zero+++-- | VkDescriptorPoolInlineUniformBlockCreateInfo - Structure specifying the+-- maximum number of inline uniform block bindings of a newly created+-- descriptor pool+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DescriptorPoolInlineUniformBlockCreateInfo = DescriptorPoolInlineUniformBlockCreateInfo+ { -- | @maxInlineUniformBlockBindings@ is the number of inline uniform block+ -- bindings to allocate.+ maxInlineUniformBlockBindings :: Word32 }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DescriptorPoolInlineUniformBlockCreateInfo)+#endif+deriving instance Show DescriptorPoolInlineUniformBlockCreateInfo++instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfo where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p DescriptorPoolInlineUniformBlockCreateInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockBindings)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ f++instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfo where+ peekCStruct p = do+ maxInlineUniformBlockBindings <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pure $ DescriptorPoolInlineUniformBlockCreateInfo+ maxInlineUniformBlockBindings++instance Storable DescriptorPoolInlineUniformBlockCreateInfo where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DescriptorPoolInlineUniformBlockCreateInfo where+ zero = DescriptorPoolInlineUniformBlockCreateInfo+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs-boot view
@@ -0,0 +1,43 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_inline_uniform_block"+module Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block ( DescriptorPoolInlineUniformBlockCreateInfo+ , PhysicalDeviceInlineUniformBlockFeatures+ , PhysicalDeviceInlineUniformBlockProperties+ , WriteDescriptorSetInlineUniformBlock+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DescriptorPoolInlineUniformBlockCreateInfo++instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfo+instance Show DescriptorPoolInlineUniformBlockCreateInfo++instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfo+++data PhysicalDeviceInlineUniformBlockFeatures++instance ToCStruct PhysicalDeviceInlineUniformBlockFeatures+instance Show PhysicalDeviceInlineUniformBlockFeatures++instance FromCStruct PhysicalDeviceInlineUniformBlockFeatures+++data PhysicalDeviceInlineUniformBlockProperties++instance ToCStruct PhysicalDeviceInlineUniformBlockProperties+instance Show PhysicalDeviceInlineUniformBlockProperties++instance FromCStruct PhysicalDeviceInlineUniformBlockProperties+++data WriteDescriptorSetInlineUniformBlock++instance ToCStruct WriteDescriptorSetInlineUniformBlock+instance Show WriteDescriptorSetInlineUniformBlock++instance FromCStruct WriteDescriptorSetInlineUniformBlock+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_cache_control.hs view
@@ -0,0 +1,120 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_cache_control"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control ( PhysicalDevicePipelineCreationCacheControlFeatures(..)+ , PipelineCacheCreateFlagBits(..)+ , PipelineCacheCreateFlags+ , StructureType(..)+ , Result(..)+ , PipelineCreateFlagBits(..)+ , PipelineCreateFlags+ ) 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.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_PIPELINE_CREATION_CACHE_CONTROL_FEATURES))+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDevicePipelineCreationCacheControlFeatures - Structure+-- describing whether pipeline cache control can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePipelineCreationCacheControlFeatures' 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. 'PhysicalDevicePipelineCreationCacheControlFeatures' /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_creation_cache_control VK_EXT_pipeline_creation_cache_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePipelineCreationCacheControlFeatures = PhysicalDevicePipelineCreationCacheControlFeatures+ { -- | #extension-features-pipelineCreationCacheControl#+ -- @pipelineCreationCacheControl@ indicates that the implementation+ -- supports:+ --+ -- - The following /can/ be used in @Vk*PipelineCreateInfo@::@flags@:+ --+ -- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+ --+ -- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'+ --+ -- - The following /can/ be used in+ -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo'::@flags@:+ --+ -- - 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT'+ pipelineCreationCacheControl :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePipelineCreationCacheControlFeatures)+#endif+deriving instance Show PhysicalDevicePipelineCreationCacheControlFeatures++instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePipelineCreationCacheControlFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineCreationCacheControl))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeatures where+ peekCStruct p = do+ pipelineCreationCacheControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDevicePipelineCreationCacheControlFeatures+ (bool32ToBool pipelineCreationCacheControl)++instance Storable PhysicalDevicePipelineCreationCacheControlFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePipelineCreationCacheControlFeatures where+ zero = PhysicalDevicePipelineCreationCacheControlFeatures+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_cache_control.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_cache_control"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePipelineCreationCacheControlFeatures++instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeatures+instance Show PhysicalDevicePipelineCreationCacheControlFeatures++instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs view
@@ -0,0 +1,243 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_feedback"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback ( PipelineCreationFeedback(..)+ , PipelineCreationFeedbackCreateInfo(..)+ , StructureType(..)+ , PipelineCreationFeedbackFlagBits(..)+ , PipelineCreationFeedbackFlags+ ) 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.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.Word (Word64)+import Data.Kind (Type)+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO))+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlagBits(..))+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPipelineCreationFeedback - Feedback about the creation of a pipeline+-- or pipeline stage+--+-- = Description+--+-- If the+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_VALID_BIT'+-- is not set in @flags@, an implementation /must/ not set any other bits+-- in @flags@, and the values of all other 'PipelineCreationFeedback' data+-- members are undefined.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'PipelineCreationFeedbackCreateInfo',+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PipelineCreationFeedbackFlagBits',+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PipelineCreationFeedbackFlags'+data PipelineCreationFeedback = PipelineCreationFeedback+ { -- | @flags@ is a bitmask of+ -- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PipelineCreationFeedbackFlagBits'+ -- providing feedback about the creation of a pipeline or of a pipeline+ -- stage.+ flags :: PipelineCreationFeedbackFlags+ , -- | @duration@ is the duration spent creating a pipeline or pipeline stage+ -- in nanoseconds.+ duration :: Word64+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineCreationFeedback)+#endif+deriving instance Show PipelineCreationFeedback++instance ToCStruct PipelineCreationFeedback where+ withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineCreationFeedback{..} f = do+ poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlags)) (flags)+ poke ((p `plusPtr` 8 :: Ptr Word64)) (duration)+ f+ cStructSize = 16+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlags)) (zero)+ poke ((p `plusPtr` 8 :: Ptr Word64)) (zero)+ f++instance FromCStruct PipelineCreationFeedback where+ peekCStruct p = do+ flags <- peek @PipelineCreationFeedbackFlags ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlags))+ duration <- peek @Word64 ((p `plusPtr` 8 :: Ptr Word64))+ pure $ PipelineCreationFeedback+ flags duration++instance Storable PipelineCreationFeedback where+ sizeOf ~_ = 16+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineCreationFeedback where+ zero = PipelineCreationFeedback+ zero+ zero+++-- | VkPipelineCreationFeedbackCreateInfo - Request for feedback about the+-- creation of a pipeline+--+-- = Description+--+-- An implementation /should/ write pipeline creation feedback to+-- @pPipelineCreationFeedback@ and /may/ write pipeline stage creation+-- feedback to @pPipelineStageCreationFeedbacks@. An implementation /must/+-- set or clear the+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_VALID_BIT'+-- in 'PipelineCreationFeedback'::@flags@ for @pPipelineCreationFeedback@+-- and every element of @pPipelineStageCreationFeedbacks@.+--+-- Note+--+-- One common scenario for an implementation to skip per-stage feedback is+-- when+-- 'Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits.PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT'+-- is set in @pPipelineCreationFeedback@.+--+-- When chained to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', or+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', the @i@ element of+-- @pPipelineStageCreationFeedbacks@ corresponds to the @i@ element of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@pStages@,+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@pStages@,+-- or 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@. When+-- chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', the first+-- element of @pPipelineStageCreationFeedbacks@ corresponds to+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo'::@stage@.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02668#+-- When chained to 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+-- /must/ equal+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@stageCount@+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02669#+-- When chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',+-- 'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+-- /must/ equal 1+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02670#+-- When chained to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+-- /must/ equal+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@stageCount@+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02969#+-- When chained to+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',+-- 'PipelineCreationFeedback'::@pipelineStageCreationFeedbackCount@+-- /must/ equal+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@stageCount@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO'+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameter#+-- @pPipelineCreationFeedback@ /must/ be a valid pointer to a+-- 'PipelineCreationFeedback' structure+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameter#+-- @pPipelineStageCreationFeedbacks@ /must/ be a valid pointer to an+-- array of @pipelineStageCreationFeedbackCount@+-- 'PipelineCreationFeedback' structures+--+-- - #VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-arraylength#+-- @pipelineStageCreationFeedbackCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'PipelineCreationFeedback',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineCreationFeedbackCreateInfo = PipelineCreationFeedbackCreateInfo+ { -- | @pPipelineCreationFeedback@ is a pointer to a 'PipelineCreationFeedback'+ -- structure.+ pipelineCreationFeedback :: Ptr PipelineCreationFeedback+ , -- | @pipelineStageCreationFeedbackCount@ is the number of elements in+ -- @pPipelineStageCreationFeedbacks@.+ pipelineStageCreationFeedbackCount :: Word32+ , -- | @pPipelineStageCreationFeedbacks@ is a pointer to an array of+ -- @pipelineStageCreationFeedbackCount@ 'PipelineCreationFeedback'+ -- structures.+ pipelineStageCreationFeedbacks :: Ptr PipelineCreationFeedback+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineCreationFeedbackCreateInfo)+#endif+deriving instance Show PipelineCreationFeedbackCreateInfo++instance ToCStruct PipelineCreationFeedbackCreateInfo where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineCreationFeedbackCreateInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedback))) (pipelineCreationFeedback)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (pipelineStageCreationFeedbackCount)+ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedback))) (pipelineStageCreationFeedbacks)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedback))) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedback))) (zero)+ f++instance FromCStruct PipelineCreationFeedbackCreateInfo where+ peekCStruct p = do+ pPipelineCreationFeedback <- peek @(Ptr PipelineCreationFeedback) ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedback)))+ pipelineStageCreationFeedbackCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ pPipelineStageCreationFeedbacks <- peek @(Ptr PipelineCreationFeedback) ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedback)))+ pure $ PipelineCreationFeedbackCreateInfo+ pPipelineCreationFeedback pipelineStageCreationFeedbackCount pPipelineStageCreationFeedbacks++instance Storable PipelineCreationFeedbackCreateInfo where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineCreationFeedbackCreateInfo where+ zero = PipelineCreationFeedbackCreateInfo+ zero+ zero+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs-boot view
@@ -0,0 +1,25 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_feedback"+module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback ( PipelineCreationFeedback+ , PipelineCreationFeedbackCreateInfo+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PipelineCreationFeedback++instance ToCStruct PipelineCreationFeedback+instance Show PipelineCreationFeedback++instance FromCStruct PipelineCreationFeedback+++data PipelineCreationFeedbackCreateInfo++instance ToCStruct PipelineCreationFeedbackCreateInfo+instance Show PipelineCreationFeedbackCreateInfo++instance FromCStruct PipelineCreationFeedbackCreateInfo+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs view
@@ -0,0 +1,563 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_private_data"+module Vulkan.Core13.Promoted_From_VK_EXT_private_data ( createPrivateDataSlot+ , withPrivateDataSlot+ , destroyPrivateDataSlot+ , setPrivateData+ , getPrivateData+ , DevicePrivateDataCreateInfo(..)+ , PrivateDataSlotCreateInfo(..)+ , PhysicalDevicePrivateDataFeatures(..)+ , PrivateDataSlot(..)+ , StructureType(..)+ , ObjectType(..)+ , PrivateDataSlotCreateFlagBits(..)+ , PrivateDataSlotCreateFlags+ ) 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.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.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 (Word64)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+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(pVkCreatePrivateDataSlot))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyPrivateDataSlot))+import Vulkan.Dynamic (DeviceCmds(pVkGetPrivateData))+import Vulkan.Dynamic (DeviceCmds(pVkSetPrivateData))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core10.Enums.ObjectType (ObjectType)+import Vulkan.Core10.Enums.ObjectType (ObjectType(..))+import Vulkan.Core13.Handles (PrivateDataSlot)+import Vulkan.Core13.Handles (PrivateDataSlot(..))+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlags)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.Enums.ObjectType (ObjectType(..))+import Vulkan.Core13.Handles (PrivateDataSlot(..))+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlagBits(..))+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCreatePrivateDataSlot+ :: FunPtr (Ptr Device_T -> Ptr PrivateDataSlotCreateInfo -> Ptr AllocationCallbacks -> Ptr PrivateDataSlot -> IO Result) -> Ptr Device_T -> Ptr PrivateDataSlotCreateInfo -> Ptr AllocationCallbacks -> Ptr PrivateDataSlot -> IO Result++-- | vkCreatePrivateDataSlot - Create a slot for private data storage+--+-- == Valid Usage+--+-- - #VUID-vkCreatePrivateDataSlot-privateData-04564# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-privateData privateData>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCreatePrivateDataSlot-device-parameter# @device@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkCreatePrivateDataSlot-pCreateInfo-parameter# @pCreateInfo@+-- /must/ be a valid pointer to a valid 'PrivateDataSlotCreateInfo'+-- structure+--+-- - #VUID-vkCreatePrivateDataSlot-pAllocator-parameter# If @pAllocator@+-- is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- - #VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameter#+-- @pPrivateDataSlot@ /must/ be a valid pointer to a+-- 'Vulkan.Core13.Handles.PrivateDataSlot' handle+--+-- == 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_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core13.Handles.PrivateDataSlot',+-- 'PrivateDataSlotCreateInfo'+createPrivateDataSlot :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device associated with the creation of the+ -- object(s) holding the private data slot.+ Device+ -> -- | @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>+ -- chapter.+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io (PrivateDataSlot)+createPrivateDataSlot device createInfo allocator = liftIO . evalContT $ do+ let vkCreatePrivateDataSlotPtr = pVkCreatePrivateDataSlot (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkCreatePrivateDataSlotPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreatePrivateDataSlot is null" Nothing Nothing+ let vkCreatePrivateDataSlot' = mkVkCreatePrivateDataSlot vkCreatePrivateDataSlotPtr+ pCreateInfo <- ContT $ withCStruct (createInfo)+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ pPPrivateDataSlot <- ContT $ bracket (callocBytes @PrivateDataSlot 8) free+ r <- lift $ traceAroundEvent "vkCreatePrivateDataSlot" (vkCreatePrivateDataSlot' (deviceHandle (device)) pCreateInfo pAllocator (pPPrivateDataSlot))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pPrivateDataSlot <- lift $ peek @PrivateDataSlot pPPrivateDataSlot+ pure $ (pPrivateDataSlot)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createPrivateDataSlot' and 'destroyPrivateDataSlot'+--+-- To ensure that 'destroyPrivateDataSlot' 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.+--+withPrivateDataSlot :: forall io r . MonadIO io => Device -> PrivateDataSlotCreateInfo -> Maybe AllocationCallbacks -> (io PrivateDataSlot -> (PrivateDataSlot -> io ()) -> r) -> r+withPrivateDataSlot device pCreateInfo pAllocator b =+ b (createPrivateDataSlot device pCreateInfo pAllocator)+ (\(o0) -> destroyPrivateDataSlot device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkDestroyPrivateDataSlot+ :: FunPtr (Ptr Device_T -> PrivateDataSlot -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> PrivateDataSlot -> Ptr AllocationCallbacks -> IO ()++-- | vkDestroyPrivateDataSlot - Destroy a private data slot+--+-- == Valid Usage+--+-- - #VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062# If+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+-- provided when @privateDataSlot@ was created, a compatible set of+-- callbacks /must/ be provided here+--+-- - #VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063# If no+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+-- provided when @privateDataSlot@ was created, @pAllocator@ /must/ be+-- @NULL@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkDestroyPrivateDataSlot-device-parameter# @device@ /must/ be+-- a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameter# If+-- @privateDataSlot@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @privateDataSlot@ /must/ be a valid+-- 'Vulkan.Core13.Handles.PrivateDataSlot' handle+--+-- - #VUID-vkDestroyPrivateDataSlot-pAllocator-parameter# If @pAllocator@+-- is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- - #VUID-vkDestroyPrivateDataSlot-privateDataSlot-parent# If+-- @privateDataSlot@ is a valid handle, it /must/ have been created,+-- allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- - Host access to @privateDataSlot@ /must/ be externally synchronized+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core13.Handles.PrivateDataSlot'+destroyPrivateDataSlot :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device associated with the creation of the+ -- object(s) holding the private data slot.+ Device+ -> -- | @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>+ -- chapter.+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io ()+destroyPrivateDataSlot device privateDataSlot allocator = liftIO . evalContT $ do+ let vkDestroyPrivateDataSlotPtr = pVkDestroyPrivateDataSlot (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkDestroyPrivateDataSlotPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPrivateDataSlot is null" Nothing Nothing+ let vkDestroyPrivateDataSlot' = mkVkDestroyPrivateDataSlot vkDestroyPrivateDataSlotPtr+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ lift $ traceAroundEvent "vkDestroyPrivateDataSlot" (vkDestroyPrivateDataSlot' (deviceHandle (device)) (privateDataSlot) pAllocator)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkSetPrivateData+ :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Word64 -> IO Result) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Word64 -> IO Result++-- | vkSetPrivateData - Associate data with a Vulkan object+--+-- == 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_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.Enums.ObjectType.ObjectType',+-- 'Vulkan.Core13.Handles.PrivateDataSlot'+setPrivateData :: forall io+ . (MonadIO io)+ => -- | @device@ is the device that created the object.+ --+ -- #VUID-vkSetPrivateData-device-parameter# @device@ /must/ be a valid+ -- 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying+ -- the type of object to associate data with.+ --+ -- #VUID-vkSetPrivateData-objectType-parameter# @objectType@ /must/ be a+ -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value+ ObjectType+ -> -- | @objectHandle@ is a handle to the object to associate data with.+ --+ -- #VUID-vkSetPrivateData-objectHandle-04016# @objectHandle@ /must/ be+ -- @device@ or a child of @device@+ --+ -- #VUID-vkSetPrivateData-objectHandle-04017# @objectHandle@ /must/ be a+ -- valid handle to an object of type @objectType@+ ("objectHandle" ::: Word64)+ -> -- | @privateDataSlot@ is a handle to a+ -- 'Vulkan.Core13.Handles.PrivateDataSlot' specifying location of private+ -- data storage.+ --+ -- #VUID-vkSetPrivateData-privateDataSlot-parameter# @privateDataSlot@+ -- /must/ be a valid 'Vulkan.Core13.Handles.PrivateDataSlot' handle+ --+ -- #VUID-vkSetPrivateData-privateDataSlot-parent# @privateDataSlot@ /must/+ -- have been created, allocated, or retrieved from @device@+ PrivateDataSlot+ -> -- | @data@ is user defined data to associate the object with. This data will+ -- be stored at @privateDataSlot@.+ ("data" ::: Word64)+ -> io ()+setPrivateData device objectType objectHandle privateDataSlot data' = liftIO $ do+ let vkSetPrivateDataPtr = pVkSetPrivateData (case device of Device{deviceCmds} -> deviceCmds)+ unless (vkSetPrivateDataPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetPrivateData is null" Nothing Nothing+ let vkSetPrivateData' = mkVkSetPrivateData vkSetPrivateDataPtr+ r <- traceAroundEvent "vkSetPrivateData" (vkSetPrivateData' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (data'))+ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetPrivateData+ :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Ptr Word64 -> IO ()) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlot -> Ptr Word64 -> IO ()++-- | vkGetPrivateData - Retrieve data associated with a Vulkan object+--+-- = Description+--+-- Note+--+-- Due to platform details on Android, implementations might not be able to+-- reliably return @0@ from calls to 'getPrivateData' for+-- 'Vulkan.Extensions.Handles.SwapchainKHR' objects on which+-- 'setPrivateData' has not previously been called. This erratum is+-- exclusive to the Android platform and objects of type+-- 'Vulkan.Extensions.Handles.SwapchainKHR'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.Enums.ObjectType.ObjectType',+-- 'Vulkan.Core13.Handles.PrivateDataSlot'+getPrivateData :: forall io+ . (MonadIO io)+ => -- | @device@ is the device that created the object+ --+ -- #VUID-vkGetPrivateData-device-parameter# @device@ /must/ be a valid+ -- 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying+ -- the type of object data is associated with.+ --+ -- #VUID-vkGetPrivateData-objectType-04018# @objectType@ /must/ be+ -- 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_DEVICE', or an object type+ -- whose parent is 'Vulkan.Core10.Handles.Device'+ --+ -- #VUID-vkGetPrivateData-objectType-parameter# @objectType@ /must/ be a+ -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value+ ObjectType+ -> -- | @objectHandle@ is a handle to the object data is associated with.+ ("objectHandle" ::: Word64)+ -> -- | @privateDataSlot@ is a handle to a+ -- 'Vulkan.Core13.Handles.PrivateDataSlot' specifying location of private+ -- data pointer storage.+ --+ -- #VUID-vkGetPrivateData-privateDataSlot-parameter# @privateDataSlot@+ -- /must/ be a valid 'Vulkan.Core13.Handles.PrivateDataSlot' handle+ --+ -- #VUID-vkGetPrivateData-privateDataSlot-parent# @privateDataSlot@ /must/+ -- have been created, allocated, or retrieved from @device@+ PrivateDataSlot+ -> io (("data" ::: Word64))+getPrivateData device objectType objectHandle privateDataSlot = liftIO . evalContT $ do+ let vkGetPrivateDataPtr = pVkGetPrivateData (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetPrivateDataPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPrivateData is null" Nothing Nothing+ let vkGetPrivateData' = mkVkGetPrivateData vkGetPrivateDataPtr+ pPData <- ContT $ bracket (callocBytes @Word64 8) free+ lift $ traceAroundEvent "vkGetPrivateData" (vkGetPrivateData' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (pPData))+ pData <- lift $ peek @Word64 pPData+ pure $ (pData)+++-- | VkDevicePrivateDataCreateInfo - Reserve private data slots+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DevicePrivateDataCreateInfo = DevicePrivateDataCreateInfo+ { -- | @privateDataSlotRequestCount@ is the amount of slots to reserve.+ privateDataSlotRequestCount :: Word32 }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DevicePrivateDataCreateInfo)+#endif+deriving instance Show DevicePrivateDataCreateInfo++instance ToCStruct DevicePrivateDataCreateInfo where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p DevicePrivateDataCreateInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (privateDataSlotRequestCount)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ f++instance FromCStruct DevicePrivateDataCreateInfo where+ peekCStruct p = do+ privateDataSlotRequestCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pure $ DevicePrivateDataCreateInfo+ privateDataSlotRequestCount++instance Storable DevicePrivateDataCreateInfo where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DevicePrivateDataCreateInfo where+ zero = DevicePrivateDataCreateInfo+ zero+++-- | VkPrivateDataSlotCreateInfo - Structure specifying the parameters of+-- private data slot construction+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits.PrivateDataSlotCreateFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createPrivateDataSlot',+-- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT'+data PrivateDataSlotCreateInfo = PrivateDataSlotCreateInfo+ { -- | @flags@ is a bitmask of+ -- 'Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits.PrivateDataSlotCreateFlags'+ -- specifying additional parameters of the new private data slot+ --+ -- #VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmask# @flags@ /must/ be+ -- @0@+ flags :: PrivateDataSlotCreateFlags }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PrivateDataSlotCreateInfo)+#endif+deriving instance Show PrivateDataSlotCreateInfo++instance ToCStruct PrivateDataSlotCreateInfo where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PrivateDataSlotCreateInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlags)) (flags)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlags)) (zero)+ f++instance FromCStruct PrivateDataSlotCreateInfo where+ peekCStruct p = do+ flags <- peek @PrivateDataSlotCreateFlags ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlags))+ pure $ PrivateDataSlotCreateInfo+ flags++instance Storable PrivateDataSlotCreateInfo where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PrivateDataSlotCreateInfo where+ zero = PrivateDataSlotCreateInfo+ zero+++-- | VkPhysicalDevicePrivateDataFeatures - Structure specifying physical+-- device support+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePrivateDataFeatures' 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. 'PhysicalDevicePrivateDataFeatures' /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_private_data VK_EXT_private_data>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+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>.+ privateData :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePrivateDataFeatures)+#endif+deriving instance Show PhysicalDevicePrivateDataFeatures++instance ToCStruct PhysicalDevicePrivateDataFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePrivateDataFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (privateData))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDevicePrivateDataFeatures where+ peekCStruct p = do+ privateData <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDevicePrivateDataFeatures+ (bool32ToBool privateData)++instance Storable PhysicalDevicePrivateDataFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePrivateDataFeatures where+ zero = PhysicalDevicePrivateDataFeatures+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs-boot view
@@ -0,0 +1,34 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_private_data"+module Vulkan.Core13.Promoted_From_VK_EXT_private_data ( DevicePrivateDataCreateInfo+ , PhysicalDevicePrivateDataFeatures+ , PrivateDataSlotCreateInfo+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DevicePrivateDataCreateInfo++instance ToCStruct DevicePrivateDataCreateInfo+instance Show DevicePrivateDataCreateInfo++instance FromCStruct DevicePrivateDataCreateInfo+++data PhysicalDevicePrivateDataFeatures++instance ToCStruct PhysicalDevicePrivateDataFeatures+instance Show PhysicalDevicePrivateDataFeatures++instance FromCStruct PhysicalDevicePrivateDataFeatures+++data PrivateDataSlotCreateInfo++instance ToCStruct PrivateDataSlotCreateInfo+instance Show PrivateDataSlotCreateInfo++instance FromCStruct PrivateDataSlotCreateInfo+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs view
@@ -0,0 +1,99 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_shader_demote_to_helper_invocation"+module Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation ( PhysicalDeviceShaderDemoteToHelperInvocationFeatures(..)+ , StructureType(..)+ ) 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.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_DEMOTE_TO_HELPER_INVOCATION_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - Structure+-- describing the shader demote to helper invocations features that can be+-- supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderDemoteToHelperInvocationFeatures' 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. 'PhysicalDeviceShaderDemoteToHelperInvocationFeatures' /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_demote_to_helper_invocation VK_EXT_shader_demote_to_helper_invocation>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderDemoteToHelperInvocationFeatures = PhysicalDeviceShaderDemoteToHelperInvocationFeatures+ { -- | #extension-features-shaderDemoteToHelperInvocation#+ -- @shaderDemoteToHelperInvocation@ indicates whether the implementation+ -- supports the SPIR-V @DemoteToHelperInvocationEXT@ capability.+ shaderDemoteToHelperInvocation :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)+#endif+deriving instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeatures++instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderDemoteToHelperInvocationFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderDemoteToHelperInvocation))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+ peekCStruct p = do+ shaderDemoteToHelperInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceShaderDemoteToHelperInvocationFeatures+ (bool32ToBool shaderDemoteToHelperInvocation)++instance Storable PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderDemoteToHelperInvocationFeatures where+ zero = PhysicalDeviceShaderDemoteToHelperInvocationFeatures+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_shader_demote_to_helper_invocation"+module Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderDemoteToHelperInvocationFeatures++instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures+instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeatures++instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs view
@@ -0,0 +1,322 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_subgroup_size_control"+module Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control ( PhysicalDeviceSubgroupSizeControlFeatures(..)+ , PhysicalDeviceSubgroupSizeControlProperties(..)+ , PipelineShaderStageRequiredSubgroupSizeCreateInfo(..)+ , StructureType(..)+ , PipelineShaderStageCreateFlagBits(..)+ , PipelineShaderStageCreateFlags+ ) 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.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.Enums.ShaderStageFlagBits (ShaderStageFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceSubgroupSizeControlFeatures - Structure describing the+-- subgroup size control features that can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceSubgroupSizeControlFeatures' 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. 'PhysicalDeviceSubgroupSizeControlFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- Note+--+-- The+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT'+-- structure was added in version 2 of the @VK_EXT_subgroup_size_control@+-- extension. Version 1 implementations of this extension will not fill out+-- 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>+-- section.) Applications are advised to add a+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT'+-- structure to the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features+-- regardless of the version of the extension supported by the+-- implementation. If the implementation only supports version 1, it will+-- safely ignore the+-- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT'+-- structure.+--+-- Vulkan 1.3 implementations always support the features structure.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSubgroupSizeControlFeatures = PhysicalDeviceSubgroupSizeControlFeatures+ { -- | #extension-features-subgroupSizeControl# @subgroupSizeControl@ indicates+ -- whether the implementation supports controlling shader subgroup sizes+ -- via the+ -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+ -- flag and the 'PipelineShaderStageRequiredSubgroupSizeCreateInfo'+ -- structure.+ subgroupSizeControl :: Bool+ , -- | #extension-features-computeFullSubgroups# @computeFullSubgroups@+ -- indicates whether the implementation supports requiring full subgroups+ -- in compute shaders via the+ -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+ -- flag.+ computeFullSubgroups :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSubgroupSizeControlFeatures)+#endif+deriving instance Show PhysicalDeviceSubgroupSizeControlFeatures++instance ToCStruct PhysicalDeviceSubgroupSizeControlFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceSubgroupSizeControlFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (subgroupSizeControl))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (computeFullSubgroups))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES)+ 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 PhysicalDeviceSubgroupSizeControlFeatures where+ peekCStruct p = do+ subgroupSizeControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ computeFullSubgroups <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ pure $ PhysicalDeviceSubgroupSizeControlFeatures+ (bool32ToBool subgroupSizeControl) (bool32ToBool computeFullSubgroups)++instance Storable PhysicalDeviceSubgroupSizeControlFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSubgroupSizeControlFeatures where+ zero = PhysicalDeviceSubgroupSizeControlFeatures+ zero+ zero+++-- | VkPhysicalDeviceSubgroupSizeControlProperties - Structure describing the+-- control subgroup size properties of an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceSubgroupSizeControlProperties' 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.+--+-- 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 >,+-- @minSubgroupSize@ /must/ be greater than or equal to 4.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSubgroupSizeControlProperties = PhysicalDeviceSubgroupSizeControlProperties+ { -- | #extension-limits-minSubgroupSize# @minSubgroupSize@ is the minimum+ -- subgroup size supported by this device. @minSubgroupSize@ is at least+ -- one if any of the physical device’s queues support+ -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+ -- '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>.+ minSubgroupSize :: Word32+ , -- | #extension-limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum+ -- subgroup size supported by this device. @maxSubgroupSize@ is at least+ -- one if any of the physical device’s queues support+ -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+ -- '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>.+ maxSubgroupSize :: Word32+ , -- | #extension-limits-maxComputeWorkgroupSubgroups#+ -- @maxComputeWorkgroupSubgroups@ is the maximum number of subgroups+ -- supported by the implementation within a workgroup.+ maxComputeWorkgroupSubgroups :: Word32+ , -- | #extension-limits-requiredSubgroupSizeStages#+ -- @requiredSubgroupSizeStages@ is a bitfield of what shader stages support+ -- having a required subgroup size specified.+ requiredSubgroupSizeStages :: ShaderStageFlags+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSubgroupSizeControlProperties)+#endif+deriving instance Show PhysicalDeviceSubgroupSizeControlProperties++instance ToCStruct PhysicalDeviceSubgroupSizeControlProperties where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceSubgroupSizeControlProperties{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (minSubgroupSize)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (maxSubgroupSize)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (maxComputeWorkgroupSubgroups)+ poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (requiredSubgroupSizeStages)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (zero)+ f++instance FromCStruct PhysicalDeviceSubgroupSizeControlProperties where+ peekCStruct p = do+ minSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ maxSubgroupSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ maxComputeWorkgroupSubgroups <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ requiredSubgroupSizeStages <- peek @ShaderStageFlags ((p `plusPtr` 28 :: Ptr ShaderStageFlags))+ pure $ PhysicalDeviceSubgroupSizeControlProperties+ minSubgroupSize maxSubgroupSize maxComputeWorkgroupSubgroups requiredSubgroupSizeStages++instance Storable PhysicalDeviceSubgroupSizeControlProperties where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSubgroupSizeControlProperties where+ zero = PhysicalDeviceSubgroupSizeControlProperties+ zero+ zero+ zero+ zero+++-- | VkPipelineShaderStageRequiredSubgroupSizeCreateInfo - Structure+-- specifying the required subgroup size of a newly created pipeline shader+-- stage+--+-- = Description+--+-- If a 'PipelineShaderStageRequiredSubgroupSizeCreateInfo' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', it specifies+-- that the pipeline shader stage being compiled has a required subgroup+-- size.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineShaderStageRequiredSubgroupSizeCreateInfo = PipelineShaderStageRequiredSubgroupSizeCreateInfo+ { -- | #pipelines-required-subgroup-size# @requiredSubgroupSize@ is an unsigned+ -- integer value specifying the required subgroup size for the newly+ -- created pipeline shader stage.+ --+ -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760#+ -- @requiredSubgroupSize@ /must/ be a power-of-two integer+ --+ -- #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>+ --+ -- #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>+ requiredSubgroupSize :: Word32 }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineShaderStageRequiredSubgroupSizeCreateInfo)+#endif+deriving instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfo++instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineShaderStageRequiredSubgroupSizeCreateInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (requiredSubgroupSize)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ f++instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo where+ peekCStruct p = do+ requiredSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pure $ PipelineShaderStageRequiredSubgroupSizeCreateInfo+ requiredSubgroupSize++instance Storable PipelineShaderStageRequiredSubgroupSizeCreateInfo where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineShaderStageRequiredSubgroupSizeCreateInfo where+ zero = PipelineShaderStageRequiredSubgroupSizeCreateInfo+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs-boot view
@@ -0,0 +1,34 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_subgroup_size_control"+module Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control ( PhysicalDeviceSubgroupSizeControlFeatures+ , PhysicalDeviceSubgroupSizeControlProperties+ , PipelineShaderStageRequiredSubgroupSizeCreateInfo+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceSubgroupSizeControlFeatures++instance ToCStruct PhysicalDeviceSubgroupSizeControlFeatures+instance Show PhysicalDeviceSubgroupSizeControlFeatures++instance FromCStruct PhysicalDeviceSubgroupSizeControlFeatures+++data PhysicalDeviceSubgroupSizeControlProperties++instance ToCStruct PhysicalDeviceSubgroupSizeControlProperties+instance Show PhysicalDeviceSubgroupSizeControlProperties++instance FromCStruct PhysicalDeviceSubgroupSizeControlProperties+++data PipelineShaderStageRequiredSubgroupSizeCreateInfo++instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo+instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfo++instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs view
@@ -0,0 +1,139 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texel_buffer_alignment"+module Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment ( PhysicalDeviceTexelBufferAlignmentProperties(..)+ , StructureType(..)+ ) 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.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.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceTexelBufferAlignmentProperties - Structure describing+-- the texel buffer alignment requirements supported by an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceTexelBufferAlignmentProperties' 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.+--+-- If the single texel alignment property is+-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the buffer view’s offset+-- /must/ be aligned to the corresponding byte alignment value. If the+-- single texel alignment property is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the buffer view’s offset+-- /must/ be aligned to the lesser of the corresponding byte alignment+-- value or the size of a single texel, based on+-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@format@. If the size+-- of a single texel is a multiple of three bytes, then the size of a+-- 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>+-- maximum minimum value of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@,+-- for any format that supports use as a texel buffer.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment VK_EXT_texel_buffer_alignment>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceTexelBufferAlignmentProperties = PhysicalDeviceTexelBufferAlignmentProperties+ { -- | #extension-limits-storageTexelBufferOffsetAlignmentBytes#+ -- @storageTexelBufferOffsetAlignmentBytes@ is a byte alignment that is+ -- sufficient for a storage texel buffer of any format. The value /must/ be+ -- a power of two.+ storageTexelBufferOffsetAlignmentBytes :: DeviceSize+ , -- | #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+ -- sufficient for a uniform texel buffer of any format. The value /must/ be+ -- a power of two.+ uniformTexelBufferOffsetAlignmentBytes :: DeviceSize+ , -- | #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)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceTexelBufferAlignmentProperties)+#endif+deriving instance Show PhysicalDeviceTexelBufferAlignmentProperties++instance ToCStruct PhysicalDeviceTexelBufferAlignmentProperties where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceTexelBufferAlignmentProperties{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (storageTexelBufferOffsetAlignmentBytes)+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (storageTexelBufferOffsetSingleTexelAlignment))+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (uniformTexelBufferOffsetAlignmentBytes)+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (uniformTexelBufferOffsetSingleTexelAlignment))+ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceTexelBufferAlignmentProperties where+ peekCStruct p = do+ storageTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+ storageTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ uniformTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+ uniformTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+ pure $ PhysicalDeviceTexelBufferAlignmentProperties+ storageTexelBufferOffsetAlignmentBytes (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment) uniformTexelBufferOffsetAlignmentBytes (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment)++instance Storable PhysicalDeviceTexelBufferAlignmentProperties where+ sizeOf ~_ = 48+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceTexelBufferAlignmentProperties where+ zero = PhysicalDeviceTexelBufferAlignmentProperties+ zero+ zero+ zero+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texel_buffer_alignment"+module Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceTexelBufferAlignmentProperties++instance ToCStruct PhysicalDeviceTexelBufferAlignmentProperties+instance Show PhysicalDeviceTexelBufferAlignmentProperties++instance FromCStruct PhysicalDeviceTexelBufferAlignmentProperties+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texture_compression_astc_hdr.hs view
@@ -0,0 +1,141 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texture_compression_astc_hdr"+module Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr ( PhysicalDeviceTextureCompressionASTCHDRFeatures(..)+ , Format(..)+ , StructureType(..)+ ) 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.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_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES))+import Vulkan.Core10.Enums.Format (Format(..))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceTextureCompressionASTCHDRFeatures - Structure describing+-- ASTC HDR features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceTextureCompressionASTCHDRFeatures' 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. 'PhysicalDeviceTextureCompressionASTCHDRFeatures' /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_texture_compression_astc_hdr VK_EXT_texture_compression_astc_hdr>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceTextureCompressionASTCHDRFeatures = PhysicalDeviceTextureCompressionASTCHDRFeatures+ { -- | #extension-features-textureCompressionASTC_HDR#+ -- @textureCompressionASTC_HDR@ indicates whether all of the ASTC HDR+ -- compressed texture formats are supported. If this feature is enabled,+ -- then the+ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',+ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+ -- and+ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+ -- features /must/ be supported in @optimalTilingFeatures@ for the+ -- following formats:+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK'+ --+ -- To query for additional properties, or if the feature is not enabled,+ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+ -- and+ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties'+ -- /can/ be used to check for supported properties of individual formats as+ -- normal.+ textureCompressionASTC_HDR :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceTextureCompressionASTCHDRFeatures)+#endif+deriving instance Show PhysicalDeviceTextureCompressionASTCHDRFeatures++instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceTextureCompressionASTCHDRFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_HDR))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures where+ peekCStruct p = do+ textureCompressionASTC_HDR <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceTextureCompressionASTCHDRFeatures+ (bool32ToBool textureCompressionASTC_HDR)++instance Storable PhysicalDeviceTextureCompressionASTCHDRFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceTextureCompressionASTCHDRFeatures where+ zero = PhysicalDeviceTextureCompressionASTCHDRFeatures+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_texture_compression_astc_hdr.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_texture_compression_astc_hdr"+module Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceTextureCompressionASTCHDRFeatures++instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures+instance Show PhysicalDeviceTextureCompressionASTCHDRFeatures++instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs view
@@ -0,0 +1,235 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_tooling_info"+module Vulkan.Core13.Promoted_From_VK_EXT_tooling_info ( getPhysicalDeviceToolProperties+ , PhysicalDeviceToolProperties(..)+ , StructureType(..)+ , ToolPurposeFlagBits(..)+ , ToolPurposeFlags+ ) where++import Vulkan.CStruct.Utils (FixedArray)+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.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.ByteString (packCString)+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.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 GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+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.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)+import Vulkan.NamedType ((:::))+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceToolProperties))+import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)+import Vulkan.Core10.APIConstants (MAX_EXTENSION_NAME_SIZE)+import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))+import Vulkan.Core10.Handles (PhysicalDevice_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlags)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlagBits(..))+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlags)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetPhysicalDeviceToolProperties+ :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolProperties -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolProperties -> IO Result++-- | vkGetPhysicalDeviceToolProperties - Reports properties of tools active+-- on the specified physical device+--+-- = Description+--+-- If @pToolProperties@ is @NULL@, then the number of tools currently+-- active on @physicalDevice@ is returned in @pToolCount@. Otherwise,+-- @pToolCount@ /must/ point to a variable set by the user to the number of+-- elements in the @pToolProperties@ array, and on return the variable is+-- overwritten with the number of structures actually written to+-- @pToolProperties@. If @pToolCount@ is less than the number of currently+-- active tools, at most @pToolCount@ structures will be written.+--+-- The count and properties of active tools /may/ change in response to+-- events outside the scope of the specification. An application /should/+-- assume these properties might change at any given time.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetPhysicalDeviceToolProperties-physicalDevice-parameter#+-- @physicalDevice@ /must/ be a valid+-- 'Vulkan.Core10.Handles.PhysicalDevice' handle+--+-- - #VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameter#+-- @pToolCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- - #VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameter#+-- If the value referenced by @pToolCount@ is not @0@, and+-- @pToolProperties@ is not @NULL@, @pToolProperties@ /must/ be a valid+-- pointer to an array of @pToolCount@ 'PhysicalDeviceToolProperties'+-- structures+--+-- == 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'+--+-- [<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_tooling_info VK_EXT_tooling_info>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceToolProperties'+getPhysicalDeviceToolProperties :: forall io+ . (MonadIO io)+ => -- | @physicalDevice@ is the handle to the physical device to query for+ -- active tools.+ PhysicalDevice+ -> io (Result, ("toolProperties" ::: Vector PhysicalDeviceToolProperties))+getPhysicalDeviceToolProperties physicalDevice = liftIO . evalContT $ do+ let vkGetPhysicalDeviceToolPropertiesPtr = pVkGetPhysicalDeviceToolProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)+ lift $ unless (vkGetPhysicalDeviceToolPropertiesPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceToolProperties is null" Nothing Nothing+ let vkGetPhysicalDeviceToolProperties' = mkVkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolPropertiesPtr+ let physicalDevice' = physicalDeviceHandle (physicalDevice)+ pPToolCount <- ContT $ bracket (callocBytes @Word32 4) free+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolProperties" (vkGetPhysicalDeviceToolProperties' physicalDevice' (pPToolCount) (nullPtr))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pToolCount <- lift $ peek @Word32 pPToolCount+ pPToolProperties <- ContT $ bracket (callocBytes @PhysicalDeviceToolProperties ((fromIntegral (pToolCount)) * 1048)) free+ _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPToolProperties `advancePtrBytes` (i * 1048) :: Ptr PhysicalDeviceToolProperties) . ($ ())) [0..(fromIntegral (pToolCount)) - 1]+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolProperties" (vkGetPhysicalDeviceToolProperties' physicalDevice' (pPToolCount) ((pPToolProperties)))+ lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))+ pToolCount' <- lift $ peek @Word32 pPToolCount+ pToolProperties' <- lift $ generateM (fromIntegral (pToolCount')) (\i -> peekCStruct @PhysicalDeviceToolProperties (((pPToolProperties) `advancePtrBytes` (1048 * (i)) :: Ptr PhysicalDeviceToolProperties)))+ pure $ ((r'), pToolProperties')+++-- | VkPhysicalDeviceToolProperties - Structure providing information about+-- an active tool+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlags',+-- 'getPhysicalDeviceToolProperties',+-- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT'+data PhysicalDeviceToolProperties = PhysicalDeviceToolProperties+ { -- | @name@ is a null-terminated UTF-8 string containing the name of the+ -- tool.+ name :: ByteString+ , -- | @version@ is a null-terminated UTF-8 string containing the version of+ -- the tool.+ version :: ByteString+ , -- | @purposes@ is a bitmask of+ -- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits' which is+ -- populated with purposes supported by the tool.+ purposes :: ToolPurposeFlags+ , -- | @description@ is a null-terminated UTF-8 string containing a description+ -- of the tool.+ description :: ByteString+ , -- | @layer@ is a null-terminated UTF-8 string containing the name of the+ -- layer implementing the tool, if the tool is implemented in a layer -+ -- otherwise it /may/ be an empty string.+ layer :: ByteString+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceToolProperties)+#endif+deriving instance Show PhysicalDeviceToolProperties++instance ToCStruct PhysicalDeviceToolProperties where+ withCStruct x f = allocaBytes 1048 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceToolProperties{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (name)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (version)+ poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlags)) (purposes)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (description)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (layer)+ f+ cStructSize = 1048+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)+ poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlags)) (zero)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)+ f++instance FromCStruct PhysicalDeviceToolProperties where+ peekCStruct p = do+ name <- packCString (lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))+ version <- packCString (lowerArrayPtr ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))+ purposes <- peek @ToolPurposeFlags ((p `plusPtr` 528 :: Ptr ToolPurposeFlags))+ description <- packCString (lowerArrayPtr ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))+ layer <- packCString (lowerArrayPtr ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))+ pure $ PhysicalDeviceToolProperties+ name version purposes description layer++instance Storable PhysicalDeviceToolProperties where+ sizeOf ~_ = 1048+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceToolProperties where+ zero = PhysicalDeviceToolProperties+ mempty+ mempty+ zero+ mempty+ mempty+
+ src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_EXT_tooling_info"+module Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceToolProperties++instance ToCStruct PhysicalDeviceToolProperties+instance Show PhysicalDeviceToolProperties++instance FromCStruct PhysicalDeviceToolProperties+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs view
@@ -0,0 +1,3098 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_copy_commands2"+module Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 ( cmdCopyBuffer2+ , cmdCopyImage2+ , cmdBlitImage2+ , cmdCopyBufferToImage2+ , cmdCopyImageToBuffer2+ , cmdResolveImage2+ , BufferCopy2(..)+ , ImageCopy2(..)+ , ImageBlit2(..)+ , BufferImageCopy2(..)+ , ImageResolve2(..)+ , CopyBufferInfo2(..)+ , CopyImageInfo2(..)+ , BlitImageInfo2(..)+ , CopyBufferToImageInfo2(..)+ , CopyImageToBufferInfo2(..)+ , ResolveImageInfo2(..)+ , StructureType(..)+ ) where++import Vulkan.CStruct.Utils (FixedArray)+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 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.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 Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (pokeSomeCStruct)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.CStruct.Extends (Chain)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBlitImage2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBuffer2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBufferToImage2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImage2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImageToBuffer2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdResolveImage2))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.FundamentalTypes (Extent3D)+import Vulkan.Core10.Enums.Filter (Filter)+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)+import Vulkan.Core10.FundamentalTypes (Offset3D)+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.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyBuffer2+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferInfo2 -> IO ()++-- | vkCmdCopyBuffer2 - Copy data between buffer regions+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyBuffer2-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-vkCmdCopyBuffer2-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-vkCmdCopyBuffer2-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+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyBuffer2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameter# @pCopyBufferInfo@+-- /must/ be a valid pointer to a valid 'CopyBufferInfo2' structure+--+-- - #VUID-vkCmdCopyBuffer2-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-vkCmdCopyBuffer2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyBuffer2-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 | Transfer |+-- | Secondary | | Graphics |+-- | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferInfo2'+cmdCopyBuffer2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyBufferInfo@ is a pointer to a 'CopyBufferInfo2' structure+ -- describing the copy parameters.+ CopyBufferInfo2+ -> io ()+cmdCopyBuffer2 commandBuffer copyBufferInfo = liftIO . evalContT $ do+ let vkCmdCopyBuffer2Ptr = pVkCmdCopyBuffer2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyBuffer2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer2 is null" Nothing Nothing+ let vkCmdCopyBuffer2' = mkVkCmdCopyBuffer2 vkCmdCopyBuffer2Ptr+ pCopyBufferInfo <- ContT $ withCStruct (copyBufferInfo)+ lift $ traceAroundEvent "vkCmdCopyBuffer2" (vkCmdCopyBuffer2' (commandBufferHandle (commandBuffer)) pCopyBufferInfo)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyImage2+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageInfo2 -> IO ()++-- | vkCmdCopyImage2 - Copy data between images+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyImage2-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-vkCmdCopyImage2-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-vkCmdCopyImage2-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+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyImage2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyImage2-pCopyImageInfo-parameter# @pCopyImageInfo@+-- /must/ be a valid pointer to a valid 'CopyImageInfo2' structure+--+-- - #VUID-vkCmdCopyImage2-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-vkCmdCopyImage2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyImage2-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 | Transfer |+-- | Secondary | | Graphics |+-- | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageInfo2'+cmdCopyImage2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyImageInfo@ is a pointer to a 'CopyImageInfo2' structure describing+ -- the copy parameters.+ CopyImageInfo2+ -> io ()+cmdCopyImage2 commandBuffer copyImageInfo = liftIO . evalContT $ do+ let vkCmdCopyImage2Ptr = pVkCmdCopyImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyImage2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage2 is null" Nothing Nothing+ let vkCmdCopyImage2' = mkVkCmdCopyImage2 vkCmdCopyImage2Ptr+ pCopyImageInfo <- ContT $ withCStruct (copyImageInfo)+ lift $ traceAroundEvent "vkCmdCopyImage2" (vkCmdCopyImage2' (commandBufferHandle (commandBuffer)) pCopyImageInfo)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBlitImage2+ :: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO ()++-- | vkCmdBlitImage2 - Copy regions of an image, potentially performing+-- format conversion,+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBlitImage2-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-vkCmdBlitImage2-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-vkCmdBlitImage2-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+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBlitImage2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBlitImage2-pBlitImageInfo-parameter# @pBlitImageInfo@+-- /must/ be a valid pointer to a valid 'BlitImageInfo2' structure+--+-- - #VUID-vkCmdBlitImage2-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-vkCmdBlitImage2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBlitImage2-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 | Graphics |+-- | Secondary | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'BlitImageInfo2', 'Vulkan.Core10.Handles.CommandBuffer'+cmdBlitImage2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pBlitImageInfo@ is a pointer to a 'BlitImageInfo2' structure describing+ -- the blit parameters.+ BlitImageInfo2+ -> io ()+cmdBlitImage2 commandBuffer blitImageInfo = liftIO . evalContT $ do+ let vkCmdBlitImage2Ptr = pVkCmdBlitImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdBlitImage2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage2 is null" Nothing Nothing+ let vkCmdBlitImage2' = mkVkCmdBlitImage2 vkCmdBlitImage2Ptr+ pBlitImageInfo <- ContT $ withCStruct (blitImageInfo)+ lift $ traceAroundEvent "vkCmdBlitImage2" (vkCmdBlitImage2' (commandBufferHandle (commandBuffer)) pBlitImageInfo)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyBufferToImage2+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2 -> IO ()++-- | vkCmdCopyBufferToImage2 - Copy data from a buffer into an image+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyBufferToImage2-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-vkCmdCopyBufferToImage2-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-vkCmdCopyBufferToImage2-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+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter#+-- @pCopyBufferToImageInfo@ /must/ be a valid pointer to a valid+-- 'CopyBufferToImageInfo2' structure+--+-- - #VUID-vkCmdCopyBufferToImage2-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-vkCmdCopyBufferToImage2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyBufferToImage2-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 | Transfer |+-- | Secondary | | Graphics |+-- | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferToImageInfo2'+cmdCopyBufferToImage2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyBufferToImageInfo@ is a pointer to a 'CopyBufferToImageInfo2'+ -- structure describing the copy parameters.+ CopyBufferToImageInfo2+ -> io ()+cmdCopyBufferToImage2 commandBuffer copyBufferToImageInfo = liftIO . evalContT $ do+ let vkCmdCopyBufferToImage2Ptr = pVkCmdCopyBufferToImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyBufferToImage2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage2 is null" Nothing Nothing+ let vkCmdCopyBufferToImage2' = mkVkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2Ptr+ pCopyBufferToImageInfo <- ContT $ withCStruct (copyBufferToImageInfo)+ lift $ traceAroundEvent "vkCmdCopyBufferToImage2" (vkCmdCopyBufferToImage2' (commandBufferHandle (commandBuffer)) pCopyBufferToImageInfo)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyImageToBuffer2+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2 -> IO ()++-- | vkCmdCopyImageToBuffer2 - Copy image data into a buffer+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyImageToBuffer2-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-vkCmdCopyImageToBuffer2-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-vkCmdCopyImageToBuffer2-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+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter#+-- @pCopyImageToBufferInfo@ /must/ be a valid pointer to a valid+-- 'CopyImageToBufferInfo2' structure+--+-- - #VUID-vkCmdCopyImageToBuffer2-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-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyImageToBuffer2-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 | Transfer |+-- | Secondary | | Graphics |+-- | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageToBufferInfo2'+cmdCopyImageToBuffer2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'CopyImageToBufferInfo2'+ -- structure describing the copy parameters.+ CopyImageToBufferInfo2+ -> io ()+cmdCopyImageToBuffer2 commandBuffer copyImageToBufferInfo = liftIO . evalContT $ do+ let vkCmdCopyImageToBuffer2Ptr = pVkCmdCopyImageToBuffer2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyImageToBuffer2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer2 is null" Nothing Nothing+ let vkCmdCopyImageToBuffer2' = mkVkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2Ptr+ pCopyImageToBufferInfo <- ContT $ withCStruct (copyImageToBufferInfo)+ lift $ traceAroundEvent "vkCmdCopyImageToBuffer2" (vkCmdCopyImageToBuffer2' (commandBufferHandle (commandBuffer)) pCopyImageToBufferInfo)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdResolveImage2+ :: FunPtr (Ptr CommandBuffer_T -> Ptr ResolveImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr ResolveImageInfo2 -> IO ()++-- | vkCmdResolveImage2 - Resolve regions of an image+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - #VUID-vkCmdResolveImage2-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-vkCmdResolveImage2-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-vkCmdResolveImage2-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+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdResolveImage2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdResolveImage2-pResolveImageInfo-parameter#+-- @pResolveImageInfo@ /must/ be a valid pointer to a valid+-- 'ResolveImageInfo2' structure+--+-- - #VUID-vkCmdResolveImage2-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-vkCmdResolveImage2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdResolveImage2-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 | Graphics |+-- | Secondary | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'ResolveImageInfo2'+cmdResolveImage2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pResolveImageInfo@ is a pointer to a 'ResolveImageInfo2' structure+ -- describing the resolve parameters.+ ResolveImageInfo2+ -> io ()+cmdResolveImage2 commandBuffer resolveImageInfo = liftIO . evalContT $ do+ let vkCmdResolveImage2Ptr = pVkCmdResolveImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdResolveImage2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage2 is null" Nothing Nothing+ let vkCmdResolveImage2' = mkVkCmdResolveImage2 vkCmdResolveImage2Ptr+ pResolveImageInfo <- ContT $ withCStruct (resolveImageInfo)+ lift $ traceAroundEvent "vkCmdResolveImage2" (vkCmdResolveImage2' (commandBufferHandle (commandBuffer)) pResolveImageInfo)+ pure $ ()+++-- | VkBufferCopy2 - Structure specifying a buffer copy operation+--+-- == Valid Usage+--+-- - #VUID-VkBufferCopy2-size-01988# The @size@ /must/ be greater than+-- @0@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkBufferCopy2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2'+--+-- - #VUID-VkBufferCopy2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'CopyBufferInfo2', 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferCopy2 = BufferCopy2+ { -- | @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 (BufferCopy2)+#endif+deriving instance Show BufferCopy2++instance ToCStruct BufferCopy2 where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BufferCopy2{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (srcOffset)+ poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (dstOffset)+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (size)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+ f++instance FromCStruct BufferCopy2 where+ peekCStruct p = do+ srcOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+ dstOffset <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))+ size <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+ pure $ BufferCopy2+ srcOffset dstOffset size++instance Storable BufferCopy2 where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferCopy2 where+ zero = BufferCopy2+ zero+ zero+ zero+++-- | VkImageCopy2 - Structure specifying an image copy operation+--+-- == Valid Usage+--+-- - #VUID-VkImageCopy2-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)+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageCopy2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2'+--+-- - #VUID-VkImageCopy2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkImageCopy2-srcSubresource-parameter# @srcSubresource@ /must/+-- be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- - #VUID-VkImageCopy2-dstSubresource-parameter# @dstSubresource@ /must/+-- be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'CopyImageInfo2', 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageCopy2 = ImageCopy2+ { -- | @srcSubresource@ and @dstSubresource@ are+ -- 'Vulkan.Core10.CommandBufferBuilding.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 "VkImageCopy2" "dstSubresource"+ dstSubresource :: ImageSubresourceLayers+ , -- No documentation found for Nested "VkImageCopy2" "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 (ImageCopy2)+#endif+deriving instance Show ImageCopy2++instance ToCStruct ImageCopy2 where+ withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageCopy2{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)+ poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)+ poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)+ poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)+ poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)+ f+ cStructSize = 88+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)+ f++instance FromCStruct ImageCopy2 where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+ srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))+ dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))+ extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))+ pure $ ImageCopy2+ srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageCopy2 where+ sizeOf ~_ = 88+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCopy2 where+ zero = ImageCopy2+ zero+ zero+ zero+ zero+ zero+++-- | VkImageBlit2 - 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-VkImageBlit2-aspectMask-00238# The @aspectMask@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ match+--+-- - #VUID-VkImageBlit2-layerCount-00239# The @layerCount@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageBlit2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2'+--+-- - #VUID-VkImageBlit2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkImageBlit2-srcSubresource-parameter# @srcSubresource@ /must/+-- be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- - #VUID-VkImageBlit2-dstSubresource-parameter# @dstSubresource@ /must/+-- be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'BlitImageInfo2',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageBlit2 (es :: [Type]) = ImageBlit2+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @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 (ImageBlit2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (ImageBlit2 es)++instance Extensible ImageBlit2 where+ extensibleTypeName = "ImageBlit2"+ setNext ImageBlit2{..} next' = ImageBlit2{next = next', ..}+ getNext ImageBlit2{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2 e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f+ | otherwise = Nothing++instance (Extendss ImageBlit2 es, PokeChain es) => ToCStruct (ImageBlit2 es) where+ withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageBlit2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)+ let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+ lift $ case (srcOffsets) of+ (e0, e1) -> do+ poke (pSrcOffsets' :: Ptr Offset3D) (e0)+ poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (dstSubresource)+ let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+ lift $ case (dstOffsets) of+ (e0, e1) -> do+ poke (pDstOffsets' :: Ptr Offset3D) (e0)+ poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ lift $ f+ cStructSize = 96+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+ let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+ lift $ case ((zero, zero)) of+ (e0, e1) -> do+ poke (pSrcOffsets' :: Ptr Offset3D) (e0)+ poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (zero)+ let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+ lift $ case ((zero, zero)) of+ (e0, e1) -> do+ poke (pDstOffsets' :: Ptr Offset3D) (e0)+ poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ lift $ f++instance (Extendss ImageBlit2 es, PeekChain es) => FromCStruct (ImageBlit2 es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+ let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 32 :: 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` 56 :: Ptr ImageSubresourceLayers))+ let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+ dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+ dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+ pure $ ImageBlit2+ next srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))++instance es ~ '[] => Zero (ImageBlit2 es) where+ zero = ImageBlit2+ ()+ zero+ (zero, zero)+ zero+ (zero, zero)+++-- | VkBufferImageCopy2 - Structure specifying a buffer image copy operation+--+-- = Description+--+-- This structure is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy', but adds @sType@+-- and @pNext@ parameters, allowing it to be more easily extended.+--+-- == Valid Usage+--+-- - #VUID-VkBufferImageCopy2-bufferRowLength-00195# @bufferRowLength@+-- /must/ be @0@, or greater than or equal to the @width@ member of+-- @imageExtent@+--+-- - #VUID-VkBufferImageCopy2-bufferImageHeight-00196#+-- @bufferImageHeight@ /must/ be @0@, or greater than or equal to the+-- @height@ member of @imageExtent@+--+-- - #VUID-VkBufferImageCopy2-aspectMask-00212# The @aspectMask@ member+-- of @imageSubresource@ /must/ only have a single bit set+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkBufferImageCopy2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2'+--+-- - #VUID-VkBufferImageCopy2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkBufferImageCopy2-imageSubresource-parameter#+-- @imageSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'CopyBufferToImageInfo2', 'CopyImageToBufferInfo2',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferImageCopy2 (es :: [Type]) = BufferImageCopy2+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @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 "VkBufferImageCopy2" "bufferImageHeight"+ bufferImageHeight :: Word32+ , -- | @imageSubresource@ is a+ -- 'Vulkan.Core10.CommandBufferBuilding.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 (BufferImageCopy2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (BufferImageCopy2 es)++instance Extensible BufferImageCopy2 where+ extensibleTypeName = "BufferImageCopy2"+ setNext BufferImageCopy2{..} next' = BufferImageCopy2{next = next', ..}+ getNext BufferImageCopy2{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2 e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f+ | otherwise = Nothing++instance (Extendss BufferImageCopy2 es, PokeChain es) => ToCStruct (BufferImageCopy2 es) where+ withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BufferImageCopy2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (bufferOffset)+ lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (bufferRowLength)+ lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (bufferImageHeight)+ lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource)+ lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset)+ lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent)+ lift $ f+ cStructSize = 72+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero)+ lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero)+ lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero)+ lift $ f++instance (Extendss BufferImageCopy2 es, PeekChain es) => FromCStruct (BufferImageCopy2 es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ bufferOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+ bufferRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ bufferImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+ imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers))+ imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))+ imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))+ pure $ BufferImageCopy2+ next bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent++instance es ~ '[] => Zero (BufferImageCopy2 es) where+ zero = BufferImageCopy2+ ()+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkImageResolve2 - Structure specifying an image resolve operation+--+-- == Valid Usage+--+-- - #VUID-VkImageResolve2-aspectMask-00266# The @aspectMask@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ only contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-VkImageResolve2-layerCount-00267# The @layerCount@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageResolve2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2'+--+-- - #VUID-VkImageResolve2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkImageResolve2-srcSubresource-parameter# @srcSubresource@+-- /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- - #VUID-VkImageResolve2-dstSubresource-parameter# @dstSubresource@+-- /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'ResolveImageInfo2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageResolve2 = ImageResolve2+ { -- | @srcSubresource@ and @dstSubresource@ are+ -- 'Vulkan.Core10.CommandBufferBuilding.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 "VkImageResolve2" "dstSubresource"+ dstSubresource :: ImageSubresourceLayers+ , -- No documentation found for Nested "VkImageResolve2" "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 (ImageResolve2)+#endif+deriving instance Show ImageResolve2++instance ToCStruct ImageResolve2 where+ withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageResolve2{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)+ poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)+ poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)+ poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)+ poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)+ f+ cStructSize = 88+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)+ f++instance FromCStruct ImageResolve2 where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+ srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))+ dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))+ extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))+ pure $ ImageResolve2+ srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageResolve2 where+ sizeOf ~_ = 88+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageResolve2 where+ zero = ImageResolve2+ zero+ zero+ zero+ zero+ zero+++-- | VkCopyBufferInfo2 - Structure specifying parameters of a buffer copy+-- command+--+-- = Description+--+-- Members defined by this structure with the same name as parameters in+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer' have the identical+-- effect to those parameters; the child structure 'BufferCopy2' is a+-- variant of 'Vulkan.Core10.CommandBufferBuilding.BufferCopy' which+-- includes @sType@ and @pNext@ parameters, allowing it to be extended.+--+-- == Valid Usage+--+-- - #VUID-VkCopyBufferInfo2-srcOffset-00113# The @srcOffset@ member of+-- each element of @pRegions@ /must/ be less than the size of+-- @srcBuffer@+--+-- - #VUID-VkCopyBufferInfo2-dstOffset-00114# The @dstOffset@ member of+-- each element of @pRegions@ /must/ be less than the size of+-- @dstBuffer@+--+-- - #VUID-VkCopyBufferInfo2-size-00115# The @size@ member of each+-- element of @pRegions@ /must/ be less than or equal to the size of+-- @srcBuffer@ minus @srcOffset@+--+-- - #VUID-VkCopyBufferInfo2-size-00116# The @size@ member of each+-- element of @pRegions@ /must/ be less than or equal to the size of+-- @dstBuffer@ minus @dstOffset@+--+-- - #VUID-VkCopyBufferInfo2-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-VkCopyBufferInfo2-srcBuffer-00118# @srcBuffer@ /must/ have+-- been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-VkCopyBufferInfo2-srcBuffer-00119# If @srcBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkCopyBufferInfo2-dstBuffer-00120# @dstBuffer@ /must/ have+-- been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-VkCopyBufferInfo2-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-VkCopyBufferInfo2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2'+--+-- - #VUID-VkCopyBufferInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkCopyBufferInfo2-srcBuffer-parameter# @srcBuffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-VkCopyBufferInfo2-dstBuffer-parameter# @dstBuffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-VkCopyBufferInfo2-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'BufferCopy2'+-- structures+--+-- - #VUID-VkCopyBufferInfo2-regionCount-arraylength# @regionCount@+-- /must/ be greater than @0@+--+-- - #VUID-VkCopyBufferInfo2-commonparent# Both of @dstBuffer@, and+-- @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyBuffer2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBuffer2KHR'+data CopyBufferInfo2 = CopyBufferInfo2+ { -- | @srcBuffer@ is the source buffer.+ srcBuffer :: Buffer+ , -- | @dstBuffer@ is the destination buffer.+ dstBuffer :: Buffer+ , -- | @pRegions@ is a pointer to an array of 'BufferCopy2' structures+ -- specifying the regions to copy.+ regions :: Vector BufferCopy2+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyBufferInfo2)+#endif+deriving instance Show CopyBufferInfo2++instance ToCStruct CopyBufferInfo2 where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyBufferInfo2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)+ lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (dstBuffer)+ lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytes @BufferCopy2 ((Data.Vector.length (regions)) * 40)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (40 * (i)) :: Ptr BufferCopy2) (e)) (regions)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2))) (pPRegions')+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)+ f++instance FromCStruct CopyBufferInfo2 where+ peekCStruct p = do+ srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+ dstBuffer <- peek @Buffer ((p `plusPtr` 24 :: Ptr Buffer))+ regionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pRegions <- peek @(Ptr BufferCopy2) ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferCopy2 ((pRegions `advancePtrBytes` (40 * (i)) :: Ptr BufferCopy2)))+ pure $ CopyBufferInfo2+ srcBuffer dstBuffer pRegions'++instance Zero CopyBufferInfo2 where+ zero = CopyBufferInfo2+ zero+ zero+ mempty+++-- | VkCopyImageInfo2 - Structure specifying parameters of an image copy+-- command+--+-- == Valid Usage+--+-- - #VUID-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-srcImage-00126# @srcImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-dstImage-00131# @dstImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-srcImage-00136# The sample count of+-- @srcImage@ and @dstImage@ /must/ match+--+-- - #VUID-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-dstImage-02542# @dstImage@ and @srcImage@+-- /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-aspectMask-00142# For each element of+-- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+-- present in @srcImage@+--+-- - #VUID-VkCopyImageInfo2-aspectMask-00143# For each element of+-- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+-- present in @dstImage@+--+-- - #VUID-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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-VkCopyImageInfo2-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@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkCopyImageInfo2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2'+--+-- - #VUID-VkCopyImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkCopyImageInfo2-srcImage-parameter# @srcImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkCopyImageInfo2-srcImageLayout-parameter# @srcImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-VkCopyImageInfo2-dstImage-parameter# @dstImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkCopyImageInfo2-dstImageLayout-parameter# @dstImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-VkCopyImageInfo2-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'ImageCopy2'+-- structures+--+-- - #VUID-VkCopyImageInfo2-regionCount-arraylength# @regionCount@ /must/+-- be greater than @0@+--+-- - #VUID-VkCopyImageInfo2-commonparent# Both of @dstImage@, and+-- @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Image', 'ImageCopy2',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImage2KHR'+data CopyImageInfo2 = CopyImageInfo2+ { -- | @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 'ImageCopy2' structures+ -- specifying the regions to copy.+ regions :: Vector ImageCopy2+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyImageInfo2)+#endif+deriving instance Show CopyImageInfo2++instance ToCStruct CopyImageInfo2 where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyImageInfo2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytes @ImageCopy2 ((Data.Vector.length (regions)) * 88)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2) (e)) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2))) (pPRegions')+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+ f++instance FromCStruct CopyImageInfo2 where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ pRegions <- peek @(Ptr ImageCopy2) ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageCopy2 ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageCopy2)))+ pure $ CopyImageInfo2+ srcImage srcImageLayout dstImage dstImageLayout pRegions'++instance Zero CopyImageInfo2 where+ zero = CopyImageInfo2+ zero+ zero+ zero+ zero+ mempty+++-- | VkBlitImageInfo2 - Structure specifying parameters of blit image command+--+-- == Valid Usage+--+-- - #VUID-VkBlitImageInfo2-pRegions-00215# The source region specified+-- by each element of @pRegions@ /must/ be a region that is contained+-- within @srcImage@+--+-- - #VUID-VkBlitImageInfo2-pRegions-00216# The destination region+-- specified by each element of @pRegions@ /must/ be a region that is+-- contained within @dstImage@+--+-- - #VUID-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-srcImage-00219# @srcImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-VkBlitImageInfo2-srcImage-00220# If @srcImage@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-dstImage-00224# @dstImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-VkBlitImageInfo2-dstImage-00225# If @dstImage@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-srcImage-00231# If either of @srcImage@ or+-- @dstImage@ was created with a depth\/stencil format, the other+-- /must/ have exactly the same format+--+-- - #VUID-VkBlitImageInfo2-srcImage-00232# If @srcImage@ was created+-- with a depth\/stencil format, @filter@ /must/ be+-- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'+--+-- - #VUID-VkBlitImageInfo2-srcImage-00233# @srcImage@ /must/ have been+-- created with a @samples@ value of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-VkBlitImageInfo2-dstImage-00234# @dstImage@ /must/ have been+-- created with a @samples@ value of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-VkBlitImageInfo2-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-VkBlitImageInfo2-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-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'+--+-- - #VUID-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-dstImage-02545# @dstImage@ and @srcImage@+-- /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-VkBlitImageInfo2-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-VkBlitImageInfo2-aspectMask-00241# For each element of+-- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+-- present in @srcImage@+--+-- - #VUID-VkBlitImageInfo2-aspectMask-00242# For each element of+-- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+-- present in @dstImage@+--+-- - #VUID-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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-VkBlitImageInfo2-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@+--+-- - #VUID-VkBlitImageInfo2-pRegions-04561# If any element of @pRegions@+-- contains+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, then @srcImage@ and @dstImage@ /must/ not be+-- block-compressed images+--+-- - #VUID-VkBlitImageInfo2KHR-pRegions-06207# If any element of+-- @pRegions@ contains+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, then @srcImage@ /must/ be of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- - #VUID-VkBlitImageInfo2KHR-pRegions-06208# If any element of+-- @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>+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkBlitImageInfo2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2'+--+-- - #VUID-VkBlitImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkBlitImageInfo2-srcImage-parameter# @srcImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkBlitImageInfo2-srcImageLayout-parameter# @srcImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-VkBlitImageInfo2-dstImage-parameter# @dstImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkBlitImageInfo2-dstImageLayout-parameter# @dstImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-VkBlitImageInfo2-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'ImageBlit2'+-- structures+--+-- - #VUID-VkBlitImageInfo2-filter-parameter# @filter@ /must/ be a valid+-- 'Vulkan.Core10.Enums.Filter.Filter' value+--+-- - #VUID-VkBlitImageInfo2-regionCount-arraylength# @regionCount@ /must/+-- be greater than @0@+--+-- - #VUID-VkBlitImageInfo2-commonparent# Both of @dstImage@, and+-- @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',+-- 'ImageBlit2', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBlitImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'+data BlitImageInfo2 = BlitImageInfo2+ { -- | @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 'ImageBlit2' structures+ -- specifying the regions to blit.+ regions :: Vector (SomeStruct ImageBlit2)+ , -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter+ -- to apply if the blits require scaling.+ filter' :: Filter+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BlitImageInfo2)+#endif+deriving instance Show BlitImageInfo2++instance ToCStruct BlitImageInfo2 where+ withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BlitImageInfo2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytes @(ImageBlit2 _) ((Data.Vector.length (regions)) * 96)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (96 * (i)) :: Ptr (ImageBlit2 _))) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2 _)))) (pPRegions')+ lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (filter')+ lift $ f+ cStructSize = 64+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)+ f++instance FromCStruct BlitImageInfo2 where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ pRegions <- peek @(Ptr (ImageBlit2 _)) ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2 _))))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2 _)))))+ filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))+ pure $ BlitImageInfo2+ srcImage srcImageLayout dstImage dstImageLayout pRegions' filter'++instance Zero BlitImageInfo2 where+ zero = BlitImageInfo2+ zero+ zero+ zero+ zero+ mempty+ zero+++-- | VkCopyBufferToImageInfo2 - Structure specifying parameters of a buffer+-- to image copy command+--+-- == Valid Usage+--+-- - #VUID-VkCopyBufferToImageInfo2-pRegions-04565# If the image region+-- specified by each element of @pRegions@ does not contain+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, it /must/ be a region that is contained within+-- the specified @imageSubresource@ of @dstImage@+--+-- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image+-- 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>+-- /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>+--+-- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203# If any element of+-- @pRegions@ contains+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, then @dstImage@ /must/ be of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204# If any element of+-- @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>+--+-- - #VUID-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-srcBuffer-00174# @srcBuffer@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-srcBuffer-00176# If @srcBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkCopyBufferToImageInfo2-dstImage-00177# @dstImage@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-VkCopyBufferToImageInfo2-dstImage-00178# If @dstImage@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkCopyBufferToImageInfo2-dstImage-00179# @dstImage@ /must/+-- have a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-dstImage-02543# @dstImage@ /must/ not+-- have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-pRegions-06223# For each element of+-- @pRegions@ not containing+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, @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-VkCopyBufferToImageInfo2-pRegions-06224# For each element of+-- @pRegions@ not containing+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, @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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-aspectMask-00211# For each element of+-- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+-- present in @dstImage@+--+-- - #VUID-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-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-VkCopyBufferToImageInfo2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2'+--+-- - #VUID-VkCopyBufferToImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter# @srcBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-VkCopyBufferToImageInfo2-dstImage-parameter# @dstImage@ /must/+-- be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter#+-- @dstImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-VkCopyBufferToImageInfo2-pRegions-parameter# @pRegions@ /must/+-- be a valid pointer to an array of @regionCount@ valid+-- 'BufferImageCopy2' structures+--+-- - #VUID-VkCopyBufferToImageInfo2-regionCount-arraylength#+-- @regionCount@ /must/ be greater than @0@+--+-- - #VUID-VkCopyBufferToImageInfo2-commonparent# Both of @dstImage@, and+-- @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyBufferToImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR'+data CopyBufferToImageInfo2 = CopyBufferToImageInfo2+ { -- | @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 'BufferImageCopy2' structures+ -- specifying the regions to copy.+ regions :: Vector (SomeStruct BufferImageCopy2)+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyBufferToImageInfo2)+#endif+deriving instance Show CopyBufferToImageInfo2++instance ToCStruct CopyBufferToImageInfo2 where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyBufferToImageInfo2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)+ lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2 _) ((Data.Vector.length (regions)) * 72)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2 _))) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2 _)))) (pPRegions')+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)+ f++instance FromCStruct CopyBufferToImageInfo2 where+ peekCStruct p = do+ srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+ dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+ pRegions <- peek @(Ptr (BufferImageCopy2 _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2 _))))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2 _)))))+ pure $ CopyBufferToImageInfo2+ srcBuffer dstImage dstImageLayout pRegions'++instance Zero CopyBufferToImageInfo2 where+ zero = CopyBufferToImageInfo2+ zero+ zero+ zero+ mempty+++-- | VkCopyImageToBufferInfo2 - Structure specifying parameters of an image+-- to buffer copy command+--+-- == Valid Usage+--+-- - #VUID-VkCopyImageToBufferInfo2-pRegions-04566# If the image region+-- specified by each element of @pRegions@ does not contain+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, it /must/ be contained within the specified+-- @imageSubresource@ of @srcImage@+--+-- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image+-- 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>+-- /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>+--+-- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205# If any element of+-- @pRegions@ contains+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, then @srcImage@ /must/ be of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206# If any element of+-- @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>+--+-- - #VUID-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-srcImage-00186# @srcImage@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-srcImage-00187# If @srcImage@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkCopyImageToBufferInfo2-dstBuffer-00191# @dstBuffer@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-VkCopyImageToBufferInfo2-dstBuffer-00192# If @dstBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkCopyImageToBufferInfo2-srcImage-00188# @srcImage@ /must/+-- have a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-srcImage-02544# @srcImage@ /must/ not+-- have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-VkCopyImageToBufferInfo2-imageOffset-00197# For each element+-- of @pRegions@ not containing+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, @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-VkCopyImageToBufferInfo2-imageOffset-00198# For each element+-- of @pRegions@ not containing+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+-- in its @pNext@ chain, @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-VkCopyImageToBufferInfo2-bufferOffset-01558# If {imageparam}+-- 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+-- <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+-- 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-VkCopyImageToBufferInfo2-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 {imageparam}+--+-- - #VUID-VkCopyImageToBufferInfo2-srcImage-00201# If {imageparam} 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+-- <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+-- <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+-- <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+-- <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+-- <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}+--+-- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00208# If {imageparam} 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}+--+-- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00209# If {imageparam} 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}+--+-- - #VUID-VkCopyImageToBufferInfo2-aspectMask-00211# For each element of+-- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+-- present in {imageparam}+--+-- - #VUID-VkCopyImageToBufferInfo2-aspectMask-01560# If {imageparam} 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-VkCopyImageToBufferInfo2-baseArrayLayer-00213# If {imageparam}+-- 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+-- <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+--+-- - #VUID-VkCopyImageToBufferInfo2-pRegions-04726# If {imageparam} 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+--+-- - #VUID-VkCopyImageToBufferInfo2-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-VkCopyImageToBufferInfo2-srcImage-04053# If {imageparam} has a+-- depth\/stencil format, the @bufferOffset@ member of any element of+-- @pRegions@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkCopyImageToBufferInfo2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2'+--+-- - #VUID-VkCopyImageToBufferInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkCopyImageToBufferInfo2-srcImage-parameter# @srcImage@ /must/+-- be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameter#+-- @srcImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-VkCopyImageToBufferInfo2-dstBuffer-parameter# @dstBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-VkCopyImageToBufferInfo2-pRegions-parameter# @pRegions@ /must/+-- be a valid pointer to an array of @regionCount@ valid+-- 'BufferImageCopy2' structures+--+-- - #VUID-VkCopyImageToBufferInfo2-regionCount-arraylength#+-- @regionCount@ /must/ be greater than @0@+--+-- - #VUID-VkCopyImageToBufferInfo2-commonparent# Both of @dstBuffer@,+-- and @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyImageToBuffer2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR'+data CopyImageToBufferInfo2 = CopyImageToBufferInfo2+ { -- | @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 'BufferImageCopy2' structures+ -- specifying the regions to copy.+ regions :: Vector (SomeStruct BufferImageCopy2)+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyImageToBufferInfo2)+#endif+deriving instance Show CopyImageToBufferInfo2++instance ToCStruct CopyImageToBufferInfo2 where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyImageToBufferInfo2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (dstBuffer)+ lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2 _) ((Data.Vector.length (regions)) * 72)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2 _))) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2 _)))) (pPRegions')+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)+ f++instance FromCStruct CopyImageToBufferInfo2 where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstBuffer <- peek @Buffer ((p `plusPtr` 32 :: Ptr Buffer))+ regionCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+ pRegions <- peek @(Ptr (BufferImageCopy2 _)) ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2 _))))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2 _)))))+ pure $ CopyImageToBufferInfo2+ srcImage srcImageLayout dstBuffer pRegions'++instance Zero CopyImageToBufferInfo2 where+ zero = CopyImageToBufferInfo2+ zero+ zero+ zero+ mempty+++-- | VkResolveImageInfo2 - Structure specifying parameters of resolve image+-- command+--+-- == Valid Usage+--+-- - #VUID-VkResolveImageInfo2-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-VkResolveImageInfo2-srcImage-00256# If @srcImage@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkResolveImageInfo2-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-VkResolveImageInfo2-dstImage-00258# If @dstImage@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkResolveImageInfo2-dstImage-00259# @dstImage@ /must/ have a+-- sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-srcImage-01386# @srcImage@ and @dstImage@+-- /must/ have been created with the same image format+--+-- - #VUID-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-dstImage-02546# @dstImage@ and @srcImage@+-- /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-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-VkResolveImageInfo2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2'+--+-- - #VUID-VkResolveImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkResolveImageInfo2-srcImage-parameter# @srcImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkResolveImageInfo2-srcImageLayout-parameter# @srcImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-VkResolveImageInfo2-dstImage-parameter# @dstImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkResolveImageInfo2-dstImageLayout-parameter# @dstImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-VkResolveImageInfo2-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'ImageResolve2'+-- structures+--+-- - #VUID-VkResolveImageInfo2-regionCount-arraylength# @regionCount@+-- /must/ be greater than @0@+--+-- - #VUID-VkResolveImageInfo2-commonparent# Both of @dstImage@, and+-- @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdResolveImage2',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR'+data ResolveImageInfo2 = ResolveImageInfo2+ { -- | @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 'ImageResolve2' structures+ -- specifying the regions to resolve.+ regions :: Vector ImageResolve2+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ResolveImageInfo2)+#endif+deriving instance Show ResolveImageInfo2++instance ToCStruct ResolveImageInfo2 where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ResolveImageInfo2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytes @ImageResolve2 ((Data.Vector.length (regions)) * 88)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageResolve2) (e)) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2))) (pPRegions')+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+ f++instance FromCStruct ResolveImageInfo2 where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ pRegions <- peek @(Ptr ImageResolve2) ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageResolve2 ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageResolve2)))+ pure $ ResolveImageInfo2+ srcImage srcImageLayout dstImage dstImageLayout pRegions'++instance Zero ResolveImageInfo2 where+ zero = ResolveImageInfo2+ zero+ zero+ zero+ zero+ mempty+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot view
@@ -0,0 +1,111 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_copy_commands2"+module Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 ( BlitImageInfo2+ , BufferCopy2+ , BufferImageCopy2+ , CopyBufferInfo2+ , CopyBufferToImageInfo2+ , CopyImageInfo2+ , CopyImageToBufferInfo2+ , ImageBlit2+ , ImageCopy2+ , ImageResolve2+ , ResolveImageInfo2+ ) 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 BlitImageInfo2++instance ToCStruct BlitImageInfo2+instance Show BlitImageInfo2++instance FromCStruct BlitImageInfo2+++data BufferCopy2++instance ToCStruct BufferCopy2+instance Show BufferCopy2++instance FromCStruct BufferCopy2+++type role BufferImageCopy2 nominal+data BufferImageCopy2 (es :: [Type])++instance (Extendss BufferImageCopy2 es, PokeChain es) => ToCStruct (BufferImageCopy2 es)+instance Show (Chain es) => Show (BufferImageCopy2 es)++instance (Extendss BufferImageCopy2 es, PeekChain es) => FromCStruct (BufferImageCopy2 es)+++data CopyBufferInfo2++instance ToCStruct CopyBufferInfo2+instance Show CopyBufferInfo2++instance FromCStruct CopyBufferInfo2+++data CopyBufferToImageInfo2++instance ToCStruct CopyBufferToImageInfo2+instance Show CopyBufferToImageInfo2++instance FromCStruct CopyBufferToImageInfo2+++data CopyImageInfo2++instance ToCStruct CopyImageInfo2+instance Show CopyImageInfo2++instance FromCStruct CopyImageInfo2+++data CopyImageToBufferInfo2++instance ToCStruct CopyImageToBufferInfo2+instance Show CopyImageToBufferInfo2++instance FromCStruct CopyImageToBufferInfo2+++type role ImageBlit2 nominal+data ImageBlit2 (es :: [Type])++instance (Extendss ImageBlit2 es, PokeChain es) => ToCStruct (ImageBlit2 es)+instance Show (Chain es) => Show (ImageBlit2 es)++instance (Extendss ImageBlit2 es, PeekChain es) => FromCStruct (ImageBlit2 es)+++data ImageCopy2++instance ToCStruct ImageCopy2+instance Show ImageCopy2++instance FromCStruct ImageCopy2+++data ImageResolve2++instance ToCStruct ImageResolve2+instance Show ImageResolve2++instance FromCStruct ImageResolve2+++data ResolveImageInfo2++instance ToCStruct ResolveImageInfo2+instance Show ResolveImageInfo2++instance FromCStruct ResolveImageInfo2+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs view
@@ -0,0 +1,1524 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_dynamic_rendering"+module Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering ( cmdBeginRendering+ , cmdUseRendering+ , cmdEndRendering+ , PipelineRenderingCreateInfo(..)+ , RenderingInfo(..)+ , RenderingAttachmentInfo(..)+ , PhysicalDeviceDynamicRenderingFeatures(..)+ , CommandBufferInheritanceRenderingInfo(..)+ , AttachmentStoreOp(..)+ , StructureType(..)+ , RenderingFlagBits(..)+ , RenderingFlags+ ) where++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 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.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 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.Core10.Enums.AttachmentLoadOp (AttachmentLoadOp)+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.CStruct.Extends (Chain)+import Vulkan.Core10.CommandBufferBuilding (ClearValue)+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(pVkCmdBeginRendering))+import Vulkan.Dynamic (DeviceCmds(pVkCmdEndRendering))+import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.Enums.Format (Format)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.Handles (ImageView)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)+import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlagBits)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_INFO))+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(..))+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlagBits(..))+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBeginRendering+ :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfo) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfo) -> IO ()++-- | vkCmdBeginRendering - Begin a dynamic render pass instance+--+-- = Description+--+-- 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>.+--+-- 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>.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBeginRendering-dynamicRendering-06446# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdBeginRendering-commandBuffer-06068# If @commandBuffer@ is+-- a secondary command buffer, @pRenderingInfo->flags@ /must/ not+-- include+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBeginRendering-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBeginRendering-pRenderingInfo-parameter# @pRenderingInfo@+-- /must/ be a valid pointer to a valid 'RenderingInfo' structure+--+-- - #VUID-vkCmdBeginRendering-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-vkCmdBeginRendering-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBeginRendering-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 | Graphics |+-- | Secondary | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = 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_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderingInfo'+cmdBeginRendering :: forall a io+ . (Extendss RenderingInfo a, PokeChain a, MonadIO io)+ => -- | @commandBuffer@ is the command buffer in which to record the command.+ CommandBuffer+ -> -- | @pRenderingInfo@ is a pointer to a 'RenderingInfo' structure specifying+ -- details of the render pass instance to begin.+ (RenderingInfo a)+ -> io ()+cmdBeginRendering commandBuffer renderingInfo = liftIO . evalContT $ do+ let vkCmdBeginRenderingPtr = pVkCmdBeginRendering (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdBeginRenderingPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRendering is null" Nothing Nothing+ let vkCmdBeginRendering' = mkVkCmdBeginRendering vkCmdBeginRenderingPtr+ pRenderingInfo <- ContT $ withCStruct (renderingInfo)+ lift $ traceAroundEvent "vkCmdBeginRendering" (vkCmdBeginRendering' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderingInfo))+ pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginRendering' and 'cmdEndRendering'+--+-- Note that 'cmdEndRendering' is *not* called if an exception is thrown by+-- the inner action.+cmdUseRendering :: forall a io r . (Extendss RenderingInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfo a -> io r -> io r+cmdUseRendering commandBuffer pRenderingInfo a =+ (cmdBeginRendering commandBuffer pRenderingInfo) *> a <* (cmdEndRendering commandBuffer)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdEndRendering+ :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()++-- | vkCmdEndRendering - End a dynamic render pass instance+--+-- = Description+--+-- If the value of @pRenderingInfo->flags@ used to begin this render pass+-- 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>.+--+-- == Valid Usage+--+-- - #VUID-vkCmdEndRendering-None-06161# The current render pass instance+-- /must/ have been begun with 'cmdBeginRendering'+--+-- - #VUID-vkCmdEndRendering-commandBuffer-06162# The current render pass+-- instance /must/ have been begun in @commandBuffer@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdEndRendering-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdEndRendering-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-vkCmdEndRendering-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdEndRendering-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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdEndRendering :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer in which to record the command.+ CommandBuffer+ -> io ()+cmdEndRendering commandBuffer = liftIO $ do+ let vkCmdEndRenderingPtr = pVkCmdEndRendering (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdEndRenderingPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRendering is null" Nothing Nothing+ let vkCmdEndRendering' = mkVkCmdEndRendering vkCmdEndRenderingPtr+ traceAroundEvent "vkCmdEndRendering" (vkCmdEndRendering' (commandBufferHandle (commandBuffer)))+ pure $ ()+++-- | VkPipelineRenderingCreateInfo - Structure specifying attachment formats+--+-- = Description+--+-- When a pipeline is created without a 'Vulkan.Core10.Handles.RenderPass',+-- if this structure is present in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it specifies the+-- view mask and format of attachments used for rendering. If this+-- structure is not specified, and the pipeline does not include a+-- 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and+-- @colorAttachmentCount@ are @0@, and @depthAttachmentFormat@ and+-- @stencilAttachmentFormat@ are+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. If a graphics pipeline is+-- created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters of+-- this structure are ignored.+--+-- If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of+-- @pColorAttachmentFormats@ is+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the+-- corresponding attachment is unused within the render pass. Valid formats+-- indicate that an attachment /can/ be used - but it is still valid to set+-- the attachment to @NULL@ when beginning rendering.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-06495#+-- 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>+-- that includes either+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- - #VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-06065# 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>+-- that include+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkPipelineRenderingCreateInfo-stencilAttachmentFormat-06164#+-- 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>+-- that include+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-06165# If+-- @depthAttachmentFormat@ is not+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and+-- @stencilAttachmentFormat@ is not+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',+-- @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@+--+-- - #VUID-VkPipelineRenderingCreateInfo-multiview-06066# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+-- feature is not enabled, @viewMask@ /must/ be @0@+--+-- - #VUID-VkPipelineRenderingCreateInfo-viewMask-06067# 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>+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineRenderingCreateInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO'+--+-- - #VUID-VkPipelineRenderingCreateInfo-pColorAttachmentFormats-parameter#+-- If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@+-- /must/ be a valid pointer to an array of @colorAttachmentCount@+-- valid 'Vulkan.Core10.Enums.Format.Format' values+--+-- - #VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-parameter#+-- @depthAttachmentFormat@ /must/ be a valid+-- 'Vulkan.Core10.Enums.Format.Format' value+--+-- - #VUID-VkPipelineRenderingCreateInfo-stencilAttachmentFormat-parameter#+-- @stencilAttachmentFormat@ /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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineRenderingCreateInfo = PipelineRenderingCreateInfo+ { -- | @viewMask@ is the viewMask used for rendering.+ viewMask :: Word32+ , -- | @pColorAttachmentFormats@ is a pointer to an array of+ -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color+ -- attachments used in this pipeline.+ colorAttachmentFormats :: Vector Format+ , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+ -- defining the format of the depth attachment used in this pipeline.+ depthAttachmentFormat :: Format+ , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+ -- defining the format of the stencil attachment used in this pipeline.+ stencilAttachmentFormat :: Format+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineRenderingCreateInfo)+#endif+deriving instance Show PipelineRenderingCreateInfo++instance ToCStruct PipelineRenderingCreateInfo where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineRenderingCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (viewMask)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))+ pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')+ lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (depthAttachmentFormat)+ lift $ poke ((p `plusPtr` 36 :: Ptr Format)) (stencilAttachmentFormat)+ lift $ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Format)) (zero)+ poke ((p `plusPtr` 36 :: Ptr Format)) (zero)+ f++instance FromCStruct PipelineRenderingCreateInfo where+ peekCStruct p = do+ viewMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ colorAttachmentCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 24 :: Ptr (Ptr Format)))+ pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))+ depthAttachmentFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format))+ stencilAttachmentFormat <- peek @Format ((p `plusPtr` 36 :: Ptr Format))+ pure $ PipelineRenderingCreateInfo+ viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat++instance Zero PipelineRenderingCreateInfo where+ zero = PipelineRenderingCreateInfo+ zero+ mempty+ zero+ zero+++-- | VkRenderingInfo - Structure specifying render pass instance begin info+--+-- = Description+--+-- If @viewMask@ is not @0@, multiview is enabled.+--+-- If there is an instance of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- included in the @pNext@ chain and its @deviceCount@ member is not @0@,+-- then @renderArea@ is ignored, and the render area is defined per-device+-- by that structure.+--+-- Each element of the @pColorAttachments@ array corresponds to an output+-- location in the shader, i.e. if the shader declares an output variable+-- decorated with a @Location@ value of __X__, then it uses the attachment+-- provided in @pColorAttachments@[__X__]. If the @imageView@ member of any+-- element of @pColorAttachments@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', writes to the corresponding+-- location by a fragment are discarded.+--+-- == Valid Usage+--+-- - #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@,+-- @pStencilAttachment@, and elements of @pColorAttachments@ that are+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been+-- created with the same @sampleCount@+--+-- - #VUID-VkRenderingInfo-pNext-06077# 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-VkRenderingInfo-pNext-06078# 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-VkRenderingInfo-pNext-06079# If the @pNext@ chain does not+-- contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0, the width of+-- the @imageView@ member of any element of @pColorAttachments@,+-- @pDepthAttachment@, or @pStencilAttachment@ that is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or+-- equal to @renderArea.offset.x@ + @renderArea.extent.width@+--+-- - #VUID-VkRenderingInfo-pNext-06080# If the @pNext@ chain does not+-- contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0, the height of+-- the @imageView@ member of any element of @pColorAttachments@,+-- @pDepthAttachment@, or @pStencilAttachment@ that is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or+-- equal to @renderArea.offset.y@ + @renderArea.extent.height@+--+-- - #VUID-VkRenderingInfo-pNext-06083# If the @pNext@ chain contains+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+-- the width of the @imageView@ member of any element of+-- @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@+-- that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be+-- greater than or equal to the sum of the @offset.x@ and+-- @extent.width@ members of each element of @pDeviceRenderAreas@+--+-- - #VUID-VkRenderingInfo-pNext-06084# If the @pNext@ chain contains+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+-- the height of the @imageView@ member of any element of+-- @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@+-- that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be+-- greater than or equal to the sum of the @offset.y@ and+-- @extent.height@ members of each element of @pDeviceRenderAreas@+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06085# If neither+-- @pDepthAttachment@ or @pStencilAttachment@ are @NULL@ and the+-- @imageView@ member of either structure is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @imageView@ member of+-- each structure /must/ be the same+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06086# If neither+-- @pDepthAttachment@ or @pStencilAttachment@ are @NULL@, and the+-- @resolveMode@ member of each is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the+-- @resolveImageView@ member of each structure /must/ be the same+--+-- - #VUID-VkRenderingInfo-colorAttachmentCount-06087# If+-- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+-- element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', that @imageView@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06088# If @pDepthAttachment@+-- is not @NULL@ and @pDepthAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @pDepthAttachment->imageView@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkRenderingInfo-pStencilAttachment-06089# If+-- @pStencilAttachment@ is not @NULL@ and+-- @pStencilAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @pStencilAttachment->imageView@ /must/ have been created with a+-- stencil usage including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkRenderingInfo-colorAttachmentCount-06090# If+-- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+-- element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of+-- that element of @pColorAttachments@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-colorAttachmentCount-06091# If+-- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+-- element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@+-- member of that element of @pColorAttachments@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its+-- @resolveImageLayout@ member /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06092# If @pDepthAttachment@+-- is not @NULL@ and @pDepthAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @pDepthAttachment->layout@+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06093# If @pDepthAttachment@+-- is not @NULL@, @pDepthAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- @pDepthAttachment->resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @pDepthAttachment->resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-pStencilAttachment-06094# If+-- @pStencilAttachment@ is not @NULL@ and+-- @pStencilAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @pStencilAttachment->layout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-pStencilAttachment-06095# If+-- @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- @pStencilAttachment->resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @pStencilAttachment->resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-colorAttachmentCount-06096# If+-- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+-- element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of+-- that element of @pColorAttachments@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-colorAttachmentCount-06097# If+-- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+-- element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@+-- member of that element of @pColorAttachments@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its+-- @resolveImageLayout@ member /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06098# If @pDepthAttachment@+-- is not @NULL@, @pDepthAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- @pDepthAttachment->resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @pDepthAttachment->resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-pStencilAttachment-06099# If+-- @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- @pStencilAttachment->resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @pStencilAttachment->resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkRenderingInfo-colorAttachmentCount-06100# If+-- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+-- element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of+-- that element of @pColorAttachments@ /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-VkRenderingInfo-colorAttachmentCount-06101# If+-- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an+-- element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@+-- member of that element of @pColorAttachments@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its+-- @resolveImageLayout@ 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-VkRenderingInfo-pDepthAttachment-06102# If @pDepthAttachment@+-- is not @NULL@ and @pDepthAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @pDepthAttachment->resolveMode@ /must/ be one of the bits set in+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedDepthResolveModes@+--+-- - #VUID-VkRenderingInfo-pStencilAttachment-06103# If+-- @pStencilAttachment@ is not @NULL@ and+-- @pStencilAttachment->imageView@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @pStencilAttachment->resolveMode@ /must/ be one of the bits set in+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedStencilResolveModes@+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06104# If @pDepthAttachment@+-- or @pStencilAttachment@ are both not @NULL@,+-- @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@+-- are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolveNone@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', the @resolveMode@ of both+-- structures /must/ be the same value+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-06105# If @pDepthAttachment@+-- or @pStencilAttachment@ are both not @NULL@,+-- @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@+-- are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolve@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and the @resolveMode@ of+-- neither structure is+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the+-- @resolveMode@ of both structures /must/ be the same value+--+-- - #VUID-VkRenderingInfo-colorAttachmentCount-06106#+-- @colorAttachmentCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxColorAttachments@+--+-- - #VUID-VkRenderingInfo-imageView-06107# If the @imageView@ member of+-- 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.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-VkRenderingInfo-imageView-06108# If the @imageView@ member of+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,+-- @imageView@ /must/ have a @layerCount@ greater than or equal to the+-- index of the most significant bit in @viewMask@+--+-- - #VUID-VkRenderingInfo-imageView-06109# If the @imageView@ member of+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,+-- @imageView@ /must/ have a @layerCount@ equal to @1@+--+-- - #VUID-VkRenderingInfo-pNext-06112# If the @pNext@ chain does not+-- contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0 and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- width greater than or equal to+-- \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)+--+-- - #VUID-VkRenderingInfo-pNext-06113# If the @pNext@ chain contains a+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- structure, its @deviceRenderAreaCount@ member is not 0, and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- width greater than or equal to+-- \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)+-- for each element of @pDeviceRenderAreas@+--+-- - #VUID-VkRenderingInfo-pNext-06114# If the @pNext@ chain does not+-- contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0 and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- height greater than or equal to+-- \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)+--+-- - #VUID-VkRenderingInfo-pNext-06115# If the @pNext@ chain contains a+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- structure, its @deviceRenderAreaCount@ member is not 0, and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- height greater than or equal to+-- \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)+-- for each element of @pDeviceRenderAreas@+--+-- - #VUID-VkRenderingInfo-imageView-06116# If the @imageView@ member of+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to+-- the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,+-- @pStencilAttachment@, or any element of @pColorAttachments@+--+-- - #VUID-VkRenderingInfo-pNext-06119# If the @pNext@ chain does not+-- contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0 and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- width greater than or equal to+-- \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)+--+-- - #VUID-VkRenderingInfo-pNext-06120# If the @pNext@ chain contains a+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- structure, its @deviceRenderAreaCount@ member is not 0, and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- width greater than or equal to+-- \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)+-- for each element of @pDeviceRenderAreas@+--+-- - #VUID-VkRenderingInfo-pNext-06121# If the @pNext@ chain does not+-- contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0 and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- height greater than or equal to+-- \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)+--+-- - #VUID-VkRenderingInfo-pNext-06122# If the @pNext@ chain contains a+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- structure, its @deviceRenderAreaCount@ member is not 0, and the+-- @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a+-- height greater than or equal to+-- \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)+-- for each element of @pDeviceRenderAreas@+--+-- - #VUID-VkRenderingInfo-imageView-06123# If the @imageView@ member of+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,+-- @imageView@ /must/ have a @layerCount@ that is either equal to @1@+-- or greater than or equal to @layerCount@+--+-- - #VUID-VkRenderingInfo-imageView-06124# If the @imageView@ member of+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,+-- @imageView@ /must/ have a @layerCount@ that either equal to @1@ or+-- greater than or equal to the index of the most significant bit in+-- @viewMask@+--+-- - #VUID-VkRenderingInfo-imageView-06125# If the @imageView@ member of+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to+-- the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,+-- @pStencilAttachment@, or any element of @pColorAttachments@+--+-- - #VUID-VkRenderingInfo-imageView-06126# If the @imageView@ member of+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+-- structure included in the @pNext@ chain is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to+-- the @imageView@ member of a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'+-- 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>+-- 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>+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkRenderingInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO'+--+-- - #VUID-VkRenderingInfo-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.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'+--+-- - #VUID-VkRenderingInfo-sType-unique# The @sType@ value of each struct+-- in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkRenderingInfo-flags-parameter# @flags@ /must/ be a valid+-- combination of+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits' values+--+-- - #VUID-VkRenderingInfo-pColorAttachments-parameter# If+-- @colorAttachmentCount@ is not @0@, @pColorAttachments@ /must/ be a+-- valid pointer to an array of @colorAttachmentCount@ valid+-- 'RenderingAttachmentInfo' structures+--+-- - #VUID-VkRenderingInfo-pDepthAttachment-parameter# If+-- @pDepthAttachment@ is not @NULL@, @pDepthAttachment@ /must/ be a+-- valid pointer to a valid 'RenderingAttachmentInfo' structure+--+-- - #VUID-VkRenderingInfo-pStencilAttachment-parameter# If+-- @pStencilAttachment@ is not @NULL@, @pStencilAttachment@ /must/ be a+-- valid pointer to a valid 'RenderingAttachmentInfo' structure+--+-- = 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_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'+data RenderingInfo (es :: [Type]) = RenderingInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is a bitmask of+ -- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits'.+ flags :: RenderingFlags+ , -- | @renderArea@ is the render area that is affected by the render pass+ -- instance.+ renderArea :: Rect2D+ , -- | @layerCount@ is the number of layers rendered to in each attachment when+ -- @viewMask@ is @0@.+ layerCount :: Word32+ , -- | @viewMask@ is the view mask indicating the indices of attachment layers+ -- that will be rendered when it is not @0@.+ viewMask :: Word32+ , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@+ -- 'RenderingAttachmentInfo' structures describing any color attachments+ -- used.+ colorAttachments :: Vector RenderingAttachmentInfo+ , -- | @pDepthAttachment@ is a pointer to a 'RenderingAttachmentInfo' structure+ -- describing a depth attachment.+ depthAttachment :: Maybe RenderingAttachmentInfo+ , -- | @pStencilAttachment@ is a pointer to a 'RenderingAttachmentInfo'+ -- structure describing a stencil attachment.+ stencilAttachment :: Maybe RenderingAttachmentInfo+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (RenderingInfo es)++instance Extensible RenderingInfo where+ extensibleTypeName = "RenderingInfo"+ setNext RenderingInfo{..} next' = RenderingInfo{next = next', ..}+ getNext RenderingInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingInfo e => b) -> Maybe b+ extends _ f+ | 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 @DeviceGroupRenderPassBeginInfo = Just f+ | otherwise = Nothing++instance (Extendss RenderingInfo es, PokeChain es) => ToCStruct (RenderingInfo es) where+ withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderingInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (renderArea)+ lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (layerCount)+ lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (viewMask)+ lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachments)) :: Word32))+ pPColorAttachments' <- ContT $ allocaBytes @RenderingAttachmentInfo ((Data.Vector.length (colorAttachments)) * 72)+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPColorAttachments' `plusPtr` (72 * (i)) :: Ptr RenderingAttachmentInfo) (e) . ($ ())) (colorAttachments)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr RenderingAttachmentInfo))) (pPColorAttachments')+ pDepthAttachment'' <- case (depthAttachment) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr RenderingAttachmentInfo))) pDepthAttachment''+ pStencilAttachment'' <- case (stencilAttachment) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ lift $ poke ((p `plusPtr` 64 :: Ptr (Ptr RenderingAttachmentInfo))) pStencilAttachment''+ lift $ f+ cStructSize = 72+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (zero)+ lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+ lift $ f++instance es ~ '[] => Zero (RenderingInfo es) where+ zero = RenderingInfo+ ()+ zero+ zero+ zero+ zero+ mempty+ Nothing+ Nothing+++-- | VkRenderingAttachmentInfo - Structure specifying attachment information+--+-- = Description+--+-- Values in @imageView@ are loaded and stored according to the values of+-- @loadOp@ and @storeOp@, within the render area for each device specified+-- in 'RenderingInfo'. If @imageView@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', other members of this+-- structure are ignored; writes to this attachment will be discarded, and+-- no load, store, or resolve operations will be performed.+--+-- 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+-- @resolveMode@ and stored into the the same location in+-- @resolveImageView@.+--+-- Note+--+-- The resolve mode and store operation are independent; it is valid to+-- write both resolved and unresolved values, and equally valid to discard+-- the unresolved values while writing the resolved ones.+--+-- Store and resolve operations are only performed at the end of a render+-- pass instance that does not specify the+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_SUSPENDING_BIT_KHR'+-- flag.+--+-- Load operations are only performed at the beginning of a render pass+-- instance that does not specify the+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_RESUMING_BIT_KHR' flag.+--+-- Image contents at the end of a suspended render pass instance remain+-- defined for access by a resuming render pass instance.+--+-- == Valid Usage+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06129# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has a non-integer+-- color format, @resolveMode@ /must/ be+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_AVERAGE_BIT'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06130# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has an integer+-- color format, @resolveMode@ /must/ be+-- '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+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06133# If @imageView@ 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+-- 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',+-- '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',+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06136# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- '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',+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06137# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+-- or+-- '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+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06139# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @resolveImageLayout@ /must/ not be+-- '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+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06141# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06142# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @resolveImageLayout@ /must/ not be+-- '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+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06144# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @resolveImageLayout@ /must/ not be+-- '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+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06146# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',+-- @resolveImageLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkRenderingAttachmentInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO'+--+-- - #VUID-VkRenderingAttachmentInfo-pNext-pNext# @pNext@ /must/ be+-- @NULL@+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-parameter# If @imageView@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/+-- be a valid 'Vulkan.Core10.Handles.ImageView' handle+--+-- - #VUID-VkRenderingAttachmentInfo-imageLayout-parameter# @imageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-VkRenderingAttachmentInfo-resolveMode-parameter# If+-- @resolveMode@ is not @0@, @resolveMode@ /must/ be a valid+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+--+-- - #VUID-VkRenderingAttachmentInfo-resolveImageView-parameter# If+-- @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @resolveImageView@ /must/ be a valid+-- 'Vulkan.Core10.Handles.ImageView' handle+--+-- - #VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameter#+-- @resolveImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-VkRenderingAttachmentInfo-loadOp-parameter# @loadOp@ /must/ be+-- a valid 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'+-- value+--+-- - #VUID-VkRenderingAttachmentInfo-storeOp-parameter# @storeOp@ /must/+-- be a valid 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'+-- value+--+-- - #VUID-VkRenderingAttachmentInfo-clearValue-parameter# @clearValue@+-- /must/ be a valid 'Vulkan.Core10.CommandBufferBuilding.ClearValue'+-- union+--+-- - #VUID-VkRenderingAttachmentInfo-commonparent# Both of @imageView@,+-- and @resolveImageView@ 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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp',+-- 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp',+-- 'Vulkan.Core10.CommandBufferBuilding.ClearValue',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView', 'RenderingInfo',+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderingAttachmentInfo = RenderingAttachmentInfo+ { -- | @imageView@ is the image view that will be used for rendering.+ imageView :: ImageView+ , -- | @imageLayout@ is the layout that @imageView@ will be in during+ -- rendering.+ imageLayout :: ImageLayout+ , -- | @resolveMode@ is a+ -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+ -- defining how multisampled data written to @imageView@ will be resolved.+ resolveMode :: ResolveModeFlagBits+ , -- | @resolveImageView@ is an image view used to write resolved multisample+ -- data at the end of rendering.+ resolveImageView :: ImageView+ , -- | @resolveImageLayout@ is the layout that @resolveImageView@ will be in+ -- during rendering.+ resolveImageLayout :: ImageLayout+ , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'+ -- value specifying how the contents of @imageView@ are treated at the+ -- start of the render pass instance.+ loadOp :: AttachmentLoadOp+ , -- | @storeOp@ is a 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'+ -- value specifying how the contents of @imageView@ are treated at the end+ -- of the render pass instance.+ storeOp :: AttachmentStoreOp+ , -- | @clearValue@ is a 'Vulkan.Core10.CommandBufferBuilding.ClearValue'+ -- structure defining values used to clear @imageView@ when @loadOp@ is+ -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'.+ clearValue :: ClearValue+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingAttachmentInfo)+#endif+deriving instance Show RenderingAttachmentInfo++instance ToCStruct RenderingAttachmentInfo where+ withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderingAttachmentInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)+ lift $ poke ((p `plusPtr` 28 :: Ptr ResolveModeFlagBits)) (resolveMode)+ lift $ poke ((p `plusPtr` 32 :: Ptr ImageView)) (resolveImageView)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (resolveImageLayout)+ lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (loadOp)+ lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (storeOp)+ ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (clearValue) . ($ ())+ lift $ f+ cStructSize = 72+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (zero)+ lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (zero)+ ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (zero) . ($ ())+ lift $ f++instance Zero RenderingAttachmentInfo where+ zero = RenderingAttachmentInfo+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkPhysicalDeviceDynamicRenderingFeatures - Structure indicating support+-- for dynamic render pass instances+--+-- = Members+--+-- The members of the 'PhysicalDeviceDynamicRenderingFeatures' structure+-- describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceDynamicRenderingFeatures' 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. 'PhysicalDeviceDynamicRenderingFeatures' /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_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceDynamicRenderingFeatures = PhysicalDeviceDynamicRenderingFeatures+ { -- | #extension-features-dynamicRendering# @dynamicRendering@ specifies that+ -- the implementation supports dynamic render pass instances using the+ -- 'cmdBeginRendering' command.+ dynamicRendering :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceDynamicRenderingFeatures)+#endif+deriving instance Show PhysicalDeviceDynamicRenderingFeatures++instance ToCStruct PhysicalDeviceDynamicRenderingFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceDynamicRenderingFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (dynamicRendering))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceDynamicRenderingFeatures where+ peekCStruct p = do+ dynamicRendering <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceDynamicRenderingFeatures+ (bool32ToBool dynamicRendering)++instance Storable PhysicalDeviceDynamicRenderingFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceDynamicRenderingFeatures where+ zero = PhysicalDeviceDynamicRenderingFeatures+ zero+++-- | VkCommandBufferInheritanceRenderingInfo - Structure specifying command+-- buffer inheritance info for dynamic render pass instances+--+-- = Description+--+-- If the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes a+-- 'CommandBufferInheritanceRenderingInfo' structure, then that structure+-- controls parameters of dynamic render pass instances that the+-- 'Vulkan.Core10.Handles.CommandBuffer' /can/ be executed within. If+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+-- is not specified in+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,+-- 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>+-- feature is enabled, @rasterizationSamples@ is ignored.+--+-- If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of+-- @pColorAttachmentFormats@ is+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the+-- corresponding attachment is unused within the render pass.+--+-- == Valid Usage+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004#+-- If @colorAttachmentCount@ is not @0@, @rasterizationSamples@ /must/+-- be a valid+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005#+-- If the+-- <https://www.khronos.org/registry/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+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06006#+-- 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>+-- that include+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007#+-- 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>+-- 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>,+-- 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>+-- that include+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199#+-- 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>+-- that include+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200#+-- If @depthAttachmentFormat@ is not+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and+-- @stencilAttachmentFormat@ is not+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',+-- @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008# If+-- the+-- <https://www.khronos.org/registry/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>+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO'+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameter#+-- @flags@ /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits' values+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameter#+-- If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@+-- /must/ be a valid pointer to an array of @colorAttachmentCount@+-- valid 'Vulkan.Core10.Enums.Format.Format' values+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameter#+-- @depthAttachmentFormat@ /must/ be a valid+-- 'Vulkan.Core10.Enums.Format.Format' value+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameter#+-- @stencilAttachmentFormat@ /must/ be a valid+-- 'Vulkan.Core10.Enums.Format.Format' value+--+-- - #VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameter#+-- If @rasterizationSamples@ is not @0@, @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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlags',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data CommandBufferInheritanceRenderingInfo = CommandBufferInheritanceRenderingInfo+ { -- | @flags@ is a bitmask of+ -- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits' used by the+ -- render pass instance.+ flags :: RenderingFlags+ , -- | @viewMask@ is the view mask used for rendering.+ viewMask :: Word32+ , -- | @pColorAttachmentFormats@ is a pointer to an array of+ -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color+ -- attachments.+ colorAttachmentFormats :: Vector Format+ , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+ -- defining the format of the depth attachment.+ depthAttachmentFormat :: Format+ , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value+ -- defining the format of the stencil attachment.+ stencilAttachmentFormat :: Format+ , -- | @rasterizationSamples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying+ -- the number of samples used in rasterization.+ rasterizationSamples :: SampleCountFlagBits+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CommandBufferInheritanceRenderingInfo)+#endif+deriving instance Show CommandBufferInheritanceRenderingInfo++instance ToCStruct CommandBufferInheritanceRenderingInfo where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CommandBufferInheritanceRenderingInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewMask)+ lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))+ pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)+ lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')+ lift $ poke ((p `plusPtr` 40 :: Ptr Format)) (depthAttachmentFormat)+ lift $ poke ((p `plusPtr` 44 :: Ptr Format)) (stencilAttachmentFormat)+ lift $ poke ((p `plusPtr` 48 :: Ptr SampleCountFlagBits)) (rasterizationSamples)+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 40 :: Ptr Format)) (zero)+ poke ((p `plusPtr` 44 :: Ptr Format)) (zero)+ f++instance FromCStruct CommandBufferInheritanceRenderingInfo where+ peekCStruct p = do+ flags <- peek @RenderingFlags ((p `plusPtr` 16 :: Ptr RenderingFlags))+ viewMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ colorAttachmentCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 32 :: Ptr (Ptr Format)))+ pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))+ depthAttachmentFormat <- peek @Format ((p `plusPtr` 40 :: Ptr Format))+ stencilAttachmentFormat <- peek @Format ((p `plusPtr` 44 :: Ptr Format))+ rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 48 :: Ptr SampleCountFlagBits))+ pure $ CommandBufferInheritanceRenderingInfo+ flags viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat rasterizationSamples++instance Zero CommandBufferInheritanceRenderingInfo where+ zero = CommandBufferInheritanceRenderingInfo+ zero+ zero+ mempty+ zero+ zero+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs-boot view
@@ -0,0 +1,51 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_dynamic_rendering"+module Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering ( CommandBufferInheritanceRenderingInfo+ , PhysicalDeviceDynamicRenderingFeatures+ , PipelineRenderingCreateInfo+ , RenderingAttachmentInfo+ , RenderingInfo+ ) 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 (PokeChain)+data CommandBufferInheritanceRenderingInfo++instance ToCStruct CommandBufferInheritanceRenderingInfo+instance Show CommandBufferInheritanceRenderingInfo++instance FromCStruct CommandBufferInheritanceRenderingInfo+++data PhysicalDeviceDynamicRenderingFeatures++instance ToCStruct PhysicalDeviceDynamicRenderingFeatures+instance Show PhysicalDeviceDynamicRenderingFeatures++instance FromCStruct PhysicalDeviceDynamicRenderingFeatures+++data PipelineRenderingCreateInfo++instance ToCStruct PipelineRenderingCreateInfo+instance Show PipelineRenderingCreateInfo++instance FromCStruct PipelineRenderingCreateInfo+++data RenderingAttachmentInfo++instance ToCStruct RenderingAttachmentInfo+instance Show RenderingAttachmentInfo+++type role RenderingInfo nominal+data RenderingInfo (es :: [Type])++instance (Extendss RenderingInfo es, PokeChain es) => ToCStruct (RenderingInfo es)+instance Show (Chain es) => Show (RenderingInfo es)+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_format_feature_flags2.hs view
@@ -0,0 +1,105 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_format_feature_flags2"+module Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 ( FormatProperties3(..)+ , StructureType(..)+ , FormatFeatureFlagBits2(..)+ , FormatFeatureFlags2+ ) 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.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.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_3))+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlagBits2(..))+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkFormatProperties3 - Structure specifying image format properties+--+-- = Description+--+-- The bits reported in @linearTilingFeatures@, @optimalTilingFeatures@ and+-- @bufferFeatures@ /must/ include the bits reported in the corresponding+-- fields of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2'::@formatProperties@.+--+-- == Valid Usage (Implicit)+--+-- = 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>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data FormatProperties3 = FormatProperties3+ { -- | @linearTilingFeatures@ is a bitmask of+ -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2'+ -- specifying features supported by images created with a @tiling@+ -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'.+ linearTilingFeatures :: FormatFeatureFlags2+ , -- | @optimalTilingFeatures@ is a bitmask of+ -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2'+ -- specifying features supported by images created with a @tiling@+ -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.+ optimalTilingFeatures :: FormatFeatureFlags2+ , -- | @bufferFeatures@ is a bitmask of+ -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2'+ -- specifying features supported by buffers.+ bufferFeatures :: FormatFeatureFlags2+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (FormatProperties3)+#endif+deriving instance Show FormatProperties3++instance ToCStruct FormatProperties3 where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p FormatProperties3{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2)) (linearTilingFeatures)+ poke ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2)) (optimalTilingFeatures)+ poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2)) (bufferFeatures)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct FormatProperties3 where+ peekCStruct p = do+ linearTilingFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2))+ optimalTilingFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2))+ bufferFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2))+ pure $ FormatProperties3+ linearTilingFeatures optimalTilingFeatures bufferFeatures++instance Storable FormatProperties3 where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero FormatProperties3 where+ zero = FormatProperties3+ zero+ zero+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_format_feature_flags2.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_format_feature_flags2"+module Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data FormatProperties3++instance ToCStruct FormatProperties3+instance Show FormatProperties3++instance FromCStruct FormatProperties3+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs view
@@ -0,0 +1,566 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_maintenance4"+module Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 ( getDeviceBufferMemoryRequirements+ , getDeviceImageMemoryRequirements+ , getDeviceImageSparseMemoryRequirements+ , DeviceBufferMemoryRequirements(..)+ , DeviceImageMemoryRequirements(..)+ , PhysicalDeviceMaintenance4Features(..)+ , PhysicalDeviceMaintenance4Properties(..)+ , StructureType(..)+ ) 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 (castPtr)+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.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.CStruct.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (withSomeCStruct)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Buffer (BufferCreateInfo)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceBufferMemoryRequirements))+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageMemoryRequirements))+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageSparseMemoryRequirements))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits)+import Vulkan.Core10.Image (ImageCreateInfo)+import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.CStruct.Extends (SomeStruct(..))+import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (SparseImageMemoryRequirements2)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetDeviceBufferMemoryRequirements+ :: FunPtr (Ptr Device_T -> Ptr DeviceBufferMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceBufferMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()++-- | vkGetDeviceBufferMemoryRequirements - Returns the memory requirements+-- for specified Vulkan object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device', 'DeviceBufferMemoryRequirements',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'+getDeviceBufferMemoryRequirements :: forall a io+ . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)+ => -- | @device@ is the logical device intended to own the buffer.+ --+ -- #VUID-vkGetDeviceBufferMemoryRequirements-device-parameter# @device@+ -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @pInfo@ is a pointer to a 'DeviceBufferMemoryRequirements' structure+ -- containing parameters required for the memory requirements query.+ --+ -- #VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameter# @pInfo@+ -- /must/ be a valid pointer to a valid 'DeviceBufferMemoryRequirements'+ -- structure+ ("info" ::: DeviceBufferMemoryRequirements)+ -> io (MemoryRequirements2 a)+getDeviceBufferMemoryRequirements device info = liftIO . evalContT $ do+ let vkGetDeviceBufferMemoryRequirementsPtr = pVkGetDeviceBufferMemoryRequirements (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetDeviceBufferMemoryRequirementsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceBufferMemoryRequirements is null" Nothing Nothing+ let vkGetDeviceBufferMemoryRequirements' = mkVkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirementsPtr+ pInfo <- ContT $ withCStruct (info)+ pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))+ lift $ traceAroundEvent "vkGetDeviceBufferMemoryRequirements" (vkGetDeviceBufferMemoryRequirements' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+ pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements+ pure $ (pMemoryRequirements)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetDeviceImageMemoryRequirements+ :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr (SomeStruct MemoryRequirements2) -> IO ()++-- | vkGetDeviceImageMemoryRequirements - Returns the memory requirements for+-- specified Vulkan object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirements',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'+getDeviceImageMemoryRequirements :: forall a io+ . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)+ => -- | @device@ is the logical device intended to own the image.+ --+ -- #VUID-vkGetDeviceImageMemoryRequirements-device-parameter# @device@+ -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirements' structure+ -- containing parameters required for the memory requirements query.+ --+ -- #VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameter# @pInfo@ /must/+ -- be a valid pointer to a valid 'DeviceImageMemoryRequirements' structure+ ("info" ::: DeviceImageMemoryRequirements)+ -> io (MemoryRequirements2 a)+getDeviceImageMemoryRequirements device info = liftIO . evalContT $ do+ let vkGetDeviceImageMemoryRequirementsPtr = pVkGetDeviceImageMemoryRequirements (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetDeviceImageMemoryRequirementsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageMemoryRequirements is null" Nothing Nothing+ let vkGetDeviceImageMemoryRequirements' = mkVkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirementsPtr+ pInfo <- ContT $ withCStruct (info)+ pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))+ lift $ traceAroundEvent "vkGetDeviceImageMemoryRequirements" (vkGetDeviceImageMemoryRequirements' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+ pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements+ pure $ (pMemoryRequirements)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetDeviceImageSparseMemoryRequirements+ :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirements -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()++-- | vkGetDeviceImageSparseMemoryRequirements - Query the memory requirements+-- for a sparse image+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameter#+-- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameter#+-- @pInfo@ /must/ be a valid pointer to a valid+-- 'DeviceImageMemoryRequirements' structure+--+-- - #VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter#+-- @pSparseMemoryRequirementCount@ /must/ be a valid pointer to a+-- @uint32_t@ value+--+-- - #VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter#+-- If the value referenced by @pSparseMemoryRequirementCount@ is not+-- @0@, and @pSparseMemoryRequirements@ is not @NULL@,+-- @pSparseMemoryRequirements@ /must/ be a valid pointer to an array of+-- @pSparseMemoryRequirementCount@+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'+-- structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirements',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'+getDeviceImageSparseMemoryRequirements :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device intended to own the image.+ Device+ -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirements' structure+ -- containing parameters required for the memory requirements query.+ ("info" ::: DeviceImageMemoryRequirements)+ -> io (("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2))+getDeviceImageSparseMemoryRequirements device info = liftIO . evalContT $ do+ let vkGetDeviceImageSparseMemoryRequirementsPtr = pVkGetDeviceImageSparseMemoryRequirements (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetDeviceImageSparseMemoryRequirementsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageSparseMemoryRequirements is null" Nothing Nothing+ let vkGetDeviceImageSparseMemoryRequirements' = mkVkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirementsPtr+ let device' = deviceHandle (device)+ pInfo <- ContT $ withCStruct (info)+ pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free+ lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirements" (vkGetDeviceImageSparseMemoryRequirements' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr))+ pSparseMemoryRequirementCount <- lift $ peek @Word32 pPSparseMemoryRequirementCount+ pPSparseMemoryRequirements <- ContT $ bracket (callocBytes @SparseImageMemoryRequirements2 ((fromIntegral (pSparseMemoryRequirementCount)) * 64)) free+ _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSparseMemoryRequirements `advancePtrBytes` (i * 64) :: Ptr SparseImageMemoryRequirements2) . ($ ())) [0..(fromIntegral (pSparseMemoryRequirementCount)) - 1]+ lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirements" (vkGetDeviceImageSparseMemoryRequirements' device' pInfo (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements)))+ pSparseMemoryRequirementCount' <- lift $ peek @Word32 pPSparseMemoryRequirementCount+ pSparseMemoryRequirements' <- lift $ generateM (fromIntegral (pSparseMemoryRequirementCount')) (\i -> peekCStruct @SparseImageMemoryRequirements2 (((pPSparseMemoryRequirements) `advancePtrBytes` (64 * (i)) :: Ptr SparseImageMemoryRequirements2)))+ pure $ (pSparseMemoryRequirements')+++-- | VkDeviceBufferMemoryRequirements - (None)+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Buffer.BufferCreateInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDeviceBufferMemoryRequirements',+-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR'+data DeviceBufferMemoryRequirements = DeviceBufferMemoryRequirements+ { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Buffer.BufferCreateInfo'+ -- structure containing parameters affecting creation of the buffer to+ -- query.+ --+ -- #VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameter#+ -- @pCreateInfo@ /must/ be a valid pointer to a valid+ -- 'Vulkan.Core10.Buffer.BufferCreateInfo' structure+ createInfo :: SomeStruct BufferCreateInfo }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceBufferMemoryRequirements)+#endif+deriving instance Show DeviceBufferMemoryRequirements++instance ToCStruct DeviceBufferMemoryRequirements where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p DeviceBufferMemoryRequirements{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo (createInfo) (cont . castPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''+ lift $ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo ((SomeStruct zero)) (cont . castPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''+ lift $ f++instance FromCStruct DeviceBufferMemoryRequirements where+ peekCStruct p = do+ pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _))))+ pure $ DeviceBufferMemoryRequirements+ pCreateInfo++instance Zero DeviceBufferMemoryRequirements where+ zero = DeviceBufferMemoryRequirements+ (SomeStruct zero)+++-- | VkDeviceImageMemoryRequirements - (None)+--+-- == Valid Usage+--+-- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416# The+-- @pCreateInfo@::@pNext@ chain /must/ not contain a+-- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR'+-- structure+--+-- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417# If+-- @pCreateInfo@::@flags@ has+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'+-- set then @planeAspect@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'+--+-- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06418# If+-- @pCreateInfo@::@flags@ has+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'+-- set then @planeAspect@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'+--+-- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419# If+-- @pCreateInfo@::@flags@ has+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'+-- set and if the @pCreateInfo@::@tiling@ is+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then+-- @planeAspect@ /must/ be a single valid /format plane/ for the image+-- (that is, for a two-plane image @planeAspect@ /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- and for a three-plane image @planeAspect@ /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-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420# If+-- @pCreateInfo@::@flags@ has+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'+-- set and the @pCreateInfo@::@tiling@ is+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',+-- then @planeAspect@ /must/ be a single valid /memory plane/ for the+-- image (that is, @aspectMask@ /must/ specify a plane index that is+-- 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-VkDeviceImageMemoryRequirements-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS'+--+-- - #VUID-VkDeviceImageMemoryRequirements-pNext-pNext# @pNext@ /must/ be+-- @NULL@+--+-- - #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameter#+-- @pCreateInfo@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.Image.ImageCreateInfo' structure+--+-- - #VUID-VkDeviceImageMemoryRequirements-planeAspect-parameter#+-- @planeAspect@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits',+-- 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDeviceImageMemoryRequirements',+-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',+-- 'getDeviceImageSparseMemoryRequirements',+-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR'+data DeviceImageMemoryRequirements = DeviceImageMemoryRequirements+ { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Image.ImageCreateInfo'+ -- structure containing parameters affecting creation of the image to+ -- query.+ createInfo :: SomeStruct ImageCreateInfo+ , -- | @planeAspect@ is a+ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+ -- specifying the aspect corresponding to the image plane to query. This+ -- parameter is ignored unless @pCreateInfo@::@flags@ has+ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' or+ -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'+ -- set.+ planeAspect :: ImageAspectFlagBits+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceImageMemoryRequirements)+#endif+deriving instance Show DeviceImageMemoryRequirements++instance ToCStruct DeviceImageMemoryRequirements where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p DeviceImageMemoryRequirements{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo (createInfo) (cont . castPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (planeAspect)+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo ((SomeStruct zero)) (cont . castPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (zero)+ lift $ f++instance FromCStruct DeviceImageMemoryRequirements where+ peekCStruct p = do+ pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _))))+ planeAspect <- peek @ImageAspectFlagBits ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits))+ pure $ DeviceImageMemoryRequirements+ pCreateInfo planeAspect++instance Zero DeviceImageMemoryRequirements where+ zero = DeviceImageMemoryRequirements+ (SomeStruct zero)+ zero+++-- | VkPhysicalDeviceMaintenance4Features - Structure describing whether the+-- implementation supports maintenance4 functionality+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceMaintenance4Features' 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. 'PhysicalDeviceMaintenance4Features' /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_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMaintenance4Features = PhysicalDeviceMaintenance4Features+ { -- | #extension-features-maintenance4# @maintenance4@ indicates that the+ -- implementation supports the following:+ --+ -- - The application /may/ destroy a+ -- 'Vulkan.Core10.Handles.PipelineLayout' object immediately after+ -- using it to create another object.+ --+ -- - @LocalSizeId@ /can/ be used as an alternative to @LocalSize@ to+ -- specify the local workgroup size with specialization constants.+ --+ -- - Images created with identical creation parameters will always have+ -- the same alignment requirements.+ --+ -- - The size memory requirement of a buffer or image is never greater+ -- than that of another buffer or image created with a greater or equal+ -- size.+ --+ -- - Push constants do not have to be initialized before they are+ -- dynamically accessed.+ --+ -- - The interface matching rules allow a larger output vector to match+ -- with a smaller input vector, with additional values being discarded.+ maintenance4 :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMaintenance4Features)+#endif+deriving instance Show PhysicalDeviceMaintenance4Features++instance ToCStruct PhysicalDeviceMaintenance4Features where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceMaintenance4Features{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (maintenance4))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceMaintenance4Features where+ peekCStruct p = do+ maintenance4 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceMaintenance4Features+ (bool32ToBool maintenance4)++instance Storable PhysicalDeviceMaintenance4Features where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMaintenance4Features where+ zero = PhysicalDeviceMaintenance4Features+ zero+++-- | VkPhysicalDeviceMaintenance4Properties - Structure describing various+-- implementation-defined properties introduced with VK_KHR_maintenance4+--+-- = Description+--+-- If the 'PhysicalDeviceMaintenance4Properties' 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_maintenance4 VK_KHR_maintenance4>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMaintenance4Properties = PhysicalDeviceMaintenance4Properties+ { -- | #extension-limits-maxBufferSize# @maxBufferSize@ is the maximum size+ -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created.+ maxBufferSize :: DeviceSize }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMaintenance4Properties)+#endif+deriving instance Show PhysicalDeviceMaintenance4Properties++instance ToCStruct PhysicalDeviceMaintenance4Properties where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceMaintenance4Properties{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (maxBufferSize)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+ f++instance FromCStruct PhysicalDeviceMaintenance4Properties where+ peekCStruct p = do+ maxBufferSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+ pure $ PhysicalDeviceMaintenance4Properties+ maxBufferSize++instance Storable PhysicalDeviceMaintenance4Properties where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMaintenance4Properties where+ zero = PhysicalDeviceMaintenance4Properties+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs-boot view
@@ -0,0 +1,43 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_maintenance4"+module Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 ( DeviceBufferMemoryRequirements+ , DeviceImageMemoryRequirements+ , PhysicalDeviceMaintenance4Features+ , PhysicalDeviceMaintenance4Properties+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DeviceBufferMemoryRequirements++instance ToCStruct DeviceBufferMemoryRequirements+instance Show DeviceBufferMemoryRequirements++instance FromCStruct DeviceBufferMemoryRequirements+++data DeviceImageMemoryRequirements++instance ToCStruct DeviceImageMemoryRequirements+instance Show DeviceImageMemoryRequirements++instance FromCStruct DeviceImageMemoryRequirements+++data PhysicalDeviceMaintenance4Features++instance ToCStruct PhysicalDeviceMaintenance4Features+instance Show PhysicalDeviceMaintenance4Features++instance FromCStruct PhysicalDeviceMaintenance4Features+++data PhysicalDeviceMaintenance4Properties++instance ToCStruct PhysicalDeviceMaintenance4Properties+instance Show PhysicalDeviceMaintenance4Properties++instance FromCStruct PhysicalDeviceMaintenance4Properties+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs view
@@ -0,0 +1,478 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_integer_dot_product"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product ( PhysicalDeviceShaderIntegerDotProductFeatures(..)+ , PhysicalDeviceShaderIntegerDotProductProperties(..)+ , StructureType(..)+ ) 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.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_INTEGER_DOT_PRODUCT_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceShaderIntegerDotProductFeatures - Structure describing+-- integer dot product features that can be supported by an implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceShaderIntegerDotProductFeatures'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderIntegerDotProductFeatures' 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. 'PhysicalDeviceShaderIntegerDotProductFeatures' /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_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderIntegerDotProductFeatures = PhysicalDeviceShaderIntegerDotProductFeatures+ { -- | #extension-features-shaderIntegerDotProduct# @shaderIntegerDotProduct@+ -- specifies whether shader modules /can/ declare the+ -- @DotProductInputAllKHR@, @DotProductInput4x8BitKHR@,+ -- @DotProductInput4x8BitPackedKHR@ and @DotProductKHR@ capabilities.+ shaderIntegerDotProduct :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderIntegerDotProductFeatures)+#endif+deriving instance Show PhysicalDeviceShaderIntegerDotProductFeatures++instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderIntegerDotProductFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderIntegerDotProduct))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeatures where+ peekCStruct p = do+ shaderIntegerDotProduct <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceShaderIntegerDotProductFeatures+ (bool32ToBool shaderIntegerDotProduct)++instance Storable PhysicalDeviceShaderIntegerDotProductFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderIntegerDotProductFeatures where+ zero = PhysicalDeviceShaderIntegerDotProductFeatures+ zero+++-- | VkPhysicalDeviceShaderIntegerDotProductProperties - Structure containing+-- information about integer dot product support for a physical device+--+-- = Description+--+-- If the 'PhysicalDeviceShaderIntegerDotProductProperties' 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 integer dot product acceleration information+-- of a physical device.+--+-- Note+--+-- A dot product operation is deemed accelerated if its implementation+-- provides a performance advantage over application-provided code composed+-- from elementary instructions and\/or other dot product instructions,+-- either because the implementation uses optimized machine code sequences+-- whose generation from application-provided code cannot be guaranteed or+-- because it uses hardware features that cannot otherwise be targeted from+-- application-provided code.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderIntegerDotProductProperties = PhysicalDeviceShaderIntegerDotProductProperties+ { -- | @integerDotProduct8BitUnsignedAccelerated@ is a boolean that will be+ -- '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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderIntegerDotProductProperties)+#endif+deriving instance Show PhysicalDeviceShaderIntegerDotProductProperties++instance ToCStruct PhysicalDeviceShaderIntegerDotProductProperties where+ withCStruct x f = allocaBytes 136 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderIntegerDotProductProperties{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitUnsignedAccelerated))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitSignedAccelerated))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedUnsignedAccelerated))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedSignedAccelerated))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedMixedSignednessAccelerated))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitUnsignedAccelerated))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitSignedAccelerated))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitUnsignedAccelerated))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitSignedAccelerated))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitUnsignedAccelerated))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitSignedAccelerated))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))+ poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitSignedAccelerated))+ poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))+ poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))+ poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))+ poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))+ poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitSignedAccelerated))+ poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))+ poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitSignedAccelerated))+ poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))+ poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))+ poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitSignedAccelerated))+ poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))+ f+ cStructSize = 136+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES)+ 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))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceShaderIntegerDotProductProperties where+ peekCStruct p = do+ integerDotProduct8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ integerDotProduct8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ integerDotProduct8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ integerDotProduct4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+ integerDotProduct4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+ integerDotProduct4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+ integerDotProduct16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+ integerDotProduct16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+ integerDotProduct16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+ integerDotProduct32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+ integerDotProduct32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+ integerDotProduct32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+ integerDotProduct64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+ integerDotProduct64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+ integerDotProduct64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))+ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))+ pure $ PhysicalDeviceShaderIntegerDotProductProperties+ (bool32ToBool integerDotProduct8BitUnsignedAccelerated) (bool32ToBool integerDotProduct8BitSignedAccelerated) (bool32ToBool integerDotProduct8BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProduct16BitUnsignedAccelerated) (bool32ToBool integerDotProduct16BitSignedAccelerated) (bool32ToBool integerDotProduct16BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct32BitUnsignedAccelerated) (bool32ToBool integerDotProduct32BitSignedAccelerated) (bool32ToBool integerDotProduct32BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct64BitUnsignedAccelerated) (bool32ToBool integerDotProduct64BitSignedAccelerated) (bool32ToBool integerDotProduct64BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated)++instance Storable PhysicalDeviceShaderIntegerDotProductProperties where+ sizeOf ~_ = 136+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderIntegerDotProductProperties where+ zero = PhysicalDeviceShaderIntegerDotProductProperties+ 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+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs-boot view
@@ -0,0 +1,25 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_integer_dot_product"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product ( PhysicalDeviceShaderIntegerDotProductFeatures+ , PhysicalDeviceShaderIntegerDotProductProperties+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderIntegerDotProductFeatures++instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeatures+instance Show PhysicalDeviceShaderIntegerDotProductFeatures++instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeatures+++data PhysicalDeviceShaderIntegerDotProductProperties++instance ToCStruct PhysicalDeviceShaderIntegerDotProductProperties+instance Show PhysicalDeviceShaderIntegerDotProductProperties++instance FromCStruct PhysicalDeviceShaderIntegerDotProductProperties+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_terminate_invocation.hs view
@@ -0,0 +1,98 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_terminate_invocation"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation ( PhysicalDeviceShaderTerminateInvocationFeatures(..)+ , StructureType(..)+ ) 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.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_TERMINATE_INVOCATION_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceShaderTerminateInvocationFeatures - Structure describing+-- support for the SPIR-V @SPV_KHR_terminate_invocation@ extension+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderTerminateInvocationFeatures' 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. 'PhysicalDeviceShaderTerminateInvocationFeatures' /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_shader_terminate_invocation VK_KHR_shader_terminate_invocation>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderTerminateInvocationFeatures = PhysicalDeviceShaderTerminateInvocationFeatures+ { -- | #extension-features-shaderTerminateInvocation#+ -- @shaderTerminateInvocation@ specifies whether the implementation+ -- supports SPIR-V modules that use the @SPV_KHR_terminate_invocation@+ -- extension.+ shaderTerminateInvocation :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderTerminateInvocationFeatures)+#endif+deriving instance Show PhysicalDeviceShaderTerminateInvocationFeatures++instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderTerminateInvocationFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderTerminateInvocation))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeatures where+ peekCStruct p = do+ shaderTerminateInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceShaderTerminateInvocationFeatures+ (bool32ToBool shaderTerminateInvocation)++instance Storable PhysicalDeviceShaderTerminateInvocationFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderTerminateInvocationFeatures where+ zero = PhysicalDeviceShaderTerminateInvocationFeatures+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_shader_terminate_invocation.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_shader_terminate_invocation"+module Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderTerminateInvocationFeatures++instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeatures+instance Show PhysicalDeviceShaderTerminateInvocationFeatures++instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeatures+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs view
@@ -0,0 +1,4855 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_synchronization2"+module Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 ( cmdSetEvent2+ , cmdResetEvent2+ , cmdWaitEvents2+ , cmdWaitEvents2Safe+ , cmdPipelineBarrier2+ , queueSubmit2+ , cmdWriteTimestamp2+ , MemoryBarrier2(..)+ , ImageMemoryBarrier2(..)+ , BufferMemoryBarrier2(..)+ , DependencyInfo(..)+ , SemaphoreSubmitInfo(..)+ , CommandBufferSubmitInfo(..)+ , SubmitInfo2(..)+ , PhysicalDeviceSynchronization2Features(..)+ , ImageLayout(..)+ , StructureType(..)+ , AccessFlagBits(..)+ , AccessFlags+ , PipelineStageFlagBits(..)+ , PipelineStageFlags+ , AccessFlagBits2(..)+ , AccessFlags2+ , PipelineStageFlagBits2(..)+ , PipelineStageFlags2+ , SubmitFlagBits(..)+ , SubmitFlags+ , EventCreateFlagBits(..)+ , EventCreateFlags+ ) where++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.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+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.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 Data.Word (Word32)+import Data.Word (Word64)+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.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (pokeSomeCStruct)+import Vulkan.NamedType ((:::))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.CStruct.Extends (Chain)+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.Enums.DependencyFlagBits (DependencyFlags)+import Vulkan.Dynamic (DeviceCmds(pVkCmdPipelineBarrier2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdResetEvent2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetEvent2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdWaitEvents2))+import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteTimestamp2))+import Vulkan.Dynamic (DeviceCmds(pVkQueueSubmit2))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Handles (Event)+import Vulkan.Core10.Handles (Event(..))+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.Handles (Fence)+import Vulkan.Core10.Handles (Fence(..))+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.ImageView (ImageSubresourceRange)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.Handles (QueryPool)+import Vulkan.Core10.Handles (QueryPool(..))+import Vulkan.Core10.Handles (Queue)+import Vulkan.Core10.Handles (Queue(..))+import Vulkan.Core10.Handles (Queue(Queue))+import Vulkan.Core10.Handles (Queue_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)+import Vulkan.Core10.Handles (Semaphore)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)+import Vulkan.Exception (VulkanException(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoNV)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(..))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(..))+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlagBits(..))+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlags)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(..))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(..))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core10.Enums.StructureType (StructureType(..))+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlagBits(..))+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetEvent2+ :: FunPtr (Ptr CommandBuffer_T -> Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Event -> Ptr DependencyInfo -> IO ()++-- | vkCmdSetEvent2 - Set an event object to signaled state+--+-- = Description+--+-- When 'cmdSetEvent2' is submitted to a queue, it defines the first half+-- of memory dependencies defined by @pDependencyInfo@, as well as an event+-- signal operation which sets the event to the signaled state. A memory+-- dependency is defined between the event signal operation and commands+-- 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>+-- and+-- <https://www.khronos.org/registry/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>+-- and+-- <https://www.khronos.org/registry/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>+-- 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>+-- and+-- <https://www.khronos.org/registry/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>+-- includes only+-- <https://www.khronos.org/registry/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>.+--+-- Future 'cmdWaitEvents2' commands rely on all values of each element in+-- @pDependencyInfo@ matching exactly with those used to signal the+-- corresponding event. 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents'+-- /must/ not be used to wait on the result of a signal operation defined+-- by 'cmdSetEvent2'.+--+-- Note+--+-- The extra information provided by 'cmdSetEvent2' compared to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent' allows implementations+-- to more efficiently schedule the operations required to satisfy the+-- requested dependencies. With+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent', the full dependency+-- information is not known until+-- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' is recorded, forcing+-- implementations to insert the required operations at that point and not+-- before.+--+-- If @event@ is already in the signaled state when 'cmdSetEvent2' is+-- executed on the device, then 'cmdSetEvent2' has no effect, no event+-- signal operation occurs, and no dependency is generated.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetEvent2-synchronization2-03824# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdSetEvent2-dependencyFlags-03825# The @dependencyFlags@+-- member of @pDependencyInfo@ /must/ be @0@+--+-- - #VUID-vkCmdSetEvent2-commandBuffer-03826# The current device mask of+-- @commandBuffer@ /must/ include exactly one physical device+--+-- - #VUID-vkCmdSetEvent2-srcStageMask-03827# The @srcStageMask@ member+-- of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+-- @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ only+-- include pipeline stages valid for the queue family that was used to+-- create the command pool that @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdSetEvent2-dstStageMask-03828# The @dstStageMask@ member+-- of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+-- @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ only+-- include pipeline stages valid for the queue family that was used to+-- create the command pool that @commandBuffer@ was allocated from+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetEvent2-commandBuffer-parameter# @commandBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetEvent2-event-parameter# @event@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Event' handle+--+-- - #VUID-vkCmdSetEvent2-pDependencyInfo-parameter# @pDependencyInfo@+-- /must/ be a valid pointer to a valid 'DependencyInfo' structure+--+-- - #VUID-vkCmdSetEvent2-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-vkCmdSetEvent2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdSetEvent2-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdSetEvent2-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_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>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfo',+-- 'Vulkan.Core10.Handles.Event'+cmdSetEvent2 :: 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+ -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfo' structure defining+ -- the first scopes of this operation.+ DependencyInfo+ -> io ()+cmdSetEvent2 commandBuffer event dependencyInfo = liftIO . evalContT $ do+ let vkCmdSetEvent2Ptr = pVkCmdSetEvent2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdSetEvent2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent2 is null" Nothing Nothing+ let vkCmdSetEvent2' = mkVkCmdSetEvent2 vkCmdSetEvent2Ptr+ pDependencyInfo <- ContT $ withCStruct (dependencyInfo)+ lift $ traceAroundEvent "vkCmdSetEvent2" (vkCmdSetEvent2' (commandBufferHandle (commandBuffer)) (event) pDependencyInfo)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdResetEvent2+ :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags2 -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags2 -> IO ()++-- | vkCmdResetEvent2 - Reset an event object to non-signaled state+--+-- = Description+--+-- When 'cmdResetEvent2' is submitted to a queue, it defines an execution+-- dependency on commands that were submitted before it, and defines an+-- 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>+-- 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>.+-- 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>+-- than @stageMask@.+--+-- The second+-- <https://www.khronos.org/registry/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+-- executed on the device, then this command has no effect, no event+-- unsignal operation occurs, and no execution dependency is generated.+--+-- == 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-vkCmdResetEvent2-stageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-vkCmdResetEvent2-stageMask-04956# 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_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>+-- 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>+-- 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>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdResetEvent2-stageMask-03830# @stageMask@ /must/ not+-- include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-vkCmdResetEvent2-event-03831# There /must/ be an execution+-- dependency between 'cmdResetEvent2' and the execution of any+-- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' that includes+-- @event@ in its @pEvents@ parameter+--+-- - #VUID-vkCmdResetEvent2-event-03832# There /must/ be an execution+-- dependency between 'cmdResetEvent2' and the execution of any+-- 'cmdWaitEvents2' that includes @event@ in its @pEvents@ parameter+--+-- - #VUID-vkCmdResetEvent2-commandBuffer-03833# @commandBuffer@’s+-- current device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdResetEvent2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdResetEvent2-event-parameter# @event@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Event' handle+--+-- - #VUID-vkCmdResetEvent2-stageMask-parameter# @stageMask@ /must/ be a+-- valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-vkCmdResetEvent2-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-vkCmdResetEvent2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdResetEvent2-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdResetEvent2-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_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>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'+cmdResetEvent2 :: 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+ -- '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>.+ ("stageMask" ::: PipelineStageFlags2)+ -> io ()+cmdResetEvent2 commandBuffer event stageMask = liftIO $ do+ let vkCmdResetEvent2Ptr = pVkCmdResetEvent2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdResetEvent2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent2 is null" Nothing Nothing+ let vkCmdResetEvent2' = mkVkCmdResetEvent2 vkCmdResetEvent2Ptr+ traceAroundEvent "vkCmdResetEvent2" (vkCmdResetEvent2' (commandBufferHandle (commandBuffer)) (event) (stageMask))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdWaitEvents2Unsafe+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()++foreign import ccall+ "dynamic" mkVkCmdWaitEvents2Safe+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()++-- | cmdWaitEvents2 with selectable safeness+cmdWaitEvents2SafeOrUnsafe :: forall io+ . (MonadIO io)+ => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfo -> IO ())+ -> -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.+ ("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>.+ ("dependencyInfos" ::: Vector DependencyInfo)+ -> io ()+cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2 commandBuffer events dependencyInfos = liftIO . evalContT $ do+ let vkCmdWaitEvents2Ptr = pVkCmdWaitEvents2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdWaitEvents2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents2 is null" Nothing Nothing+ let vkCmdWaitEvents2' = mkVkCmdWaitEvents2 vkCmdWaitEvents2Ptr+ let pEventsLength = Data.Vector.length $ (events)+ lift $ unless ((Data.Vector.length $ (dependencyInfos)) == pEventsLength) $+ throwIO $ IOError Nothing InvalidArgument "" "pDependencyInfos and pEvents must have the same length" Nothing Nothing+ pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)+ pPDependencyInfos <- ContT $ allocaBytes @DependencyInfo ((Data.Vector.length (dependencyInfos)) * 64)+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPDependencyInfos `plusPtr` (64 * (i)) :: Ptr DependencyInfo) (e) . ($ ())) (dependencyInfos)+ lift $ traceAroundEvent "vkCmdWaitEvents2" (vkCmdWaitEvents2' (commandBufferHandle (commandBuffer)) ((fromIntegral pEventsLength :: Word32)) (pPEvents) (pPDependencyInfos))+ pure $ ()++-- | vkCmdWaitEvents2 - Wait for one or more events+--+-- = Description+--+-- When 'cmdWaitEvents2' is submitted to a queue, it inserts memory+-- dependencies according to the elements of @pDependencyInfos@ and each+-- corresponding element of @pEvents@. 'cmdWaitEvents2' /must/ not be used+-- to wait on event signal operations occurring on other queues, or signal+-- operations executed by+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'.+--+-- The first+-- <https://www.khronos.org/registry/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>+-- 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>+-- 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>+-- 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>+-- 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>+-- and+-- <https://www.khronos.org/registry/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>+-- than 'cmdWaitEvents2'.+--+-- Note+--+-- 'cmdWaitEvents2' is used with 'cmdSetEvent2' to define a memory+-- dependency between two sets of action commands, roughly in the same way+-- as pipeline barriers, but split into two commands such that work between+-- the two /may/ execute unhindered.+--+-- Note+--+-- Applications should be careful to avoid race conditions when using+-- events. There is no direct ordering guarantee between 'cmdSetEvent2' and+-- 'cmdResetEvent2', 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',+-- or 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'. Another execution+-- dependency (e.g. a pipeline barrier or semaphore with+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT')+-- is needed to prevent such a race condition.+--+-- == Valid Usage+--+-- - #VUID-vkCmdWaitEvents2-synchronization2-03836# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdWaitEvents2-pEvents-03837# Members of @pEvents@ /must/+-- not have been signaled by+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'+--+-- - #VUID-vkCmdWaitEvents2-pEvents-03838# For any element i of+-- @pEvents@, if that event is signaled by 'cmdSetEvent2', that+-- command’s @dependencyInfo@ parameter /must/ be exactly equal to the+-- ith element of @pDependencyInfos@+--+-- - #VUID-vkCmdWaitEvents2-pEvents-03839# For any element i of+-- @pEvents@, if that event is signaled by+-- '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>+--+-- - #VUID-vkCmdWaitEvents2-pEvents-03840# For any element i of+-- @pEvents@, if barriers in the ith element of @pDependencyInfos@+-- include only host operations, the ith element of @pEvents@ /must/ be+-- signaled before 'cmdWaitEvents2' is executed+--+-- - #VUID-vkCmdWaitEvents2-pEvents-03841# For any element i of+-- @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>+--+-- - #VUID-vkCmdWaitEvents2-srcStageMask-03842# The @srcStageMask@ member+-- of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+-- @pImageMemoryBarriers@ members of @pDependencyInfos@ /must/ either+-- include only pipeline stages valid for the queue family that was+-- used to create the command pool that @commandBuffer@ was allocated+-- from, or include only+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-vkCmdWaitEvents2-dstStageMask-03843# The @dstStageMask@ member+-- of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or+-- @pImageMemoryBarriers@ members of @pDependencyInfos@ /must/ only+-- include pipeline stages valid for the queue family that was used to+-- create the command pool that @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdWaitEvents2-dependencyFlags-03844# The @dependencyFlags@+-- member of any element of @pDependencyInfo@ /must/ be @0@+--+-- - #VUID-vkCmdWaitEvents2-pEvents-03845# 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+-- 'cmdWaitEvents2' /must/ not be called inside a render pass instance+--+-- - #VUID-vkCmdWaitEvents2-commandBuffer-03846# @commandBuffer@’s+-- current device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdWaitEvents2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdWaitEvents2-pEvents-parameter# @pEvents@ /must/ be a+-- valid pointer to an array of @eventCount@ valid+-- 'Vulkan.Core10.Handles.Event' handles+--+-- - #VUID-vkCmdWaitEvents2-pDependencyInfos-parameter#+-- @pDependencyInfos@ /must/ be a valid pointer to an array of+-- @eventCount@ valid 'DependencyInfo' structures+--+-- - #VUID-vkCmdWaitEvents2-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-vkCmdWaitEvents2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdWaitEvents2-eventCount-arraylength# @eventCount@ /must/+-- be greater than @0@+--+-- - #VUID-vkCmdWaitEvents2-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_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>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfo',+-- 'Vulkan.Core10.Handles.Event'+cmdWaitEvents2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.+ ("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>.+ ("dependencyInfos" ::: Vector DependencyInfo)+ -> io ()+cmdWaitEvents2 = cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2Unsafe++-- | A variant of 'cmdWaitEvents2' which makes a *safe* FFI call+cmdWaitEvents2Safe :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.+ ("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>.+ ("dependencyInfos" ::: Vector DependencyInfo)+ -> io ()+cmdWaitEvents2Safe = cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2Safe+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdPipelineBarrier2+ :: FunPtr (Ptr CommandBuffer_T -> Ptr DependencyInfo -> IO ()) -> Ptr CommandBuffer_T -> Ptr DependencyInfo -> IO ()++-- | vkCmdPipelineBarrier2 - Insert a memory dependency+--+-- = Description+--+-- When 'cmdPipelineBarrier2' is submitted to a queue, it defines memory+-- dependencies between commands that were submitted before it, and those+-- submitted after it.+--+-- The first+-- <https://www.khronos.org/registry/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>+-- 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>.+--+-- The second+-- <https://www.khronos.org/registry/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>+-- 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>.+--+-- 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>.+--+-- == Valid Usage+--+-- - #VUID-vkCmdPipelineBarrier2-pDependencies-02285# If+-- 'cmdPipelineBarrier2' 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-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178# If+-- 'cmdPipelineBarrier2' is called within a render pass instance, it+-- /must/ not include any buffer memory barriers+--+-- - #VUID-vkCmdPipelineBarrier2-image-04073# If 'cmdPipelineBarrier2' 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-vkCmdPipelineBarrier2-oldLayout-01181# If+-- 'cmdPipelineBarrier2' 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-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182# If+-- 'cmdPipelineBarrier2' 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-vkCmdPipelineBarrier2-dependencyFlags-01186# If+-- 'cmdPipelineBarrier2' 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-vkCmdPipelineBarrier2-None-06191# If 'cmdPipelineBarrier2' 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-vkCmdPipelineBarrier2-synchronization2-03848# The+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdPipelineBarrier2-srcStageMask-03849# The @srcStageMask@+-- member of any element of the @pMemoryBarriers@,+-- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of+-- @pDependencyInfo@ /must/ only include pipeline stages valid for the+-- queue family that was used to create the command pool that+-- @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdPipelineBarrier2-dstStageMask-03850# The @dstStageMask@+-- member of any element of the @pMemoryBarriers@,+-- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of+-- @pDependencyInfo@ /must/ only include pipeline stages valid for the+-- queue family that was used to create the command pool that+-- @commandBuffer@ was allocated from+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdPipelineBarrier2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameter#+-- @pDependencyInfo@ /must/ be a valid pointer to a valid+-- 'DependencyInfo' structure+--+-- - #VUID-vkCmdPipelineBarrier2-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-vkCmdPipelineBarrier2-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_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>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfo'+cmdPipelineBarrier2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfo' structure defining+ -- the scopes of this operation.+ DependencyInfo+ -> io ()+cmdPipelineBarrier2 commandBuffer dependencyInfo = liftIO . evalContT $ do+ let vkCmdPipelineBarrier2Ptr = pVkCmdPipelineBarrier2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdPipelineBarrier2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier2 is null" Nothing Nothing+ let vkCmdPipelineBarrier2' = mkVkCmdPipelineBarrier2 vkCmdPipelineBarrier2Ptr+ pDependencyInfo <- ContT $ withCStruct (dependencyInfo)+ lift $ traceAroundEvent "vkCmdPipelineBarrier2" (vkCmdPipelineBarrier2' (commandBufferHandle (commandBuffer)) pDependencyInfo)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkQueueSubmit2+ :: FunPtr (Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2) -> Fence -> IO Result) -> Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2) -> Fence -> IO Result++-- | vkQueueSubmit2 - Submits command buffers to a queue+--+-- = Description+--+-- 'queueSubmit2' is a+-- <https://www.khronos.org/registry/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>+-- section of+-- <https://www.khronos.org/registry/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>,+-- it is moved to the+-- <https://www.khronos.org/registry/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>,+-- back to the+-- <https://www.khronos.org/registry/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>.+--+-- If 'queueSubmit2' fails, it /may/ return+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'. If it does, the+-- implementation /must/ ensure that the state and contents of any+-- resources or synchronization primitives referenced by the submitted+-- command buffers and any semaphores referenced by @pSubmits@ is+-- unaffected by the call or its failure. If 'queueSubmit2' fails in such a+-- 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>.+--+-- == Valid Usage+--+-- - #VUID-vkQueueSubmit2-fence-04894# If @fence@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be+-- unsignaled+--+-- - #VUID-vkQueueSubmit2-fence-04895# If @fence@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ not be+-- associated with any other queue command that has not yet completed+-- 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>+-- feature /must/ be enabled+--+-- - #VUID-vkQueueSubmit2-commandBuffer-03867# If a command recorded into+-- the @commandBuffer@ member of any element of the+-- @pCommandBufferInfos@ member of any element of @pSubmits@ referenced+-- an 'Vulkan.Core10.Handles.Event', that event /must/ not be+-- referenced by a command that has been submitted to another queue and+-- is still in the /pending state/+--+-- - #VUID-vkQueueSubmit2-semaphore-03868# The @semaphore@ member of any+-- binary semaphore element of the @pSignalSemaphoreInfos@ member of+-- any element of @pSubmits@ /must/ be unsignaled when the semaphore+-- signal operation it defines is executed on the device+--+-- - #VUID-vkQueueSubmit2-stageMask-03869# The @stageMask@ member of any+-- element of the @pSignalSemaphoreInfos@ member of any element of+-- @pSubmits@ /must/ only include pipeline stages that are supported by+-- the queue family which @queue@ belongs to+--+-- - #VUID-vkQueueSubmit2-stageMask-03870# The @stageMask@ member of any+-- element of the @pWaitSemaphoreInfos@ member of any element of+-- @pSubmits@ /must/ only include pipeline stages that are supported by+-- the queue family which @queue@ belongs to+--+-- - #VUID-vkQueueSubmit2-semaphore-03871# When a semaphore wait+-- operation for a binary semaphore is executed, as defined by the+-- @semaphore@ member of any element of the @pWaitSemaphoreInfos@+-- member of any element of @pSubmits@, there /must/ be no other queues+-- waiting on the same semaphore+--+-- - #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>+-- previously submitted for execution+--+-- - #VUID-vkQueueSubmit2-semaphore-03873# Any @semaphore@ member of any+-- element of the @pWaitSemaphoreInfos@ member of any element of+-- @pSubmits@ that was created with a+-- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.SemaphoreTypeKHR' of+-- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.SEMAPHORE_TYPE_BINARY_KHR'+-- /must/ reference a semaphore signal operation that has been+-- submitted for execution and any semaphore signal operations on which+-- it depends (if any) /must/ have also been submitted for execution+--+-- - #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>+--+-- - #VUID-vkQueueSubmit2-commandBuffer-03875# If a command 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>+--+-- - #VUID-vkQueueSubmit2-commandBuffer-03876# Any+-- <https://www.khronos.org/registry/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>+--+-- - #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>+-- 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>+--+-- - #VUID-vkQueueSubmit2-commandBuffer-03878# The @commandBuffer@ member+-- of any element of the @pCommandBufferInfos@ member of any element of+-- @pSubmits@ /must/ have been allocated from a+-- 'Vulkan.Core10.Handles.CommandPool' that was created for the same+-- queue family @queue@ belongs to+--+-- - #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>,+-- 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>+-- 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>,+-- and which happens before the acquire operation+--+-- - #VUID-vkQueueSubmit2-commandBuffer-03880# If a command recorded into+-- the @commandBuffer@ member of any element of the+-- @pCommandBufferInfos@ member of any element of @pSubmits@ was a+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery' whose+-- @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>+-- /must/ have been held continuously on the+-- 'Vulkan.Core10.Handles.Device' that @queue@ was retrieved from,+-- throughout recording of those command buffers+--+-- - #VUID-vkQueueSubmit2-queue-06447# If @queue@ was not created with+-- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT',+-- the @flags@ member of any element of @pSubmits@ /must/ not include+-- 'Vulkan.Core13.Enums.SubmitFlagBits.SUBMIT_PROTECTED_BIT_KHR'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkQueueSubmit2-queue-parameter# @queue@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Queue' handle+--+-- - #VUID-vkQueueSubmit2-pSubmits-parameter# If @submitCount@ is not+-- @0@, @pSubmits@ /must/ be a valid pointer to an array of+-- @submitCount@ valid 'SubmitInfo2' structures+--+-- - #VUID-vkQueueSubmit2-fence-parameter# If @fence@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Fence' handle+--+-- - #VUID-vkQueueSubmit2-commonparent# Both of @fence@, and @queue@ 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 @queue@ /must/ be externally synchronized+--+-- - Host access to @fence@ /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> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- == 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'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'+--+-- = 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>,+-- 'Vulkan.Core10.Handles.Fence', 'Vulkan.Core10.Handles.Queue',+-- 'SubmitInfo2'+queueSubmit2 :: forall io+ . (MonadIO io)+ => -- | @queue@ is the queue that the command buffers will be submitted to.+ Queue+ -> -- | @pSubmits@ is a pointer to an array of 'SubmitInfo2' structures, each+ -- specifying a command buffer submission batch.+ ("submits" ::: Vector (SomeStruct SubmitInfo2))+ -> -- | @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>.+ Fence+ -> io ()+queueSubmit2 queue submits fence = liftIO . evalContT $ do+ let vkQueueSubmit2Ptr = pVkQueueSubmit2 (case queue of Queue{deviceCmds} -> deviceCmds)+ lift $ unless (vkQueueSubmit2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueSubmit2 is null" Nothing Nothing+ let vkQueueSubmit2' = mkVkQueueSubmit2 vkQueueSubmit2Ptr+ pPSubmits <- ContT $ allocaBytes @(SubmitInfo2 _) ((Data.Vector.length (submits)) * 64)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPSubmits `plusPtr` (64 * (i)) :: Ptr (SubmitInfo2 _))) (e) . ($ ())) (submits)+ r <- lift $ traceAroundEvent "vkQueueSubmit2" (vkQueueSubmit2' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (submits)) :: Word32)) (forgetExtensions (pPSubmits)) (fence))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdWriteTimestamp2+ :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> Word32 -> IO ()++-- | vkCmdWriteTimestamp2 - Write a device timestamp into a query object+--+-- = Description+--+-- When 'cmdWriteTimestamp2' 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://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>.+-- 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>+-- 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+-- 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 'cmdWriteTimestamp2' 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-vkCmdWriteTimestamp2-stage-03929# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @stage@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-vkCmdWriteTimestamp2-stage-03935# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- feature is not enabled, @stage@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-vkCmdWriteTimestamp2-stage-04956# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- 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>+-- 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>+-- 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>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdWriteTimestamp2-stage-03859# @stage@ /must/ only include+-- a single pipeline stage+--+-- - #VUID-vkCmdWriteTimestamp2-stage-03860# @stage@ /must/ only include+-- stages valid for the queue family that was used to create the+-- command pool that @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdWriteTimestamp2-queryPool-03861# @queryPool@ /must/ have+-- been created with a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- - #VUID-vkCmdWriteTimestamp2-queryPool-03862# The query identified by+-- @queryPool@ and @query@ /must/ be /unavailable/+--+-- - #VUID-vkCmdWriteTimestamp2-timestampValidBits-03863# The command+-- pool’s queue family /must/ support a non-zero @timestampValidBits@+--+-- - #VUID-vkCmdWriteTimestamp2-query-04903# @query@ /must/ be less than+-- the number of queries in @queryPool@+--+-- - #VUID-vkCmdWriteTimestamp2-None-03864# All queries used by the+-- command /must/ be unavailable+--+-- - #VUID-vkCmdWriteTimestamp2-query-03865# If 'cmdWriteTimestamp2' 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-vkCmdWriteTimestamp2-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdWriteTimestamp2-stage-parameter# @stage@ /must/ be a+-- valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-vkCmdWriteTimestamp2-queryPool-parameter# @queryPool@ /must/+-- be a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- - #VUID-vkCmdWriteTimestamp2-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-vkCmdWriteTimestamp2-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, compute, decode,+-- or encode operations+--+-- - #VUID-vkCmdWriteTimestamp2-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_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>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Handles.QueryPool'+cmdWriteTimestamp2 :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @stage@ specifies a stage of the pipeline.+ PipelineStageFlags2+ -> -- | @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 ()+cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do+ let vkCmdWriteTimestamp2Ptr = pVkCmdWriteTimestamp2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdWriteTimestamp2Ptr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp2 is null" Nothing Nothing+ let vkCmdWriteTimestamp2' = mkVkCmdWriteTimestamp2 vkCmdWriteTimestamp2Ptr+ traceAroundEvent "vkCmdWriteTimestamp2" (vkCmdWriteTimestamp2' (commandBufferHandle (commandBuffer)) (stage) (queryPool) (query))+ pure $ ()+++-- | VkMemoryBarrier2 - Structure specifying a global memory barrier+--+-- = Description+--+-- This structure defines a+-- <https://www.khronos.org/registry/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>+-- and+-- <https://www.khronos.org/registry/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>+-- and+-- <https://www.khronos.org/registry/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>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-VkMemoryBarrier2-srcStageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-VkMemoryBarrier2-srcStageMask-04956# 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_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>+-- 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>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03901# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03902# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03903# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03904# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03905# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03906# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03907# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03908# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03910# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03911# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03912# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03913# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03914# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03915# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03917# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03918# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03919# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03920# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-04747# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03922# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03923# If @srcAccessMask@+-- includes+-- 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-04994# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03924# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03925# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03926# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03927# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-03928# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-06256# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- 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-dstStageMask-03929# 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.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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-VkMemoryBarrier2-dstStageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-VkMemoryBarrier2-dstStageMask-04956# 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_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>+-- 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>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03901# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03902# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03903# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03904# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03905# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03906# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03907# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03908# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03910# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03911# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03912# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03913# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03914# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03915# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03917# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03918# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03919# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03920# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-04747# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03922# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03923# If @dstAccessMask@+-- includes+-- 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-04994# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03924# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03925# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03926# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03927# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-03928# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-06256# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- 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'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkMemoryBarrier2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2'+--+-- - #VUID-VkMemoryBarrier2-srcStageMask-parameter# @srcStageMask@ /must/+-- be a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-parameter# @srcAccessMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- - #VUID-VkMemoryBarrier2-dstStageMask-parameter# @dstStageMask@ /must/+-- be a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-parameter# @dstAccessMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- = 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>,+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2', 'DependencyInfo',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data MemoryBarrier2 = MemoryBarrier2+ { -- | @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>.+ 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>.+ 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>.+ 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>.+ dstAccessMask :: AccessFlags2+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MemoryBarrier2)+#endif+deriving instance Show MemoryBarrier2++instance ToCStruct MemoryBarrier2 where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MemoryBarrier2{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)+ poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)+ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)+ poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)+ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct MemoryBarrier2 where+ peekCStruct p = do+ srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+ srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2))+ dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+ dstAccessMask <- peek @AccessFlags2 ((p `plusPtr` 40 :: Ptr AccessFlags2))+ pure $ MemoryBarrier2+ srcStageMask srcAccessMask dstStageMask dstAccessMask++instance Storable MemoryBarrier2 where+ sizeOf ~_ = 48+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MemoryBarrier2 where+ zero = MemoryBarrier2+ zero+ zero+ zero+ zero+++-- | VkImageMemoryBarrier2 - Structure specifying an image memory barrier+--+-- = Description+--+-- This structure defines a+-- <https://www.khronos.org/registry/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>+-- and+-- <https://www.khronos.org/registry/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>+-- and+-- <https://www.khronos.org/registry/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>+-- and+-- <https://www.khronos.org/registry/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>+-- are limited to only memory accesses to @image@ in the subresource range+-- defined by @subresourceRange@.+--+-- If @image@ was created with+-- '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>.+-- 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>+-- 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>+-- 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>+-- 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>.+-- A+-- <https://www.khronos.org/registry/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>+-- 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>+-- 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>,+-- the layout transition is only executed once between the queues.+--+-- Note+--+-- 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+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' in the+-- @aspectMask@ member of @subresourceRange@ is equivalent to including+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', and+-- (for three-plane formats only)+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'.+--+-- == 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-VkImageMemoryBarrier2-srcStageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-VkImageMemoryBarrier2-srcStageMask-04956# 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_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>+-- 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>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03901# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03902# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03903# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03904# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03905# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03906# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03907# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03908# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03910# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03911# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03912# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03913# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03914# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03915# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03917# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03918# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03919# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03920# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-04747# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03922# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03923# If @srcAccessMask@+-- includes+-- 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-04994# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03924# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03925# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03926# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03927# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03928# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-06256# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- 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-dstStageMask-03929# 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.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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-VkImageMemoryBarrier2-dstStageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-VkImageMemoryBarrier2-dstStageMask-04956# 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_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>+-- 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>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03901# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03902# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03903# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03904# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03905# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03906# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03907# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03908# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03910# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03911# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03912# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03913# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03914# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03915# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03917# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03918# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03919# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03920# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-04747# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03922# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03923# If @dstAccessMask@+-- includes+-- 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-04994# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03924# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03925# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03926# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03927# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03928# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-06256# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- 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-subresourceRange-01486#+-- @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@+-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+-- created+--+-- - #VUID-VkImageMemoryBarrier2-subresourceRange-01724# If+-- @subresourceRange.levelCount@ is not+-- 'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',+-- @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@+-- /must/ be less than or equal to the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- - #VUID-VkImageMemoryBarrier2-subresourceRange-01488#+-- @subresourceRange.baseArrayLayer@ /must/ be less than the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @image@ was created+--+-- - #VUID-VkImageMemoryBarrier2-subresourceRange-01725# If+-- @subresourceRange.layerCount@ is not+-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',+-- @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@+-- /must/ be less than or equal to the @arrayLayers@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- - #VUID-VkImageMemoryBarrier2-image-01932# If @image@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01208# 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_COLOR_ATTACHMENT_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01209# 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_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01210# 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_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01211# 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_SHADER_READ_ONLY_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01212# 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_TRANSFER_SRC_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01213# 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_TRANSFER_DST_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01197# 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>,+-- @oldLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or the+-- current layout of the image subresources affected by the barrier+--+-- - #VUID-VkImageMemoryBarrier2-newLayout-01198# 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>,+-- @newLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01658# 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_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-01659# 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_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065# 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_DEPTH_READ_ONLY_OPTIMAL'+-- then @image@ /must/ have been created with at least one of+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066# 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_DEPTH_ATTACHMENT_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- set+--+-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067# 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_STENCIL_READ_ONLY_OPTIMAL'+-- then @image@ /must/ have been created with at least one of+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068# 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_STENCIL_ATTACHMENT_OPTIMAL'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- set+--+-- - #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>+-- 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_OPTIMAL',+-- @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939# 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_READ_ONLY_OPTIMAL',+-- @image@ /must/ have been created with at least one of+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-02088# 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_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+-- then @image@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- set+--+-- - #VUID-VkImageMemoryBarrier2-image-01671# If @image@ has a+-- single-plane color format or is not /disjoint/, then the+-- @aspectMask@ member of @subresourceRange@ /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-image-01672# If @image@ has a+-- multi-planar format and the image is /disjoint/, then the+-- @aspectMask@ member of @subresourceRange@ /must/ include either at+-- least one of+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';+-- or /must/ include+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-image-01673# If @image@ has a+-- multi-planar format with only two planes, then the @aspectMask@+-- member of @subresourceRange@ /must/ not include+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-image-03319# If @image@ has a+-- depth\/stencil format with both depth and stencil and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- feature is enabled, then the @aspectMask@ member of+-- @subresourceRange@ /must/ include either or both+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-image-03320# If @image@ has a+-- depth\/stencil format with both depth and stencil and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- feature is not enabled, then the @aspectMask@ member of+-- @subresourceRange@ /must/ include both+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070# If+-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at+-- least one /must/ not be a special queue family reserved for external+-- memory ownership transfers, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>+--+-- - #VUID-VkImageMemoryBarrier2-image-04071# If @image@ was created with+-- a sharing mode of+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and+-- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+-- special queue family values reserved for external memory transfers,+-- the other /must/ be+-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--+-- - #VUID-VkImageMemoryBarrier2-image-04072# If @image@ was created with+-- a sharing mode of+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid+-- queue families, or one of the special queue family values reserved+-- 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-srcStageMask-03854# If either+-- @srcStageMask@ or @dstStageMask@ includes+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be equal+--+-- - #VUID-VkImageMemoryBarrier2-srcStageMask-03855# If @srcStageMask@+-- 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>+-- 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>,+-- @oldLayout@ /must/ be one of+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageMemoryBarrier2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2'+--+-- - #VUID-VkImageMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkImageMemoryBarrier2-srcStageMask-parameter# @srcStageMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-parameter# @srcAccessMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- - #VUID-VkImageMemoryBarrier2-dstStageMask-parameter# @dstStageMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-parameter# @dstAccessMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- - #VUID-VkImageMemoryBarrier2-oldLayout-parameter# @oldLayout@ /must/+-- be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-VkImageMemoryBarrier2-newLayout-parameter# @newLayout@ /must/+-- be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-VkImageMemoryBarrier2-image-parameter# @image@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkImageMemoryBarrier2-subresourceRange-parameter#+-- @subresourceRange@ /must/ be a valid+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structure+--+-- = 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>,+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2', 'DependencyInfo',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageMemoryBarrier2 (es :: [Type]) = ImageMemoryBarrier2+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>+ -- within @image@ that is affected by this barrier.+ subresourceRange :: ImageSubresourceRange+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageMemoryBarrier2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (ImageMemoryBarrier2 es)++instance Extensible ImageMemoryBarrier2 where+ extensibleTypeName = "ImageMemoryBarrier2"+ setNext ImageMemoryBarrier2{..} next' = ImageMemoryBarrier2{next = next', ..}+ getNext ImageMemoryBarrier2{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier2 e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f+ | otherwise = Nothing++instance (Extendss ImageMemoryBarrier2 es, PokeChain es) => ToCStruct (ImageMemoryBarrier2 es) where+ withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageMemoryBarrier2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)+ lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)+ lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)+ lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)+ lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (oldLayout)+ lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (newLayout)+ lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (srcQueueFamilyIndex)+ lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (dstQueueFamilyIndex)+ lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (image)+ lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (subresourceRange)+ lift $ f+ cStructSize = 96+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (zero)+ lift $ f++instance (Extendss ImageMemoryBarrier2 es, PeekChain es) => FromCStruct (ImageMemoryBarrier2 es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+ srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2))+ dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+ dstAccessMask <- peek @AccessFlags2 ((p `plusPtr` 40 :: Ptr AccessFlags2))+ oldLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))+ newLayout <- peek @ImageLayout ((p `plusPtr` 52 :: Ptr ImageLayout))+ srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+ dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+ image <- peek @Image ((p `plusPtr` 64 :: Ptr Image))+ subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 72 :: Ptr ImageSubresourceRange))+ pure $ ImageMemoryBarrier2+ next srcStageMask srcAccessMask dstStageMask dstAccessMask oldLayout newLayout srcQueueFamilyIndex dstQueueFamilyIndex image subresourceRange++instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where+ zero = ImageMemoryBarrier2+ ()+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkBufferMemoryBarrier2 - Structure specifying a buffer memory barrier+--+-- = Description+--+-- This structure defines a+-- <https://www.khronos.org/registry/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>+-- for that range.+--+-- The first+-- <https://www.khronos.org/registry/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>+-- 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>+-- and+-- <https://www.khronos.org/registry/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>+-- are limited to only memory accesses to @buffer@ in the range defined by+-- @offset@ and @size@.+--+-- If @buffer@ was created with+-- '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>.+-- 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>+-- 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>+-- 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>+-- 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>.+-- A+-- <https://www.khronos.org/registry/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>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-VkBufferMemoryBarrier2-srcStageMask-04956# 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_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>+-- 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>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03900# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03901# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03902# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03903# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03904# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03905# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03906# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03907# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03908# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03910# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03911# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03912# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03913# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03914# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03915# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03917# If @srcAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03918# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03919# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03920# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-04747# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03922# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03923# If @srcAccessMask@+-- includes+-- 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-04994# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03924# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03925# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03926# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03927# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03928# If @srcAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+-- @srcStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-06256# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- 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-dstStageMask-03929# 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.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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-VkBufferMemoryBarrier2-dstStageMask-04956# 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_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>+-- 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>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03900# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03901# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03902# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03903# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03904# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03905# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03906# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03907# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03908# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03910# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03911# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03912# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03913# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03914# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03915# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03917# If @dstAccessMask@+-- includes 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03918# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03919# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03920# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-04747# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03922# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03923# If @dstAccessMask@+-- includes+-- 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-04994# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03924# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03925# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03926# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT',+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03927# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT',+-- or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03928# If @dstAccessMask@+-- includes+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',+-- @dstStageMask@ /must/ include+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- or+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT'+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-06256# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- 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-offset-01187# @offset@ /must/ be less+-- than the size of @buffer@+--+-- - #VUID-VkBufferMemoryBarrier2-size-01188# If @size@ is not equal to+-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater+-- than @0@+--+-- - #VUID-VkBufferMemoryBarrier2-size-01189# If @size@ is not equal to+-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than+-- or equal to than the size of @buffer@ minus @offset@+--+-- - #VUID-VkBufferMemoryBarrier2-buffer-01931# If @buffer@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087# If+-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at+-- least one /must/ not be a special queue family reserved for external+-- memory ownership transfers, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>+--+-- - #VUID-VkBufferMemoryBarrier2-buffer-04088# If @buffer@ was created+-- with a sharing mode of+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and+-- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+-- special queue family values reserved for external memory transfers,+-- the other /must/ be+-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--+-- - #VUID-VkBufferMemoryBarrier2-buffer-04089# If @buffer@ was created+-- with a sharing mode of+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid+-- queue families, or one of the special queue family values reserved+-- for external memory transfers, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>+--+-- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03851# If either+-- @srcStageMask@ or @dstStageMask@ includes+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be equal+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkBufferMemoryBarrier2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2'+--+-- - #VUID-VkBufferMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkBufferMemoryBarrier2-srcStageMask-parameter# @srcStageMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter#+-- @srcAccessMask@ /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- - #VUID-VkBufferMemoryBarrier2-dstStageMask-parameter# @dstStageMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter#+-- @dstAccessMask@ /must/ be a valid combination of+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2' values+--+-- - #VUID-VkBufferMemoryBarrier2-buffer-parameter# @buffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- = 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>,+-- 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2',+-- 'Vulkan.Core10.Handles.Buffer', 'DependencyInfo',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferMemoryBarrier2 = BufferMemoryBarrier2+ { -- | @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>.+ 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>.+ 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>.+ 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>.+ 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>.+ 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>.+ dstQueueFamilyIndex :: Word32+ , -- | @buffer@ is a handle to the buffer whose backing memory is affected by+ -- the barrier.+ buffer :: Buffer+ , -- | @offset@ is an offset in bytes into the backing memory for @buffer@;+ -- this is relative to the base offset as bound to the buffer (see+ -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory').+ offset :: DeviceSize+ , -- | @size@ is a size in bytes of the affected area of backing memory for+ -- @buffer@, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to use the range+ -- from @offset@ to the end of the buffer.+ size :: DeviceSize+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferMemoryBarrier2)+#endif+deriving instance Show BufferMemoryBarrier2++instance ToCStruct BufferMemoryBarrier2 where+ withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BufferMemoryBarrier2{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask)+ poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask)+ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask)+ poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)+ poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)+ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)+ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size)+ f+ cStructSize = 80+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)+ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)+ f++instance FromCStruct BufferMemoryBarrier2 where+ peekCStruct p = do+ srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+ srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2))+ dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+ dstAccessMask <- peek @AccessFlags2 ((p `plusPtr` 40 :: Ptr AccessFlags2))+ srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+ dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+ buffer <- peek @Buffer ((p `plusPtr` 56 :: Ptr Buffer))+ offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))+ size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))+ pure $ BufferMemoryBarrier2+ srcStageMask srcAccessMask dstStageMask dstAccessMask srcQueueFamilyIndex dstQueueFamilyIndex buffer offset size++instance Storable BufferMemoryBarrier2 where+ sizeOf ~_ = 80+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferMemoryBarrier2 where+ zero = BufferMemoryBarrier2+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkDependencyInfo - Structure specifying dependency information for a+-- synchronization command+--+-- = 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>,+-- as well as+-- <https://www.khronos.org/registry/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>.+--+-- 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>.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkDependencyInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO'+--+-- - #VUID-VkDependencyInfo-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkDependencyInfo-dependencyFlags-parameter# @dependencyFlags@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values+--+-- - #VUID-VkDependencyInfo-pMemoryBarriers-parameter# If+-- @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid+-- pointer to an array of @memoryBarrierCount@ valid 'MemoryBarrier2'+-- structures+--+-- - #VUID-VkDependencyInfo-pBufferMemoryBarriers-parameter# If+-- @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+-- /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+-- valid 'BufferMemoryBarrier2' structures+--+-- - #VUID-VkDependencyInfo-pImageMemoryBarriers-parameter# If+-- @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/+-- be a valid pointer to an array of @imageMemoryBarrierCount@ valid+-- 'ImageMemoryBarrier2' structures+--+-- = 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>,+-- 'BufferMemoryBarrier2',+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',+-- 'ImageMemoryBarrier2', 'MemoryBarrier2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdPipelineBarrier2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',+-- 'cmdSetEvent2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR',+-- 'cmdWaitEvents2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR'+data DependencyInfo = DependencyInfo+ { -- | @dependencyFlags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying+ -- how execution and memory dependencies are formed.+ dependencyFlags :: DependencyFlags+ , -- | @pMemoryBarriers@ is a pointer to an array of 'MemoryBarrier2'+ -- structures defining memory dependencies between any memory accesses.+ memoryBarriers :: Vector MemoryBarrier2+ , -- | @pBufferMemoryBarriers@ is a pointer to an array of+ -- 'BufferMemoryBarrier2' structures defining memory dependencies between+ -- buffer ranges.+ bufferMemoryBarriers :: Vector BufferMemoryBarrier2+ , -- | @pImageMemoryBarriers@ is a pointer to an array of 'ImageMemoryBarrier2'+ -- structures defining memory dependencies between image subresources.+ imageMemoryBarriers :: Vector (SomeStruct ImageMemoryBarrier2)+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DependencyInfo)+#endif+deriving instance Show DependencyInfo++instance ToCStruct DependencyInfo where+ withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p DependencyInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr DependencyFlags)) (dependencyFlags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))+ pPMemoryBarriers' <- ContT $ allocaBytes @MemoryBarrier2 ((Data.Vector.length (memoryBarriers)) * 48)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2) (e)) (memoryBarriers)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2))) (pPMemoryBarriers')+ lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))+ pPBufferMemoryBarriers' <- ContT $ allocaBytes @BufferMemoryBarrier2 ((Data.Vector.length (bufferMemoryBarriers)) * 80)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2) (e)) (bufferMemoryBarriers)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2))) (pPBufferMemoryBarriers')+ lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))+ pPImageMemoryBarriers' <- ContT $ allocaBytes @(ImageMemoryBarrier2 _) ((Data.Vector.length (imageMemoryBarriers)) * 96)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _))) (e) . ($ ())) (imageMemoryBarriers)+ lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2 _)))) (pPImageMemoryBarriers')+ lift $ f+ cStructSize = 64+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct DependencyInfo where+ peekCStruct p = do+ dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 16 :: Ptr DependencyFlags))+ memoryBarrierCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pMemoryBarriers <- peek @(Ptr MemoryBarrier2) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2)))+ pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2 ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2)))+ bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2)))+ pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2 ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2)))+ imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+ pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2 _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2 _))))+ pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _)))))+ pure $ DependencyInfo+ dependencyFlags pMemoryBarriers' pBufferMemoryBarriers' pImageMemoryBarriers'++instance Zero DependencyInfo where+ zero = DependencyInfo+ zero+ mempty+ mempty+ mempty+++-- | VkSemaphoreSubmitInfo - Structure specifying a semaphore signal or wait+-- operation+--+-- = Description+--+-- Whether this structure defines a semaphore wait or signal operation is+-- defined by how it is used.+--+-- == 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-VkSemaphoreSubmitInfo-stageMask-03935# 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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-VkSemaphoreSubmitInfo-stageMask-04956# 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_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>+-- 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>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - #VUID-VkSemaphoreSubmitInfo-device-03888# If the @device@ that+-- @semaphore@ was created on is not a device group, @deviceIndex@+-- /must/ be @0@+--+-- - #VUID-VkSemaphoreSubmitInfo-device-03889# If the @device@ that+-- @semaphore@ was created on is a device group, @deviceIndex@ /must/+-- be a valid device index+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkSemaphoreSubmitInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO'+--+-- - #VUID-VkSemaphoreSubmitInfo-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- - #VUID-VkSemaphoreSubmitInfo-semaphore-parameter# @semaphore@ /must/+-- be a valid 'Vulkan.Core10.Handles.Semaphore' handle+--+-- - #VUID-VkSemaphoreSubmitInfo-stageMask-parameter# @stageMask@ /must/+-- be a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- = 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>,+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2'+data SemaphoreSubmitInfo = SemaphoreSubmitInfo+ { -- | @semaphore@ is a 'Vulkan.Core10.Handles.Semaphore' affected by this+ -- operation.+ semaphore :: Semaphore+ , -- | @value@ is either the value used to signal @semaphore@ or the value+ -- waited on by @semaphore@, if @semaphore@ is a timeline semaphore.+ -- Otherwise it is ignored.+ value :: Word64+ , -- | @stageMask@ is a+ -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of+ -- 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>+ -- and+ -- <https://www.khronos.org/registry/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>.+ stageMask :: PipelineStageFlags2+ , -- | @deviceIndex@ is the index of the device within a device group that+ -- executes the semaphore wait or signal operation.+ deviceIndex :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SemaphoreSubmitInfo)+#endif+deriving instance Show SemaphoreSubmitInfo++instance ToCStruct SemaphoreSubmitInfo where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p SemaphoreSubmitInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)+ poke ((p `plusPtr` 24 :: Ptr Word64)) (value)+ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (stageMask)+ poke ((p `plusPtr` 40 :: Ptr Word32)) (deviceIndex)+ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)+ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+ f++instance FromCStruct SemaphoreSubmitInfo where+ peekCStruct p = do+ semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))+ value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))+ stageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2))+ deviceIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+ pure $ SemaphoreSubmitInfo+ semaphore value stageMask deviceIndex++instance Storable SemaphoreSubmitInfo where+ sizeOf ~_ = 48+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SemaphoreSubmitInfo where+ zero = SemaphoreSubmitInfo+ zero+ zero+ zero+ zero+++-- | VkCommandBufferSubmitInfo - Structure specifying a command buffer+-- submission+--+-- == Valid Usage+--+-- - #VUID-VkCommandBufferSubmitInfo-commandBuffer-03890# @commandBuffer@+-- /must/ not have been allocated with+-- 'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'+--+-- - #VUID-VkCommandBufferSubmitInfo-deviceMask-03891# If @deviceMask@ is+-- not @0@, it /must/ be a valid device mask+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkCommandBufferSubmitInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO'+--+-- - #VUID-VkCommandBufferSubmitInfo-pNext-pNext# @pNext@ /must/ be+-- @NULL@+--+-- - #VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- = 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>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2'+data CommandBufferSubmitInfo = CommandBufferSubmitInfo+ { -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be+ -- submitted for execution.+ commandBuffer :: Ptr CommandBuffer_T+ , -- | @deviceMask@ is a bitmask indicating which devices in a device group+ -- execute the command buffer. A @deviceMask@ of @0@ is equivalent to+ -- setting all bits corresponding to valid devices in the group to @1@.+ deviceMask :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CommandBufferSubmitInfo)+#endif+deriving instance Show CommandBufferSubmitInfo++instance ToCStruct CommandBufferSubmitInfo where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CommandBufferSubmitInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ f++instance FromCStruct CommandBufferSubmitInfo where+ peekCStruct p = do+ commandBuffer <- peek @(Ptr CommandBuffer_T) ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T)))+ deviceMask <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ pure $ CommandBufferSubmitInfo+ commandBuffer deviceMask++instance Storable CommandBufferSubmitInfo where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CommandBufferSubmitInfo where+ zero = CommandBufferSubmitInfo+ zero+ zero+++-- | VkSubmitInfo2 - Structure specifying a queue submit operation+--+-- == Valid Usage+--+-- - #VUID-VkSubmitInfo2-semaphore-03881# If the same semaphore is used+-- as the @semaphore@ member of both an element of+-- @pSignalSemaphoreInfos@ and @pWaitSemaphoreInfos@, and that+-- semaphore is a timeline semaphore, the @value@ member of the+-- @pSignalSemaphoreInfos@ element /must/ be greater than the @value@+-- member of the @pWaitSemaphoreInfos@ element+--+-- - #VUID-VkSubmitInfo2-semaphore-03882# If the @semaphore@ member of+-- 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>+-- is executed+--+-- - #VUID-VkSubmitInfo2-semaphore-03883# If the @semaphore@ member of+-- any element of @pSignalSemaphoreInfos@ is a timeline semaphore, the+-- @value@ member of that element /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>+--+-- - #VUID-VkSubmitInfo2-semaphore-03884# If the @semaphore@ member of+-- any element of @pWaitSemaphoreInfos@ is a timeline semaphore, the+-- @value@ member of that element /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>+--+-- - #VUID-VkSubmitInfo2-flags-03886# If @flags@ includes+-- 'Vulkan.Core13.Enums.SubmitFlagBits.SUBMIT_PROTECTED_BIT', all+-- elements of @pCommandBuffers@ /must/ be protected command buffers+--+-- - #VUID-VkSubmitInfo2-flags-03887# If @flags@ does not include+-- 'Vulkan.Core13.Enums.SubmitFlagBits.SUBMIT_PROTECTED_BIT', each+-- element of @pCommandBuffers@ /must/ not be a protected command+-- buffer+--+-- - #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>,+-- 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>,+-- 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>,+-- 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>,+-- 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>+-- 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>,+-- 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+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkSubmitInfo2-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2'+--+-- - #VUID-VkSubmitInfo2-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_performance_query.PerformanceQuerySubmitInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',+-- or+-- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV'+--+-- - #VUID-VkSubmitInfo2-sType-unique# The @sType@ value of each struct+-- in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkSubmitInfo2-flags-parameter# @flags@ /must/ be a valid+-- combination of 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlagBits'+-- values+--+-- - #VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameter# If+-- @waitSemaphoreInfoCount@ is not @0@, @pWaitSemaphoreInfos@ /must/ be+-- a valid pointer to an array of @waitSemaphoreInfoCount@ valid+-- 'SemaphoreSubmitInfo' structures+--+-- - #VUID-VkSubmitInfo2-pCommandBufferInfos-parameter# If+-- @commandBufferInfoCount@ is not @0@, @pCommandBufferInfos@ /must/ be+-- a valid pointer to an array of @commandBufferInfoCount@ valid+-- 'CommandBufferSubmitInfo' structures+--+-- - #VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameter# If+-- @signalSemaphoreInfoCount@ is not @0@, @pSignalSemaphoreInfos@+-- /must/ be a valid pointer to an array of @signalSemaphoreInfoCount@+-- valid 'SemaphoreSubmitInfo' structures+--+-- = 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>,+-- 'CommandBufferSubmitInfo', 'SemaphoreSubmitInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlags', 'queueSubmit2',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR'+data SubmitInfo2 (es :: [Type]) = SubmitInfo2+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is a bitmask of+ -- 'Vulkan.Core13.Enums.SubmitFlagBits.SubmitFlagBits'.+ 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>.+ waitSemaphoreInfos :: Vector SemaphoreSubmitInfo+ , -- | @pCommandBufferInfos@ is a pointer to an array of+ -- 'CommandBufferSubmitInfo' structures describing command buffers to+ -- execute in the batch.+ 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>.+ signalSemaphoreInfos :: Vector SemaphoreSubmitInfo+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SubmitInfo2 (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (SubmitInfo2 es)++instance Extensible SubmitInfo2 where+ extensibleTypeName = "SubmitInfo2"+ setNext SubmitInfo2{..} next' = SubmitInfo2{next = next', ..}+ getNext SubmitInfo2{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo2 e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f+ | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoKHR = Just f+ | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f+ | otherwise = Nothing++instance (Extendss SubmitInfo2 es, PokeChain es) => ToCStruct (SubmitInfo2 es) where+ withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p SubmitInfo2{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr SubmitFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (waitSemaphoreInfos)) :: Word32))+ pPWaitSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (waitSemaphoreInfos)) * 48)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (waitSemaphoreInfos)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPWaitSemaphoreInfos')+ lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32))+ pPCommandBufferInfos' <- ContT $ allocaBytes @CommandBufferSubmitInfo ((Data.Vector.length (commandBufferInfos)) * 32)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfo) (e)) (commandBufferInfos)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo))) (pPCommandBufferInfos')+ lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))+ pPSignalSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (signalSemaphoreInfos)) * 48)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (signalSemaphoreInfos)+ lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPSignalSemaphoreInfos')+ lift $ f+ cStructSize = 64+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ f++instance (Extendss SubmitInfo2 es, PeekChain es) => FromCStruct (SubmitInfo2 es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @SubmitFlags ((p `plusPtr` 16 :: Ptr SubmitFlags))+ waitSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo)))+ pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))+ commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfo) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo)))+ pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfo ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfo)))+ signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+ pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfo)))+ pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))+ pure $ SubmitInfo2+ next flags pWaitSemaphoreInfos' pCommandBufferInfos' pSignalSemaphoreInfos'++instance es ~ '[] => Zero (SubmitInfo2 es) where+ zero = SubmitInfo2+ ()+ zero+ mempty+ mempty+ mempty+++-- | VkPhysicalDeviceSynchronization2Features - Structure describing whether+-- the implementation supports v2 synchronization commands+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceSynchronization2Features' 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. 'PhysicalDeviceSynchronization2Features' /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_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>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSynchronization2Features = PhysicalDeviceSynchronization2Features+ { -- | #extension-features-synchronization2# @synchronization2@ indicates+ -- whether the implementation supports the new set of synchronization+ -- commands introduced in @VK_KHR_synchronization2@.+ synchronization2 :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSynchronization2Features)+#endif+deriving instance Show PhysicalDeviceSynchronization2Features++instance ToCStruct PhysicalDeviceSynchronization2Features where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceSynchronization2Features{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (synchronization2))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceSynchronization2Features where+ peekCStruct p = do+ synchronization2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceSynchronization2Features+ (bool32ToBool synchronization2)++instance Storable PhysicalDeviceSynchronization2Features where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSynchronization2Features where+ zero = PhysicalDeviceSynchronization2Features+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot view
@@ -0,0 +1,84 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_synchronization2"+module Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 ( BufferMemoryBarrier2+ , CommandBufferSubmitInfo+ , DependencyInfo+ , ImageMemoryBarrier2+ , MemoryBarrier2+ , PhysicalDeviceSynchronization2Features+ , SemaphoreSubmitInfo+ , SubmitInfo2+ ) 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 BufferMemoryBarrier2++instance ToCStruct BufferMemoryBarrier2+instance Show BufferMemoryBarrier2++instance FromCStruct BufferMemoryBarrier2+++data CommandBufferSubmitInfo++instance ToCStruct CommandBufferSubmitInfo+instance Show CommandBufferSubmitInfo++instance FromCStruct CommandBufferSubmitInfo+++data DependencyInfo++instance ToCStruct DependencyInfo+instance Show DependencyInfo++instance FromCStruct DependencyInfo+++type role ImageMemoryBarrier2 nominal+data ImageMemoryBarrier2 (es :: [Type])++instance (Extendss ImageMemoryBarrier2 es, PokeChain es) => ToCStruct (ImageMemoryBarrier2 es)+instance Show (Chain es) => Show (ImageMemoryBarrier2 es)++instance (Extendss ImageMemoryBarrier2 es, PeekChain es) => FromCStruct (ImageMemoryBarrier2 es)+++data MemoryBarrier2++instance ToCStruct MemoryBarrier2+instance Show MemoryBarrier2++instance FromCStruct MemoryBarrier2+++data PhysicalDeviceSynchronization2Features++instance ToCStruct PhysicalDeviceSynchronization2Features+instance Show PhysicalDeviceSynchronization2Features++instance FromCStruct PhysicalDeviceSynchronization2Features+++data SemaphoreSubmitInfo++instance ToCStruct SemaphoreSubmitInfo+instance Show SemaphoreSubmitInfo++instance FromCStruct SemaphoreSubmitInfo+++type role SubmitInfo2 nominal+data SubmitInfo2 (es :: [Type])++instance (Extendss SubmitInfo2 es, PokeChain es) => ToCStruct (SubmitInfo2 es)+instance Show (Chain es) => Show (SubmitInfo2 es)++instance (Extendss SubmitInfo2 es, PeekChain es) => FromCStruct (SubmitInfo2 es)+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -0,0 +1,100 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_zero_initialize_workgroup_memory"+module Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory ( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(..)+ , StructureType(..)+ ) 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.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_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(..))+-- | VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - Structure+-- describing support for zero initialization of workgroup memory by an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures' 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. 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures' /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_zero_initialize_workgroup_memory VK_KHR_zero_initialize_workgroup_memory>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+ { -- | #extension-features-shaderZeroInitializeWorkgroupMemory#+ -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the+ -- implementation supports initializing a variable in Workgroup storage+ -- class.+ shaderZeroInitializeWorkgroupMemory :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)+#endif+deriving instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+ peekCStruct p = do+ shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+ (bool32ToBool shaderZeroInitializeWorkgroupMemory)++instance Storable PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures where+ zero = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+ zero+
+ src/Vulkan/Core13/Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs-boot view
@@ -0,0 +1,15 @@+{-# language CPP #-}+-- No documentation found for Chapter "Promoted_From_VK_KHR_zero_initialize_workgroup_memory"+module Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures+
src/Vulkan/Dynamic.hs view
@@ -48,7 +48,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindBufferMemoryInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindImageMemoryInfo) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BlitImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Bool32) import {-# SOURCE #-} Vulkan.Core10.Handles (Buffer) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionCreateInfoFUCHSIA)@@ -87,11 +87,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureModeKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureToMemoryInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferToImageInfo2) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.Handles (CuFunctionNVX)@@ -116,7 +116,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsObjectTagInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (DeferredOperationKHR) import {-# SOURCE #-} Vulkan.Core10.Enums.DependencyFlagBits (DependencyFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (DependencyInfoKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo) import {-# SOURCE #-} Vulkan.Core10.Handles (DescriptorPool) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (DescriptorPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags)@@ -128,12 +128,12 @@ import {-# SOURCE #-} Vulkan.Core11.Handles (DescriptorUpdateTemplate) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template (DescriptorUpdateTemplateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (DeviceAddress)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceBufferMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceBufferMemoryRequirements) import {-# SOURCE #-} Vulkan.Core10.Device (DeviceCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DeviceEventInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentCapabilitiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentModeFlagsKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (DeviceImageMemoryRequirementsKHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements) import {-# SOURCE #-} Vulkan.Core10.Handles (DeviceMemory) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2)@@ -272,7 +272,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceSparseImageFormatInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (PhysicalDeviceSurfaceInfo2KHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_tooling_info (PhysicalDeviceToolPropertiesEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties) import {-# SOURCE #-} Vulkan.Core10.Handles (PhysicalDevice_T) import {-# SOURCE #-} Vulkan.Core10.Handles (Pipeline) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)@@ -287,12 +287,12 @@ import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR)+import {-# SOURCE #-} Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (PresentInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (PresentModeKHR) import {-# SOURCE #-} Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PrivateDataSlotCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.Handles (PrivateDataSlotEXT)+import {-# SOURCE #-} Vulkan.Core13.Handles (PrivateDataSlot)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PrivateDataSlotCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlags) import {-# SOURCE #-} Vulkan.Core10.Handles (QueryPool) import {-# SOURCE #-} Vulkan.Core10.Query (QueryPoolCreateInfo)@@ -312,8 +312,8 @@ 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_KHR_dynamic_rendering (RenderingInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ResolveImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2) import {-# SOURCE #-} Vulkan.Core10.Enums.Result (Result) import {-# SOURCE #-} Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)@@ -347,7 +347,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_stream_descriptor_surface (StreamDescriptorSurfaceCreateInfoGGP) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (StridedDeviceAddressRegionKHR) import {-# SOURCE #-} Vulkan.Core10.Queue (SubmitInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SubmitInfo2KHR)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.SubpassContents (SubpassContents) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo)@@ -464,7 +464,7 @@ , pVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPerformanceQueryCreateInfo" ::: Ptr QueryPoolPerformanceCreateInfoKHR) -> ("pNumPasses" ::: Ptr Word32) -> IO ()) , pVkCreateHeadlessSurfaceEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr HeadlessSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) , pVkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: FunPtr (Ptr PhysicalDevice_T -> ("pCombinationCount" ::: Ptr Word32) -> ("pCombinations" ::: Ptr FramebufferMixedSamplesCombinationNV) -> IO Result)- , pVkGetPhysicalDeviceToolPropertiesEXT :: FunPtr (Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolPropertiesEXT) -> IO Result)+ , pVkGetPhysicalDeviceToolProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolProperties) -> IO Result) , pVkGetPhysicalDeviceFragmentShadingRatesKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pFragmentShadingRateCount" ::: Ptr Word32) -> ("pFragmentShadingRates" ::: Ptr PhysicalDeviceFragmentShadingRateKHR) -> IO Result) , pVkAcquireDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result) , pVkGetDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result)@@ -586,7 +586,7 @@ vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"#) vkCreateHeadlessSurfaceEXT <- getInstanceProcAddr' handle (Ptr "vkCreateHeadlessSurfaceEXT"#) vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"#)- vkGetPhysicalDeviceToolPropertiesEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceToolPropertiesEXT"#)+ vkGetPhysicalDeviceToolProperties <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceToolPropertiesEXT"#), (Ptr "vkGetPhysicalDeviceToolProperties"#)] vkGetPhysicalDeviceFragmentShadingRatesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceFragmentShadingRatesKHR"#) vkAcquireDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkAcquireDrmDisplayEXT"#) vkGetDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetDrmDisplayEXT"#)@@ -674,7 +674,7 @@ (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPerformanceQueryCreateInfo" ::: Ptr QueryPoolPerformanceCreateInfoKHR) -> ("pNumPasses" ::: Ptr Word32) -> IO ()) vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr HeadlessSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateHeadlessSurfaceEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pCombinationCount" ::: Ptr Word32) -> ("pCombinations" ::: Ptr FramebufferMixedSamplesCombinationNV) -> IO Result) vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)- (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolPropertiesEXT) -> IO Result) vkGetPhysicalDeviceToolPropertiesEXT)+ (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolProperties) -> IO Result) vkGetPhysicalDeviceToolProperties) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pFragmentShadingRateCount" ::: Ptr Word32) -> ("pFragmentShadingRates" ::: Ptr PhysicalDeviceFragmentShadingRateKHR) -> IO Result) vkGetPhysicalDeviceFragmentShadingRatesKHR) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result) vkAcquireDrmDisplayEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result) vkGetDrmDisplayEXT)@@ -872,9 +872,9 @@ , pVkGetBufferMemoryRequirements2 :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr BufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) , pVkGetImageMemoryRequirements2 :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr (SomeStruct ImageMemoryRequirementsInfo2)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) , pVkGetImageSparseMemoryRequirements2 :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr ImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ())- , pVkGetDeviceBufferMemoryRequirementsKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())- , pVkGetDeviceImageMemoryRequirementsKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())- , pVkGetDeviceImageSparseMemoryRequirementsKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ())+ , pVkGetDeviceBufferMemoryRequirements :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())+ , pVkGetDeviceImageMemoryRequirements :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ())+ , pVkGetDeviceImageSparseMemoryRequirements :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ()) , pVkCreateSamplerYcbcrConversion :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct SamplerYcbcrConversionCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr SamplerYcbcrConversion) -> IO Result) , pVkDestroySamplerYcbcrConversion :: FunPtr (Ptr Device_T -> SamplerYcbcrConversion -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkGetDeviceQueue2 :: FunPtr (Ptr Device_T -> ("pQueueInfo" ::: Ptr DeviceQueueInfo2) -> ("pQueue" ::: Ptr (Ptr Queue_T)) -> IO ())@@ -985,45 +985,45 @@ , pVkGetDeferredOperationMaxConcurrencyKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Word32) , pVkGetDeferredOperationResultKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result) , pVkDeferredOperationJoinKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result)- , pVkCmdSetCullModeEXT :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ())- , pVkCmdSetFrontFaceEXT :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ())- , pVkCmdSetPrimitiveTopologyEXT :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ())- , pVkCmdSetViewportWithCountEXT :: FunPtr (Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ())- , pVkCmdSetScissorWithCountEXT :: FunPtr (Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ())- , pVkCmdBindVertexBuffers2EXT :: FunPtr (Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ())- , pVkCmdSetDepthTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ())- , pVkCmdSetDepthWriteEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ())- , pVkCmdSetDepthCompareOpEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ())- , pVkCmdSetDepthBoundsTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ())- , pVkCmdSetStencilTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ())- , pVkCmdSetStencilOpEXT :: FunPtr (Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ())+ , pVkCmdSetCullMode :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ())+ , pVkCmdSetFrontFace :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ())+ , pVkCmdSetPrimitiveTopology :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ())+ , pVkCmdSetViewportWithCount :: FunPtr (Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ())+ , pVkCmdSetScissorWithCount :: FunPtr (Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ())+ , pVkCmdBindVertexBuffers2 :: FunPtr (Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ())+ , pVkCmdSetDepthTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ())+ , pVkCmdSetDepthWriteEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ())+ , pVkCmdSetDepthCompareOp :: FunPtr (Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ())+ , pVkCmdSetDepthBoundsTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ())+ , pVkCmdSetStencilTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ())+ , pVkCmdSetStencilOp :: FunPtr (Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ()) , pVkCmdSetPatchControlPointsEXT :: FunPtr (Ptr CommandBuffer_T -> ("patchControlPoints" ::: Word32) -> IO ())- , pVkCmdSetRasterizerDiscardEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ())- , pVkCmdSetDepthBiasEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ())+ , pVkCmdSetRasterizerDiscardEnable :: FunPtr (Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ())+ , pVkCmdSetDepthBiasEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ()) , pVkCmdSetLogicOpEXT :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ())- , pVkCmdSetPrimitiveRestartEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ())- , pVkCreatePrivateDataSlotEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result)- , pVkDestroyPrivateDataSlotEXT :: FunPtr (Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())- , pVkSetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result)- , pVkGetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("pData" ::: Ptr Word64) -> IO ())- , pVkCmdCopyBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())- , pVkCmdCopyImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())- , pVkCmdBlitImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())- , pVkCmdCopyBufferToImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ())- , pVkCmdCopyImageToBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ())- , pVkCmdResolveImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())+ , pVkCmdSetPrimitiveRestartEnable :: FunPtr (Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ())+ , pVkCreatePrivateDataSlot :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlot) -> IO Result)+ , pVkDestroyPrivateDataSlot :: FunPtr (Ptr Device_T -> PrivateDataSlot -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+ , pVkSetPrivateData :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("data" ::: Word64) -> IO Result)+ , pVkGetPrivateData :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ())+ , pVkCmdCopyBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ())+ , pVkCmdCopyImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ())+ , pVkCmdBlitImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ())+ , pVkCmdCopyBufferToImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ())+ , pVkCmdCopyImageToBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ())+ , pVkCmdResolveImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ()) , pVkCmdSetFragmentShadingRateKHR :: FunPtr (Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) , pVkCmdSetFragmentShadingRateEnumNV :: FunPtr (Ptr CommandBuffer_T -> FragmentShadingRateNV -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) , pVkGetAccelerationStructureBuildSizesKHR :: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> ("pBuildInfo" ::: Ptr AccelerationStructureBuildGeometryInfoKHR) -> ("pMaxPrimitiveCounts" ::: Ptr Word32) -> ("pSizeInfo" ::: Ptr AccelerationStructureBuildSizesInfoKHR) -> IO ()) , pVkCmdSetVertexInputEXT :: FunPtr (Ptr CommandBuffer_T -> ("vertexBindingDescriptionCount" ::: Word32) -> ("pVertexBindingDescriptions" ::: Ptr VertexInputBindingDescription2EXT) -> ("vertexAttributeDescriptionCount" ::: Word32) -> ("pVertexAttributeDescriptions" ::: Ptr VertexInputAttributeDescription2EXT) -> IO ()) , pVkCmdSetColorWriteEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("attachmentCount" ::: Word32) -> ("pColorWriteEnables" ::: Ptr Bool32) -> IO ())- , pVkCmdSetEvent2KHR :: FunPtr (Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ())- , pVkCmdResetEvent2KHR :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2KHR) -> IO ())- , pVkCmdWaitEvents2KHR :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfoKHR) -> IO ())- , pVkCmdPipelineBarrier2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ())- , pVkQueueSubmit2KHR :: FunPtr (Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2KHR)) -> Fence -> IO Result)- , pVkCmdWriteTimestamp2KHR :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> ("query" ::: Word32) -> IO ())- , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ())+ , pVkCmdSetEvent2 :: FunPtr (Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ())+ , pVkCmdResetEvent2 :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2) -> IO ())+ , pVkCmdWaitEvents2 :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfo) -> IO ())+ , pVkCmdPipelineBarrier2 :: FunPtr (Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ())+ , pVkQueueSubmit2 :: FunPtr (Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2)) -> Fence -> IO Result)+ , pVkCmdWriteTimestamp2 :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ())+ , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) , pVkGetQueueCheckpointData2NV :: FunPtr (Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ()) , pVkCreateCuModuleNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) , pVkCreateCuFunctionNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result)@@ -1037,8 +1037,8 @@ , pVkSetBufferCollectionImageConstraintsFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pImageConstraintsInfo" ::: Ptr ImageConstraintsInfoFUCHSIA) -> IO Result) , pVkDestroyBufferCollectionFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkGetBufferCollectionPropertiesFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pProperties" ::: Ptr BufferCollectionPropertiesFUCHSIA) -> IO Result)- , pVkCmdBeginRenderingKHR :: FunPtr (Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfoKHR)) -> IO ())- , pVkCmdEndRenderingKHR :: FunPtr (Ptr CommandBuffer_T -> IO ())+ , pVkCmdBeginRendering :: FunPtr (Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> IO ())+ , pVkCmdEndRendering :: FunPtr (Ptr CommandBuffer_T -> IO ()) } deriving instance Eq DeviceCmds@@ -1301,9 +1301,9 @@ vkGetBufferMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetBufferMemoryRequirements2KHR"#), (Ptr "vkGetBufferMemoryRequirements2"#)] vkGetImageMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetImageMemoryRequirements2KHR"#), (Ptr "vkGetImageMemoryRequirements2"#)] vkGetImageSparseMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetImageSparseMemoryRequirements2KHR"#), (Ptr "vkGetImageSparseMemoryRequirements2"#)]- vkGetDeviceBufferMemoryRequirementsKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceBufferMemoryRequirementsKHR"#)- vkGetDeviceImageMemoryRequirementsKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceImageMemoryRequirementsKHR"#)- vkGetDeviceImageSparseMemoryRequirementsKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceImageSparseMemoryRequirementsKHR"#)+ vkGetDeviceBufferMemoryRequirements <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceBufferMemoryRequirementsKHR"#), (Ptr "vkGetDeviceBufferMemoryRequirements"#)]+ vkGetDeviceImageMemoryRequirements <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceImageMemoryRequirementsKHR"#), (Ptr "vkGetDeviceImageMemoryRequirements"#)]+ vkGetDeviceImageSparseMemoryRequirements <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceImageSparseMemoryRequirementsKHR"#), (Ptr "vkGetDeviceImageSparseMemoryRequirements"#)] vkCreateSamplerYcbcrConversion <- getFirstDeviceProcAddr [(Ptr "vkCreateSamplerYcbcrConversionKHR"#), (Ptr "vkCreateSamplerYcbcrConversion"#)] vkDestroySamplerYcbcrConversion <- getFirstDeviceProcAddr [(Ptr "vkDestroySamplerYcbcrConversionKHR"#), (Ptr "vkDestroySamplerYcbcrConversion"#)] vkGetDeviceQueue2 <- getDeviceProcAddr' handle (Ptr "vkGetDeviceQueue2"#)@@ -1414,44 +1414,44 @@ vkGetDeferredOperationMaxConcurrencyKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationMaxConcurrencyKHR"#) vkGetDeferredOperationResultKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationResultKHR"#) vkDeferredOperationJoinKHR <- getDeviceProcAddr' handle (Ptr "vkDeferredOperationJoinKHR"#)- vkCmdSetCullModeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetCullModeEXT"#)- vkCmdSetFrontFaceEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetFrontFaceEXT"#)- vkCmdSetPrimitiveTopologyEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPrimitiveTopologyEXT"#)- vkCmdSetViewportWithCountEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewportWithCountEXT"#)- vkCmdSetScissorWithCountEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetScissorWithCountEXT"#)- vkCmdBindVertexBuffers2EXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindVertexBuffers2EXT"#)- vkCmdSetDepthTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthTestEnableEXT"#)- vkCmdSetDepthWriteEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthWriteEnableEXT"#)- vkCmdSetDepthCompareOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthCompareOpEXT"#)- vkCmdSetDepthBoundsTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBoundsTestEnableEXT"#)- vkCmdSetStencilTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilTestEnableEXT"#)- vkCmdSetStencilOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilOpEXT"#)+ vkCmdSetCullMode <- getFirstDeviceProcAddr [(Ptr "vkCmdSetCullModeEXT"#), (Ptr "vkCmdSetCullMode"#)]+ vkCmdSetFrontFace <- getFirstDeviceProcAddr [(Ptr "vkCmdSetFrontFaceEXT"#), (Ptr "vkCmdSetFrontFace"#)]+ vkCmdSetPrimitiveTopology <- getFirstDeviceProcAddr [(Ptr "vkCmdSetPrimitiveTopologyEXT"#), (Ptr "vkCmdSetPrimitiveTopology"#)]+ vkCmdSetViewportWithCount <- getFirstDeviceProcAddr [(Ptr "vkCmdSetViewportWithCountEXT"#), (Ptr "vkCmdSetViewportWithCount"#)]+ vkCmdSetScissorWithCount <- getFirstDeviceProcAddr [(Ptr "vkCmdSetScissorWithCountEXT"#), (Ptr "vkCmdSetScissorWithCount"#)]+ vkCmdBindVertexBuffers2 <- getFirstDeviceProcAddr [(Ptr "vkCmdBindVertexBuffers2EXT"#), (Ptr "vkCmdBindVertexBuffers2"#)]+ vkCmdSetDepthTestEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthTestEnableEXT"#), (Ptr "vkCmdSetDepthTestEnable"#)]+ vkCmdSetDepthWriteEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthWriteEnableEXT"#), (Ptr "vkCmdSetDepthWriteEnable"#)]+ vkCmdSetDepthCompareOp <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthCompareOpEXT"#), (Ptr "vkCmdSetDepthCompareOp"#)]+ vkCmdSetDepthBoundsTestEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthBoundsTestEnableEXT"#), (Ptr "vkCmdSetDepthBoundsTestEnable"#)]+ vkCmdSetStencilTestEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetStencilTestEnableEXT"#), (Ptr "vkCmdSetStencilTestEnable"#)]+ vkCmdSetStencilOp <- getFirstDeviceProcAddr [(Ptr "vkCmdSetStencilOpEXT"#), (Ptr "vkCmdSetStencilOp"#)] vkCmdSetPatchControlPointsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPatchControlPointsEXT"#)- vkCmdSetRasterizerDiscardEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetRasterizerDiscardEnableEXT"#)- vkCmdSetDepthBiasEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBiasEnableEXT"#)+ vkCmdSetRasterizerDiscardEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetRasterizerDiscardEnableEXT"#), (Ptr "vkCmdSetRasterizerDiscardEnable"#)]+ vkCmdSetDepthBiasEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthBiasEnableEXT"#), (Ptr "vkCmdSetDepthBiasEnable"#)] vkCmdSetLogicOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetLogicOpEXT"#)- vkCmdSetPrimitiveRestartEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPrimitiveRestartEnableEXT"#)- vkCreatePrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkCreatePrivateDataSlotEXT"#)- vkDestroyPrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyPrivateDataSlotEXT"#)- vkSetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkSetPrivateDataEXT"#)- vkGetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetPrivateDataEXT"#)- vkCmdCopyBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBuffer2KHR"#)- vkCmdCopyImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImage2KHR"#)- vkCmdBlitImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdBlitImage2KHR"#)- vkCmdCopyBufferToImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBufferToImage2KHR"#)- vkCmdCopyImageToBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImageToBuffer2KHR"#)- vkCmdResolveImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdResolveImage2KHR"#)+ vkCmdSetPrimitiveRestartEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetPrimitiveRestartEnableEXT"#), (Ptr "vkCmdSetPrimitiveRestartEnable"#)]+ vkCreatePrivateDataSlot <- getFirstDeviceProcAddr [(Ptr "vkCreatePrivateDataSlotEXT"#), (Ptr "vkCreatePrivateDataSlot"#)]+ vkDestroyPrivateDataSlot <- getFirstDeviceProcAddr [(Ptr "vkDestroyPrivateDataSlotEXT"#), (Ptr "vkDestroyPrivateDataSlot"#)]+ vkSetPrivateData <- getFirstDeviceProcAddr [(Ptr "vkSetPrivateDataEXT"#), (Ptr "vkSetPrivateData"#)]+ vkGetPrivateData <- getFirstDeviceProcAddr [(Ptr "vkGetPrivateDataEXT"#), (Ptr "vkGetPrivateData"#)]+ vkCmdCopyBuffer2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyBuffer2KHR"#), (Ptr "vkCmdCopyBuffer2"#)]+ vkCmdCopyImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyImage2KHR"#), (Ptr "vkCmdCopyImage2"#)]+ vkCmdBlitImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdBlitImage2KHR"#), (Ptr "vkCmdBlitImage2"#)]+ vkCmdCopyBufferToImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyBufferToImage2KHR"#), (Ptr "vkCmdCopyBufferToImage2"#)]+ vkCmdCopyImageToBuffer2 <- getFirstDeviceProcAddr [(Ptr "vkCmdCopyImageToBuffer2KHR"#), (Ptr "vkCmdCopyImageToBuffer2"#)]+ vkCmdResolveImage2 <- getFirstDeviceProcAddr [(Ptr "vkCmdResolveImage2KHR"#), (Ptr "vkCmdResolveImage2"#)] vkCmdSetFragmentShadingRateKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetFragmentShadingRateKHR"#) vkCmdSetFragmentShadingRateEnumNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetFragmentShadingRateEnumNV"#) vkGetAccelerationStructureBuildSizesKHR <- getDeviceProcAddr' handle (Ptr "vkGetAccelerationStructureBuildSizesKHR"#) vkCmdSetVertexInputEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetVertexInputEXT"#) vkCmdSetColorWriteEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetColorWriteEnableEXT"#)- vkCmdSetEvent2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetEvent2KHR"#)- vkCmdResetEvent2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdResetEvent2KHR"#)- vkCmdWaitEvents2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdWaitEvents2KHR"#)- vkCmdPipelineBarrier2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdPipelineBarrier2KHR"#)- vkQueueSubmit2KHR <- getDeviceProcAddr' handle (Ptr "vkQueueSubmit2KHR"#)- vkCmdWriteTimestamp2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdWriteTimestamp2KHR"#)+ vkCmdSetEvent2 <- getFirstDeviceProcAddr [(Ptr "vkCmdSetEvent2KHR"#), (Ptr "vkCmdSetEvent2"#)]+ vkCmdResetEvent2 <- getFirstDeviceProcAddr [(Ptr "vkCmdResetEvent2KHR"#), (Ptr "vkCmdResetEvent2"#)]+ vkCmdWaitEvents2 <- getFirstDeviceProcAddr [(Ptr "vkCmdWaitEvents2KHR"#), (Ptr "vkCmdWaitEvents2"#)]+ vkCmdPipelineBarrier2 <- getFirstDeviceProcAddr [(Ptr "vkCmdPipelineBarrier2KHR"#), (Ptr "vkCmdPipelineBarrier2"#)]+ vkQueueSubmit2 <- getFirstDeviceProcAddr [(Ptr "vkQueueSubmit2KHR"#), (Ptr "vkQueueSubmit2"#)]+ vkCmdWriteTimestamp2 <- getFirstDeviceProcAddr [(Ptr "vkCmdWriteTimestamp2KHR"#), (Ptr "vkCmdWriteTimestamp2"#)] vkCmdWriteBufferMarker2AMD <- getDeviceProcAddr' handle (Ptr "vkCmdWriteBufferMarker2AMD"#) vkGetQueueCheckpointData2NV <- getDeviceProcAddr' handle (Ptr "vkGetQueueCheckpointData2NV"#) vkCreateCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuModuleNVX"#)@@ -1466,8 +1466,8 @@ vkSetBufferCollectionImageConstraintsFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkSetBufferCollectionImageConstraintsFUCHSIA"#) vkDestroyBufferCollectionFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkDestroyBufferCollectionFUCHSIA"#) vkGetBufferCollectionPropertiesFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetBufferCollectionPropertiesFUCHSIA"#)- vkCmdBeginRenderingKHR <- getDeviceProcAddr' handle (Ptr "vkCmdBeginRenderingKHR"#)- vkCmdEndRenderingKHR <- getDeviceProcAddr' handle (Ptr "vkCmdEndRenderingKHR"#)+ vkCmdBeginRendering <- getFirstDeviceProcAddr [(Ptr "vkCmdBeginRenderingKHR"#), (Ptr "vkCmdBeginRendering"#)]+ vkCmdEndRendering <- getFirstDeviceProcAddr [(Ptr "vkCmdEndRenderingKHR"#), (Ptr "vkCmdEndRendering"#)] pure $ DeviceCmds handle (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr) (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1660,9 +1660,9 @@ (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr BufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetBufferMemoryRequirements2) (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr (SomeStruct ImageMemoryRequirementsInfo2)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetImageMemoryRequirements2) (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr ImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ()) vkGetImageSparseMemoryRequirements2)- (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceBufferMemoryRequirementsKHR)- (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceImageMemoryRequirementsKHR)- (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirementsKHR) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ()) vkGetDeviceImageSparseMemoryRequirementsKHR)+ (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceBufferMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceBufferMemoryRequirements)+ (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetDeviceImageMemoryRequirements)+ (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageMemoryRequirements) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr SparseImageMemoryRequirements2) -> IO ()) vkGetDeviceImageSparseMemoryRequirements) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct SamplerYcbcrConversionCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr SamplerYcbcrConversion) -> IO Result) vkCreateSamplerYcbcrConversion) (castFunPtr @_ @(Ptr Device_T -> SamplerYcbcrConversion -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroySamplerYcbcrConversion) (castFunPtr @_ @(Ptr Device_T -> ("pQueueInfo" ::: Ptr DeviceQueueInfo2) -> ("pQueue" ::: Ptr (Ptr Queue_T)) -> IO ()) vkGetDeviceQueue2)@@ -1773,45 +1773,45 @@ (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Word32) vkGetDeferredOperationMaxConcurrencyKHR) (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkGetDeferredOperationResultKHR) (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkDeferredOperationJoinKHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullModeEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFaceEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopologyEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewportWithCountEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissorWithCountEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) vkCmdBindVertexBuffers2EXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthTestEnableEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) vkCmdSetDepthWriteEnableEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ()) vkCmdSetDepthCompareOpEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBoundsTestEnableEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ()) vkCmdSetStencilTestEnableEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ()) vkCmdSetStencilOpEXT)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullMode)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFace)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopology)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewportWithCount)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissorWithCount)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) vkCmdBindVertexBuffers2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthTestEnable)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) vkCmdSetDepthWriteEnable)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthCompareOp" ::: CompareOp) -> IO ()) vkCmdSetDepthCompareOp)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBoundsTestEnable)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ()) vkCmdSetStencilTestEnable)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ()) vkCmdSetStencilOp) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("patchControlPoints" ::: Word32) -> IO ()) vkCmdSetPatchControlPointsEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ()) vkCmdSetRasterizerDiscardEnableEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBiasEnableEXT)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ()) vkCmdSetRasterizerDiscardEnable)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBiasEnable) (castFunPtr @_ @(Ptr CommandBuffer_T -> LogicOp -> IO ()) vkCmdSetLogicOpEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ()) vkCmdSetPrimitiveRestartEnableEXT)- (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result) vkCreatePrivateDataSlotEXT)- (castFunPtr @_ @(Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPrivateDataSlotEXT)- (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result) vkSetPrivateDataEXT)- (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("pData" ::: Ptr Word64) -> IO ()) vkGetPrivateDataEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ()) vkCmdCopyBuffer2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()) vkCmdCopyImage2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()) vkCmdBlitImage2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ()) vkCmdCopyBufferToImage2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ()) vkCmdCopyImageToBuffer2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ()) vkCmdResolveImage2KHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ()) vkCmdSetPrimitiveRestartEnable)+ (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlot) -> IO Result) vkCreatePrivateDataSlot)+ (castFunPtr @_ @(Ptr Device_T -> PrivateDataSlot -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPrivateDataSlot)+ (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("data" ::: Word64) -> IO Result) vkSetPrivateData)+ (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ()) vkGetPrivateData)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ()) vkCmdCopyBuffer2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ()) vkCmdCopyImage2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ()) vkCmdBlitImage2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ()) vkCmdCopyBufferToImage2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ()) vkCmdCopyImageToBuffer2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ()) vkCmdResolveImage2) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) vkCmdSetFragmentShadingRateKHR) (castFunPtr @_ @(Ptr CommandBuffer_T -> FragmentShadingRateNV -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) vkCmdSetFragmentShadingRateEnumNV) (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureBuildTypeKHR -> ("pBuildInfo" ::: Ptr AccelerationStructureBuildGeometryInfoKHR) -> ("pMaxPrimitiveCounts" ::: Ptr Word32) -> ("pSizeInfo" ::: Ptr AccelerationStructureBuildSizesInfoKHR) -> IO ()) vkGetAccelerationStructureBuildSizesKHR) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("vertexBindingDescriptionCount" ::: Word32) -> ("pVertexBindingDescriptions" ::: Ptr VertexInputBindingDescription2EXT) -> ("vertexAttributeDescriptionCount" ::: Word32) -> ("pVertexAttributeDescriptions" ::: Ptr VertexInputAttributeDescription2EXT) -> IO ()) vkCmdSetVertexInputEXT) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("attachmentCount" ::: Word32) -> ("pColorWriteEnables" ::: Ptr Bool32) -> IO ()) vkCmdSetColorWriteEnableEXT)- (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdSetEvent2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2KHR) -> IO ()) vkCmdResetEvent2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdWaitEvents2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdPipelineBarrier2KHR)- (castFunPtr @_ @(Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2KHR)) -> Fence -> IO Result) vkQueueSubmit2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdWriteTimestamp2KHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarker2AMD)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ()) vkCmdSetEvent2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2) -> IO ()) vkCmdResetEvent2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfo) -> IO ()) vkCmdWaitEvents2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pDependencyInfo" ::: Ptr DependencyInfo) -> IO ()) vkCmdPipelineBarrier2)+ (castFunPtr @_ @(Ptr Queue_T -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr (SomeStruct SubmitInfo2)) -> Fence -> IO Result) vkQueueSubmit2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdWriteTimestamp2)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarker2AMD) (castFunPtr @_ @(Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ()) vkGetQueueCheckpointData2NV) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) vkCreateCuModuleNVX) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result) vkCreateCuFunctionNVX)@@ -1825,6 +1825,6 @@ (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pImageConstraintsInfo" ::: Ptr ImageConstraintsInfoFUCHSIA) -> IO Result) vkSetBufferCollectionImageConstraintsFUCHSIA) (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyBufferCollectionFUCHSIA) (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pProperties" ::: Ptr BufferCollectionPropertiesFUCHSIA) -> IO Result) vkGetBufferCollectionPropertiesFUCHSIA)- (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfoKHR)) -> IO ()) vkCmdBeginRenderingKHR)- (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdEndRenderingKHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> IO ()) vkCmdBeginRendering)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdEndRendering)
src/Vulkan/Exception.hs view
@@ -35,7 +35,6 @@ 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"- PIPELINE_COMPILE_REQUIRED_EXT -> "A requested pipeline creation would have required compilation, but the application requested compilation to not be performed" 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"@@ -47,6 +46,7 @@ SUBOPTIMAL_KHR -> "A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully" ERROR_NATIVE_WINDOW_IN_USE_KHR -> "The requested window is already in use by Vulkan or another API in a manner which prevents it from being used again" ERROR_SURFACE_LOST_KHR -> "A surface is no longer available"+ PIPELINE_COMPILE_REQUIRED -> "A requested pipeline creation would have required compilation, but the application requested compilation to not be performed" ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS -> "A buffer creation or memory allocation failed because the requested address is not available" ERROR_FRAGMENTATION -> "A descriptor pool creation has failed due to fragmentation" ERROR_INVALID_EXTERNAL_HANDLE -> "An external handle is not a valid handle of the specified type"
src/Vulkan/Extensions.hs view
@@ -166,6 +166,7 @@ , module Vulkan.Extensions.VK_KHR_get_memory_requirements2 , module Vulkan.Extensions.VK_KHR_get_physical_device_properties2 , module Vulkan.Extensions.VK_KHR_get_surface_capabilities2+ , module Vulkan.Extensions.VK_KHR_global_priority , module Vulkan.Extensions.VK_KHR_image_format_list , module Vulkan.Extensions.VK_KHR_imageless_framebuffer , module Vulkan.Extensions.VK_KHR_incremental_present@@ -433,6 +434,7 @@ import Vulkan.Extensions.VK_KHR_get_memory_requirements2 import Vulkan.Extensions.VK_KHR_get_physical_device_properties2 import Vulkan.Extensions.VK_KHR_get_surface_capabilities2+import Vulkan.Extensions.VK_KHR_global_priority import Vulkan.Extensions.VK_KHR_image_format_list import Vulkan.Extensions.VK_KHR_imageless_framebuffer import Vulkan.Extensions.VK_KHR_incremental_present
src/Vulkan/Extensions/Handles.hs view
@@ -7,7 +7,6 @@ , PerformanceConfigurationINTEL(..) , BufferCollectionFUCHSIA(..) , DeferredOperationKHR(..)- , PrivateDataSlotEXT(..) , CuModuleNVX(..) , CuFunctionNVX(..) , DisplayKHR(..)@@ -42,6 +41,7 @@ , PipelineCache(..) , DescriptorUpdateTemplate(..) , SamplerYcbcrConversion(..)+ , PrivateDataSlot(..) ) where import GHC.Show (showParen)@@ -63,7 +63,6 @@ import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DISPLAY_MODE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL))-import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SURFACE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SWAPCHAIN_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_VALIDATION_CACHE_EXT))@@ -86,6 +85,7 @@ import Vulkan.Core10.Handles (Pipeline(..)) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Handles (PipelineLayout(..))+import Vulkan.Core13.Handles (PrivateDataSlot(..)) import Vulkan.Core10.Handles (QueryPool(..)) import Vulkan.Core10.Handles (Queue(..)) import Vulkan.Core10.Handles (RenderPass(..))@@ -247,24 +247,6 @@ objectTypeAndHandle (DeferredOperationKHR h) = (OBJECT_TYPE_DEFERRED_OPERATION_KHR, h) instance Show DeferredOperationKHR where showsPrec p (DeferredOperationKHR x) = showParen (p >= 11) (showString "DeferredOperationKHR 0x" . showHex x)----- | VkPrivateDataSlotEXT - Opaque handle to a private data slot object------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',--- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT'-newtype PrivateDataSlotEXT = PrivateDataSlotEXT Word64- deriving newtype (Eq, Ord, Storable, Zero)- deriving anyclass (IsHandle)-instance HasObjectType PrivateDataSlotEXT where- objectTypeAndHandle (PrivateDataSlotEXT h) = (OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, h)-instance Show PrivateDataSlotEXT where- showsPrec p (PrivateDataSlotEXT x) = showParen (p >= 11) (showString "PrivateDataSlotEXT 0x" . showHex x) -- | VkCuModuleNVX - Stub description of VkCuModuleNVX
src/Vulkan/Extensions/Handles.hs-boot view
@@ -12,7 +12,6 @@ , DisplayModeKHR , IndirectCommandsLayoutNV , PerformanceConfigurationINTEL- , PrivateDataSlotEXT , SurfaceKHR , SwapchainKHR , ValidationCacheEXT@@ -54,9 +53,6 @@ data PerformanceConfigurationINTEL---data PrivateDataSlotEXT data SurfaceKHR
src/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -207,7 +207,7 @@ -- - #VUID-vkCmdWriteBufferMarkerAMD-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_KHR'+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_NONE_KHR' -- -- - #VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798# @dstOffset@ /must/ -- be less than or equal to the size of @dstBuffer@ minus @4@
src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs view
@@ -89,7 +89,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -89,7 +89,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification>+-- <https://www.khronos.org/registry/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_display_native_hdr.hs-boot view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_draw_indirect_count Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_gcn_shader Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_gpu_shader_half_float Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_gpu_shader_int16 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -74,7 +74,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_negative_viewport_height Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+-- <https://www.khronos.org/registry/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
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_ballot Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -91,7 +91,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -91,7 +91,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/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_explicit_vertex_parameter.hs view
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_explicit_vertex_parameter Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -76,7 +76,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentMaskAMD FragmentMaskAMD>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_AMD_shader_fragment_mask Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -76,7 +76,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_image_load_store_lod Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification>+-- <https://www.khronos.org/registry/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_info.hs-boot view
@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_trinary_minmax Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -91,7 +91,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD> -- -- == Examples --@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -91,7 +91,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD> -- -- == Examples --@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -289,9 +289,6 @@ , ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME , pattern ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME , AHardwareBuffer- , FormatFeatureFlagBits2KHR(..)- , FormatFeatureFlags2KHR- , Flags64 ) where import Vulkan.Internal.Utils (traceAroundEvent)@@ -349,7 +346,7 @@ import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -369,9 +366,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe@@ -521,7 +515,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.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers> -- -- == Valid Usage (Implicit) --@@ -584,7 +578,7 @@ -- -- The @androidHardwareBufferUsage@ field /must/ include Android hardware -- buffer usage flags listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>+-- <https://www.khronos.org/registry/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'.@@ -821,7 +815,7 @@ -- = Description -- -- If the Android hardware buffer has one of the formats listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-formats Format Equivalence table>,+-- <https://www.khronos.org/registry/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@@ -842,7 +836,7 @@ -- -- The @formatFeatures@ member only indicates the features available when -- using an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external-format image>+-- <https://www.khronos.org/registry/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@@ -879,7 +873,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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>.+-- <https://www.khronos.org/registry/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@@ -1088,7 +1082,7 @@ -- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation', -- 'Vulkan.Core10.ImageView.ComponentMapping', -- 'Vulkan.Core10.Enums.Format.Format',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2', -- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SamplerYcbcrModelConversion', -- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SamplerYcbcrRange', -- 'Vulkan.Core10.Enums.StructureType.StructureType'@@ -1102,7 +1096,7 @@ externalFormat :: Word64 , -- | @formatFeatures@ describes the capabilities of this external format when -- used with an image bound to memory imported from @buffer@.- formatFeatures :: FormatFeatureFlags2KHR+ formatFeatures :: FormatFeatureFlags2 , -- | @samplerYcbcrConversionComponents@ is the component swizzle that -- /should/ be used in -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'.@@ -1133,7 +1127,7 @@ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr Format)) (format) poke ((p `plusPtr` 24 :: Ptr Word64)) (externalFormat)- poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR)) (formatFeatures)+ poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2)) (formatFeatures) poke ((p `plusPtr` 40 :: Ptr ComponentMapping)) (samplerYcbcrConversionComponents) poke ((p `plusPtr` 56 :: Ptr SamplerYcbcrModelConversion)) (suggestedYcbcrModel) poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrRange)) (suggestedYcbcrRange)@@ -1147,7 +1141,7 @@ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr Format)) (zero) poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)- poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR)) (zero)+ poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2)) (zero) poke ((p `plusPtr` 40 :: Ptr ComponentMapping)) (zero) poke ((p `plusPtr` 56 :: Ptr SamplerYcbcrModelConversion)) (zero) poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrRange)) (zero)@@ -1159,7 +1153,7 @@ peekCStruct p = do format <- peek @Format ((p `plusPtr` 16 :: Ptr Format)) externalFormat <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))- formatFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR))+ formatFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2)) samplerYcbcrConversionComponents <- peekCStruct @ComponentMapping ((p `plusPtr` 40 :: Ptr ComponentMapping)) suggestedYcbcrModel <- peek @SamplerYcbcrModelConversion ((p `plusPtr` 56 :: Ptr SamplerYcbcrModelConversion)) suggestedYcbcrRange <- peek @SamplerYcbcrRange ((p `plusPtr` 60 :: Ptr SamplerYcbcrRange))
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -45,7 +45,7 @@ -- == Description -- -- Renderpasses, and specifically--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies>+-- <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@@ -58,7 +58,7 @@ -- rasterization order, without explicit synchronization. -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. -- -- == New Structures@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification>+-- <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.
src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs-boot view
@@ -45,7 +45,7 @@ -- == Description -- -- Renderpasses, and specifically--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies>+-- <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@@ -58,7 +58,7 @@ -- rasterization order, without explicit synchronization. -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. -- -- == New Structures@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification>+-- <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.
src/Vulkan/Extensions/VK_EXT_4444_formats.hs view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Joshua Ashton@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2020-07-28 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -44,10 +53,9 @@ -- -- == Description ----- This extension defines the--- 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and--- 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats--- which are defined in other current graphics APIs.+-- This extension defines the 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and+-- 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats which are defined in other+-- current graphics APIs. -- -- This extension may be useful for building translation layers for those -- APIs or for porting applications that use these formats without having@@ -73,14 +81,24 @@ -- -- - Extending 'Vulkan.Core10.Enums.Format.Format': ----- - 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT'+-- - 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT'+-- - 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- - Revision 1, 2020-07-04 (Joshua Ashton)@@ -94,11 +112,13 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_4444_formats ( PhysicalDevice4444FormatsFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_4444_formats ( pattern FORMAT_A4R4G4B4_UNORM_PACK16_EXT+ , pattern FORMAT_A4B4G4R4_UNORM_PACK16_EXT+ , PhysicalDevice4444FormatsFeaturesEXT(..) , EXT_4444_FORMATS_SPEC_VERSION , pattern EXT_4444_FORMATS_SPEC_VERSION , EXT_4444_FORMATS_EXTENSION_NAME@@ -126,7 +146,17 @@ import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.Format (Format(FORMAT_A4B4G4R4_UNORM_PACK16))+import Vulkan.Core10.Enums.Format (Format(FORMAT_A4R4G4B4_UNORM_PACK16)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT))+-- No documentation found for TopLevel "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT"+pattern FORMAT_A4R4G4B4_UNORM_PACK16_EXT = FORMAT_A4R4G4B4_UNORM_PACK16+++-- No documentation found for TopLevel "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT"+pattern FORMAT_A4B4G4R4_UNORM_PACK16_EXT = FORMAT_A4B4G4R4_UNORM_PACK16++ -- | VkPhysicalDevice4444FormatsFeaturesEXT - Structure describing additional -- 4444 formats supported by an implementation --@@ -148,6 +178,13 @@ -- -- == Valid Usage (Implicit) --+-- Note+--+-- Although the formats defined by the @VK_EXT_4444_formats@ extension were+-- promoted to Vulkan 1.3 as optional formats, the+-- 'PhysicalDevice4444FormatsFeaturesEXT' structure was not promoted to+-- Vulkan 1.3.+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_4444_formats VK_EXT_4444_formats>,@@ -157,8 +194,7 @@ { -- | #features-formatA4R4G4B4# @formatA4R4G4B4@ indicates that the -- implementation /must/ support using a -- 'Vulkan.Core10.Enums.Format.Format' of- -- 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT' with at- -- least the following+ -- 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' with at least the following -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits': -- -- - 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT'@@ -170,8 +206,7 @@ , -- | #features-formatA4B4G4R4# @formatA4B4G4R4@ indicates that the -- implementation /must/ support using a -- 'Vulkan.Core10.Enums.Format.Format' of- -- 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT' with at- -- least the following+ -- 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' with at least the following -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits': -- -- - 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT'
src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Joshua Ashton@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2020-07-28 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -44,10 +53,9 @@ -- -- == Description ----- This extension defines the--- 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and--- 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats--- which are defined in other current graphics APIs.+-- This extension defines the 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' and+-- 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' formats which are defined in other+-- current graphics APIs. -- -- This extension may be useful for building translation layers for those -- APIs or for porting applications that use these formats without having@@ -73,14 +81,24 @@ -- -- - Extending 'Vulkan.Core10.Enums.Format.Format': ----- - 'Vulkan.Core10.Enums.Format.FORMAT_A4B4G4R4_UNORM_PACK16_EXT'+-- - 'FORMAT_A4B4G4R4_UNORM_PACK16_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_A4R4G4B4_UNORM_PACK16_EXT'+-- - 'FORMAT_A4R4G4B4_UNORM_PACK16_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- - Revision 1, 2020-07-04 (Joshua Ashton)@@ -94,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -75,7 +75,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_drm_display Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification>+-- <https://www.khronos.org/registry/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_acquire_xlib_display.hs-boot view
@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification>+-- <https://www.khronos.org/registry/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 +199,7 @@ -- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32' -- -- - #VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-astc-decodeModeSharedExponent decodeModeSharedExponent>+-- <https://www.khronos.org/registry/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 +209,7 @@ -- -- - #VUID-VkImageViewASTCDecodeModeEXT-format-04084# @format@ of the -- image view /must/ be one of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>+-- <https://www.khronos.org/registry/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
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification>+-- <https://www.khronos.org/registry/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_blend_operation_advanced.hs view
@@ -276,7 +276,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification>+-- <https://www.khronos.org/registry/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 +355,9 @@ data PhysicalDeviceBlendOperationAdvancedFeaturesEXT = PhysicalDeviceBlendOperationAdvancedFeaturesEXT { -- | #features-advancedBlendCoherentOperations# -- @advancedBlendCoherentOperations@ specifies whether blending using- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+ -- <https://www.khronos.org/registry/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 +431,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.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>.+ -- <https://www.khronos.org/registry/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 +534,19 @@ -- -- - #VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColor non-premultiplied source color>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor non-premultiplied destination color>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlap correlated overlap>+-- <https://www.khronos.org/registry/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
@@ -276,7 +276,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -114,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/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 +164,7 @@ -- -- - #VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-borderColorSwizzle borderColorSwizzle>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-borderColorSwizzle borderColorSwizzle> -- feature /must/ be enabled. -- -- == Valid Usage (Implicit)@@ -269,7 +269,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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity component mapping>,+ -- non-<https://www.khronos.org/registry/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 +281,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.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+ -- <https://www.khronos.org/registry/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
@@ -114,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -130,7 +130,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT> -- -- == Issues --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -130,7 +130,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT> -- -- == Issues --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -481,7 +481,8 @@ -- timestamp values reported for 'TIME_DOMAIN_DEVICE_EXT' can be matched to -- any timestamp captured through -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' .+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'+-- . -- -- > struct timespec tv; -- > clock_gettime(CLOCK_MONOTONIC, &tv);@@ -507,9 +508,9 @@ -- values in this time domain use the same units and are comparable with -- device timestamp values captured using -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or--- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' and--- are defined to be incrementing according to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod>+-- '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> -- 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
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -107,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+-- <https://www.khronos.org/registry/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 +192,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetColorWriteEnableEXT-None-04803# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-04804#@@ -350,14 +350,14 @@ -- 'Vulkan.Core10.FundamentalTypes.TRUE' values. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>+-- <https://www.khronos.org/registry/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 +371,7 @@ -- == Valid Usage -- -- - #VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <https://www.khronos.org/registry/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
@@ -107,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- -- == Valid Usage (Implicit) --@@ -334,17 +334,17 @@ -- -- - #VUID-vkCmdEndConditionalRenderingEXT-None-01985# Conditional -- rendering /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://www.khronos.org/registry/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)@@ -518,7 +518,7 @@ -- -- - #VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedConditionalRendering inherited conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedConditionalRendering inherited conditional rendering> -- feature is not enabled, @conditionalRenderingEnable@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot view
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/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_conservative_rasterization.hs-boot view
@@ -147,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -246,7 +246,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#formats-numericformat>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat>+ -- <https://www.khronos.org/registry/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
@@ -246,7 +246,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -268,7 +268,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -721,7 +721,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.2-extensions/html/vkspec.html#debug-report-object-types>+ -- <https://www.khronos.org/registry/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 +809,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.2-extensions/html/vkspec.html#debug-report-object-types>+ -- <https://www.khronos.org/registry/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
@@ -268,7 +268,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -322,7 +322,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#debug-report-object-types>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#debug-report-object-types>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot view
@@ -322,7 +322,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -479,7 +479,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -1199,7 +1199,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DebugUtilsMessengerEXT)@@ -1296,7 +1296,7 @@ -- active. DebugUtilsMessengerEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1405,7 +1405,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.2-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship> -- table -- -- == Valid Usage (Implicit)@@ -1516,7 +1516,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.2-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship>+ -- <https://www.khronos.org/registry/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.@@ -1902,14 +1902,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.2-extensions/html/vkspec.html#debugging-queue-labels Queue Labels>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#debugging-command-buffer-labels Command Buffer Labels>+ -- <https://www.khronos.org/registry/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
@@ -479,7 +479,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification>+-- <https://www.khronos.org/registry/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_clip_control.hs view
@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -238,7 +238,7 @@ -- -- - #VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>+-- <https://www.khronos.org/registry/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
@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.+ -- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -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.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>?+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://www.khronos.org/registry/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@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -213,7 +213,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexing Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -234,7 +234,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification>+-- <https://www.khronos.org/registry/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 +532,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.2-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship>+ -- <https://www.khronos.org/registry/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
@@ -234,7 +234,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -99,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_direct_mode_display Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification>+-- <https://www.khronos.org/registry/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_discard_rectangles.hs-boot view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification>+-- <https://www.khronos.org/registry/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 +361,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Fence)@@ -440,7 +440,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#wsi-display-surfaces display surface>+ -- <https://www.khronos.org/registry/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
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,1495 +23,383 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ ----- [__Contact__]------ - Piers Daniell--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_extended_dynamic_state] @pdaniell-nv%0A<<Here describe the issue or question you have about the VK_EXT_extended_dynamic_state extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2019-12-09------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Dan Ginsburg, Valve Corporation------ - Graeme Leese, Broadcom------ - Hans-Kristian Arntzen, Valve Corporation------ - Jan-Harald Fredriksen, Arm Limited------ - Jason Ekstrand, Intel------ - Jeff Bolz, NVIDIA------ - Jesse Hall, Google------ - Philip Rebohle, Valve Corporation------ - Stuart Smith, Imagination Technologies------ - Tobias Hector, AMD------ == Description------ This extension adds some more dynamic state to support applications that--- need to reduce the number of pipeline state objects they compile and--- bind.------ == New Commands------ - 'cmdBindVertexBuffers2EXT'------ - 'cmdSetCullModeEXT'------ - 'cmdSetDepthBoundsTestEnableEXT'------ - 'cmdSetDepthCompareOpEXT'------ - 'cmdSetDepthTestEnableEXT'------ - 'cmdSetDepthWriteEnableEXT'------ - 'cmdSetFrontFaceEXT'------ - 'cmdSetPrimitiveTopologyEXT'------ - 'cmdSetScissorWithCountEXT'------ - 'cmdSetStencilOpEXT'------ - 'cmdSetStencilTestEnableEXT'------ - 'cmdSetViewportWithCountEXT'------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceExtendedDynamicStateFeaturesEXT'------ == New Enum Constants------ - 'EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME'------ - 'EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'------ - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT'------ == Version History------ - Revision 1, 2019-12-09 (Piers Daniell)------ - Internal revisions------ == See Also------ 'PhysicalDeviceExtendedDynamicStateFeaturesEXT',--- 'cmdBindVertexBuffers2EXT', 'cmdSetCullModeEXT',--- 'cmdSetDepthBoundsTestEnableEXT', 'cmdSetDepthCompareOpEXT',--- 'cmdSetDepthTestEnableEXT', 'cmdSetDepthWriteEnableEXT',--- 'cmdSetFrontFaceEXT', 'cmdSetPrimitiveTopologyEXT',--- 'cmdSetScissorWithCountEXT', 'cmdSetStencilOpEXT',--- 'cmdSetStencilTestEnableEXT', 'cmdSetViewportWithCountEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_extended_dynamic_state ( cmdSetCullModeEXT- , cmdSetFrontFaceEXT- , cmdSetPrimitiveTopologyEXT- , cmdSetViewportWithCountEXT- , cmdSetScissorWithCountEXT- , cmdBindVertexBuffers2EXT- , cmdSetDepthTestEnableEXT- , cmdSetDepthWriteEnableEXT- , cmdSetDepthCompareOpEXT- , cmdSetDepthBoundsTestEnableEXT- , cmdSetStencilTestEnableEXT- , cmdSetStencilOpEXT- , PhysicalDeviceExtendedDynamicStateFeaturesEXT(..)- , EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION- , pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION- , EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME- , pattern EXT_EXTENDED_DYNAMIC_STATE_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 Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import qualified Data.Vector (imapM_)-import qualified Data.Vector (length)-import qualified Data.Vector (null)-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.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Bool32)-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.Core10.Enums.CompareOp (CompareOp)-import Vulkan.Core10.Enums.CompareOp (CompareOp(..))-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)-import Vulkan.Dynamic (DeviceCmds(pVkCmdBindVertexBuffers2EXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCullModeEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBoundsTestEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthCompareOpEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthTestEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthWriteEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFrontFaceEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveTopologyEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetScissorWithCountEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilOpEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilTestEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWithCountEXT))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.Core10.Enums.FrontFace (FrontFace)-import Vulkan.Core10.Enums.FrontFace (FrontFace(..))-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))-import Vulkan.Core10.FundamentalTypes (Rect2D)-import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlagBits(..))-import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlags)-import Vulkan.Core10.Enums.StencilOp (StencilOp)-import Vulkan.Core10.Enums.StencilOp (StencilOp(..))-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Pipeline (Viewport)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetCullModeEXT- :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ()) -> Ptr CommandBuffer_T -> CullModeFlags -> IO ()---- | vkCmdSetCullModeEXT - Set cull mode dynamically for a command buffer------ = Description------ This command sets the cull mode for subsequent drawing commands when the--- graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@cullMode@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetCullModeEXT-None-03384# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetCullModeEXT-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetCullModeEXT-cullMode-parameter# @cullMode@ /must/ be a--- valid combination of--- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values------ - #VUID-vkCmdSetCullModeEXT-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-vkCmdSetCullModeEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags'-cmdSetCullModeEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @cullMode@ specifies the cull mode property to use for drawing.- CullModeFlags- -> io ()-cmdSetCullModeEXT commandBuffer cullMode = liftIO $ do- let vkCmdSetCullModeEXTPtr = pVkCmdSetCullModeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetCullModeEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCullModeEXT is null" Nothing Nothing- let vkCmdSetCullModeEXT' = mkVkCmdSetCullModeEXT vkCmdSetCullModeEXTPtr- traceAroundEvent "vkCmdSetCullModeEXT" (vkCmdSetCullModeEXT' (commandBufferHandle (commandBuffer)) (cullMode))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetFrontFaceEXT- :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ()) -> Ptr CommandBuffer_T -> FrontFace -> IO ()---- | vkCmdSetFrontFaceEXT - Set front face orientation dynamically for a--- command buffer------ = Description------ This command sets the front face orientation for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@frontFace@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetFrontFaceEXT-None-03383# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetFrontFaceEXT-frontFace-parameter# @frontFace@ /must/--- be a valid 'Vulkan.Core10.Enums.FrontFace.FrontFace' value------ - #VUID-vkCmdSetFrontFaceEXT-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-vkCmdSetFrontFaceEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.FrontFace.FrontFace'-cmdSetFrontFaceEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value- -- specifying the front-facing triangle orientation to be used for culling.- FrontFace- -> io ()-cmdSetFrontFaceEXT commandBuffer frontFace = liftIO $ do- let vkCmdSetFrontFaceEXTPtr = pVkCmdSetFrontFaceEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetFrontFaceEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFrontFaceEXT is null" Nothing Nothing- let vkCmdSetFrontFaceEXT' = mkVkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXTPtr- traceAroundEvent "vkCmdSetFrontFaceEXT" (vkCmdSetFrontFaceEXT' (commandBufferHandle (commandBuffer)) (frontFace))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetPrimitiveTopologyEXT- :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) -> Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()---- | vkCmdSetPrimitiveTopologyEXT - Set primitive topology state dynamically--- for a command buffer------ = Description------ This command sets the primitive topology for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetPrimitiveTopologyEXT-None-03347# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetPrimitiveTopologyEXT-primitiveTopology-parameter#--- @primitiveTopology@ /must/ be a valid--- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value------ - #VUID-vkCmdSetPrimitiveTopologyEXT-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-vkCmdSetPrimitiveTopologyEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology'-cmdSetPrimitiveTopologyEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @primitiveTopology@ specifies the primitive topology to use for drawing.- PrimitiveTopology- -> io ()-cmdSetPrimitiveTopologyEXT commandBuffer primitiveTopology = liftIO $ do- let vkCmdSetPrimitiveTopologyEXTPtr = pVkCmdSetPrimitiveTopologyEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetPrimitiveTopologyEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveTopologyEXT is null" Nothing Nothing- let vkCmdSetPrimitiveTopologyEXT' = mkVkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXTPtr- traceAroundEvent "vkCmdSetPrimitiveTopologyEXT" (vkCmdSetPrimitiveTopologyEXT' (commandBufferHandle (commandBuffer)) (primitiveTopology))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetViewportWithCountEXT- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Viewport -> IO ()---- | vkCmdSetViewportWithCountEXT - Set the viewport count and viewports--- dynamically for a command buffer------ = Description------ This command sets the viewport count and viewports state for subsequent--- drawing commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@--- and @pViewports@ values used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetViewportWithCountEXT-None-03393# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ - #VUID-vkCmdSetViewportWithCountEXT-viewportCount-03394#--- @viewportCount@ /must/ be between @1@ and--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,--- inclusive------ - #VUID-vkCmdSetViewportWithCountEXT-viewportCount-03395# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @viewportCount@ /must/ be @1@------ - #VUID-vkCmdSetViewportWithCountEXT-commandBuffer-04819#--- @commandBuffer@ /must/ not have--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@--- enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetViewportWithCountEXT-pViewports-parameter#--- @pViewports@ /must/ be a valid pointer to an array of--- @viewportCount@ valid 'Vulkan.Core10.Pipeline.Viewport' structures------ - #VUID-vkCmdSetViewportWithCountEXT-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-vkCmdSetViewportWithCountEXT-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdSetViewportWithCountEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'-cmdSetViewportWithCountEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pViewports@ specifies the viewports to use for drawing.- ("viewports" ::: Vector Viewport)- -> io ()-cmdSetViewportWithCountEXT commandBuffer viewports = liftIO . evalContT $ do- let vkCmdSetViewportWithCountEXTPtr = pVkCmdSetViewportWithCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdSetViewportWithCountEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportWithCountEXT is null" Nothing Nothing- let vkCmdSetViewportWithCountEXT' = mkVkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXTPtr- 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 "vkCmdSetViewportWithCountEXT" (vkCmdSetViewportWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetScissorWithCountEXT- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Rect2D -> IO ()---- | vkCmdSetScissorWithCountEXT - Set the scissor count and scissor--- rectangular bounds dynamically for a command buffer------ = Description------ This command sets the scissor count and scissor rectangular bounds state--- for subsequence drawing commands when the graphics pipeline is created--- with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@--- and @pScissors@ values used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetScissorWithCountEXT-None-03396# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ - #VUID-vkCmdSetScissorWithCountEXT-scissorCount-03397# @scissorCount@--- /must/ be between @1@ and--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,--- inclusive------ - #VUID-vkCmdSetScissorWithCountEXT-scissorCount-03398# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @scissorCount@ /must/ be @1@------ - #VUID-vkCmdSetScissorWithCountEXT-x-03399# The @x@ and @y@ members--- of @offset@ member of any element of @pScissors@ /must/ be greater--- than or equal to @0@------ - #VUID-vkCmdSetScissorWithCountEXT-offset-03400# Evaluation of--- (@offset.x@ + @extent.width@) /must/ not cause a signed integer--- addition overflow for any element of @pScissors@------ - #VUID-vkCmdSetScissorWithCountEXT-offset-03401# Evaluation of--- (@offset.y@ + @extent.height@) /must/ not cause a signed integer--- addition overflow for any element of @pScissors@------ - #VUID-vkCmdSetScissorWithCountEXT-commandBuffer-04820#--- @commandBuffer@ /must/ not have--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@--- enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetScissorWithCountEXT-pScissors-parameter# @pScissors@--- /must/ be a valid pointer to an array of @scissorCount@--- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures------ - #VUID-vkCmdSetScissorWithCountEXT-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-vkCmdSetScissorWithCountEXT-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdSetScissorWithCountEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.Rect2D'-cmdSetScissorWithCountEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pScissors@ specifies the scissors to use for drawing.- ("scissors" ::: Vector Rect2D)- -> io ()-cmdSetScissorWithCountEXT commandBuffer scissors = liftIO . evalContT $ do- let vkCmdSetScissorWithCountEXTPtr = pVkCmdSetScissorWithCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdSetScissorWithCountEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissorWithCountEXT is null" Nothing Nothing- let vkCmdSetScissorWithCountEXT' = mkVkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXTPtr- 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 "vkCmdSetScissorWithCountEXT" (vkCmdSetScissorWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBindVertexBuffers2EXT- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> Ptr DeviceSize -> Ptr DeviceSize -> IO ()---- | vkCmdBindVertexBuffers2EXT - Bind vertex buffers to a command buffer and--- dynamically set strides------ = 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]. If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the--- bound size of the vertex buffer starting from the corresponding elements--- 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.2-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)>.------ This command also \<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--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, strides are specified by the--- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@ values--- used to create the currently active pipeline.------ If the bound pipeline state object was also 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'--- /can/ be used instead of 'cmdBindVertexBuffers2EXT' to set the stride.------ == Valid Usage------ - #VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03355# @firstBinding@--- /must/ be less than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ - #VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03356# The sum of--- @firstBinding@ and @bindingCount@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ - #VUID-vkCmdBindVertexBuffers2EXT-pOffsets-03357# All elements of--- @pOffsets@ /must/ be less than the size of the corresponding element--- in @pBuffers@------ - #VUID-vkCmdBindVertexBuffers2EXT-pSizes-03358# If @pSizes@ is not--- @NULL@, all elements of @pOffsets@ plus @pSizes@ /must/ be less than--- or equal to the size of the corresponding element in @pBuffers@------ - #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03359# All elements of--- @pBuffers@ /must/ have been created with the--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'--- flag------ - #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03360# Each element of--- @pBuffers@ that is non-sparse /must/ be bound completely and--- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04111# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is not enabled, all elements of @pBuffers@ /must/ not be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04112# If an element of--- @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the--- corresponding element of @pOffsets@ /must/ be zero------ - #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03362# If @pStrides@ is--- not @NULL@ each element of @pStrides@ /must/ be less than or equal--- to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@------ - #VUID-vkCmdBindVertexBuffers2EXT-pStrides-06209# If @pStrides@ is--- not @NULL@ each element of @pStrides@ /must/ be either 0 or greater--- than or equal to the maximum extent of all vertex input attributes--- fetched from the corresponding binding, where the extent is--- calculated as the--- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@offset@--- plus--- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@--- size------ == Valid Usage (Implicit)------ - #VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBindVertexBuffers2EXT-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-vkCmdBindVertexBuffers2EXT-pOffsets-parameter# @pOffsets@--- /must/ be a valid pointer to an array of @bindingCount@--- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ - #VUID-vkCmdBindVertexBuffers2EXT-pSizes-parameter# If @pSizes@ is--- not @NULL@, @pSizes@ /must/ be a valid pointer to an array of--- @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ - #VUID-vkCmdBindVertexBuffers2EXT-pStrides-parameter# If @pStrides@--- is not @NULL@, @pStrides@ /must/ be a valid pointer to an array of--- @bindingCount@ 'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ - #VUID-vkCmdBindVertexBuffers2EXT-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-vkCmdBindVertexBuffers2EXT-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBindVertexBuffers2EXT-bindingCount-arraylength# If any of--- @pSizes@, or @pStrides@ are not @NULL@, @bindingCount@ /must/ be--- greater than @0@------ - #VUID-vkCmdBindVertexBuffers2EXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdBindVertexBuffers2EXT :: 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)- -> -- | @pSizes@ is @NULL@ or a pointer to an array of the size in bytes of- -- vertex data bound from @pBuffers@.- ("sizes" ::: Vector DeviceSize)- -> -- | @pStrides@ is @NULL@ or a pointer to an array of buffer strides.- ("strides" ::: Vector DeviceSize)- -> io ()-cmdBindVertexBuffers2EXT commandBuffer firstBinding buffers offsets sizes strides = liftIO . evalContT $ do- let vkCmdBindVertexBuffers2EXTPtr = pVkCmdBindVertexBuffers2EXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdBindVertexBuffers2EXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers2EXT is null" Nothing Nothing- let vkCmdBindVertexBuffers2EXT' = mkVkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXTPtr- 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- let pSizesLength = Data.Vector.length $ (sizes)- lift $ unless (fromIntegral pSizesLength == pBuffersLength || pSizesLength == 0) $- throwIO $ IOError Nothing InvalidArgument "" "pSizes and pBuffers must have the same length" Nothing Nothing- let pStridesLength = Data.Vector.length $ (strides)- lift $ unless (fromIntegral pStridesLength == pBuffersLength || pStridesLength == 0) $- throwIO $ IOError Nothing InvalidArgument "" "pStrides 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)- pSizes <- if Data.Vector.null (sizes)- then pure nullPtr- else do- pPSizes <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (sizes))) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes))- pure $ pPSizes- pStrides <- if Data.Vector.null (strides)- then pure nullPtr- else do- pPStrides <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (strides))) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPStrides `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((strides))- pure $ pPStrides- lift $ traceAroundEvent "vkCmdBindVertexBuffers2EXT" (vkCmdBindVertexBuffers2EXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes pStrides)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetDepthTestEnableEXT- :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthTestEnableEXT - Set depth test enable dynamically for a--- command buffer------ = Description------ This command sets the depth test enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthTestEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetDepthTestEnableEXT-None-03352# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetDepthTestEnableEXT-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-vkCmdSetDepthTestEnableEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthTestEnableEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @depthTestEnable@ specifies if the depth test is enabled.- ("depthTestEnable" ::: Bool)- -> io ()-cmdSetDepthTestEnableEXT commandBuffer depthTestEnable = liftIO $ do- let vkCmdSetDepthTestEnableEXTPtr = pVkCmdSetDepthTestEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetDepthTestEnableEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthTestEnableEXT is null" Nothing Nothing- let vkCmdSetDepthTestEnableEXT' = mkVkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXTPtr- traceAroundEvent "vkCmdSetDepthTestEnableEXT" (vkCmdSetDepthTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthTestEnable)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetDepthWriteEnableEXT- :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthWriteEnableEXT - Set depth write enable dynamically for a--- command buffer------ = Description------ This command sets the depth write enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthWriteEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetDepthWriteEnableEXT-None-03354# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetDepthWriteEnableEXT-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-vkCmdSetDepthWriteEnableEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthWriteEnableEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @depthWriteEnable@ specifies if depth writes are enabled.- ("depthWriteEnable" ::: Bool)- -> io ()-cmdSetDepthWriteEnableEXT commandBuffer depthWriteEnable = liftIO $ do- let vkCmdSetDepthWriteEnableEXTPtr = pVkCmdSetDepthWriteEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetDepthWriteEnableEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthWriteEnableEXT is null" Nothing Nothing- let vkCmdSetDepthWriteEnableEXT' = mkVkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXTPtr- traceAroundEvent "vkCmdSetDepthWriteEnableEXT" (vkCmdSetDepthWriteEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthWriteEnable)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetDepthCompareOpEXT- :: FunPtr (Ptr CommandBuffer_T -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> CompareOp -> IO ()---- | vkCmdSetDepthCompareOpEXT - Set depth comparison operator dynamically--- for a command buffer------ = Description------ This command sets the depth comparison operator for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthCompareOp@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetDepthCompareOpEXT-None-03353# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetDepthCompareOpEXT-depthCompareOp-parameter#--- @depthCompareOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.CompareOp.CompareOp' value------ - #VUID-vkCmdSetDepthCompareOpEXT-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-vkCmdSetDepthCompareOpEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.CompareOp.CompareOp'-cmdSetDepthCompareOpEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @depthCompareOp@ specifies the depth comparison operator.- ("depthCompareOp" ::: CompareOp)- -> io ()-cmdSetDepthCompareOpEXT commandBuffer depthCompareOp = liftIO $ do- let vkCmdSetDepthCompareOpEXTPtr = pVkCmdSetDepthCompareOpEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetDepthCompareOpEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthCompareOpEXT is null" Nothing Nothing- let vkCmdSetDepthCompareOpEXT' = mkVkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXTPtr- traceAroundEvent "vkCmdSetDepthCompareOpEXT" (vkCmdSetDepthCompareOpEXT' (commandBufferHandle (commandBuffer)) (depthCompareOp))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetDepthBoundsTestEnableEXT- :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthBoundsTestEnableEXT - Set depth bounds test enable--- dynamically for a command buffer------ = Description------ This command sets the depth bounds enable for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthBoundsTestEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetDepthBoundsTestEnableEXT-None-03349# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetDepthBoundsTestEnableEXT-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-vkCmdSetDepthBoundsTestEnableEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBoundsTestEnableEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @depthBoundsTestEnable@ specifies if the depth bounds test is enabled.- ("depthBoundsTestEnable" ::: Bool)- -> io ()-cmdSetDepthBoundsTestEnableEXT commandBuffer depthBoundsTestEnable = liftIO $ do- let vkCmdSetDepthBoundsTestEnableEXTPtr = pVkCmdSetDepthBoundsTestEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetDepthBoundsTestEnableEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBoundsTestEnableEXT is null" Nothing Nothing- let vkCmdSetDepthBoundsTestEnableEXT' = mkVkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXTPtr- traceAroundEvent "vkCmdSetDepthBoundsTestEnableEXT" (vkCmdSetDepthBoundsTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBoundsTestEnable)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetStencilTestEnableEXT- :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetStencilTestEnableEXT - Set stencil test enable dynamically for a--- command buffer------ = Description------ This command sets the stencil test enable for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetStencilTestEnableEXT-None-03350# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetStencilTestEnableEXT-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-vkCmdSetStencilTestEnableEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetStencilTestEnableEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @stencilTestEnable@ specifies if the stencil test is enabled.- ("stencilTestEnable" ::: Bool)- -> io ()-cmdSetStencilTestEnableEXT commandBuffer stencilTestEnable = liftIO $ do- let vkCmdSetStencilTestEnableEXTPtr = pVkCmdSetStencilTestEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetStencilTestEnableEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilTestEnableEXT is null" Nothing Nothing- let vkCmdSetStencilTestEnableEXT' = mkVkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXTPtr- traceAroundEvent "vkCmdSetStencilTestEnableEXT" (vkCmdSetStencilTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (stencilTestEnable)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetStencilOpEXT- :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> StencilOp -> StencilOp -> StencilOp -> CompareOp -> IO ()---- | vkCmdSetStencilOpEXT - Set stencil operation dynamically for a command--- buffer------ = Description------ This command sets the stencil operation for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@failOp@,--- @passOp@, @depthFailOp@, and @compareOp@ values used to create the--- currently active pipeline, for both front and back faces.------ == Valid Usage------ - #VUID-vkCmdSetStencilOpEXT-None-03351# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState extendedDynamicState>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetStencilOpEXT-faceMask-parameter# @faceMask@ /must/ be--- a valid combination of--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ - #VUID-vkCmdSetStencilOpEXT-faceMask-requiredbitmask# @faceMask@--- /must/ not be @0@------ - #VUID-vkCmdSetStencilOpEXT-failOp-parameter# @failOp@ /must/ be a--- valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value------ - #VUID-vkCmdSetStencilOpEXT-passOp-parameter# @passOp@ /must/ be a--- valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value------ - #VUID-vkCmdSetStencilOpEXT-depthFailOp-parameter# @depthFailOp@--- /must/ be a valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value------ - #VUID-vkCmdSetStencilOpEXT-compareOp-parameter# @compareOp@ /must/--- be a valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value------ - #VUID-vkCmdSetStencilOpEXT-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-vkCmdSetStencilOpEXT-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_EXT_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.CompareOp.CompareOp',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags',--- 'Vulkan.Core10.Enums.StencilOp.StencilOp'-cmdSetStencilOpEXT :: 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 stencil operation.- ("faceMask" ::: StencilFaceFlags)- -> -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying- -- the action performed on samples that fail the stencil test.- ("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.- ("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.- ("depthFailOp" ::: StencilOp)- -> -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value- -- specifying the comparison operator used in the stencil test.- CompareOp- -> io ()-cmdSetStencilOpEXT commandBuffer faceMask failOp passOp depthFailOp compareOp = liftIO $ do- let vkCmdSetStencilOpEXTPtr = pVkCmdSetStencilOpEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetStencilOpEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilOpEXT is null" Nothing Nothing- let vkCmdSetStencilOpEXT' = mkVkCmdSetStencilOpEXT vkCmdSetStencilOpEXTPtr- traceAroundEvent "vkCmdSetStencilOpEXT" (vkCmdSetStencilOpEXT' (commandBufferHandle (commandBuffer)) (faceMask) (failOp) (passOp) (depthFailOp) (compareOp))- pure $ ()----- | VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing--- what extended dynamic state can be used------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' 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. 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /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_extended_dynamic_state VK_EXT_extended_dynamic_state>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceExtendedDynamicStateFeaturesEXT = PhysicalDeviceExtendedDynamicStateFeaturesEXT- { -- | #features-extendedDynamicState# @extendedDynamicState@ indicates that- -- the implementation supports the following dynamic states:- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'- --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+-- - Piers Daniell+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_extended_dynamic_state] @pdaniell-nv%0A<<Here describe the issue or question you have about the VK_EXT_extended_dynamic_state extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2019-12-09+--+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Dan Ginsburg, Valve Corporation+--+-- - Graeme Leese, Broadcom+--+-- - Hans-Kristian Arntzen, Valve Corporation+--+-- - Jan-Harald Fredriksen, Arm Limited+--+-- - Jason Ekstrand, Intel+--+-- - Jeff Bolz, NVIDIA+--+-- - Jesse Hall, Google+--+-- - Philip Rebohle, Valve Corporation+--+-- - Stuart Smith, Imagination Technologies+--+-- - Tobias Hector, AMD+--+-- == Description+--+-- This extension adds some more dynamic state to support applications that+-- need to reduce the number of pipeline state objects they compile and+-- bind.+--+-- == New Commands+--+-- - 'cmdBindVertexBuffers2EXT'+--+-- - 'cmdSetCullModeEXT'+--+-- - 'cmdSetDepthBoundsTestEnableEXT'+--+-- - 'cmdSetDepthCompareOpEXT'+--+-- - 'cmdSetDepthTestEnableEXT'+--+-- - 'cmdSetDepthWriteEnableEXT'+--+-- - 'cmdSetFrontFaceEXT'+--+-- - 'cmdSetPrimitiveTopologyEXT'+--+-- - 'cmdSetScissorWithCountEXT'+--+-- - 'cmdSetStencilOpEXT'+--+-- - 'cmdSetStencilTestEnableEXT'+--+-- - 'cmdSetViewportWithCountEXT'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceExtendedDynamicStateFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME'+--+-- - 'EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+-- - 'DYNAMIC_STATE_CULL_MODE_EXT'+--+-- - 'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'+--+-- - 'DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'+--+-- - 'DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'+--+-- - 'DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'+--+-- - 'DYNAMIC_STATE_FRONT_FACE_EXT'+--+-- - 'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+--+-- - 'DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--+-- - 'DYNAMIC_STATE_STENCIL_OP_EXT'+--+-- - 'DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'+--+-- - 'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--+-- - 'DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT'+--+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. All dynamic state enumerants+-- and entry points in this extension are included in core Vulkan 1.3, with+-- the EXT suffix omitted. The feature structure is not promoted. Extension+-- interfaces that were promoted remain available as aliases of the core+-- functionality.+--+-- == Version History+--+-- - Revision 1, 2019-12-09 (Piers Daniell)+--+-- - Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceExtendedDynamicStateFeaturesEXT',+-- 'cmdBindVertexBuffers2EXT', 'cmdSetCullModeEXT',+-- 'cmdSetDepthBoundsTestEnableEXT', 'cmdSetDepthCompareOpEXT',+-- 'cmdSetDepthTestEnableEXT', 'cmdSetDepthWriteEnableEXT',+-- 'cmdSetFrontFaceEXT', 'cmdSetPrimitiveTopologyEXT',+-- 'cmdSetScissorWithCountEXT', 'cmdSetStencilOpEXT',+-- 'cmdSetStencilTestEnableEXT', 'cmdSetViewportWithCountEXT'+--+-- == 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_extended_dynamic_state ( pattern DYNAMIC_STATE_CULL_MODE_EXT+ , pattern DYNAMIC_STATE_FRONT_FACE_EXT+ , pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT+ , pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT+ , pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT+ , pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT+ , pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT+ , pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT+ , pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT+ , pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT+ , pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT+ , pattern DYNAMIC_STATE_STENCIL_OP_EXT+ , cmdSetCullModeEXT+ , cmdSetFrontFaceEXT+ , cmdSetPrimitiveTopologyEXT+ , cmdSetViewportWithCountEXT+ , cmdSetScissorWithCountEXT+ , cmdBindVertexBuffers2EXT+ , cmdSetDepthTestEnableEXT+ , cmdSetDepthWriteEnableEXT+ , cmdSetDepthCompareOpEXT+ , cmdSetDepthBoundsTestEnableEXT+ , cmdSetStencilTestEnableEXT+ , cmdSetStencilOpEXT+ , PhysicalDeviceExtendedDynamicStateFeaturesEXT(..)+ , EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION+ , pattern EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION+ , EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME+ , pattern EXT_EXTENDED_DYNAMIC_STATE_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.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdBindVertexBuffers2)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetCullMode)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthBoundsTestEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthCompareOp)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthTestEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetDepthWriteEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetFrontFace)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetPrimitiveTopology)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetScissorWithCount)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetStencilOp)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetStencilTestEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state (cmdSetViewportWithCount)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_CULL_MODE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_COMPARE_OP))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_TEST_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_WRITE_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_FRONT_FACE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_PRIMITIVE_TOPOLOGY))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_SCISSOR_WITH_COUNT))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_STENCIL_OP))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_STENCIL_TEST_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_VIEWPORT_WITH_COUNT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT))+-- No documentation found for TopLevel "VK_DYNAMIC_STATE_CULL_MODE_EXT"+pattern DYNAMIC_STATE_CULL_MODE_EXT = DYNAMIC_STATE_CULL_MODE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_FRONT_FACE_EXT"+pattern DYNAMIC_STATE_FRONT_FACE_EXT = DYNAMIC_STATE_FRONT_FACE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT"+pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = DYNAMIC_STATE_PRIMITIVE_TOPOLOGY+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT"+pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = DYNAMIC_STATE_VIEWPORT_WITH_COUNT+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT"+pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = DYNAMIC_STATE_SCISSOR_WITH_COUNT+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT"+pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = DYNAMIC_STATE_DEPTH_TEST_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = DYNAMIC_STATE_DEPTH_WRITE_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT"+pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = DYNAMIC_STATE_DEPTH_COMPARE_OP+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT"+pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = DYNAMIC_STATE_STENCIL_TEST_ENABLE+++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_STENCIL_OP_EXT"+pattern DYNAMIC_STATE_STENCIL_OP_EXT = DYNAMIC_STATE_STENCIL_OP+++-- No documentation found for TopLevel "vkCmdSetCullModeEXT"+cmdSetCullModeEXT = cmdSetCullMode+++-- No documentation found for TopLevel "vkCmdSetFrontFaceEXT"+cmdSetFrontFaceEXT = cmdSetFrontFace+++-- No documentation found for TopLevel "vkCmdSetPrimitiveTopologyEXT"+cmdSetPrimitiveTopologyEXT = cmdSetPrimitiveTopology+++-- No documentation found for TopLevel "vkCmdSetViewportWithCountEXT"+cmdSetViewportWithCountEXT = cmdSetViewportWithCount+++-- No documentation found for TopLevel "vkCmdSetScissorWithCountEXT"+cmdSetScissorWithCountEXT = cmdSetScissorWithCount+++-- No documentation found for TopLevel "vkCmdBindVertexBuffers2EXT"+cmdBindVertexBuffers2EXT = cmdBindVertexBuffers2+++-- No documentation found for TopLevel "vkCmdSetDepthTestEnableEXT"+cmdSetDepthTestEnableEXT = cmdSetDepthTestEnable+++-- No documentation found for TopLevel "vkCmdSetDepthWriteEnableEXT"+cmdSetDepthWriteEnableEXT = cmdSetDepthWriteEnable+++-- No documentation found for TopLevel "vkCmdSetDepthCompareOpEXT"+cmdSetDepthCompareOpEXT = cmdSetDepthCompareOp+++-- No documentation found for TopLevel "vkCmdSetDepthBoundsTestEnableEXT"+cmdSetDepthBoundsTestEnableEXT = cmdSetDepthBoundsTestEnable+++-- No documentation found for TopLevel "vkCmdSetStencilTestEnableEXT"+cmdSetStencilTestEnableEXT = cmdSetStencilTestEnable+++-- No documentation found for TopLevel "vkCmdSetStencilOpEXT"+cmdSetStencilOpEXT = cmdSetStencilOp+++-- | VkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing+-- what extended dynamic state can be used+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' 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. 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /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_extended_dynamic_state VK_EXT_extended_dynamic_state>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExtendedDynamicStateFeaturesEXT = PhysicalDeviceExtendedDynamicStateFeaturesEXT+ { -- | #features-extendedDynamicState# @extendedDynamicState@ indicates that+ -- the implementation supports the following dynamic states:+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' extendedDynamicState :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Piers Daniell@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2019-12-09 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -106,34 +115,42 @@ -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE_EXT'+-- - 'DYNAMIC_STATE_CULL_MODE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT'+-- - 'DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT'+-- - 'DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT'+-- - 'DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT'+-- - 'DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE_EXT'+-- - 'DYNAMIC_STATE_FRONT_FACE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- - 'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- - 'DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT'+-- - 'DYNAMIC_STATE_STENCIL_OP_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT'+-- - 'DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- - 'DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- - 'DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. All dynamic state enumerants+-- and entry points in this extension are included in core Vulkan 1.3, with+-- the EXT suffix omitted. The feature structure is not promoted. Extension+-- interfaces that were promoted remain available as aliases of the core+-- functionality.+-- -- == Version History -- -- - Revision 1, 2019-12-09 (Piers Daniell)@@ -153,7 +170,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Vikram Kushwaha@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2021-04-12 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -78,20 +87,32 @@ -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- - 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- - 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- - 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The dynamic state enumerants+-- 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',+-- 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT', and+-- 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'; and the corresponding+-- entry points in this extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. The enumerants and entry points for dynamic logic+-- operation and patch control points are not promoted, nor is the feature+-- structure. Extension interfaces that were promoted remain available as+-- aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2021-04-12 (Vikram Kushwaha)@@ -108,14 +129,17 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+-- <https://www.khronos.org/registry/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. module Vulkan.Extensions.VK_EXT_extended_dynamic_state2 ( cmdSetPatchControlPointsEXT+ , cmdSetLogicOpEXT+ , pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT+ , pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT+ , pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT , cmdSetRasterizerDiscardEnableEXT , cmdSetDepthBiasEnableEXT- , cmdSetLogicOpEXT , cmdSetPrimitiveRestartEnableEXT , PhysicalDeviceExtendedDynamicState2FeaturesEXT(..) , EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION@@ -153,21 +177,23 @@ import Data.Kind (Type) import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2 (cmdSetDepthBiasEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2 (cmdSetPrimitiveRestartEnable)+import Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2 (cmdSetRasterizerDiscardEnable) import Vulkan.NamedType ((:::)) import Vulkan.Core10.FundamentalTypes (Bool32)-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.Dynamic (DeviceCmds(pVkCmdSetDepthBiasEnableEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLogicOpEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPatchControlPointsEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveRestartEnableEXT))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizerDiscardEnableEXT)) import Vulkan.Core10.Enums.LogicOp (LogicOp) import Vulkan.Core10.Enums.LogicOp (LogicOp(..)) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_DEPTH_BIAS_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE))+import Vulkan.Core10.Enums.DynamicState (DynamicState(DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -193,7 +219,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetPatchControlPointsEXT-None-04873# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874#@@ -258,170 +284,6 @@ #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif- "dynamic" mkVkCmdSetRasterizerDiscardEnableEXT- :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetRasterizerDiscardEnableEXT - Control whether primitives are--- discarded before the rasterization stage dynamically for a command--- buffer------ = Description------ This command sets the discard enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetRasterizerDiscardEnableEXT-None-04871# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetRasterizerDiscardEnableEXT-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-vkCmdSetRasterizerDiscardEnableEXT-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_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetRasterizerDiscardEnableEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @rasterizerDiscardEnable@ controls whether primitives are discarded- -- immediately before the rasterization stage.- ("rasterizerDiscardEnable" ::: Bool)- -> io ()-cmdSetRasterizerDiscardEnableEXT commandBuffer rasterizerDiscardEnable = liftIO $ do- let vkCmdSetRasterizerDiscardEnableEXTPtr = pVkCmdSetRasterizerDiscardEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetRasterizerDiscardEnableEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRasterizerDiscardEnableEXT is null" Nothing Nothing- let vkCmdSetRasterizerDiscardEnableEXT' = mkVkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXTPtr- traceAroundEvent "vkCmdSetRasterizerDiscardEnableEXT" (vkCmdSetRasterizerDiscardEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (rasterizerDiscardEnable)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetDepthBiasEnableEXT- :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()---- | vkCmdSetDepthBiasEnableEXT - Control whether to bias fragment depth--- values dynamically for a command buffer------ = Description------ This command sets the depth bias enable for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetDepthBiasEnableEXT-None-04872# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetDepthBiasEnableEXT-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-vkCmdSetDepthBiasEnableEXT-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_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBiasEnableEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @depthBiasEnable@ controls whether to bias fragment depth values.- ("depthBiasEnable" ::: Bool)- -> io ()-cmdSetDepthBiasEnableEXT commandBuffer depthBiasEnable = liftIO $ do- let vkCmdSetDepthBiasEnableEXTPtr = pVkCmdSetDepthBiasEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetDepthBiasEnableEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBiasEnableEXT is null" Nothing Nothing- let vkCmdSetDepthBiasEnableEXT' = mkVkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXTPtr- traceAroundEvent "vkCmdSetDepthBiasEnableEXT" (vkCmdSetDepthBiasEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBiasEnable)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif "dynamic" mkVkCmdSetLogicOpEXT :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ()) -> Ptr CommandBuffer_T -> LogicOp -> IO () @@ -441,7 +303,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetLogicOpEXT-None-04867# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -500,90 +362,30 @@ pure $ () -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetPrimitiveRestartEnableEXT- :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()+-- No documentation found for TopLevel "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT"+pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE --- | vkCmdSetPrimitiveRestartEnableEXT - Set primitive assembly restart state--- dynamically for a command buffer------ = Description------ This command sets the primitive restart enable for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetPrimitiveRestartEnableEXT-None-04866# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetPrimitiveRestartEnableEXT-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-vkCmdSetPrimitiveRestartEnableEXT-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_EXT_extended_dynamic_state2 VK_EXT_extended_dynamic_state2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetPrimitiveRestartEnableEXT :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @primitiveRestartEnable@ controls whether a special vertex index value- -- is treated as restarting the assembly of primitives. It behaves in the- -- same way as- -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@- ("primitiveRestartEnable" ::: Bool)- -> io ()-cmdSetPrimitiveRestartEnableEXT commandBuffer primitiveRestartEnable = liftIO $ do- let vkCmdSetPrimitiveRestartEnableEXTPtr = pVkCmdSetPrimitiveRestartEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetPrimitiveRestartEnableEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveRestartEnableEXT is null" Nothing Nothing- let vkCmdSetPrimitiveRestartEnableEXT' = mkVkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXTPtr- traceAroundEvent "vkCmdSetPrimitiveRestartEnableEXT" (vkCmdSetPrimitiveRestartEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (primitiveRestartEnable)))- pure $ () +-- No documentation found for TopLevel "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT"+pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = DYNAMIC_STATE_DEPTH_BIAS_ENABLE ++-- No documentation found for TopLevel "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT"+pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE+++-- No documentation found for TopLevel "vkCmdSetRasterizerDiscardEnableEXT"+cmdSetRasterizerDiscardEnableEXT = cmdSetRasterizerDiscardEnable+++-- No documentation found for TopLevel "vkCmdSetDepthBiasEnableEXT"+cmdSetDepthBiasEnableEXT = cmdSetDepthBiasEnable+++-- No documentation found for TopLevel "vkCmdSetPrimitiveRestartEnableEXT"+cmdSetPrimitiveRestartEnableEXT = cmdSetPrimitiveRestartEnable++ -- | VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - Structure describing -- what extended dynamic state can be used --@@ -614,11 +416,11 @@ { -- | #features-extendedDynamicState2# @extendedDynamicState2@ indicates that -- the implementation supports the following dynamic states: --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' extendedDynamicState2 :: Bool , -- | #features-extendedDynamicState2LogicOp# @extendedDynamicState2LogicOp@ -- indicates that the implementation supports the following dynamic state:
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Vikram Kushwaha@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2021-04-12 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -78,20 +87,32 @@ -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- - 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- - 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- - 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The dynamic state enumerants+-- 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',+-- 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT', and+-- 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'; and the corresponding+-- entry points in this extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. The enumerants and entry points for dynamic logic+-- operation and patch control points are not promoted, nor is the feature+-- structure. Extension interfaces that were promoted remain available as+-- aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2021-04-12 (Vikram Kushwaha)@@ -108,7 +129,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_dma_buf Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -165,7 +165,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification>+-- <https://www.khronos.org/registry/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 +323,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.2-extensions/html/vkspec.html#memory-device-hostaccess Host Access to Device Memory Objects>.+-- <https://www.khronos.org/registry/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
@@ -165,7 +165,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification>+-- <https://www.khronos.org/registry/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_filter_cubic.hs-boot view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -153,19 +153,19 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-fraginvocationcount FragInvocationCountEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT> -- -- == Version History --@@ -186,7 +186,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -197,9 +197,6 @@ , pattern EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION , EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME , pattern EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME- , FormatFeatureFlagBits2KHR(..)- , FormatFeatureFlags2KHR- , Flags64 ) where import Foreign.Marshal.Alloc (allocaBytes)@@ -228,9 +225,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) -- | VkPhysicalDeviceFragmentDensityMapFeaturesEXT - Structure describing -- fragment density map features that can be supported by an implementation --@@ -278,9 +272,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.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-subsamplesampler subsampled attachments>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-subsamplesampler subsampled attachments> -- bound. fragmentDensityMapNonSubsampledImages :: Bool }@@ -355,7 +349,7 @@ data PhysicalDeviceFragmentDensityMapPropertiesEXT = PhysicalDeviceFragmentDensityMapPropertiesEXT { -- | #limits-minFragmentDensityTexelSize# @minFragmentDensityTexelSize@ is -- the minimum- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-fragment-density-texel-size fragment density texel size>.+ -- <https://www.khronos.org/registry/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
@@ -153,19 +153,19 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-fraginvocationcount FragInvocationCountEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT> -- -- == Version History --@@ -186,7 +186,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -131,9 +131,9 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == Version History --@@ -149,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification>+-- <https://www.khronos.org/registry/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_density_map2.hs-boot view
@@ -131,9 +131,9 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' -- -- == Version History --@@ -149,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -101,11 +101,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT> -- -- == Version History --@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -101,11 +101,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT> -- -- == Version History --@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -251,7 +251,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -251,7 +251,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -21,6 +21,10 @@ -- -- - Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+-- - /Promoted/ to @VK_KHR_global_priority@ extension+-- -- [__Contact__] -- -- - Andres Rodriguez@@ -50,7 +54,7 @@ -- cases it may be useful to extend this concept to a system-wide scope. -- This extension provides a mechanism for callers to set their system-wide -- priority. The default queue priority is--- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.+-- 'Vulkan.Extensions.VK_KHR_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'. -- -- The driver implementation will attempt to skew hardware resource -- allocation in favour of the higher-priority task. Therefore,@@ -65,9 +69,9 @@ -- Abuse of this feature may result in starving the rest of the system from -- hardware resources. Therefore, the driver implementation may deny -- requests to acquire a priority above the default priority--- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have--- sufficient privileges. In this scenario--- 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT' is returned.+-- ('Vulkan.Extensions.VK_KHR_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT')+-- if the caller does not have sufficient privileges. In this scenario+-- 'ERROR_NOT_PERMITTED_EXT' is returned. -- -- The driver implementation may fail the queue allocation request if -- resources required to complete the operation have been exhausted (either@@ -92,11 +96,11 @@ -- -- - Extending 'Vulkan.Core10.Enums.Result.Result': ----- - 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT'+-- - 'ERROR_NOT_PERMITTED_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT'+-- - 'STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT' -- -- == Version History --@@ -115,168 +119,43 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_global_priority ( DeviceQueueGlobalPriorityCreateInfoEXT(..)- , QueueGlobalPriorityEXT( QUEUE_GLOBAL_PRIORITY_LOW_EXT- , QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT- , QUEUE_GLOBAL_PRIORITY_HIGH_EXT- , QUEUE_GLOBAL_PRIORITY_REALTIME_EXT- , ..- )+module Vulkan.Extensions.VK_EXT_global_priority ( pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT+ , pattern ERROR_NOT_PERMITTED_EXT+ , QueueGlobalPriorityEXT+ , DeviceQueueGlobalPriorityCreateInfoEXT , EXT_GLOBAL_PRIORITY_SPEC_VERSION , pattern EXT_GLOBAL_PRIORITY_SPEC_VERSION , EXT_GLOBAL_PRIORITY_EXTENSION_NAME , pattern EXT_GLOBAL_PRIORITY_EXTENSION_NAME+ , DeviceQueueGlobalPriorityCreateInfoKHR(..)+ , QueueGlobalPriorityKHR(..) ) 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.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT))--- | VkDeviceQueueGlobalPriorityCreateInfoEXT - Specify a system wide--- priority------ = Description------ A queue created without specifying--- 'DeviceQueueGlobalPriorityCreateInfoEXT' will default to--- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,--- 'QueueGlobalPriorityEXT',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoEXT- { -- | @globalPriority@ is the system-wide priority associated to this queue as- -- specified by 'QueueGlobalPriorityEXT'- --- -- #VUID-VkDeviceQueueGlobalPriorityCreateInfoEXT-globalPriority-parameter#- -- @globalPriority@ /must/ be a valid 'QueueGlobalPriorityEXT' value- globalPriority :: QueueGlobalPriorityEXT }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DeviceQueueGlobalPriorityCreateInfoEXT)-#endif-deriving instance Show DeviceQueueGlobalPriorityCreateInfoEXT+import Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR)+import Vulkan.Extensions.VK_KHR_global_priority (QueueGlobalPriorityKHR)+import Vulkan.Core10.Enums.Result (Result(ERROR_NOT_PERMITTED_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR))+import Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR(..))+import Vulkan.Extensions.VK_KHR_global_priority (QueueGlobalPriorityKHR(..))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR -instance ToCStruct DeviceQueueGlobalPriorityCreateInfoEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p DeviceQueueGlobalPriorityCreateInfoEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityEXT)) (globalPriority)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityEXT)) (zero)- f -instance FromCStruct DeviceQueueGlobalPriorityCreateInfoEXT where- peekCStruct p = do- globalPriority <- peek @QueueGlobalPriorityEXT ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityEXT))- pure $ DeviceQueueGlobalPriorityCreateInfoEXT- globalPriority+-- No documentation found for TopLevel "VK_ERROR_NOT_PERMITTED_EXT"+pattern ERROR_NOT_PERMITTED_EXT = ERROR_NOT_PERMITTED_KHR -instance Storable DeviceQueueGlobalPriorityCreateInfoEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero DeviceQueueGlobalPriorityCreateInfoEXT where- zero = DeviceQueueGlobalPriorityCreateInfoEXT- zero+-- No documentation found for TopLevel "VkQueueGlobalPriorityEXT"+type QueueGlobalPriorityEXT = QueueGlobalPriorityKHR --- | VkQueueGlobalPriorityEXT - Values specifying a system-wide queue--- priority------ = Description------ Priority values are sorted in ascending order. A comparison operation on--- the enum values can be used to determine the priority order.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,--- 'DeviceQueueGlobalPriorityCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT'-newtype QueueGlobalPriorityEXT = QueueGlobalPriorityEXT Int32- deriving newtype (Eq, Ord, Storable, Zero)--- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error---- | 'QUEUE_GLOBAL_PRIORITY_LOW_EXT' is below the system default. Useful for--- non-interactive tasks.-pattern QUEUE_GLOBAL_PRIORITY_LOW_EXT = QueueGlobalPriorityEXT 128--- | 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT' is the system default priority.-pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = QueueGlobalPriorityEXT 256--- | 'QUEUE_GLOBAL_PRIORITY_HIGH_EXT' is above the system default.-pattern QUEUE_GLOBAL_PRIORITY_HIGH_EXT = QueueGlobalPriorityEXT 512--- | 'QUEUE_GLOBAL_PRIORITY_REALTIME_EXT' is the highest priority. Useful for--- critical tasks.-pattern QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = QueueGlobalPriorityEXT 1024-{-# complete QUEUE_GLOBAL_PRIORITY_LOW_EXT,- QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,- QUEUE_GLOBAL_PRIORITY_HIGH_EXT,- QUEUE_GLOBAL_PRIORITY_REALTIME_EXT :: QueueGlobalPriorityEXT #-}--conNameQueueGlobalPriorityEXT :: String-conNameQueueGlobalPriorityEXT = "QueueGlobalPriorityEXT"--enumPrefixQueueGlobalPriorityEXT :: String-enumPrefixQueueGlobalPriorityEXT = "QUEUE_GLOBAL_PRIORITY_"--showTableQueueGlobalPriorityEXT :: [(QueueGlobalPriorityEXT, String)]-showTableQueueGlobalPriorityEXT =- [ (QUEUE_GLOBAL_PRIORITY_LOW_EXT , "LOW_EXT")- , (QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT , "MEDIUM_EXT")- , (QUEUE_GLOBAL_PRIORITY_HIGH_EXT , "HIGH_EXT")- , (QUEUE_GLOBAL_PRIORITY_REALTIME_EXT, "REALTIME_EXT")- ]--instance Show QueueGlobalPriorityEXT where- showsPrec = enumShowsPrec enumPrefixQueueGlobalPriorityEXT- showTableQueueGlobalPriorityEXT- conNameQueueGlobalPriorityEXT- (\(QueueGlobalPriorityEXT x) -> x)- (showsPrec 11)--instance Read QueueGlobalPriorityEXT where- readPrec = enumReadPrec enumPrefixQueueGlobalPriorityEXT- showTableQueueGlobalPriorityEXT- conNameQueueGlobalPriorityEXT- QueueGlobalPriorityEXT+-- No documentation found for TopLevel "VkDeviceQueueGlobalPriorityCreateInfoEXT"+type DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR type EXT_GLOBAL_PRIORITY_SPEC_VERSION = 2
− src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot
@@ -1,134 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_global_priority - device extension------ == VK_EXT_global_priority------ [__Name String__]--- @VK_EXT_global_priority@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 175------ [__Revision__]--- 2------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ [__Contact__]------ - Andres Rodriguez--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_global_priority] @lostgoat%0A<<Here describe the issue or question you have about the VK_EXT_global_priority extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2017-10-06------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Andres Rodriguez, Valve------ - Pierre-Loup Griffais, Valve------ - Dan Ginsburg, Valve------ - Mitch Singer, AMD------ == Description------ In Vulkan, users can specify device-scope queue priorities. In some--- cases it may be useful to extend this concept to a system-wide scope.--- This extension provides a mechanism for callers to set their system-wide--- priority. The default queue priority is--- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.------ The driver implementation will attempt to skew hardware resource--- allocation in favour of the higher-priority task. Therefore,--- higher-priority work may retain similar latency and throughput--- characteristics even if the system is congested with lower priority--- work.------ The global priority level of a queue shall take precedence over the--- per-process queue priority--- ('Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@).------ Abuse of this feature may result in starving the rest of the system from--- hardware resources. Therefore, the driver implementation may deny--- requests to acquire a priority above the default priority--- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have--- sufficient privileges. In this scenario--- 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT' is returned.------ The driver implementation may fail the queue allocation request if--- resources required to complete the operation have been exhausted (either--- by the same process or a different process). In this scenario--- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' is returned.------ == New Structures------ - Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo':------ - 'DeviceQueueGlobalPriorityCreateInfoEXT'------ == New Enums------ - 'QueueGlobalPriorityEXT'------ == New Enum Constants------ - 'EXT_GLOBAL_PRIORITY_EXTENSION_NAME'------ - 'EXT_GLOBAL_PRIORITY_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.Result.Result':------ - 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT'------ == Version History------ - Revision 2, 2017-11-03 (Andres Rodriguez)------ - Fixed VkQueueGlobalPriorityEXT missing _EXT suffix------ - Revision 1, 2017-10-06 (Andres Rodriguez)------ - First version.------ == See Also------ 'DeviceQueueGlobalPriorityCreateInfoEXT', 'QueueGlobalPriorityEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_global_priority (DeviceQueueGlobalPriorityCreateInfoEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DeviceQueueGlobalPriorityCreateInfoEXT--instance ToCStruct DeviceQueueGlobalPriorityCreateInfoEXT-instance Show DeviceQueueGlobalPriorityCreateInfoEXT--instance FromCStruct DeviceQueueGlobalPriorityCreateInfoEXT-
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs view
@@ -25,6 +25,10 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to @VK_KHR_global_priority@ extension+-- -- [__Contact__] -- -- - Yiwei Zhang@@ -76,9 +80,9 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT'+-- - 'STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT' -- -- == Issues --@@ -113,222 +117,55 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_global_priority_query ( PhysicalDeviceGlobalPriorityQueryFeaturesEXT(..)- , QueueFamilyGlobalPriorityPropertiesEXT(..)+module Vulkan.Extensions.VK_EXT_global_priority_query ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT+ , pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT+ , pattern MAX_GLOBAL_PRIORITY_SIZE_EXT+ , PhysicalDeviceGlobalPriorityQueryFeaturesEXT+ , QueueFamilyGlobalPriorityPropertiesEXT , EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION , pattern EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION , EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME , pattern EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME- , QueueGlobalPriorityEXT(..)- , MAX_GLOBAL_PRIORITY_SIZE_EXT- , pattern MAX_GLOBAL_PRIORITY_SIZE_EXT+ , PhysicalDeviceGlobalPriorityQueryFeaturesKHR(..)+ , QueueFamilyGlobalPriorityPropertiesKHR(..)+ , QueueGlobalPriorityKHR(..)+ , MAX_GLOBAL_PRIORITY_SIZE_KHR+ , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR ) where -import Vulkan.CStruct.Utils (FixedArray)-import Control.Monad (unless)-import Foreign.Marshal.Alloc (allocaBytes)-import GHC.IO (throwIO)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-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 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 (Ptr)-import Data.Word (Word32)-import Data.Kind (Type)-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.CStruct.Utils (lowerArrayPtr)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_EXT)-import Vulkan.Extensions.VK_EXT_global_priority (QueueGlobalPriorityEXT)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_EXT)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT))-import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_EXT)-import Vulkan.Extensions.VK_EXT_global_priority (QueueGlobalPriorityEXT(..))-import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_EXT)--- | VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT - Structure describing--- whether global priority query can be supported by an implementation------ = Members------ The members of the 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT'--- structure describe the following features:------ = Description------ If the 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT' 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. 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT' /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_global_priority_query VK_EXT_global_priority_query>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesEXT- { -- | #features-globalPriorityQuery# @globalPriorityQuery@ indicates whether- -- the implementation supports the ability to query global queue- -- priorities.- globalPriorityQuery :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceGlobalPriorityQueryFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceGlobalPriorityQueryFeaturesEXT+import Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)+import Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR)+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR))+import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR(..))+import Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR(..))+import Vulkan.Extensions.VK_KHR_global_priority (QueueGlobalPriorityKHR(..))+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR -instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceGlobalPriorityQueryFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (globalPriorityQuery))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT where- peekCStruct p = do- globalPriorityQuery <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceGlobalPriorityQueryFeaturesEXT- (bool32ToBool globalPriorityQuery)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR -instance Storable PhysicalDeviceGlobalPriorityQueryFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceGlobalPriorityQueryFeaturesEXT where- zero = PhysicalDeviceGlobalPriorityQueryFeaturesEXT- zero+-- No documentation found for TopLevel "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"+pattern MAX_GLOBAL_PRIORITY_SIZE_EXT = MAX_GLOBAL_PRIORITY_SIZE_KHR --- | VkQueueFamilyGlobalPriorityPropertiesEXT - Return structure for queue--- family global priority information query------ = Description------ The valid elements of @priorities@ /must/ not contain any duplicate--- values.------ The valid elements of @priorities@ /must/ be a continuous sequence of--- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' enums--- in the ascending order.------ Note------ For example, returning @priorityCount@ as 3 with supported @priorities@--- as--- 'Vulkan.Extensions.VK_EXT_global_priority.QUEUE_GLOBAL_PRIORITY_LOW_EXT',--- 'Vulkan.Extensions.VK_EXT_global_priority.QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'--- and--- 'Vulkan.Extensions.VK_EXT_global_priority.QUEUE_GLOBAL_PRIORITY_REALTIME_EXT'--- is not allowed.------ == Valid Usage (Implicit)------ - #VUID-VkQueueFamilyGlobalPriorityPropertiesEXT-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT'------ - #VUID-VkQueueFamilyGlobalPriorityPropertiesEXT-priorities-parameter#--- Any given element of @priorities@ /must/ be a valid--- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT'--- value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>,--- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesEXT- { -- | @priorityCount@ is the number of supported global queue priorities in- -- this queue family, and it /must/ be greater than 0.- priorityCount :: Word32- , -- | @priorities@ is an array of- -- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT'- -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' enums- -- representing all supported global queue priorities in this queue family.- -- The first @priorityCount@ elements of the array will be valid.- priorities :: Vector QueueGlobalPriorityEXT- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (QueueFamilyGlobalPriorityPropertiesEXT)-#endif-deriving instance Show QueueFamilyGlobalPriorityPropertiesEXT+-- No documentation found for TopLevel "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT"+type PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesKHR -instance ToCStruct QueueFamilyGlobalPriorityPropertiesEXT where- withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)- pokeCStruct p QueueFamilyGlobalPriorityPropertiesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (priorityCount)- unless ((Data.Vector.length $ (priorities)) <= MAX_GLOBAL_PRIORITY_SIZE_EXT) $- throwIO $ IOError Nothing InvalidArgument "" "priorities is too long, a maximum of MAX_GLOBAL_PRIORITY_SIZE_EXT elements are allowed" Nothing Nothing- Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_EXT QueueGlobalPriorityEXT)))) `plusPtr` (4 * (i)) :: Ptr QueueGlobalPriorityEXT) (e)) (priorities)- f- cStructSize = 88- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- f -instance FromCStruct QueueFamilyGlobalPriorityPropertiesEXT where- peekCStruct p = do- priorityCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- priorities <- generateM (MAX_GLOBAL_PRIORITY_SIZE_EXT) (\i -> peek @QueueGlobalPriorityEXT (((lowerArrayPtr @QueueGlobalPriorityEXT ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_EXT QueueGlobalPriorityEXT)))) `advancePtrBytes` (4 * (i)) :: Ptr QueueGlobalPriorityEXT)))- pure $ QueueFamilyGlobalPriorityPropertiesEXT- priorityCount priorities--instance Storable QueueFamilyGlobalPriorityPropertiesEXT where- sizeOf ~_ = 88- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero QueueFamilyGlobalPriorityPropertiesEXT where- zero = QueueFamilyGlobalPriorityPropertiesEXT- zero- mempty+-- No documentation found for TopLevel "VkQueueFamilyGlobalPriorityPropertiesEXT"+type QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR type EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot
@@ -1,142 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_global_priority_query - device extension------ == VK_EXT_global_priority_query------ [__Name String__]--- @VK_EXT_global_priority_query@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 389------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_EXT_global_priority@------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Yiwei Zhang--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_global_priority_query] @zhangyiwei%0A<<Here describe the issue or question you have about the VK_EXT_global_priority_query extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2021-03-29------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Yiwei Zhang, Google------ == Description------ This device extension allows applications to query the global queue--- priorities supported by a queue family. It allows implementations to--- report which global priority levels are treated differently by the--- implementation, instead of silently mapping multiple requested global--- priority levels to the same internal priority, or using device creation--- failure to signal that a requested priority is not supported. It is--- intended primarily for use by system integration along with certain--- platform-specific priority enforcement rules.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':------ - 'QueueFamilyGlobalPriorityPropertiesEXT'------ == New Enum Constants------ - 'EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME'------ - 'EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION'------ - 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT'------ == Issues------ 1) Can we additionally query whether a caller is permitted to acquire a--- specific global queue priority in this extension?------ __RESOLVED__: No. Whether a caller has enough privilege goes with the--- OS, and the Vulkan driver cannot really guarantee that the privilege--- will not change in between this query and the actual queue creation--- call.------ 2) If more than 1 queue using global priority is requested, is there a--- good way to know which queue is failing the device creation?------ __RESOLVED__: No. There is not a good way at this moment, and it is also--- not quite actionable for the applications to know that because the--- information may not be accurate. Queue creation can fail because of--- runtime constraints like insufficient privilege or lack of resource, and--- the failure is not necessarily tied to that particular queue--- configuration requested.------ == Version History------ - Revision 1, 2021-03-29 (Yiwei Zhang)------ == See Also------ 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT',--- 'PhysicalDeviceGlobalPriorityQueryFeaturesEXT',--- 'QueueFamilyGlobalPriorityPropertiesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_global_priority_query ( PhysicalDeviceGlobalPriorityQueryFeaturesEXT- , QueueFamilyGlobalPriorityPropertiesEXT- ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceGlobalPriorityQueryFeaturesEXT--instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT-instance Show PhysicalDeviceGlobalPriorityQueryFeaturesEXT--instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesEXT---data QueueFamilyGlobalPriorityPropertiesEXT--instance ToCStruct QueueFamilyGlobalPriorityPropertiesEXT-instance Show QueueFamilyGlobalPriorityPropertiesEXT--instance FromCStruct QueueFamilyGlobalPriorityPropertiesEXT-
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_query_reset Vulkan Specification>+-- <https://www.khronos.org/registry/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_drm_format_modifier.hs view
@@ -67,9 +67,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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @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>^ -- and--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^.+-- @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>^. -- 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.@@ -250,33 +250,33 @@ -- == Prior Art -- -- Extension--- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^+-- @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>^ -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @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>^ -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^+-- @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>^ -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- 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>^, -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^;+-- @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>^; -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^.+-- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^. -- -- == New Commands --@@ -371,10 +371,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.2-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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @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>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- 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>^, -- 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 +397,10 @@ -- /must/ be 0. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @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>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- 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>^, -- 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.@@ -545,7 +545,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -562,9 +562,6 @@ , pattern EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION , EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME , pattern EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME- , FormatFeatureFlagBits2KHR(..)- , FormatFeatureFlags2KHR- , Flags64 ) where import Vulkan.Internal.Utils (traceAroundEvent)@@ -610,7 +607,7 @@ import Vulkan.Dynamic (DeviceCmds(pVkGetImageDrmFormatModifierPropertiesEXT)) import Vulkan.Core10.Handles (Device_T) import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Handles (Image(..)) import Vulkan.Core10.Enums.Result (Result)@@ -626,9 +623,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe@@ -771,7 +765,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://www.khronos.org/registry/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@@ -798,7 +792,7 @@ -- not necessarily contiguous. -- -- If an image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://www.khronos.org/registry/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@@ -808,7 +802,7 @@ -- returned in the same @pNext@ chain. -- -- If an image is--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://www.khronos.org/registry/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@@ -1217,7 +1211,7 @@ -- 'getImageDrmFormatModifierPropertiesEXT' data ImageDrmFormatModifierPropertiesEXT = ImageDrmFormatModifierPropertiesEXT { -- | @drmFormatModifier@ returns the image’s- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.+ -- <https://www.khronos.org/registry/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)@@ -1342,7 +1336,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>, -- 'DrmFormatModifierPropertiesList2EXT',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlags2' data DrmFormatModifierProperties2EXT = DrmFormatModifierProperties2EXT { -- | @drmFormatModifier@ is a /Linux DRM format modifier/. drmFormatModifier :: Word64@@ -1352,10 +1346,10 @@ -- below. drmFormatModifierPlaneCount :: Word32 , -- | @drmFormatModifierTilingFeatures@ is a bitmask of- -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'- -- that are supported by any image created with @format@ and+ -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2' that+ -- are supported by any image created with @format@ and -- @drmFormatModifier@.- drmFormatModifierTilingFeatures :: FormatFeatureFlags2KHR+ drmFormatModifierTilingFeatures :: FormatFeatureFlags2 } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -1368,21 +1362,21 @@ pokeCStruct p DrmFormatModifierProperties2EXT{..} f = do poke ((p `plusPtr` 0 :: Ptr Word64)) (drmFormatModifier) poke ((p `plusPtr` 8 :: Ptr Word32)) (drmFormatModifierPlaneCount)- poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR)) (drmFormatModifierTilingFeatures)+ poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2)) (drmFormatModifierTilingFeatures) f cStructSize = 24 cStructAlignment = 8 pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr Word64)) (zero) poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR)) (zero)+ poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2)) (zero) f instance FromCStruct DrmFormatModifierProperties2EXT where peekCStruct p = do drmFormatModifier <- peek @Word64 ((p `plusPtr` 0 :: Ptr Word64)) drmFormatModifierPlaneCount <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))- drmFormatModifierTilingFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR))+ drmFormatModifierTilingFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2)) pure $ DrmFormatModifierProperties2EXT drmFormatModifier drmFormatModifierPlaneCount drmFormatModifierTilingFeatures
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot view
@@ -67,9 +67,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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @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>^ -- and--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^.+-- @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>^. -- 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.@@ -250,33 +250,33 @@ -- == Prior Art -- -- Extension--- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^+-- @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>^ -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @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>^ -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^+-- @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>^ -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- 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>^, -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^;+-- @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>^; -- 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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^.+-- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^. -- -- == New Commands --@@ -371,10 +371,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.2-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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @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>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- 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>^, -- 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 +397,10 @@ -- /must/ be 0. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @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>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- 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>^, -- 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.@@ -545,7 +545,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Graeme Leese@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2020-04-27 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -57,7 +66,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.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>. -- -- == New Structures --@@ -75,8 +84,14 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Issues -- -- 1. How does this extension differ from VK_EXT_robustness2?@@ -105,112 +120,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_robustness Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_image_robustness ( PhysicalDeviceImageRobustnessFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_image_robustness ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT+ , PhysicalDeviceImageRobustnessFeaturesEXT , EXT_IMAGE_ROBUSTNESS_SPEC_VERSION , pattern EXT_IMAGE_ROBUSTNESS_SPEC_VERSION , EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME , pattern EXT_IMAGE_ROBUSTNESS_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_ROBUSTNESS_FEATURES_EXT))--- | VkPhysicalDeviceImageRobustnessFeaturesEXT - Structure describing the--- out-of-bounds behavior for an implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceImageRobustnessFeaturesEXT' 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. 'PhysicalDeviceImageRobustnessFeaturesEXT' /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_robustness VK_EXT_image_robustness>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeaturesEXT- { -- | #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.2-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.2-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 }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceImageRobustnessFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceImageRobustnessFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES -instance ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceImageRobustnessFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustImageAccess))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceImageRobustnessFeaturesEXT where- peekCStruct p = do- robustImageAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceImageRobustnessFeaturesEXT- (bool32ToBool robustImageAccess)--instance Storable PhysicalDeviceImageRobustnessFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceImageRobustnessFeaturesEXT where- zero = PhysicalDeviceImageRobustnessFeaturesEXT- zero+-- No documentation found for TopLevel "VkPhysicalDeviceImageRobustnessFeaturesEXT"+type PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures type EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot
@@ -1,124 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_image_robustness - device extension------ == VK_EXT_image_robustness------ [__Name String__]--- @VK_EXT_image_robustness@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 336------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Graeme Leese--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_robustness] @gnl21%0A<<Here describe the issue or question you have about the VK_EXT_image_robustness extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-04-27------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Graeme Leese, Broadcom------ - Jan-Harald Fredriksen, ARM------ - Jeff Bolz, NVIDIA------ - Spencer Fricke, Samsung------ - Courtney Goeltzenleuchter, Google------ - Slawomir Cygan, Intel------ == Description------ This extension adds stricter requirements for how out of bounds reads--- from images are handled. Rather than returning undefined values, most--- 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.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceImageRobustnessFeaturesEXT'------ == New Enum Constants------ - 'EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME'------ - 'EXT_IMAGE_ROBUSTNESS_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT'------ == Issues------ 1. How does this extension differ from VK_EXT_robustness2?------ The guarantees provided by this extension are a subset of those provided--- by the robustImageAccess2 feature of VK_EXT_robustness2. Where this--- extension allows return values of (0, 0, 0, 0) or (0, 0, 0, 1),--- robustImageAccess2 requires that a particular value dependent on the--- image format be returned. This extension provides no guarantees about--- the values returned for an access to an invalid Lod.------ == Examples------ None.------ == Version History------ - Revision 1, 2020-04-27 (Graeme Leese)------ - Initial draft------ == See Also------ 'PhysicalDeviceImageRobustnessFeaturesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceImageRobustnessFeaturesEXT--instance ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT-instance Show PhysicalDeviceImageRobustnessFeaturesEXT--instance FromCStruct PhysicalDeviceImageRobustnessFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs view
@@ -53,9 +53,9 @@ -- == Description -- -- This extension allows applications to clamp the minimum LOD value during--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+-- <https://www.khronos.org/registry/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 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -171,9 +171,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.2-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+ -- <https://www.khronos.org/registry/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 +221,7 @@ -- == Valid Usage -- -- - #VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-minLod minLod>+-- <https://www.khronos.org/registry/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
@@ -53,9 +53,9 @@ -- == Description -- -- This extension allows applications to clamp the minimum LOD value during--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+-- <https://www.khronos.org/registry/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 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -25,6 +25,11 @@ -- -- - Requires @VK_KHR_maintenance1@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Daniel Rakos@@ -35,6 +40,10 @@ -- [__Last Modified Date__] -- 2018-08-01 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -86,18 +95,30 @@ -- -- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType': ----- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- - 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT'+-- - 'STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT'+-- - 'STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- 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>+-- in the form of the+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize>+-- limit.+-- -- == Issues -- -- 1) Do we need a new storage class for inline uniform blocks vs uniform@@ -170,356 +191,69 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_inline_uniform_block ( PhysicalDeviceInlineUniformBlockFeaturesEXT(..)- , PhysicalDeviceInlineUniformBlockPropertiesEXT(..)- , WriteDescriptorSetInlineUniformBlockEXT(..)- , DescriptorPoolInlineUniformBlockCreateInfoEXT(..)+module Vulkan.Extensions.VK_EXT_inline_uniform_block ( pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT+ , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT+ , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT+ , pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT+ , pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT+ , PhysicalDeviceInlineUniformBlockFeaturesEXT+ , PhysicalDeviceInlineUniformBlockPropertiesEXT+ , WriteDescriptorSetInlineUniformBlockEXT+ , DescriptorPoolInlineUniformBlockCreateInfoEXT , EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION , pattern EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION , EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME , pattern EXT_INLINE_UNIFORM_BLOCK_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.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT))--- | VkPhysicalDeviceInlineUniformBlockFeaturesEXT - Structure describing--- inline uniform block features that can be supported by an implementation------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceInlineUniformBlockFeaturesEXT' 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. 'PhysicalDeviceInlineUniformBlockFeaturesEXT' /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_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeaturesEXT- { -- | #features-inlineUniformBlock# @inlineUniformBlock@ indicates whether the- -- implementation supports inline uniform block descriptors. If this- -- feature is not enabled,- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'- -- /must/ not be used.- inlineUniformBlock :: Bool- , -- | #features-descriptorBindingInlineUniformBlockUpdateAfterBind#- -- @descriptorBindingInlineUniformBlockUpdateAfterBind@ indicates whether- -- the implementation supports updating inline uniform block descriptors- -- after a set is bound. If this feature is not enabled,- -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'- -- /must/ not be used with- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'.- descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceInlineUniformBlockFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceInlineUniformBlockFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (DescriptorPoolInlineUniformBlockCreateInfo)+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties)+import Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlock)+import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK))+-- No documentation found for TopLevel "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT"+pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK -instance ToCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceInlineUniformBlockFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (inlineUniformBlock))- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (descriptorBindingInlineUniformBlockUpdateAfterBind))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_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 PhysicalDeviceInlineUniformBlockFeaturesEXT where- peekCStruct p = do- inlineUniformBlock <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- descriptorBindingInlineUniformBlockUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- pure $ PhysicalDeviceInlineUniformBlockFeaturesEXT- (bool32ToBool inlineUniformBlock) (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES -instance Storable PhysicalDeviceInlineUniformBlockFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceInlineUniformBlockFeaturesEXT where- zero = PhysicalDeviceInlineUniformBlockFeaturesEXT- zero- zero+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES --- | VkPhysicalDeviceInlineUniformBlockPropertiesEXT - Structure describing--- inline uniform block properties that can be supported by an--- implementation------ = Description------ If the 'PhysicalDeviceInlineUniformBlockPropertiesEXT' 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_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockPropertiesEXT- { -- | #limits-maxInlineUniformBlockSize# @maxInlineUniformBlockSize@ is the- -- maximum size in bytes of an- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>- -- binding.- maxInlineUniformBlockSize :: Word32- , -- No documentation found for Nested "VkPhysicalDeviceInlineUniformBlockPropertiesEXT" "maxPerStageDescriptorInlineUniformBlocks"- maxPerStageDescriptorInlineUniformBlocks :: Word32- , -- | #limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks#- -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to- -- @maxPerStageDescriptorInlineUniformBlocks@ but counts descriptor- -- bindings from descriptor sets created with or without the- -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'- -- bit set.- maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32- , -- | #limits-maxDescriptorSetInlineUniformBlocks#- -- @maxDescriptorSetInlineUniformBlocks@ is the maximum number of inline- -- uniform block bindings that /can/ be included in descriptor bindings in- -- a pipeline layout across all pipeline shader stages and descriptor set- -- numbers. Descriptor bindings with a descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'- -- count against this limit. Only descriptor bindings in descriptor set- -- layouts created without the- -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'- -- bit set count against this limit.- maxDescriptorSetInlineUniformBlocks :: Word32- , -- | #limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks#- -- @maxDescriptorSetUpdateAfterBindInlineUniformBlocks@ is similar to- -- @maxDescriptorSetInlineUniformBlocks@ but counts descriptor bindings- -- from descriptor sets created with or without the- -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'- -- bit set.- maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceInlineUniformBlockPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceInlineUniformBlockPropertiesEXT+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT"+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK -instance ToCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT where- withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceInlineUniformBlockPropertiesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockSize)- poke ((p `plusPtr` 20 :: Ptr Word32)) (maxPerStageDescriptorInlineUniformBlocks)- poke ((p `plusPtr` 24 :: Ptr Word32)) (maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks)- poke ((p `plusPtr` 28 :: Ptr Word32)) (maxDescriptorSetInlineUniformBlocks)- poke ((p `plusPtr` 32 :: Ptr Word32)) (maxDescriptorSetUpdateAfterBindInlineUniformBlocks)- f- cStructSize = 40- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)- f -instance FromCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT where- peekCStruct p = do- maxInlineUniformBlockSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- maxPerStageDescriptorInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))- maxDescriptorSetInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))- maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))- pure $ PhysicalDeviceInlineUniformBlockPropertiesEXT- maxInlineUniformBlockSize maxPerStageDescriptorInlineUniformBlocks maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks maxDescriptorSetInlineUniformBlocks maxDescriptorSetUpdateAfterBindInlineUniformBlocks+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO -instance Storable PhysicalDeviceInlineUniformBlockPropertiesEXT where- sizeOf ~_ = 40- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceInlineUniformBlockPropertiesEXT where- zero = PhysicalDeviceInlineUniformBlockPropertiesEXT- zero- zero- zero- zero- zero+-- No documentation found for TopLevel "VkPhysicalDeviceInlineUniformBlockFeaturesEXT"+type PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures --- | VkWriteDescriptorSetInlineUniformBlockEXT - Structure specifying inline--- uniform block data------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlockEXT- { -- | @dataSize@ is the number of bytes of inline uniform block data pointed- -- to by @pData@.- --- -- #VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-02222#- -- @dataSize@ /must/ be an integer multiple of @4@- --- -- #VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-arraylength#- -- @dataSize@ /must/ be greater than @0@- dataSize :: Word32- , -- | @pData@ is a pointer to @dataSize@ number of bytes of data to write to- -- the inline uniform block.- --- -- #VUID-VkWriteDescriptorSetInlineUniformBlockEXT-pData-parameter# @pData@- -- /must/ be a valid pointer to an array of @dataSize@ bytes- data' :: Ptr ()- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (WriteDescriptorSetInlineUniformBlockEXT)-#endif-deriving instance Show WriteDescriptorSetInlineUniformBlockEXT+-- No documentation found for TopLevel "VkPhysicalDeviceInlineUniformBlockPropertiesEXT"+type PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties -instance ToCStruct WriteDescriptorSetInlineUniformBlockEXT where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p WriteDescriptorSetInlineUniformBlockEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (dataSize)- poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')- f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)- f -instance FromCStruct WriteDescriptorSetInlineUniformBlockEXT where- peekCStruct p = do- dataSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))- pure $ WriteDescriptorSetInlineUniformBlockEXT- dataSize pData--instance Storable WriteDescriptorSetInlineUniformBlockEXT where- sizeOf ~_ = 32- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero WriteDescriptorSetInlineUniformBlockEXT where- zero = WriteDescriptorSetInlineUniformBlockEXT- zero- zero+-- No documentation found for TopLevel "VkWriteDescriptorSetInlineUniformBlockEXT"+type WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock --- | VkDescriptorPoolInlineUniformBlockCreateInfoEXT - Structure specifying--- the maximum number of inline uniform block bindings of a newly created--- descriptor pool------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_block VK_EXT_inline_uniform_block>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfoEXT- { -- | @maxInlineUniformBlockBindings@ is the number of inline uniform block- -- bindings to allocate.- maxInlineUniformBlockBindings :: Word32 }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DescriptorPoolInlineUniformBlockCreateInfoEXT)-#endif-deriving instance Show DescriptorPoolInlineUniformBlockCreateInfoEXT--instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p DescriptorPoolInlineUniformBlockCreateInfoEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (maxInlineUniformBlockBindings)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- f--instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT where- peekCStruct p = do- maxInlineUniformBlockBindings <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- pure $ DescriptorPoolInlineUniformBlockCreateInfoEXT- maxInlineUniformBlockBindings--instance Storable DescriptorPoolInlineUniformBlockCreateInfoEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero DescriptorPoolInlineUniformBlockCreateInfoEXT where- zero = DescriptorPoolInlineUniformBlockCreateInfoEXT- zero+-- No documentation found for TopLevel "VkDescriptorPoolInlineUniformBlockCreateInfoEXT"+type DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo type EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot
@@ -1,217 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_inline_uniform_block - device extension------ == VK_EXT_inline_uniform_block------ [__Name String__]--- @VK_EXT_inline_uniform_block@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 139------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ - Requires @VK_KHR_maintenance1@------ [__Contact__]------ - Daniel Rakos--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_inline_uniform_block] @aqnuep%0A<<Here describe the issue or question you have about the VK_EXT_inline_uniform_block extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2018-08-01------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Daniel Rakos, AMD------ - Jeff Bolz, NVIDIA------ - Slawomir Grajewski, Intel------ - Neil Henning, Codeplay------ == Description------ This extension introduces the ability to back uniform blocks directly--- with descriptor sets by storing inline uniform data within descriptor--- pool storage. Compared to push constants this new construct allows--- uniform data to be reused across multiple disjoint sets of drawing or--- dispatching commands and /may/ enable uniform data to be accessed with--- fewer indirections compared to uniforms backed by buffer memory.------ == New Structures------ - Extending 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':------ - 'DescriptorPoolInlineUniformBlockCreateInfoEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceInlineUniformBlockFeaturesEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------ - 'PhysicalDeviceInlineUniformBlockPropertiesEXT'------ - Extending 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet':------ - 'WriteDescriptorSetInlineUniformBlockEXT'------ == New Enum Constants------ - 'EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME'------ - 'EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':------ - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT'------ == Issues------ 1) Do we need a new storage class for inline uniform blocks vs uniform--- blocks?------ __RESOLVED__: No. The @Uniform@ storage class is used to allow the same--- syntax used for both uniform buffers and inline uniform blocks.------ 2) Is the descriptor array index and array size expressed in terms of--- bytes or dwords for inline uniform block descriptors?------ __RESOLVED__: In bytes, but both /must/ be a multiple of 4, similar to--- how push constant ranges are specified. The @descriptorCount@ of--- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' thus provides--- the total number of bytes a particular binding with an inline uniform--- block descriptor type can hold, while the @srcArrayElement@,--- @dstArrayElement@, and @descriptorCount@ members of--- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',--- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet', and--- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateEntry'--- (where applicable) specify the byte offset and number of bytes to--- write\/copy to the binding’s backing store. Additionally, the @stride@--- member of--- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateEntry'--- is ignored for inline uniform blocks and a default value of one is used,--- meaning that the data to update inline uniform block bindings with must--- be contiguous in memory.------ 3) What layout rules apply for uniform blocks corresponding to inline--- constants?------ __RESOLVED__: They use the same layout rules as uniform buffers.------ 4) Do we need to add non-uniform indexing features\/properties as--- introduced by @VK_EXT_descriptor_indexing@ for inline uniform blocks?------ __RESOLVED__: No, because inline uniform blocks are not allowed to be--- “arrayed”. A single binding with an inline uniform block descriptor type--- corresponds to a single uniform block instance and the array indices--- inside that binding refer to individual offsets within the uniform block--- (see issue #2). However, this extension does introduce new--- features\/properties about the level of support for update-after-bind--- inline uniform blocks.------ 5) Is the @descriptorBindingVariableDescriptorCount@ feature introduced--- by @VK_EXT_descriptor_indexing@ supported for inline uniform blocks?------ __RESOLVED__: Yes, as long as other inline uniform block specific limits--- are respected.------ 6) Do the robustness guarantees of @robustBufferAccess@ apply to inline--- uniform block accesses?------ __RESOLVED__: No, similarly to push constants, as they are not backed by--- buffer memory like uniform buffers.------ == Version History------ - Revision 1, 2018-08-01 (Daniel Rakos)------ - Internal revisions------ == See Also------ 'DescriptorPoolInlineUniformBlockCreateInfoEXT',--- 'PhysicalDeviceInlineUniformBlockFeaturesEXT',--- 'PhysicalDeviceInlineUniformBlockPropertiesEXT',--- 'WriteDescriptorSetInlineUniformBlockEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_inline_uniform_block ( DescriptorPoolInlineUniformBlockCreateInfoEXT- , PhysicalDeviceInlineUniformBlockFeaturesEXT- , PhysicalDeviceInlineUniformBlockPropertiesEXT- , WriteDescriptorSetInlineUniformBlockEXT- ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DescriptorPoolInlineUniformBlockCreateInfoEXT--instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT-instance Show DescriptorPoolInlineUniformBlockCreateInfoEXT--instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT---data PhysicalDeviceInlineUniformBlockFeaturesEXT--instance ToCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT-instance Show PhysicalDeviceInlineUniformBlockFeaturesEXT--instance FromCStruct PhysicalDeviceInlineUniformBlockFeaturesEXT---data PhysicalDeviceInlineUniformBlockPropertiesEXT--instance ToCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT-instance Show PhysicalDeviceInlineUniformBlockPropertiesEXT--instance FromCStruct PhysicalDeviceInlineUniformBlockPropertiesEXT---data WriteDescriptorSetInlineUniformBlockEXT--instance ToCStruct WriteDescriptorSetInlineUniformBlockEXT-instance Show WriteDescriptorSetInlineUniformBlockEXT--instance FromCStruct WriteDescriptorSetInlineUniformBlockEXT-
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -127,7 +127,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -307,19 +307,19 @@ data PhysicalDeviceLineRasterizationFeaturesEXT = PhysicalDeviceLineRasterizationFeaturesEXT { -- | #features-rectangularLines# @rectangularLines@ indicates whether the -- implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines rectangular line rasterization>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham-style line rasterization>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-lines-smooth smooth line rasterization>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+ -- <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@@@ -327,12 +327,12 @@ stippledRectangularLines :: Bool , -- | #features-stippledBresenhamLines# @stippledBresenhamLines@ indicates -- whether the implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+ -- <https://www.khronos.org/registry/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 +417,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.2-extensions/html/vkspec.html#primsrast-lines line segments>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines line segments>. lineSubPixelPrecisionBits :: Word32 } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -470,47 +470,47 @@ -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768# -- If @lineRasterizationMode@ is -- 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT', then the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rectangularLines rectangularLines>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bresenhamLines bresenhamLines>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bresenhamLines smoothLines>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines 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.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+-- <https://www.khronos.org/registry/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 +535,7 @@ -- the style of line rasterization. lineRasterizationMode :: LineRasterizationModeEXT , -- | @stippledLineEnable@ enables- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>.+ -- <https://www.khronos.org/registry/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 +608,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.2-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.+-- <https://www.khronos.org/registry/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 +616,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.2-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham Line Segment Rasterization>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-lines-smooth Smooth Lines>.+-- <https://www.khronos.org/registry/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
@@ -127,7 +127,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -84,7 +84,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_load_store_op_none Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -96,9 +96,9 @@ ) where import Data.String (IsString)-import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE_KHR))+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE)) -- No documentation found for TopLevel "VK_ATTACHMENT_STORE_OP_NONE_EXT"-pattern ATTACHMENT_STORE_OP_NONE_EXT = ATTACHMENT_STORE_OP_NONE_KHR+pattern ATTACHMENT_STORE_OP_NONE_EXT = ATTACHMENT_STORE_OP_NONE type EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_EXT_memory_budget.hs view
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification>+-- <https://www.khronos.org/registry/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_metal_surface.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -225,7 +225,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawMultiEXT-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -281,7 +281,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMultiEXT-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -289,7 +289,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -490,50 +490,50 @@ -- -- - #VUID-vkCmdDrawMultiEXT-viewportCount-03417# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMultiEXT-scissorCount-03418# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMultiEXT-viewportCount-03419# If the bound graphics -- pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawMultiEXT-viewportCount-04137# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -541,11 +541,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiEXT-viewportCount-04138# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -553,11 +553,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiEXT-viewportCount-04139# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -565,11 +565,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiEXT-viewportCount-04140# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -577,11 +577,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -589,11 +589,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -601,21 +601,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiEXT-None-04876# If the bound graphics pipeline -- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawMultiEXT-None-04877# If the bound graphics pipeline -- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -633,14 +633,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawMultiEXT-blendEnable-04727# If rasterization is not@@ -663,7 +663,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06172# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -672,7 +672,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06173# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -681,7 +681,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06174# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -690,7 +690,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06175# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -699,7 +699,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06176# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -708,7 +708,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06177# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -717,61 +717,61 @@ -- -- - #VUID-vkCmdDrawMultiEXT-viewMask-06178# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06183# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -780,7 +780,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06184# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -793,11 +793,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -809,13 +809,13 @@ -- -- - #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -823,17 +823,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -841,7 +841,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188# If the currently -- bound pipeline was created without a@@ -849,11 +849,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -862,37 +862,37 @@ -- -- - #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiEXT-renderPass-06198# If the current render pass -- instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -937,7 +937,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-primitiveTopology-03420# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- '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@@ -953,7 +953,7 @@ -- was created with both the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -961,7 +961,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-pStrides-04913# If the bound graphics -- pipeline was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -989,7 +989,7 @@ -- -- - #VUID-vkCmdDrawMultiEXT-None-04879# If the bound graphics pipeline -- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- '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@@ -1006,7 +1006,7 @@ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV' -- -- - #VUID-vkCmdDrawMultiEXT-None-04933# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDraw multiDraw>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> -- feature /must/ be enabled -- -- - #VUID-vkCmdDrawMultiEXT-drawCount-04934# @drawCount@ /must/ be less@@ -1131,7 +1131,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1187,7 +1187,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -1195,7 +1195,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -1396,50 +1396,50 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419# If the bound -- graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1447,11 +1447,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1459,11 +1459,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1471,11 +1471,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1483,11 +1483,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141# If -- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1495,11 +1495,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142# If -- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1507,21 +1507,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04876# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawMultiIndexedEXT-None-04877# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -1539,14 +1539,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727# If rasterization@@ -1569,7 +1569,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06172# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1578,7 +1578,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06173# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1587,7 +1587,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06174# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1596,7 +1596,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06175# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1605,7 +1605,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06176# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1614,7 +1614,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06177# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1623,61 +1623,61 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06183# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1686,7 +1686,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06184# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1699,11 +1699,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1715,13 +1715,13 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -1729,17 +1729,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -1747,7 +1747,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188# If the -- currently bound pipeline was created without a@@ -1755,11 +1755,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1768,37 +1768,37 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06189# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -1843,7 +1843,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- '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@@ -1859,7 +1859,7 @@ -- pipeline was created with both the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1867,7 +1867,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913# If the bound graphics -- pipeline was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1895,7 +1895,7 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04879# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- '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@@ -1912,7 +1912,7 @@ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04937# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDraw multiDraw>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> -- feature /must/ be enabled -- -- - #VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938# (@indexSize@ ×
src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot view
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>+-- <https://www.khronos.org/registry/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_pageable_device_local_memory.hs view
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -93,7 +93,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -93,7 +93,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -47,7 +47,7 @@ -- DRM nodes on Linux. -- -- Its functionality closely overlaps with--- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^.+-- @EGL_EXT_device_drm@<https://www.khronos.org/registry/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.@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -47,7 +47,7 @@ -- DRM nodes on Linux. -- -- Its functionality closely overlaps with--- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^.+-- @EGL_EXT_device_drm@<https://www.khronos.org/registry/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.@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -21,6 +21,11 @@ -- -- - Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Gregory Grebe@@ -31,6 +36,10 @@ -- [__Last Modified Date__] -- 2020-03-23 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -109,29 +118,27 @@ -- rather than forcing an unexpected wait. -- -- Applications can prevent unexpected compilation by setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@. When set, an ICD must not attempt+-- 'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT' on+-- @Vk*PipelineCreateInfo@::@flags@. When set, an ICD must not attempt -- pipeline or shader compilation to create the pipeline object. The ICD--- will return the result--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'. An ICD may--- still return a valid 'Vulkan.Core10.Handles.Pipeline' object by either+-- will return the result 'PIPELINE_COMPILE_REQUIRED_EXT'. An ICD may still+-- return a valid 'Vulkan.Core10.Handles.Pipeline' object by either -- re-using existing pre-compiled objects such as those from a pipeline -- cache, or derivative pipelines. -- -- By default @vkCreate*Pipelines@ calls must attempt to create all -- pipelines before returning. Setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@ can be used as an escape hatch for+-- 'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' on+-- @Vk*PipelineCreateInfo@::@flags@ can be used as an escape hatch for -- batched pipeline creates. -- -- Hidden locks also add to the unpredictability of the cost of pipeline -- creation. The most common case of locks inside the @vkCreate*Pipelines@ -- is internal synchronization of the 'Vulkan.Core10.Handles.PipelineCache'--- object.--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.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.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- 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>. -- -- The hope is that armed with this information application and engine -- developers can leverage existing asset streaming systems to recover from@@ -158,25 +165,31 @@ -- - Extending -- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'+-- - 'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT' -- -- - Extending -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+-- - 'PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' ----- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+-- - 'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.Result.Result': -- -- - 'ERROR_PIPELINE_COMPILE_REQUIRED_EXT' ----- - 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+-- - 'PIPELINE_COMPILE_REQUIRED_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2019-11-01 (Gregory Grebe)@@ -189,9 +202,8 @@ -- -- - Revision 3, 2020-03-23 (Tobias Hector) ----- - Changed--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT' to a--- success code, adding an alias for the original+-- - Changed 'PIPELINE_COMPILE_REQUIRED_EXT' to a success code,+-- adding an alias for the original -- 'ERROR_PIPELINE_COMPILE_REQUIRED_EXT'. Also updated the xml to -- include these codes as return values. --@@ -203,124 +215,59 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control ( pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT- , PhysicalDevicePipelineCreationCacheControlFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT+ , pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT+ , pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT+ , pattern PIPELINE_COMPILE_REQUIRED_EXT+ , pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT+ , pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT+ , PhysicalDevicePipelineCreationCacheControlFeaturesEXT , EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION , pattern EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION , EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME , pattern EXT_PIPELINE_CREATION_CACHE_CONTROL_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.Result (Result(PIPELINE_COMPILE_REQUIRED_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT))--- No documentation found for TopLevel "VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT"-pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT = PIPELINE_COMPILE_REQUIRED_EXT+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures)+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlags)+import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlagBits(PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT))+import Vulkan.Core10.Enums.Result (Result(PIPELINE_COMPILE_REQUIRED))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES --- | VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT - Structure--- describing whether pipeline cache control can be supported by an--- implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' 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. 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' /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_creation_cache_control VK_EXT_pipeline_creation_cache_control>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeaturesEXT- { -- | #features-pipelineCreationCacheControl# @pipelineCreationCacheControl@- -- indicates that the implementation supports:- --- -- - The following /can/ be used in @Vk*PipelineCreateInfo@::@flags@:- --- -- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'- --- -- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'- --- -- - The following /can/ be used in- -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo'::@flags@:- --- -- - 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'- pipelineCreationCacheControl :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDevicePipelineCreationCacheControlFeaturesEXT)-#endif-deriving instance Show PhysicalDevicePipelineCreationCacheControlFeaturesEXT+-- No documentation found for TopLevel "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"+pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT -instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDevicePipelineCreationCacheControlFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineCreationCacheControl))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT where- peekCStruct p = do- pipelineCreationCacheControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDevicePipelineCreationCacheControlFeaturesEXT- (bool32ToBool pipelineCreationCacheControl)+-- No documentation found for TopLevel "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"+pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT -instance Storable PhysicalDevicePipelineCreationCacheControlFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDevicePipelineCreationCacheControlFeaturesEXT where- zero = PhysicalDevicePipelineCreationCacheControlFeaturesEXT- zero+-- No documentation found for TopLevel "VK_PIPELINE_COMPILE_REQUIRED_EXT"+pattern PIPELINE_COMPILE_REQUIRED_EXT = PIPELINE_COMPILE_REQUIRED+++-- No documentation found for TopLevel "VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT"+pattern ERROR_PIPELINE_COMPILE_REQUIRED_EXT = PIPELINE_COMPILE_REQUIRED+++-- No documentation found for TopLevel "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"+pattern PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT+++-- No documentation found for TopLevel "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT"+type PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures type EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION = 3
− src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot
@@ -1,222 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_pipeline_creation_cache_control - device extension------ == VK_EXT_pipeline_creation_cache_control------ [__Name String__]--- @VK_EXT_pipeline_creation_cache_control@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 298------ [__Revision__]--- 3------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ [__Contact__]------ - Gregory Grebe--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_creation_cache_control] @grgrebe_amd%0A<<Here describe the issue or question you have about the VK_EXT_pipeline_creation_cache_control extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-03-23------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Gregory Grebe, AMD------ - Tobias Hector, AMD------ - Matthaeus Chajdas, AMD------ - Mitch Singer, AMD------ - Spencer Fricke, Samsung Electronics------ - Stuart Smith, Imagination Technologies------ - Jeff Bolz, NVIDIA Corporation------ - Daniel Koch, NVIDIA Corporation------ - Dan Ginsburg, Valve Corporation------ - Jeff Leger, QUALCOMM------ - Michal Pietrasiuk, Intel------ - Jan-Harald Fredriksen, Arm Limited------ == Description------ This extension adds flags to @Vk*PipelineCreateInfo@ and--- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo' structures with--- the aim of improving the predictability of pipeline creation cost. The--- goal is to provide information about potentially expensive hazards--- within the client driver during pipeline creation to the application--- before carrying them out rather than after.------ == Background------ Pipeline creation is a costly operation, and the explicit nature of the--- Vulkan design means that cost is not hidden from the developer.--- Applications are also expected to schedule, prioritize, and load balance--- all calls for pipeline creation. It is strongly advised that--- applications create pipelines sufficiently ahead of their usage. Failure--- to do so will result in an unresponsive application, intermittent--- stuttering, or other poor user experiences. Proper usage of pipeline--- caches and\/or derivative pipelines help mitigate this but is not--- assured to eliminate disruption in all cases. In the event that an--- ahead-of-time creation is not possible, considerations should be taken--- to ensure that the current execution context is suitable for the--- workload of pipeline creation including possible shader compilation.------ Applications making API calls to create a pipeline must be prepared for--- any of the following to occur:------ - OS\/kernel calls to be made by the ICD------ - Internal memory allocation not tracked by the @pAllocator@ passed to--- @vkCreate*Pipelines@------ - Internal thread synchronization or yielding of the current thread’s--- core------ - Extremely long (multi-millisecond+), blocking, compilation times------ - Arbitrary call stacks depths and stack memory usage------ The job or task based game engines that are being developed to take--- advantage of explicit graphics APIs like Vulkan may behave exceptionally--- poorly if any of the above scenarios occur. However, most game engines--- are already built to “stream” in assets dynamically as the user plays--- the game. By adding control by way of--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags', we can--- require an ICD to report back a failure in critical execution paths--- rather than forcing an unexpected wait.------ Applications can prevent unexpected compilation by setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@. When set, an ICD must not attempt--- pipeline or shader compilation to create the pipeline object. The ICD--- will return the result--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'. An ICD may--- still return a valid 'Vulkan.Core10.Handles.Pipeline' object by either--- re-using existing pre-compiled objects such as those from a pipeline--- cache, or derivative pipelines.------ By default @vkCreate*Pipelines@ calls must attempt to create all--- pipelines before returning. Setting--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'--- on @Vk*PipelineCreateInfo@::@flags@ can be used as an escape hatch for--- batched pipeline creates.------ Hidden locks also add to the unpredictability of the cost of pipeline--- creation. The most common case of locks inside the @vkCreate*Pipelines@--- is internal synchronization of the 'Vulkan.Core10.Handles.PipelineCache'--- object.--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.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.2-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--- \"just-in-time\" pipeline creation stalls.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT'------ == New Enums------ - 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits'------ == New Enum Constants------ - 'EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME'------ - 'EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits':------ - 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':------ - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'------ - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'------ - Extending 'Vulkan.Core10.Enums.Result.Result':------ - 'ERROR_PIPELINE_COMPILE_REQUIRED_EXT'------ - 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT'------ == Version History------ - Revision 1, 2019-11-01 (Gregory Grebe)------ - Initial revision------ - Revision 2, 2020-02-24 (Gregory Grebe)------ - Initial public revision------ - Revision 3, 2020-03-23 (Tobias Hector)------ - Changed--- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT' to a--- success code, adding an alias for the original--- 'ERROR_PIPELINE_COMPILE_REQUIRED_EXT'. Also updated the xml to--- include these codes as return values.------ == See Also------ 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT',--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PipelineCacheCreateFlagBits'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDevicePipelineCreationCacheControlFeaturesEXT--instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT-instance Show PhysicalDevicePipelineCreationCacheControlFeaturesEXT--instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs view
@@ -21,6 +21,11 @@ -- -- - Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Special Use__] -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>@@ -35,6 +40,10 @@ -- [__Last Modified Date__] -- 2019-03-12 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -94,8 +103,14 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT'+-- - 'STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2019-03-12 (Jean-Francois Roy)@@ -111,344 +126,45 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback ( PipelineCreationFeedbackEXT(..)- , PipelineCreationFeedbackCreateInfoEXT(..)+module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback ( pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT , PipelineCreationFeedbackFlagsEXT- , PipelineCreationFeedbackFlagBitsEXT( PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT- , PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT- , PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT- , ..- )+ , PipelineCreationFeedbackFlagBitsEXT+ , PipelineCreationFeedbackEXT+ , PipelineCreationFeedbackCreateInfoEXT , EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION , pattern EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION , EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME , pattern EXT_PIPELINE_CREATION_FEEDBACK_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 (showString)-import Numeric (showHex)-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.Bits (Bits)-import Data.Bits (FiniteBits) 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 GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Word (Word32)-import Data.Word (Word64)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT))--- | VkPipelineCreationFeedbackEXT - Feedback about the creation of a--- pipeline or pipeline stage------ = Description------ If the 'PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT' is not set in @flags@,--- an implementation /must/ not set any other bits in @flags@, and the--- values of all other 'PipelineCreationFeedbackEXT' data members are--- undefined.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,--- 'PipelineCreationFeedbackCreateInfoEXT',--- 'PipelineCreationFeedbackFlagBitsEXT',--- 'PipelineCreationFeedbackFlagsEXT'-data PipelineCreationFeedbackEXT = PipelineCreationFeedbackEXT- { -- | @flags@ is a bitmask of 'PipelineCreationFeedbackFlagBitsEXT' providing- -- feedback about the creation of a pipeline or of a pipeline stage.- flags :: PipelineCreationFeedbackFlagsEXT- , -- | @duration@ is the duration spent creating a pipeline or pipeline stage- -- in nanoseconds.- duration :: Word64- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineCreationFeedbackEXT)-#endif-deriving instance Show PipelineCreationFeedbackEXT+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedback)+import Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlagBits)+import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits (PipelineCreationFeedbackFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO -instance ToCStruct PipelineCreationFeedbackEXT where- withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineCreationFeedbackEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlagsEXT)) (flags)- poke ((p `plusPtr` 8 :: Ptr Word64)) (duration)- f- cStructSize = 16- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlagsEXT)) (zero)- poke ((p `plusPtr` 8 :: Ptr Word64)) (zero)- f -instance FromCStruct PipelineCreationFeedbackEXT where- peekCStruct p = do- flags <- peek @PipelineCreationFeedbackFlagsEXT ((p `plusPtr` 0 :: Ptr PipelineCreationFeedbackFlagsEXT))- duration <- peek @Word64 ((p `plusPtr` 8 :: Ptr Word64))- pure $ PipelineCreationFeedbackEXT- flags duration+-- No documentation found for TopLevel "VkPipelineCreationFeedbackFlagsEXT"+type PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlags -instance Storable PipelineCreationFeedbackEXT where- sizeOf ~_ = 16- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PipelineCreationFeedbackEXT where- zero = PipelineCreationFeedbackEXT- zero- zero+-- No documentation found for TopLevel "VkPipelineCreationFeedbackFlagBitsEXT"+type PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits --- | VkPipelineCreationFeedbackCreateInfoEXT - Request for feedback about the--- creation of a pipeline------ = Description------ An implementation /should/ write pipeline creation feedback to--- @pPipelineCreationFeedback@ and /may/ write pipeline stage creation--- feedback to @pPipelineStageCreationFeedbacks@. An implementation /must/--- set or clear the 'PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT' in--- 'PipelineCreationFeedbackEXT'::@flags@ for @pPipelineCreationFeedback@--- and every element of @pPipelineStageCreationFeedbacks@.------ Note------ One common scenario for an implementation to skip per-stage feedback is--- when 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT'--- is set in @pPipelineCreationFeedback@.------ When chained to--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', or--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', the @i@ element of--- @pPipelineStageCreationFeedbacks@ corresponds to the @i@ element of--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@pStages@,--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@pStages@,--- or 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@. When--- chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', the first--- element of @pPipelineStageCreationFeedbacks@ corresponds to--- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo'::@stage@.------ == Valid Usage------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02668#--- When chained to 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',--- 'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@--- /must/ equal--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@stageCount@------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02669#--- When chained to 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',--- 'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@--- /must/ equal 1------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02670#--- When chained to--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@--- /must/ equal--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'::@stageCount@------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02969#--- When chained to--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',--- 'PipelineCreationFeedbackEXT'::@pipelineStageCreationFeedbackCount@--- /must/ equal--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV'::@stageCount@------ == Valid Usage (Implicit)------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT'------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineCreationFeedback-parameter#--- @pPipelineCreationFeedback@ /must/ be a valid pointer to a--- 'PipelineCreationFeedbackEXT' structure------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineStageCreationFeedbacks-parameter#--- @pPipelineStageCreationFeedbacks@ /must/ be a valid pointer to an--- array of @pipelineStageCreationFeedbackCount@--- 'PipelineCreationFeedbackEXT' structures------ - #VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-arraylength#--- @pipelineStageCreationFeedbackCount@ /must/ be greater than @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,--- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',--- 'PipelineCreationFeedbackEXT',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfoEXT- { -- | @pPipelineCreationFeedback@ is a pointer to a- -- 'PipelineCreationFeedbackEXT' structure.- pipelineCreationFeedback :: Ptr PipelineCreationFeedbackEXT- , -- | @pipelineStageCreationFeedbackCount@ is the number of elements in- -- @pPipelineStageCreationFeedbacks@.- pipelineStageCreationFeedbackCount :: Word32- , -- | @pPipelineStageCreationFeedbacks@ is a pointer to an array of- -- @pipelineStageCreationFeedbackCount@ 'PipelineCreationFeedbackEXT'- -- structures.- pipelineStageCreationFeedbacks :: Ptr PipelineCreationFeedbackEXT- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineCreationFeedbackCreateInfoEXT)-#endif-deriving instance Show PipelineCreationFeedbackCreateInfoEXT--instance ToCStruct PipelineCreationFeedbackCreateInfoEXT where- withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineCreationFeedbackCreateInfoEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (pipelineCreationFeedback)- poke ((p `plusPtr` 24 :: Ptr Word32)) (pipelineStageCreationFeedbackCount)- poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (pipelineStageCreationFeedbacks)- f- cStructSize = 40- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (zero)- poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedbackEXT))) (zero)- f--instance FromCStruct PipelineCreationFeedbackCreateInfoEXT where- peekCStruct p = do- pPipelineCreationFeedback <- peek @(Ptr PipelineCreationFeedbackEXT) ((p `plusPtr` 16 :: Ptr (Ptr PipelineCreationFeedbackEXT)))- pipelineStageCreationFeedbackCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))- pPipelineStageCreationFeedbacks <- peek @(Ptr PipelineCreationFeedbackEXT) ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedbackEXT)))- pure $ PipelineCreationFeedbackCreateInfoEXT- pPipelineCreationFeedback pipelineStageCreationFeedbackCount pPipelineStageCreationFeedbacks--instance Storable PipelineCreationFeedbackCreateInfoEXT where- sizeOf ~_ = 40- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PipelineCreationFeedbackCreateInfoEXT where- zero = PipelineCreationFeedbackCreateInfoEXT- zero- zero- zero+-- No documentation found for TopLevel "VkPipelineCreationFeedbackEXT"+type PipelineCreationFeedbackEXT = PipelineCreationFeedback -type PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlagBitsEXT---- | VkPipelineCreationFeedbackFlagBitsEXT - Bitmask specifying pipeline or--- pipeline stage creation feedback------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback VK_EXT_pipeline_creation_feedback>,--- 'PipelineCreationFeedbackCreateInfoEXT', 'PipelineCreationFeedbackEXT',--- 'PipelineCreationFeedbackFlagsEXT'-newtype PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBitsEXT Flags- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT' indicates that the feedback--- information is valid.-pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = PipelineCreationFeedbackFlagBitsEXT 0x00000001--- | 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT'--- indicates that a readily usable pipeline or pipeline stage was found in--- the @pipelineCache@ specified by the application in the pipeline--- creation command.------ An implementation /should/ set the--- 'PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT' bit--- if it was able to avoid the large majority of pipeline or pipeline stage--- creation work by using the @pipelineCache@ parameter of--- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV', or--- 'Vulkan.Core10.Pipeline.createComputePipelines'. When an implementation--- sets this bit for the entire pipeline, it /may/ leave it unset for any--- stage.------ Note------ 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--- 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_EXT =- PipelineCreationFeedbackFlagBitsEXT 0x00000002--- | 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT'--- indicates that the base pipeline specified by the @basePipelineHandle@--- or @basePipelineIndex@ member of the @Vk*PipelineCreateInfo@ structure--- was used to accelerate the creation of the pipeline.------ An implementation /should/ set the--- 'PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT' bit if--- it was able to avoid a significant amount of work by using the base--- pipeline.------ Note------ 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.-pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = PipelineCreationFeedbackFlagBitsEXT 0x00000004--conNamePipelineCreationFeedbackFlagBitsEXT :: String-conNamePipelineCreationFeedbackFlagBitsEXT = "PipelineCreationFeedbackFlagBitsEXT"--enumPrefixPipelineCreationFeedbackFlagBitsEXT :: String-enumPrefixPipelineCreationFeedbackFlagBitsEXT = "PIPELINE_CREATION_FEEDBACK_"--showTablePipelineCreationFeedbackFlagBitsEXT :: [(PipelineCreationFeedbackFlagBitsEXT, String)]-showTablePipelineCreationFeedbackFlagBitsEXT =- [ (PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT , "VALID_BIT_EXT")- , (PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT, "APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT")- , (PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT , "BASE_PIPELINE_ACCELERATION_BIT_EXT")- ]--instance Show PipelineCreationFeedbackFlagBitsEXT where- showsPrec = enumShowsPrec enumPrefixPipelineCreationFeedbackFlagBitsEXT- showTablePipelineCreationFeedbackFlagBitsEXT- conNamePipelineCreationFeedbackFlagBitsEXT- (\(PipelineCreationFeedbackFlagBitsEXT x) -> x)- (\x -> showString "0x" . showHex x)--instance Read PipelineCreationFeedbackFlagBitsEXT where- readPrec = enumReadPrec enumPrefixPipelineCreationFeedbackFlagBitsEXT- showTablePipelineCreationFeedbackFlagBitsEXT- conNamePipelineCreationFeedbackFlagBitsEXT- PipelineCreationFeedbackFlagBitsEXT+-- No documentation found for TopLevel "VkPipelineCreationFeedbackCreateInfoEXT"+type PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo type EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs-boot
@@ -1,140 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_pipeline_creation_feedback - device extension------ == VK_EXT_pipeline_creation_feedback------ [__Name String__]--- @VK_EXT_pipeline_creation_feedback@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 193------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ [__Special Use__]------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>------ [__Contact__]------ - Jean-Francois Roy--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_creation_feedback] @jfroy%0A<<Here describe the issue or question you have about the VK_EXT_pipeline_creation_feedback extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2019-03-12------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Jean-Francois Roy, Google------ - Hai Nguyen, Google------ - Andrew Ellem, Google------ - Bob Fraser, Google------ - Sujeevan Rajayogam, Google------ - Jan-Harald Fredriksen, ARM------ - Jeff Leger, Qualcomm Technologies, Inc.------ - Jeff Bolz, NVIDIA------ - Daniel Koch, NVIDIA------ - Neil Henning, AMD------ == Description------ This extension adds a mechanism to provide feedback to an application--- about pipeline creation, with the specific goal of allowing a feedback--- loop between build systems and in-the-field application executions to--- ensure effective pipeline caches are shipped to customers.------ == New Structures------ - 'PipelineCreationFeedbackEXT'------ - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':------ - 'PipelineCreationFeedbackCreateInfoEXT'------ == New Enums------ - 'PipelineCreationFeedbackFlagBitsEXT'------ == New Bitmasks------ - 'PipelineCreationFeedbackFlagsEXT'------ == New Enum Constants------ - 'EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME'------ - 'EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT'------ == Version History------ - Revision 1, 2019-03-12 (Jean-Francois Roy)------ - Initial revision------ == See Also------ 'PipelineCreationFeedbackCreateInfoEXT', 'PipelineCreationFeedbackEXT',--- 'PipelineCreationFeedbackFlagBitsEXT',--- 'PipelineCreationFeedbackFlagsEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback ( PipelineCreationFeedbackCreateInfoEXT- , PipelineCreationFeedbackEXT- ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PipelineCreationFeedbackCreateInfoEXT--instance ToCStruct PipelineCreationFeedbackCreateInfoEXT-instance Show PipelineCreationFeedbackCreateInfoEXT--instance FromCStruct PipelineCreationFeedbackCreateInfoEXT---data PipelineCreationFeedbackEXT--instance ToCStruct PipelineCreationFeedbackEXT-instance Show PipelineCreationFeedbackEXT--instance FromCStruct PipelineCreationFeedbackEXT-
src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs view
@@ -55,18 +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.2-extensions/html/vkspec.html#fragops-depth depth>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil stencil>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask >+-- <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.2-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>+-- <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 -- stencil tests. --@@ -83,7 +83,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskPostDepthCoverage SampleMaskPostDepthCoverage>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskPostDepthCoverage SampleMaskPostDepthCoverage> -- -- == Version History --@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_post_depth_coverage Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification>+-- <https://www.khronos.org/registry/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_primitive_topology_list_restart.hs-boot view
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification>+-- <https://www.khronos.org/registry/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_private_data.hs view
@@ -21,6 +21,11 @@ -- -- - Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Matthew Rusch@@ -31,6 +36,10 @@ -- [__Last Modified Date__] -- 2020-03-25 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -46,18 +55,17 @@ -- -- == Description ----- The \'VK_EXT_private_data\' extension is a device extension which--- enables attaching arbitrary payloads to Vulkan objects. It introduces--- the idea of private data slots as a means of storing a 64-bit unsigned--- integer of application defined data. Private data slots can be created--- or destroyed any time an associated device is available. Private data--- slots can be reserved at device creation time, and limiting use to the--- amount reserved will allow the extension to exhibit better performance--- characteristics.+-- This extension is a device extension which enables attaching arbitrary+-- payloads to Vulkan objects. It introduces the idea of private data slots+-- as a means of storing a 64-bit unsigned integer of application defined+-- data. Private data slots can be created or destroyed any time an+-- associated device is available. Private data slots can be reserved at+-- device creation time, and limiting use to the amount reserved will allow+-- the extension to exhibit better performance characteristics. -- -- == New Object Types ----- - 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'+-- - 'PrivateDataSlotEXT' -- -- == New Commands --@@ -99,16 +107,22 @@ -- -- - Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType': ----- - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT'+-- - 'OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT'+-- - 'STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT'+-- - 'STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Examples -- -- - In progress@@ -124,617 +138,106 @@ -- 'DevicePrivateDataCreateInfoEXT', -- 'PhysicalDevicePrivateDataFeaturesEXT', -- 'PrivateDataSlotCreateFlagBitsEXT', 'PrivateDataSlotCreateFlagsEXT',--- 'PrivateDataSlotCreateInfoEXT',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT',+-- 'PrivateDataSlotCreateInfoEXT', 'PrivateDataSlotEXT', -- 'createPrivateDataSlotEXT', 'destroyPrivateDataSlotEXT', -- 'getPrivateDataEXT', 'setPrivateDataEXT' -- -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_private_data ( createPrivateDataSlotEXT- , withPrivateDataSlotEXT+module Vulkan.Extensions.VK_EXT_private_data ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT+ , pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT+ , pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT+ , pattern OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT+ , createPrivateDataSlotEXT , destroyPrivateDataSlotEXT , setPrivateDataEXT , getPrivateDataEXT- , DevicePrivateDataCreateInfoEXT(..)- , PrivateDataSlotCreateInfoEXT(..)- , PhysicalDevicePrivateDataFeaturesEXT(..) , PrivateDataSlotCreateFlagsEXT- , PrivateDataSlotCreateFlagBitsEXT(..)+ , PrivateDataSlotEXT+ , PrivateDataSlotCreateFlagBitsEXT+ , DevicePrivateDataCreateInfoEXT+ , PrivateDataSlotCreateInfoEXT+ , PhysicalDevicePrivateDataFeaturesEXT , EXT_PRIVATE_DATA_SPEC_VERSION , pattern EXT_PRIVATE_DATA_SPEC_VERSION , EXT_PRIVATE_DATA_EXTENSION_NAME , pattern EXT_PRIVATE_DATA_EXTENSION_NAME- , PrivateDataSlotEXT(..) ) where -import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-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.Base (when)-import GHC.IO (throwIO)-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.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.Word (Word64)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)-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(pVkCreatePrivateDataSlotEXT))-import Vulkan.Dynamic (DeviceCmds(pVkDestroyPrivateDataSlotEXT))-import Vulkan.Dynamic (DeviceCmds(pVkGetPrivateDataEXT))-import Vulkan.Dynamic (DeviceCmds(pVkSetPrivateDataEXT))-import Vulkan.Core10.Handles (Device_T)-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.Enums.ObjectType (ObjectType)-import Vulkan.Core10.Enums.ObjectType (ObjectType(..))-import Vulkan.Extensions.Handles (PrivateDataSlotEXT)-import Vulkan.Extensions.Handles (PrivateDataSlotEXT(..))-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Extensions.Handles (PrivateDataSlotEXT(..))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCreatePrivateDataSlotEXT- :: FunPtr (Ptr Device_T -> Ptr PrivateDataSlotCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr PrivateDataSlotEXT -> IO Result) -> Ptr Device_T -> Ptr PrivateDataSlotCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr PrivateDataSlotEXT -> IO Result+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (createPrivateDataSlot)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (destroyPrivateDataSlot)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (getPrivateData)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (setPrivateData)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (DevicePrivateDataCreateInfo)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures)+import Vulkan.Core13.Handles (PrivateDataSlot)+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlagBits)+import Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits (PrivateDataSlotCreateFlags)+import Vulkan.Core13.Promoted_From_VK_EXT_private_data (PrivateDataSlotCreateInfo)+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PRIVATE_DATA_SLOT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES --- | vkCreatePrivateDataSlotEXT - Create a slot for private data storage------ == Valid Usage------ - #VUID-vkCreatePrivateDataSlotEXT-privateData-04564# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-privateData privateData>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCreatePrivateDataSlotEXT-device-parameter# @device@ /must/--- be a valid 'Vulkan.Core10.Handles.Device' handle------ - #VUID-vkCreatePrivateDataSlotEXT-pCreateInfo-parameter#--- @pCreateInfo@ /must/ be a valid pointer to a valid--- 'PrivateDataSlotCreateInfoEXT' structure------ - #VUID-vkCreatePrivateDataSlotEXT-pAllocator-parameter# If--- @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer--- to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'--- structure------ - #VUID-vkCreatePrivateDataSlotEXT-pPrivateDataSlot-parameter#--- @pPrivateDataSlot@ /must/ be a valid pointer to a--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle------ == 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_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',--- 'Vulkan.Core10.Handles.Device', 'PrivateDataSlotCreateInfoEXT',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-createPrivateDataSlotEXT :: forall io- . (MonadIO io)- => -- | @device@ is the logical device associated with the creation of the- -- object(s) holding the private data slot.- Device- -> -- | @pCreateInfo@ is a pointer to a 'PrivateDataSlotCreateInfoEXT'- PrivateDataSlotCreateInfoEXT- -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>- -- chapter.- ("allocator" ::: Maybe AllocationCallbacks)- -> io (PrivateDataSlotEXT)-createPrivateDataSlotEXT device createInfo allocator = liftIO . evalContT $ do- let vkCreatePrivateDataSlotEXTPtr = pVkCreatePrivateDataSlotEXT (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkCreatePrivateDataSlotEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreatePrivateDataSlotEXT is null" Nothing Nothing- let vkCreatePrivateDataSlotEXT' = mkVkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXTPtr- pCreateInfo <- ContT $ withCStruct (createInfo)- pAllocator <- case (allocator) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- pPPrivateDataSlot <- ContT $ bracket (callocBytes @PrivateDataSlotEXT 8) free- r <- lift $ traceAroundEvent "vkCreatePrivateDataSlotEXT" (vkCreatePrivateDataSlotEXT' (deviceHandle (device)) pCreateInfo pAllocator (pPPrivateDataSlot))- lift $ when (r < SUCCESS) (throwIO (VulkanException r))- pPrivateDataSlot <- lift $ peek @PrivateDataSlotEXT pPPrivateDataSlot- pure $ (pPrivateDataSlot) --- | A convenience wrapper to make a compatible pair of calls to--- 'createPrivateDataSlotEXT' and 'destroyPrivateDataSlotEXT'------ To ensure that 'destroyPrivateDataSlotEXT' 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.----withPrivateDataSlotEXT :: forall io r . MonadIO io => Device -> PrivateDataSlotCreateInfoEXT -> Maybe AllocationCallbacks -> (io PrivateDataSlotEXT -> (PrivateDataSlotEXT -> io ()) -> r) -> r-withPrivateDataSlotEXT device pCreateInfo pAllocator b =- b (createPrivateDataSlotEXT device pCreateInfo pAllocator)- (\(o0) -> destroyPrivateDataSlotEXT device o0 pAllocator)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkDestroyPrivateDataSlotEXT- :: FunPtr (Ptr Device_T -> PrivateDataSlotEXT -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> PrivateDataSlotEXT -> Ptr AllocationCallbacks -> IO ()+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO --- | vkDestroyPrivateDataSlotEXT - Destroy a private data slot------ == Valid Usage------ - #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04062# If--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were--- provided when @privateDataSlot@ was created, a compatible set of--- callbacks /must/ be provided here------ - #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04063# If no--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were--- provided when @privateDataSlot@ was created, @pAllocator@ /must/ be--- @NULL@------ == Valid Usage (Implicit)------ - #VUID-vkDestroyPrivateDataSlotEXT-device-parameter# @device@ /must/--- be a valid 'Vulkan.Core10.Handles.Device' handle------ - #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parameter# If--- @privateDataSlot@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @privateDataSlot@ /must/ be a valid--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle------ - #VUID-vkDestroyPrivateDataSlotEXT-pAllocator-parameter# If--- @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer--- to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'--- structure------ - #VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parent# If--- @privateDataSlot@ is a valid handle, it /must/ have been created,--- allocated, or retrieved from @device@------ == Host Synchronization------ - Host access to @privateDataSlot@ /must/ be externally synchronized------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',--- 'Vulkan.Core10.Handles.Device',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-destroyPrivateDataSlotEXT :: forall io- . (MonadIO io)- => -- | @device@ is the logical device associated with the creation of the- -- object(s) holding the private data slot.- Device- -> -- | @privateDataSlot@ is the private data slot to destroy.- PrivateDataSlotEXT- -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>- -- chapter.- ("allocator" ::: Maybe AllocationCallbacks)- -> io ()-destroyPrivateDataSlotEXT device privateDataSlot allocator = liftIO . evalContT $ do- let vkDestroyPrivateDataSlotEXTPtr = pVkDestroyPrivateDataSlotEXT (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkDestroyPrivateDataSlotEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPrivateDataSlotEXT is null" Nothing Nothing- let vkDestroyPrivateDataSlotEXT' = mkVkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXTPtr- pAllocator <- case (allocator) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- lift $ traceAroundEvent "vkDestroyPrivateDataSlotEXT" (vkDestroyPrivateDataSlotEXT' (deviceHandle (device)) (privateDataSlot) pAllocator)- pure $ () +-- No documentation found for TopLevel "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT"+pattern OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = OBJECT_TYPE_PRIVATE_DATA_SLOT -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkSetPrivateDataEXT- :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Word64 -> IO Result) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Word64 -> IO Result --- | vkSetPrivateDataEXT - Associate data with a Vulkan object------ == 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_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.Handles.Device',--- 'Vulkan.Core10.Enums.ObjectType.ObjectType',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-setPrivateDataEXT :: forall io- . (MonadIO io)- => -- | @device@ is the device that created the object.- --- -- #VUID-vkSetPrivateDataEXT-device-parameter# @device@ /must/ be a valid- -- 'Vulkan.Core10.Handles.Device' handle- Device- -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying- -- the type of object to associate data with.- --- -- #VUID-vkSetPrivateDataEXT-objectType-parameter# @objectType@ /must/ be a- -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value- ObjectType- -> -- | @objectHandle@ is a handle to the object to associate data with.- --- -- #VUID-vkSetPrivateDataEXT-objectHandle-04016# @objectHandle@ /must/ be- -- @device@ or a child of @device@- --- -- #VUID-vkSetPrivateDataEXT-objectHandle-04017# @objectHandle@ /must/ be a- -- valid handle to an object of type @objectType@- ("objectHandle" ::: Word64)- -> -- | @privateDataSlot@ is a handle to a- -- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' specifying location of- -- private data storage.- --- -- #VUID-vkSetPrivateDataEXT-privateDataSlot-parameter# @privateDataSlot@- -- /must/ be a valid 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle- --- -- #VUID-vkSetPrivateDataEXT-privateDataSlot-parent# @privateDataSlot@- -- /must/ have been created, allocated, or retrieved from @device@- PrivateDataSlotEXT- -> -- | @data@ is user defined data to associate the object with. This data will- -- be stored at @privateDataSlot@.- ("data" ::: Word64)- -> io ()-setPrivateDataEXT device objectType objectHandle privateDataSlot data' = liftIO $ do- let vkSetPrivateDataEXTPtr = pVkSetPrivateDataEXT (case device of Device{deviceCmds} -> deviceCmds)- unless (vkSetPrivateDataEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetPrivateDataEXT is null" Nothing Nothing- let vkSetPrivateDataEXT' = mkVkSetPrivateDataEXT vkSetPrivateDataEXTPtr- r <- traceAroundEvent "vkSetPrivateDataEXT" (vkSetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (data'))- when (r < SUCCESS) (throwIO (VulkanException r))+-- No documentation found for TopLevel "vkCreatePrivateDataSlotEXT"+createPrivateDataSlotEXT = createPrivateDataSlot -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkGetPrivateDataEXT- :: FunPtr (Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Ptr Word64 -> IO ()) -> Ptr Device_T -> ObjectType -> Word64 -> PrivateDataSlotEXT -> Ptr Word64 -> IO ()+-- No documentation found for TopLevel "vkDestroyPrivateDataSlotEXT"+destroyPrivateDataSlotEXT = destroyPrivateDataSlot --- | vkGetPrivateDataEXT - Retrieve data associated with a Vulkan object------ = Description------ Note------ Due to platform details on Android, implementations might not be able to--- reliably return @0@ from calls to 'getPrivateDataEXT' for--- 'Vulkan.Extensions.Handles.SwapchainKHR' objects on which--- 'setPrivateDataEXT' has not previously been called. This erratum is--- exclusive to the Android platform and objects of type--- 'Vulkan.Extensions.Handles.SwapchainKHR'.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.Handles.Device',--- 'Vulkan.Core10.Enums.ObjectType.ObjectType',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'-getPrivateDataEXT :: forall io- . (MonadIO io)- => -- | @device@ is the device that created the object- --- -- #VUID-vkGetPrivateDataEXT-device-parameter# @device@ /must/ be a valid- -- 'Vulkan.Core10.Handles.Device' handle- Device- -> -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' specifying- -- the type of object data is associated with.- --- -- #VUID-vkGetPrivateDataEXT-objectType-04018# @objectType@ /must/ be- -- 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_DEVICE', or an object type- -- whose parent is 'Vulkan.Core10.Handles.Device'- --- -- #VUID-vkGetPrivateDataEXT-objectType-parameter# @objectType@ /must/ be a- -- valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' value- ObjectType- -> -- | @objectHandle@ is a handle to the object data is associated with.- ("objectHandle" ::: Word64)- -> -- | @privateDataSlot@ is a handle to a- -- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' specifying location of- -- private data pointer storage.- --- -- #VUID-vkGetPrivateDataEXT-privateDataSlot-parameter# @privateDataSlot@- -- /must/ be a valid 'Vulkan.Extensions.Handles.PrivateDataSlotEXT' handle- --- -- #VUID-vkGetPrivateDataEXT-privateDataSlot-parent# @privateDataSlot@- -- /must/ have been created, allocated, or retrieved from @device@- PrivateDataSlotEXT- -> io (("data" ::: Word64))-getPrivateDataEXT device objectType objectHandle privateDataSlot = liftIO . evalContT $ do- let vkGetPrivateDataEXTPtr = pVkGetPrivateDataEXT (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkGetPrivateDataEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPrivateDataEXT is null" Nothing Nothing- let vkGetPrivateDataEXT' = mkVkGetPrivateDataEXT vkGetPrivateDataEXTPtr- pPData <- ContT $ bracket (callocBytes @Word64 8) free- lift $ traceAroundEvent "vkGetPrivateDataEXT" (vkGetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (pPData))- pData <- lift $ peek @Word64 pPData- pure $ (pData) +-- No documentation found for TopLevel "vkSetPrivateDataEXT"+setPrivateDataEXT = setPrivateData --- | VkDevicePrivateDataCreateInfoEXT - Reserve private data slots------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfoEXT- { -- | @privateDataSlotRequestCount@ is the amount of slots to reserve.- privateDataSlotRequestCount :: Word32 }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DevicePrivateDataCreateInfoEXT)-#endif-deriving instance Show DevicePrivateDataCreateInfoEXT -instance ToCStruct DevicePrivateDataCreateInfoEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p DevicePrivateDataCreateInfoEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (privateDataSlotRequestCount)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- f+-- No documentation found for TopLevel "vkGetPrivateDataEXT"+getPrivateDataEXT = getPrivateData -instance FromCStruct DevicePrivateDataCreateInfoEXT where- peekCStruct p = do- privateDataSlotRequestCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- pure $ DevicePrivateDataCreateInfoEXT- privateDataSlotRequestCount -instance Storable DevicePrivateDataCreateInfoEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())+-- No documentation found for TopLevel "VkPrivateDataSlotCreateFlagsEXT"+type PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlags -instance Zero DevicePrivateDataCreateInfoEXT where- zero = DevicePrivateDataCreateInfoEXT- zero +-- No documentation found for TopLevel "VkPrivateDataSlotEXT"+type PrivateDataSlotEXT = PrivateDataSlot --- | VkPrivateDataSlotCreateInfoEXT - Structure specifying the parameters of--- private data slot construction------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'PrivateDataSlotCreateFlagsEXT',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'createPrivateDataSlotEXT'-data PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfoEXT- { -- | @flags@ is a bitmask of 'PrivateDataSlotCreateFlagsEXT' specifying- -- additional parameters of the new private data slot- --- -- #VUID-VkPrivateDataSlotCreateInfoEXT-flags-zerobitmask# @flags@ /must/- -- be @0@- flags :: PrivateDataSlotCreateFlagsEXT }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PrivateDataSlotCreateInfoEXT)-#endif-deriving instance Show PrivateDataSlotCreateInfoEXT -instance ToCStruct PrivateDataSlotCreateInfoEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PrivateDataSlotCreateInfoEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlagsEXT)) (flags)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlagsEXT)) (zero)- f--instance FromCStruct PrivateDataSlotCreateInfoEXT where- peekCStruct p = do- flags <- peek @PrivateDataSlotCreateFlagsEXT ((p `plusPtr` 16 :: Ptr PrivateDataSlotCreateFlagsEXT))- pure $ PrivateDataSlotCreateInfoEXT- flags--instance Storable PrivateDataSlotCreateInfoEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PrivateDataSlotCreateInfoEXT where- zero = PrivateDataSlotCreateInfoEXT- zero+-- No documentation found for TopLevel "VkPrivateDataSlotCreateFlagBitsEXT"+type PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits --- | VkPhysicalDevicePrivateDataFeaturesEXT - Structure specifying physical--- device support------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDevicePrivateDataFeaturesEXT' 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. 'PhysicalDevicePrivateDataFeaturesEXT' /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_private_data VK_EXT_private_data>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeaturesEXT- { -- | #features-privateData# @privateData@ indicates whether the- -- implementation supports private data. See- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#private-data Private Data>.- privateData :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDevicePrivateDataFeaturesEXT)-#endif-deriving instance Show PhysicalDevicePrivateDataFeaturesEXT--instance ToCStruct PhysicalDevicePrivateDataFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDevicePrivateDataFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (privateData))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f--instance FromCStruct PhysicalDevicePrivateDataFeaturesEXT where- peekCStruct p = do- privateData <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDevicePrivateDataFeaturesEXT- (bool32ToBool privateData)--instance Storable PhysicalDevicePrivateDataFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDevicePrivateDataFeaturesEXT where- zero = PhysicalDevicePrivateDataFeaturesEXT- zero+-- No documentation found for TopLevel "VkDevicePrivateDataCreateInfoEXT"+type DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo -type PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlagBitsEXT---- | VkPrivateDataSlotCreateFlagBitsEXT - Bitmask specifying additional--- parameters for private data slot creation------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,--- 'PrivateDataSlotCreateFlagsEXT'-newtype PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBitsEXT Flags- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)-+-- No documentation found for TopLevel "VkPrivateDataSlotCreateInfoEXT"+type PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo -conNamePrivateDataSlotCreateFlagBitsEXT :: String-conNamePrivateDataSlotCreateFlagBitsEXT = "PrivateDataSlotCreateFlagBitsEXT"--enumPrefixPrivateDataSlotCreateFlagBitsEXT :: String-enumPrefixPrivateDataSlotCreateFlagBitsEXT = ""--showTablePrivateDataSlotCreateFlagBitsEXT :: [(PrivateDataSlotCreateFlagBitsEXT, String)]-showTablePrivateDataSlotCreateFlagBitsEXT = []--instance Show PrivateDataSlotCreateFlagBitsEXT where- showsPrec = enumShowsPrec enumPrefixPrivateDataSlotCreateFlagBitsEXT- showTablePrivateDataSlotCreateFlagBitsEXT- conNamePrivateDataSlotCreateFlagBitsEXT- (\(PrivateDataSlotCreateFlagBitsEXT x) -> x)- (\x -> showString "0x" . showHex x)--instance Read PrivateDataSlotCreateFlagBitsEXT where- readPrec = enumReadPrec enumPrefixPrivateDataSlotCreateFlagBitsEXT- showTablePrivateDataSlotCreateFlagBitsEXT- conNamePrivateDataSlotCreateFlagBitsEXT- PrivateDataSlotCreateFlagBitsEXT+-- No documentation found for TopLevel "VkPhysicalDevicePrivateDataFeaturesEXT"+type PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures type EXT_PRIVATE_DATA_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_private_data.hs-boot
@@ -1,170 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_private_data - device extension------ == VK_EXT_private_data------ [__Name String__]--- @VK_EXT_private_data@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 296------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ [__Contact__]------ - Matthew Rusch--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_private_data] @mattruschnv%0A<<Here describe the issue or question you have about the VK_EXT_private_data extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-03-25------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Matthew Rusch, NVIDIA------ - Nuno Subtil, NVIDIA------ - Piers Daniell, NVIDIA------ - Jeff Bolz, NVIDIA------ == Description------ The \'VK_EXT_private_data\' extension is a device extension which--- enables attaching arbitrary payloads to Vulkan objects. It introduces--- the idea of private data slots as a means of storing a 64-bit unsigned--- integer of application defined data. Private data slots can be created--- or destroyed any time an associated device is available. Private data--- slots can be reserved at device creation time, and limiting use to the--- amount reserved will allow the extension to exhibit better performance--- characteristics.------ == New Object Types------ - 'Vulkan.Extensions.Handles.PrivateDataSlotEXT'------ == New Commands------ - 'createPrivateDataSlotEXT'------ - 'destroyPrivateDataSlotEXT'------ - 'getPrivateDataEXT'------ - 'setPrivateDataEXT'------ == New Structures------ - 'PrivateDataSlotCreateInfoEXT'------ - Extending 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'DevicePrivateDataCreateInfoEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDevicePrivateDataFeaturesEXT'------ == New Enums------ - 'PrivateDataSlotCreateFlagBitsEXT'------ == New Bitmasks------ - 'PrivateDataSlotCreateFlagsEXT'------ == New Enum Constants------ - 'EXT_PRIVATE_DATA_EXTENSION_NAME'------ - 'EXT_PRIVATE_DATA_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':------ - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT'------ == Examples------ - In progress------ == Version History------ - Revision 1, 2020-01-15 (Matthew Rusch)------ - Initial draft------ == See Also------ 'DevicePrivateDataCreateInfoEXT',--- 'PhysicalDevicePrivateDataFeaturesEXT',--- 'PrivateDataSlotCreateFlagBitsEXT', 'PrivateDataSlotCreateFlagsEXT',--- 'PrivateDataSlotCreateInfoEXT',--- 'Vulkan.Extensions.Handles.PrivateDataSlotEXT',--- 'createPrivateDataSlotEXT', 'destroyPrivateDataSlotEXT',--- 'getPrivateDataEXT', 'setPrivateDataEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_private_data ( DevicePrivateDataCreateInfoEXT- , PhysicalDevicePrivateDataFeaturesEXT- , PrivateDataSlotCreateInfoEXT- ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DevicePrivateDataCreateInfoEXT--instance ToCStruct DevicePrivateDataCreateInfoEXT-instance Show DevicePrivateDataCreateInfoEXT--instance FromCStruct DevicePrivateDataCreateInfoEXT---data PhysicalDevicePrivateDataFeaturesEXT--instance ToCStruct PhysicalDevicePrivateDataFeaturesEXT-instance Show PhysicalDevicePrivateDataFeaturesEXT--instance FromCStruct PhysicalDevicePrivateDataFeaturesEXT---data PrivateDataSlotCreateInfoEXT--instance ToCStruct PrivateDataSlotCreateInfoEXT-instance Show PrivateDataSlotCreateInfoEXT--instance FromCStruct PrivateDataSlotCreateInfoEXT-
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -245,7 +245,7 @@ -- -- When 'PhysicalDeviceProvokingVertexFeaturesEXT' is in the @pNext@ chain -- of 'Vulkan.Core10.Device.DeviceCreateInfo' but the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback feature>+-- <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. --@@ -266,7 +266,7 @@ -- 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.2-extensions/html/vkspec.html#limits-transformFeedbackPreservesTriangleFanProvokingVertex transformFeedbackPreservesTriangleFanProvokingVertex>+ -- <https://www.khronos.org/registry/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@@ -398,7 +398,7 @@ -- will use the 'PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT' mode. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#drawing-primitive-topologies Primitive Topologies>.+-- <https://www.khronos.org/registry/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
@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreign Vulkan Specification>+-- <https://www.khronos.org/registry/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_rgba10x6_formats.hs view
@@ -49,7 +49,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- enabled. -- -- == New Structures@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+ -- <https://www.khronos.org/registry/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
@@ -49,7 +49,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.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- enabled. -- -- == New Structures@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -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.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification>+-- <https://www.khronos.org/registry/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,10 +175,10 @@ -- 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.2-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>.+-- <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.@@ -210,7 +210,7 @@ -- -- - #VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000# -- If @robustBufferAccess2@ is enabled then--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess> -- /must/ also be enabled -- -- == Valid Usage (Implicit)@@ -303,14 +303,14 @@ -- @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.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <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. 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.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <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]. robustUniformBufferAccessSizeAlignment :: DeviceSize }
src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot view
@@ -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.2-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -163,7 +163,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification>+-- <https://www.khronos.org/registry/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_sample_locations.hs-boot view
@@ -163,7 +163,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmax Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_scalar_block_layout Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -90,7 +90,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_separate_stencil_usage Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -79,9 +79,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat32AddEXT AtomicFloat32AddEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification>+-- <https://www.khronos.org/registry/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_float.hs-boot view
@@ -79,9 +79,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat32AddEXT AtomicFloat32AddEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -97,13 +97,13 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT> -- -- == Version History --@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+-- <https://www.khronos.org/registry/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_atomic_float2.hs-boot view
@@ -97,13 +97,13 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT> -- -- == Version History --@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Jeff Bolz@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2019-06-01 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -58,7 +67,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.2-extensions/html/vkspec.html#shaders-group-operations group operations>.+-- <https://www.khronos.org/registry/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@@ -77,12 +86,18 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT' -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT> --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2019-06-01 (Jeff Bolz)@@ -96,108 +111,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_demote_to_helper_invocation Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation ( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT+ , PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT , EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION , pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION , EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME , pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_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_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT))--- | VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT - Structure--- describing the shader demote to helper invocations features that can be--- supported by an implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'--- 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. 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'--- /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_demote_to_helper_invocation VK_EXT_shader_demote_to_helper_invocation>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT- { -- | #features-shaderDemoteToHelperInvocation#- -- @shaderDemoteToHelperInvocation@ indicates whether the implementation- -- supports the SPIR-V @DemoteToHelperInvocationEXT@ capability.- shaderDemoteToHelperInvocation :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES -instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderDemoteToHelperInvocation))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where- peekCStruct p = do- shaderDemoteToHelperInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT- (bool32ToBool shaderDemoteToHelperInvocation)--instance Storable PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT where- zero = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT- zero+-- No documentation found for TopLevel "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"+type PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures type EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot
@@ -1,115 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_shader_demote_to_helper_invocation - device extension------ == VK_EXT_shader_demote_to_helper_invocation------ [__Name String__]--- @VK_EXT_shader_demote_to_helper_invocation@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 277------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Jeff Bolz--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_shader_demote_to_helper_invocation] @jeffbolznv%0A<<Here describe the issue or question you have about the VK_EXT_shader_demote_to_helper_invocation extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2019-06-01------ [__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/EXT/SPV_EXT_demote_to_helper_invocation.html SPV_EXT_demote_to_helper_invocation>------ - This extension provides API support for--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_demote_to_helper_invocation.txt GL_EXT_demote_to_helper_invocation>------ [__Contributors__]------ - Jeff Bolz, NVIDIA------ == Description------ This extension adds Vulkan support for the--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_demote_to_helper_invocation.html SPV_EXT_demote_to_helper_invocation>--- SPIR-V extension. That SPIR-V extension provides a new instruction--- @OpDemoteToHelperInvocationEXT@ allowing shaders to “demote” a fragment--- shader invocation to behave like a helper invocation for its duration.--- 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.2-extensions/html/vkspec.html#shaders-group-operations group operations>.--- This is a better match for the “discard” instruction in HLSL.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'------ == New Enum Constants------ - 'EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME'------ - 'EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT'------ == New SPIR-V Capability------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>------ == Version History------ - Revision 1, 2019-06-01 (Jeff Bolz)------ - Initial draft------ == See Also------ 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT--instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT--instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification>+-- <https://www.khronos.org/registry/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_stencil_export.hs view
@@ -77,7 +77,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_stencil_export Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -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.2-extensions/html/vkspec.html#features-subgroupBroadcastDynamicId subgroupBroadcastDynamicId>+-- <https://www.khronos.org/registry/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.2-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-sgeq SubgroupEqMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-sgge SubgroupGeMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-sggt SubgroupGtMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-sgle SubgroupLeMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-sglt SubgroupLtMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-sgli SubgroupLocalInvocationId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupBallotKHR SubgroupBallotKHR>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_EXT_shader_subgroup_ballot Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -144,7 +144,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupVoteKHR SubgroupVoteKHR>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_EXT_shader_subgroup_vote Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndex ShaderViewportIndex>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndex ShaderViewportIndex> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderLayer ShaderLayer>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputLayer shaderOutputLayer>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer> -- -- - (modified)--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-viewportindex ViewportIndex> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerEXT ShaderViewportIndexLayerEXT>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_EXT_shader_viewport_index_layer Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -21,6 +21,11 @@ -- -- - Requires Vulkan 1.1 --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Neil Henning@@ -31,6 +36,10 @@ -- [__Last Modified Date__] -- 2019-03-05 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__Contributors__] -- -- - Jeff Bolz, NVIDIA@@ -76,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.2-extensions/html/vkspec.html#limits-minSubgroupSize minimum>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minimum> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maximum>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages stages support a required subgroup size>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>+-- <https://www.khronos.org/registry/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 }\]@@ -125,18 +134,24 @@ -- - Extending -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'+-- - 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' ----- - 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'+-- - 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT'+-- - 'STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2019-03-05 (Neil Henning)@@ -157,319 +172,65 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_subgroup_size_control ( PhysicalDeviceSubgroupSizeControlFeaturesEXT(..)- , PhysicalDeviceSubgroupSizeControlPropertiesEXT(..)- , PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(..)+module Vulkan.Extensions.VK_EXT_subgroup_size_control ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT+ , pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT+ , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT+ , pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT+ , pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT+ , PhysicalDeviceSubgroupSizeControlFeaturesEXT+ , PhysicalDeviceSubgroupSizeControlPropertiesEXT+ , PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT , EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION , pattern EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION , EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME , pattern EXT_SUBGROUP_SIZE_CONTROL_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.Enums.ShaderStageFlagBits (ShaderStageFlags)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT))--- | VkPhysicalDeviceSubgroupSizeControlFeaturesEXT - Structure describing--- the subgroup size control features that can be supported by an--- implementation------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' 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. 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' /can/ also be--- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- selectively enable these features.------ Note------ The 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' structure was added--- in version 2 of the @VK_EXT_subgroup_size_control@ extension. Version 1--- implementations of this extension will not fill out 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.2-extensions/html/vkspec.html#features-requirements Feature Requirements>--- section.) Applications are advised to add a--- 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' structure to the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features--- regardless of the version of the extension supported by the--- implementation. If the implementation only supports version 1, it will--- safely ignore the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT'--- structure.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeaturesEXT- { -- | #features-subgroupSizeControl# @subgroupSizeControl@ indicates whether- -- the implementation supports controlling shader subgroup sizes via the- -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'- -- flag and the 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'- -- structure.- subgroupSizeControl :: Bool- , -- | #features-computeFullSubgroups# @computeFullSubgroups@ indicates whether- -- the implementation supports requiring full subgroups in compute shaders- -- via the- -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'- -- flag.- computeFullSubgroups :: Bool- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceSubgroupSizeControlFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceSubgroupSizeControlFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures)+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlProperties)+import Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES -instance ToCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceSubgroupSizeControlFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (subgroupSizeControl))- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (computeFullSubgroups))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_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 PhysicalDeviceSubgroupSizeControlFeaturesEXT where- peekCStruct p = do- subgroupSizeControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- computeFullSubgroups <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- pure $ PhysicalDeviceSubgroupSizeControlFeaturesEXT- (bool32ToBool subgroupSizeControl) (bool32ToBool computeFullSubgroups)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO -instance Storable PhysicalDeviceSubgroupSizeControlFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceSubgroupSizeControlFeaturesEXT where- zero = PhysicalDeviceSubgroupSizeControlFeaturesEXT- zero- zero+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES --- | VkPhysicalDeviceSubgroupSizeControlPropertiesEXT - Structure describing--- the control subgroup size properties of an implementation------ = Description------ If the 'PhysicalDeviceSubgroupSizeControlPropertiesEXT' 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.------ If--- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@supportedOperations@--- includes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroup-quad >,--- @minSubgroupSize@ /must/ be greater than or equal to 4.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlPropertiesEXT- { -- | #limits-minSubgroupSize# @minSubgroupSize@ is the minimum subgroup size- -- supported by this device. @minSubgroupSize@ is at least one if any of- -- the physical device’s queues support- -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or- -- '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.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.- minSubgroupSize :: Word32- , -- | #limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum subgroup size- -- supported by this device. @maxSubgroupSize@ is at least one if any of- -- the physical device’s queues support- -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or- -- '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.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.- maxSubgroupSize :: Word32- , -- | #limits-maxComputeWorkgroupSubgroups# @maxComputeWorkgroupSubgroups@ is- -- the maximum number of subgroups supported by the implementation within a- -- workgroup.- maxComputeWorkgroupSubgroups :: Word32- , -- | #limits-requiredSubgroupSizeStages# @requiredSubgroupSizeStages@ is a- -- bitfield of what shader stages support having a required subgroup size- -- specified.- requiredSubgroupSizeStages :: ShaderStageFlags- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceSubgroupSizeControlPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceSubgroupSizeControlPropertiesEXT+-- No documentation found for TopLevel "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"+pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT -instance ToCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceSubgroupSizeControlPropertiesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (minSubgroupSize)- poke ((p `plusPtr` 20 :: Ptr Word32)) (maxSubgroupSize)- poke ((p `plusPtr` 24 :: Ptr Word32)) (maxComputeWorkgroupSubgroups)- poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (requiredSubgroupSizeStages)- f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 28 :: Ptr ShaderStageFlags)) (zero)- f -instance FromCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT where- peekCStruct p = do- minSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- maxSubgroupSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- maxComputeWorkgroupSubgroups <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))- requiredSubgroupSizeStages <- peek @ShaderStageFlags ((p `plusPtr` 28 :: Ptr ShaderStageFlags))- pure $ PhysicalDeviceSubgroupSizeControlPropertiesEXT- minSubgroupSize maxSubgroupSize maxComputeWorkgroupSubgroups requiredSubgroupSizeStages+-- No documentation found for TopLevel "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"+pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT -instance Storable PhysicalDeviceSubgroupSizeControlPropertiesEXT where- sizeOf ~_ = 32- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceSubgroupSizeControlPropertiesEXT where- zero = PhysicalDeviceSubgroupSizeControlPropertiesEXT- zero- zero- zero- zero+-- No documentation found for TopLevel "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT"+type PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures --- | VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT - Structure--- specifying the required subgroup size of a newly created pipeline shader--- stage------ = Description------ If a 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', it specifies--- that the pipeline shader stage being compiled has a required subgroup--- size.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT- { -- | #pipelines-required-subgroup-size# @requiredSubgroupSize@ is an unsigned- -- integer value specifying the required subgroup size for the newly- -- created pipeline shader stage.- --- -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02760#- -- @requiredSubgroupSize@ /must/ be a power-of-two integer- --- -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02761#- -- @requiredSubgroupSize@ /must/ be greater or equal to- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize>- --- -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02762#- -- @requiredSubgroupSize@ /must/ be less than or equal to- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>- requiredSubgroupSize :: Word32 }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT)-#endif-deriving instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT+-- No documentation found for TopLevel "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT"+type PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties -instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (requiredSubgroupSize)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- f -instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where- peekCStruct p = do- requiredSubgroupSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- pure $ PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT- requiredSubgroupSize--instance Storable PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT where- zero = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT- zero+-- No documentation found for TopLevel "VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT"+type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo type EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION = 2
− src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs-boot
@@ -1,195 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_subgroup_size_control - device extension------ == VK_EXT_subgroup_size_control------ [__Name String__]--- @VK_EXT_subgroup_size_control@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 226------ [__Revision__]--- 2------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.1------ [__Contact__]------ - Neil Henning--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_subgroup_size_control] @sheredom%0A<<Here describe the issue or question you have about the VK_EXT_subgroup_size_control extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2019-03-05------ [__Contributors__]------ - Jeff Bolz, NVIDIA------ - Jason Ekstrand, Intel------ - Sławek Grajewski, Intel------ - Jesse Hall, Google------ - Neil Henning, AMD------ - Daniel Koch, NVIDIA------ - Jeff Leger, Qualcomm------ - Graeme Leese, Broadcom------ - Allan MacKinnon, Google------ - Mariusz Merecki, Intel------ - Graham Wihlidal, Electronic Arts------ == Description------ This extension enables an implementation to control the subgroup size by--- allowing a varying subgroup size and also specifying a required subgroup--- size.------ It extends the subgroup support in Vulkan 1.1 to allow an implementation--- to expose a varying subgroup size. Previously Vulkan exposed a single--- subgroup size per physical device, with the expectation that--- implementations will behave as if all subgroups have the same size. Some--- implementations /may/ dispatch shaders with a varying subgroup size for--- different subgroups. As a result they could implicitly split a large--- subgroup into smaller subgroups or represent a small subgroup as a--- larger subgroup, some of whose invocations were inactive on launch.------ To aid developers in understanding the performance characteristics of--- their programs, this extension exposes a minimum and maximum subgroup--- size that a physical device supports and a pipeline create flag to--- 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.2-extensions/html/vkspec.html#limits-minSubgroupSize minimum>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>--- and ensure that:------ \[s = { WorkGroupSize.x \times WorkGroupSize.y \times WorkgroupSize.z \leq SubgroupSize \times maxComputeWorkgroupSubgroups }\]------ Developers can also specify a new pipeline shader stage create flag that--- requires the implementation to have fully populated subgroups within--- local workgroups. This requires the workgroup size in the X dimension to--- be a multiple of the subgroup size.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceSubgroupSizeControlFeaturesEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------ - 'PhysicalDeviceSubgroupSizeControlPropertiesEXT'------ - Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo':------ - 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'------ == New Enum Constants------ - 'EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME'------ - 'EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits':------ - 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'------ - 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT'------ == Version History------ - Revision 1, 2019-03-05 (Neil Henning)------ - Initial draft------ - Revision 2, 2019-07-26 (Jason Ekstrand)------ - Add the missing 'PhysicalDeviceSubgroupSizeControlFeaturesEXT'--- for querying subgroup size control features.------ == See Also------ 'PhysicalDeviceSubgroupSizeControlFeaturesEXT',--- 'PhysicalDeviceSubgroupSizeControlPropertiesEXT',--- 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_subgroup_size_control ( PhysicalDeviceSubgroupSizeControlFeaturesEXT- , PhysicalDeviceSubgroupSizeControlPropertiesEXT- , PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT- ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceSubgroupSizeControlFeaturesEXT--instance ToCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT-instance Show PhysicalDeviceSubgroupSizeControlFeaturesEXT--instance FromCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT---data PhysicalDeviceSubgroupSizeControlPropertiesEXT--instance ToCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT-instance Show PhysicalDeviceSubgroupSizeControlPropertiesEXT--instance FromCStruct PhysicalDeviceSubgroupSizeControlPropertiesEXT---data PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT--instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT--instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-
src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs view
@@ -133,7 +133,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_colorspace Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Jeff Bolz@@ -33,10 +38,14 @@ -- [__Last Modified Date__] -- 2019-06-06 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. ----- [__Interactions and External Dependencies__; __Contributors__]+-- [__Contributors__] -- -- - Jeff Bolz, NVIDIA --@@ -70,8 +79,15 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, only the properties structure is promoted.+-- The feature structure is not promoted. The original type name is still+-- available as an alias of the core functionality.+-- -- == Version History -- -- - Revision 1, 2019-06-06 (Jeff Bolz)@@ -86,12 +102,13 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_texel_buffer_alignment ( PhysicalDeviceTexelBufferAlignmentFeaturesEXT(..)- , PhysicalDeviceTexelBufferAlignmentPropertiesEXT(..)+module Vulkan.Extensions.VK_EXT_texel_buffer_alignment ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT+ , PhysicalDeviceTexelBufferAlignmentFeaturesEXT(..)+ , PhysicalDeviceTexelBufferAlignmentPropertiesEXT , EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION , pattern EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION , EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME@@ -118,10 +135,14 @@ import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES++ -- | VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - Structure describing -- the texel buffer alignment features that can be supported by an -- implementation@@ -152,7 +173,9 @@ data PhysicalDeviceTexelBufferAlignmentFeaturesEXT = PhysicalDeviceTexelBufferAlignmentFeaturesEXT { -- | #features-texelBufferAlignment# @texelBufferAlignment@ indicates whether -- the implementation uses more specific alignment requirements advertised- -- in 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT' rather than+ -- in+ -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties'+ -- rather than -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@. texelBufferAlignment :: Bool } deriving (Typeable, Eq)@@ -193,114 +216,8 @@ zero --- | VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT - Structure describing--- the texel buffer alignment requirements supported by an implementation------ = Description------ If the 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT' 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.------ If the single texel alignment property is--- 'Vulkan.Core10.FundamentalTypes.FALSE', then the buffer view’s offset--- /must/ be aligned to the corresponding byte alignment value. If the--- single texel alignment property is--- 'Vulkan.Core10.FundamentalTypes.TRUE', then the buffer view’s offset--- /must/ be aligned to the lesser of the corresponding byte alignment--- value or the size of a single texel, based on--- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@format@. If the size--- of a single texel is a multiple of three bytes, then the size of a--- 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.2-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.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment VK_EXT_texel_buffer_alignment>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentPropertiesEXT- { -- | #limits-storageTexelBufferOffsetAlignmentBytes#- -- @storageTexelBufferOffsetAlignmentBytes@ is a byte alignment that is- -- sufficient for a storage texel buffer of any format. The value /must/ be- -- a power of two.- storageTexelBufferOffsetAlignmentBytes :: DeviceSize- , -- | #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- -- sufficient for a uniform texel buffer of any format. The value /must/ be- -- a power of two.- uniformTexelBufferOffsetAlignmentBytes :: DeviceSize- , -- | #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)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceTexelBufferAlignmentPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceTexelBufferAlignmentPropertiesEXT--instance ToCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceTexelBufferAlignmentPropertiesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (storageTexelBufferOffsetAlignmentBytes)- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (storageTexelBufferOffsetSingleTexelAlignment))- poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (uniformTexelBufferOffsetAlignmentBytes)- poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (uniformTexelBufferOffsetSingleTexelAlignment))- f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))- f--instance FromCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT where- peekCStruct p = do- storageTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))- storageTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))- uniformTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))- uniformTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))- pure $ PhysicalDeviceTexelBufferAlignmentPropertiesEXT- storageTexelBufferOffsetAlignmentBytes (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment) uniformTexelBufferOffsetAlignmentBytes (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment)--instance Storable PhysicalDeviceTexelBufferAlignmentPropertiesEXT where- sizeOf ~_ = 48- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceTexelBufferAlignmentPropertiesEXT where- zero = PhysicalDeviceTexelBufferAlignmentPropertiesEXT- zero- zero- zero- zero+-- No documentation found for TopLevel "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT"+type PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties type EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Jeff Bolz@@ -33,10 +38,14 @@ -- [__Last Modified Date__] -- 2019-06-06 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. ----- [__Interactions and External Dependencies__; __Contributors__]+-- [__Contributors__] -- -- - Jeff Bolz, NVIDIA --@@ -70,8 +79,15 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, only the properties structure is promoted.+-- The feature structure is not promoted. The original type name is still+-- available as an alias of the core functionality.+-- -- == Version History -- -- - Revision 1, 2019-06-06 (Jeff Bolz)@@ -86,13 +102,11 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_texel_buffer_alignment ( PhysicalDeviceTexelBufferAlignmentFeaturesEXT- , PhysicalDeviceTexelBufferAlignmentPropertiesEXT- ) where+module Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) where import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct)@@ -104,12 +118,4 @@ instance Show PhysicalDeviceTexelBufferAlignmentFeaturesEXT instance FromCStruct PhysicalDeviceTexelBufferAlignmentFeaturesEXT---data PhysicalDeviceTexelBufferAlignmentPropertiesEXT--instance ToCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT-instance Show PhysicalDeviceTexelBufferAlignmentPropertiesEXT--instance FromCStruct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Jan-Harald Fredriksen@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2019-05-28 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known issues. --@@ -47,7 +56,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.2-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>. -- -- == New Structures --@@ -65,38 +74,46 @@ -- -- - Extending 'Vulkan.Core10.Enums.Format.Format': ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT'+-- - 'FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. Functionality in this+-- extension is included in core Vulkan 1.3, with the EXT suffix omitted.+-- However, the feature is made optional in Vulkan 1.3. The original type,+-- enum and command names are still available as aliases of the core+-- functionality.+-- -- == Issues -- -- 1) Should we add a feature or limit for this functionality?@@ -136,148 +153,111 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texture_compression_astc_hdr Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr ( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT+ , pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT+ , pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT+ , PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT , EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION , pattern EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION , EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME , pattern EXT_TEXTURE_COMPRESSION_ASTC_HDR_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_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT))--- | VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT - Structure--- describing ASTC HDR features that can be supported by an implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' 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. 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' /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_texture_compression_astc_hdr VK_EXT_texture_compression_astc_hdr>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT- { -- | #features-textureCompressionASTC_HDR# @textureCompressionASTC_HDR@- -- indicates whether all of the ASTC HDR compressed texture formats are- -- supported. If this feature is enabled, then the- -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT',- -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'- -- and- -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'- -- features /must/ be supported in @optimalTilingFeatures@ for the- -- following formats:- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT'- --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT'- --- -- To query for additional properties, or if the feature is not enabled,- -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'- -- and- -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties'- -- /can/ be used to check for supported properties of individual formats as- -- normal.- textureCompressionASTC_HDR :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT+import Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures)+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x10_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x6_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_10x8_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_12x10_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_12x12_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_4x4_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_5x4_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_5x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_6x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_6x6_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_8x5_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_8x6_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.Format (Format(FORMAT_ASTC_8x8_SFLOAT_BLOCK))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES -instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (textureCompressionASTC_HDR))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where- peekCStruct p = do- textureCompressionASTC_HDR <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT- (bool32ToBool textureCompressionASTC_HDR)+-- No documentation found for TopLevel "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = FORMAT_ASTC_4x4_SFLOAT_BLOCK -instance Storable PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT where- zero = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT- zero+-- No documentation found for TopLevel "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = FORMAT_ASTC_5x4_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_5x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_6x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = FORMAT_ASTC_6x6_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_8x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = FORMAT_ASTC_8x6_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = FORMAT_ASTC_8x8_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x5_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x6_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x8_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = FORMAT_ASTC_10x10_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = FORMAT_ASTC_12x10_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT"+pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = FORMAT_ASTC_12x12_SFLOAT_BLOCK+++-- No documentation found for TopLevel "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT"+type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures type EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot
@@ -1,155 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_texture_compression_astc_hdr - device extension------ == VK_EXT_texture_compression_astc_hdr------ [__Name String__]--- @VK_EXT_texture_compression_astc_hdr@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 67------ [__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_EXT_texture_compression_astc_hdr] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_texture_compression_astc_hdr extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2019-05-28------ [__IP Status__]--- No known issues.------ [__Contributors__]------ - Jan-Harald Fredriksen, Arm------ == Description------ This extension adds support for textures compressed using the Adaptive--- Scalable Texture Compression (ASTC) High Dynamic Range (HDR) profile.------ When this extension is enabled, the HDR profile is supported for all--- ASTC formats listed in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'------ == New Enum Constants------ - 'EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME'------ - 'EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.Format.Format':------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT'------ - 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT'------ == Issues------ 1) Should we add a feature or limit for this functionality?------ Yes. It is consistent with the ASTC LDR support to add a feature like--- textureCompressionASTC_HDR.------ The feature is strictly speaking redundant as long as this is just an--- extension; it would be sufficient to just enable the extension. But--- adding the feature is more forward-looking if wanted to make this an--- optional core feature in the future.------ 2) Should we introduce new format enums for HDR?------ Yes. Vulkan 1.0 describes the ASTC format enums as UNORM, e.g.--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it is--- confusing to make these contain HDR data. Note that the OpenGL (ES)--- extensions did not make this distinction because a single ASTC HDR--- texture may contain both unorm and float blocks. Implementations /may/--- not be able to distinguish between LDR and HDR ASTC textures internally--- and just treat them as the same format, i.e. if this extension is--- supported then sampling from a--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK' image format--- /may/ return HDR results. Applications /can/ get predictable results by--- using the appropriate image format.------ == Version History------ - Revision 1, 2019-05-28 (Jan-Harald Fredriksen)------ - Initial version------ == See Also------ 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT--instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-instance Show PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT--instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-
src/Vulkan/Extensions/VK_EXT_tooling_info.hs view
@@ -21,6 +21,11 @@ -- -- - Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Tobias Hector@@ -31,6 +36,10 @@ -- [__Last Modified Date__] -- 2018-11-05 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__Contributors__] -- -- - Rolando Caloca@@ -87,34 +96,43 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker VK_EXT_debug_marker> -- is supported: ----- - Extending 'ToolPurposeFlagBitsEXT':+-- - Extending+-- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits': ----- - 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'+-- - 'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report> -- is supported: ----- - Extending 'ToolPurposeFlagBitsEXT':+-- - Extending+-- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits': ----- - 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'+-- - 'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils> -- is supported: ----- - Extending 'ToolPurposeFlagBitsEXT':+-- - Extending+-- 'Vulkan.Core13.Enums.ToolPurposeFlagBits.ToolPurposeFlagBits': ----- - 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'+-- - 'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' ----- - 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'+-- - 'Vulkan.Core13.Enums.ToolPurposeFlagBits.TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- EXT suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Examples -- -- __Printing Tool Information__@@ -163,331 +181,45 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_tooling_info ( getPhysicalDeviceToolPropertiesEXT- , PhysicalDeviceToolPropertiesEXT(..)+module Vulkan.Extensions.VK_EXT_tooling_info ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT+ , getPhysicalDeviceToolPropertiesEXT , ToolPurposeFlagsEXT- , ToolPurposeFlagBitsEXT( TOOL_PURPOSE_VALIDATION_BIT_EXT- , TOOL_PURPOSE_PROFILING_BIT_EXT- , TOOL_PURPOSE_TRACING_BIT_EXT- , TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT- , TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT- , TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT- , TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT- , ..- )+ , ToolPurposeFlagBitsEXT+ , PhysicalDeviceToolPropertiesEXT , EXT_TOOLING_INFO_SPEC_VERSION , pattern EXT_TOOLING_INFO_SPEC_VERSION , EXT_TOOLING_INFO_EXTENSION_NAME , pattern EXT_TOOLING_INFO_EXTENSION_NAME ) where -import Vulkan.CStruct.Utils (FixedArray)-import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-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.Base (when)-import GHC.IO (throwIO)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import GHC.Show (showString)-import Numeric (showHex)-import Data.ByteString (packCString)-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 Vulkan.Zero (Zero(..))-import Control.Monad.IO.Class (MonadIO)-import Data.Bits (Bits)-import Data.Bits (FiniteBits) 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 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.ByteString (ByteString)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.CStruct.Utils (lowerArrayPtr)-import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceToolPropertiesEXT))-import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)-import Vulkan.Core10.APIConstants (MAX_EXTENSION_NAME_SIZE)-import Vulkan.Core10.Handles (PhysicalDevice)-import Vulkan.Core10.Handles (PhysicalDevice(..))-import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))-import Vulkan.Core10.Handles (PhysicalDevice_T)-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkGetPhysicalDeviceToolPropertiesEXT- :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolPropertiesEXT -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceToolPropertiesEXT -> IO Result+import Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (getPhysicalDeviceToolProperties)+import Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties)+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlagBits)+import Vulkan.Core13.Enums.ToolPurposeFlagBits (ToolPurposeFlags)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES --- | vkGetPhysicalDeviceToolPropertiesEXT - Reports properties of tools--- active on the specified physical device------ = Description------ If @pToolProperties@ is @NULL@, then the number of tools currently--- active on @physicalDevice@ is returned in @pToolCount@. Otherwise,--- @pToolCount@ /must/ point to a variable set by the user to the number of--- elements in the @pToolProperties@ array, and on return the variable is--- overwritten with the number of structures actually written to--- @pToolProperties@. If @pToolCount@ is less than the number of currently--- active tools, at most @pToolCount@ structures will be written.------ The count and properties of active tools /may/ change in response to--- events outside the scope of the specification. An application /should/--- assume these properties might change at any given time.------ == Valid Usage (Implicit)------ - #VUID-vkGetPhysicalDeviceToolPropertiesEXT-physicalDevice-parameter#--- @physicalDevice@ /must/ be a valid--- 'Vulkan.Core10.Handles.PhysicalDevice' handle------ - #VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolCount-parameter#--- @pToolCount@ /must/ be a valid pointer to a @uint32_t@ value------ - #VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolProperties-parameter#--- If the value referenced by @pToolCount@ is not @0@, and--- @pToolProperties@ is not @NULL@, @pToolProperties@ /must/ be a valid--- pointer to an array of @pToolCount@--- 'PhysicalDeviceToolPropertiesEXT' structures------ == 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'------ [<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_tooling_info VK_EXT_tooling_info>,--- 'Vulkan.Core10.Handles.PhysicalDevice',--- 'PhysicalDeviceToolPropertiesEXT'-getPhysicalDeviceToolPropertiesEXT :: forall io- . (MonadIO io)- => -- | @physicalDevice@ is the handle to the physical device to query for- -- active tools.- PhysicalDevice- -> io (Result, ("toolProperties" ::: Vector PhysicalDeviceToolPropertiesEXT))-getPhysicalDeviceToolPropertiesEXT physicalDevice = liftIO . evalContT $ do- let vkGetPhysicalDeviceToolPropertiesEXTPtr = pVkGetPhysicalDeviceToolPropertiesEXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)- lift $ unless (vkGetPhysicalDeviceToolPropertiesEXTPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceToolPropertiesEXT is null" Nothing Nothing- let vkGetPhysicalDeviceToolPropertiesEXT' = mkVkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXTPtr- let physicalDevice' = physicalDeviceHandle (physicalDevice)- pPToolCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolPropertiesEXT" (vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) (nullPtr))- lift $ when (r < SUCCESS) (throwIO (VulkanException r))- pToolCount <- lift $ peek @Word32 pPToolCount- pPToolProperties <- ContT $ bracket (callocBytes @PhysicalDeviceToolPropertiesEXT ((fromIntegral (pToolCount)) * 1048)) free- _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPToolProperties `advancePtrBytes` (i * 1048) :: Ptr PhysicalDeviceToolPropertiesEXT) . ($ ())) [0..(fromIntegral (pToolCount)) - 1]- r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolPropertiesEXT" (vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) ((pPToolProperties)))- lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))- pToolCount' <- lift $ peek @Word32 pPToolCount- pToolProperties' <- lift $ generateM (fromIntegral (pToolCount')) (\i -> peekCStruct @PhysicalDeviceToolPropertiesEXT (((pPToolProperties) `advancePtrBytes` (1048 * (i)) :: Ptr PhysicalDeviceToolPropertiesEXT)))- pure $ ((r'), pToolProperties') +-- No documentation found for TopLevel "vkGetPhysicalDeviceToolPropertiesEXT"+getPhysicalDeviceToolPropertiesEXT = getPhysicalDeviceToolProperties --- | VkPhysicalDeviceToolPropertiesEXT - Structure providing information--- about an active tool------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'ToolPurposeFlagsEXT', 'getPhysicalDeviceToolPropertiesEXT'-data PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolPropertiesEXT- { -- | @name@ is a null-terminated UTF-8 string containing the name of the- -- tool.- name :: ByteString- , -- | @version@ is a null-terminated UTF-8 string containing the version of- -- the tool.- version :: ByteString- , -- | @purposes@ is a bitmask of 'ToolPurposeFlagBitsEXT' which is populated- -- with purposes supported by the tool.- purposes :: ToolPurposeFlagsEXT- , -- | @description@ is a null-terminated UTF-8 string containing a description- -- of the tool.- description :: ByteString- , -- | @layer@ is a null-terminated UTF-8 string containing the name of the- -- layer implementing the tool, if the tool is implemented in a layer -- -- otherwise it /may/ be an empty string.- layer :: ByteString- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceToolPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceToolPropertiesEXT -instance ToCStruct PhysicalDeviceToolPropertiesEXT where- withCStruct x f = allocaBytes 1048 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceToolPropertiesEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (name)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (version)- poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlagsEXT)) (purposes)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (description)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (layer)- f- cStructSize = 1048- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)- poke ((p `plusPtr` 528 :: Ptr ToolPurposeFlagsEXT)) (zero)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)- pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))) (mempty)- f+-- No documentation found for TopLevel "VkToolPurposeFlagsEXT"+type ToolPurposeFlagsEXT = ToolPurposeFlags -instance FromCStruct PhysicalDeviceToolPropertiesEXT where- peekCStruct p = do- name <- packCString (lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))- version <- packCString (lowerArrayPtr ((p `plusPtr` 272 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))- purposes <- peek @ToolPurposeFlagsEXT ((p `plusPtr` 528 :: Ptr ToolPurposeFlagsEXT))- description <- packCString (lowerArrayPtr ((p `plusPtr` 532 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))- layer <- packCString (lowerArrayPtr ((p `plusPtr` 788 :: Ptr (FixedArray MAX_EXTENSION_NAME_SIZE CChar))))- pure $ PhysicalDeviceToolPropertiesEXT- name version purposes description layer -instance Storable PhysicalDeviceToolPropertiesEXT where- sizeOf ~_ = 1048- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceToolPropertiesEXT where- zero = PhysicalDeviceToolPropertiesEXT- mempty- mempty- zero- mempty- mempty+-- No documentation found for TopLevel "VkToolPurposeFlagBitsEXT"+type ToolPurposeFlagBitsEXT = ToolPurposeFlagBits -type ToolPurposeFlagsEXT = ToolPurposeFlagBitsEXT---- | VkToolPurposeFlagBitsEXT - Bitmask specifying the purposes of an active--- tool------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_info VK_EXT_tooling_info>,--- 'ToolPurposeFlagsEXT'-newtype ToolPurposeFlagBitsEXT = ToolPurposeFlagBitsEXT Flags- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'TOOL_PURPOSE_VALIDATION_BIT_EXT' specifies that the tool provides--- validation of API usage.-pattern TOOL_PURPOSE_VALIDATION_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000001--- | 'TOOL_PURPOSE_PROFILING_BIT_EXT' specifies that the tool provides--- profiling of API usage.-pattern TOOL_PURPOSE_PROFILING_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000002--- | 'TOOL_PURPOSE_TRACING_BIT_EXT' specifies that the tool is capturing data--- about the application’s API usage, including anything from simple--- logging to capturing data for later replay.-pattern TOOL_PURPOSE_TRACING_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000004--- | 'TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT' specifies that the tool--- provides additional API features\/extensions on top of the underlying--- implementation.-pattern TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000008--- | 'TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT' specifies that the tool--- modifies the API features\/limits\/extensions presented to the--- application.-pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000010--- | 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' specifies that the tool consumes--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-debug-markers debug markers>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-debug-annotation object debug annotation>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-queue-labels queue labels>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-command-buffer-labels command buffer labels>-pattern TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000040--- | 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' specifies that the tool reports--- additional information to the application via callbacks specified by--- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT' or--- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT'-pattern TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = ToolPurposeFlagBitsEXT 0x00000020--conNameToolPurposeFlagBitsEXT :: String-conNameToolPurposeFlagBitsEXT = "ToolPurposeFlagBitsEXT"--enumPrefixToolPurposeFlagBitsEXT :: String-enumPrefixToolPurposeFlagBitsEXT = "TOOL_PURPOSE_"--showTableToolPurposeFlagBitsEXT :: [(ToolPurposeFlagBitsEXT, String)]-showTableToolPurposeFlagBitsEXT =- [ (TOOL_PURPOSE_VALIDATION_BIT_EXT , "VALIDATION_BIT_EXT")- , (TOOL_PURPOSE_PROFILING_BIT_EXT , "PROFILING_BIT_EXT")- , (TOOL_PURPOSE_TRACING_BIT_EXT , "TRACING_BIT_EXT")- , (TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT, "ADDITIONAL_FEATURES_BIT_EXT")- , (TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT , "MODIFYING_FEATURES_BIT_EXT")- , (TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT , "DEBUG_MARKERS_BIT_EXT")- , (TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT , "DEBUG_REPORTING_BIT_EXT")- ]--instance Show ToolPurposeFlagBitsEXT where- showsPrec = enumShowsPrec enumPrefixToolPurposeFlagBitsEXT- showTableToolPurposeFlagBitsEXT- conNameToolPurposeFlagBitsEXT- (\(ToolPurposeFlagBitsEXT x) -> x)- (\x -> showString "0x" . showHex x)--instance Read ToolPurposeFlagBitsEXT where- readPrec = enumReadPrec enumPrefixToolPurposeFlagBitsEXT- showTableToolPurposeFlagBitsEXT- conNameToolPurposeFlagBitsEXT- ToolPurposeFlagBitsEXT+-- No documentation found for TopLevel "VkPhysicalDeviceToolPropertiesEXT"+type PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties type EXT_TOOLING_INFO_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_EXT_tooling_info.hs-boot
@@ -1,182 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_tooling_info - device extension------ == VK_EXT_tooling_info------ [__Name String__]--- @VK_EXT_tooling_info@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 246------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ [__Contact__]------ - Tobias Hector--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_tooling_info] @tobski%0A<<Here describe the issue or question you have about the VK_EXT_tooling_info extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2018-11-05------ [__Contributors__]------ - Rolando Caloca------ - Matthaeus Chajdas------ - Baldur Karlsson------ - Daniel Rakos------ == Description------ When an error occurs during application development, a common question--- is \"What tools are actually running right now?\" This extension adds--- the ability to query that information directly from the Vulkan--- implementation.------ Outdated versions of one tool might not play nicely with another, or--- perhaps a tool is not actually running when it should have been. Trying--- to figure that out can cause headaches as it is necessary to consult--- each known tool to figure out what is going on — in some cases the tool--- might not even be known.------ Typically, the expectation is that developers will simply print out this--- information for visual inspection when an issue occurs, however a small--- amount of semantic information about what the tool is doing is provided--- to help identify it programmatically. For example, if the advertised--- limits or features of an implementation are unexpected, is there a tool--- active which modifies these limits? Or if an application is providing--- debug markers, but the implementation is not actually doing anything--- with that information, this can quickly point that out.------ == New Commands------ - 'getPhysicalDeviceToolPropertiesEXT'------ == New Structures------ - 'PhysicalDeviceToolPropertiesEXT'------ == New Enums------ - 'ToolPurposeFlagBitsEXT'------ == New Bitmasks------ - 'ToolPurposeFlagsEXT'------ == New Enum Constants------ - 'EXT_TOOLING_INFO_EXTENSION_NAME'------ - 'EXT_TOOLING_INFO_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_marker VK_EXT_debug_marker>--- is supported:------ - Extending 'ToolPurposeFlagBitsEXT':------ - 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>--- is supported:------ - Extending 'ToolPurposeFlagBitsEXT':------ - 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>--- is supported:------ - Extending 'ToolPurposeFlagBitsEXT':------ - 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT'------ - 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT'------ == Examples------ __Printing Tool Information__------ > uint32_t num_tools;--- > VkPhysicalDeviceToolPropertiesEXT *pToolProperties;--- > vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &num_tools, NULL);--- >--- > pToolProperties = (VkPhysicalDeviceToolPropertiesEXT*)malloc(sizeof(VkPhysicalDeviceToolPropertiesEXT) * num_tools);--- >--- > vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &num_tools, pToolProperties);--- >--- > for (int i = 0; i < num_tools; ++i) {--- > printf("%s:\n", pToolProperties[i].name);--- > printf("Version:\n");--- > printf("%s:\n", pToolProperties[i].version);--- > printf("Description:\n");--- > printf("\t%s\n", pToolProperties[i].description);--- > printf("Purposes:\n");--- > printf("\t%s\n", VkToolPurposeFlagBitsEXT_to_string(pToolProperties[i].purposes));--- > if (strnlen_s(pToolProperties[i].layer,VK_MAX_EXTENSION_NAME_SIZE) > 0) {--- > printf("Corresponding Layer:\n");--- > printf("\t%s\n", pToolProperties[i].layer);--- > }--- > }------ == Issues------ 1) Why is this information separate from the layer mechanism?------ Some tooling may be built into a driver, or be part of the Vulkan loader--- etc. Tying this information directly to layers would have been awkward--- at best.------ == Version History------ - Revision 1, 2018-11-05 (Tobias Hector)------ - Initial draft------ == See Also------ 'PhysicalDeviceToolPropertiesEXT', 'ToolPurposeFlagBitsEXT',--- 'ToolPurposeFlagsEXT', 'getPhysicalDeviceToolPropertiesEXT'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_EXT_tooling_info (PhysicalDeviceToolPropertiesEXT) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceToolPropertiesEXT--instance ToCStruct PhysicalDeviceToolPropertiesEXT-instance Show PhysicalDeviceToolPropertiesEXT--instance FromCStruct PhysicalDeviceToolPropertiesEXT-
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -206,7 +206,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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/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 +230,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -552,7 +552,7 @@ -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- -- - #VUID-vkCmdBeginTransformFeedbackEXT-None-04128# The last--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://www.khronos.org/registry/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 --@@ -898,7 +898,7 @@ -- -- - #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.2-extensions/html/vkspec.html#queries-operation-active active>+-- <https://www.khronos.org/registry/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 --@@ -1076,7 +1076,7 @@ -- -- - #VUID-vkCmdEndQueryIndexedEXT-None-02342# All queries used by the -- command /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+-- <https://www.khronos.org/registry/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@@@ -1225,7 +1225,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1281,7 +1281,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -1289,7 +1289,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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'@@ -1492,50 +1492,50 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419# If the -- bound graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1543,11 +1543,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1555,11 +1555,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1567,11 +1567,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1579,11 +1579,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1591,11 +1591,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1603,21 +1603,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04876# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawIndirectByteCountEXT-None-04877# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -1635,14 +1635,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727# If@@ -1666,7 +1666,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1675,7 +1675,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1684,7 +1684,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1693,7 +1693,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1702,7 +1702,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1711,7 +1711,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1720,61 +1720,61 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1783,7 +1783,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1796,11 +1796,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1812,13 +1812,13 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -1826,17 +1826,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -1844,7 +1844,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1852,11 +1852,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1865,37 +1865,37 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -1919,7 +1919,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- '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@@ -1935,7 +1935,7 @@ -- graphics pipeline was created with both the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1943,7 +1943,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913# If the bound -- graphics pipeline was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1971,7 +1971,7 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04879# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- '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@@ -2205,7 +2205,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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+ -- <https://www.khronos.org/registry/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
@@ -206,7 +206,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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://www.khronos.org/registry/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 +230,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification>+-- <https://www.khronos.org/registry/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 +300,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (ValidationCacheEXT)@@ -391,7 +391,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification>+-- <https://www.khronos.org/registry/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 +255,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.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+ -- <https://www.khronos.org/registry/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
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -112,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -196,7 +196,7 @@ -- values used to create the currently active pipeline. -- -- If the bound pipeline state object was also created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT' -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- can be used instead of 'cmdSetVertexInputEXT' to dynamically set the@@ -205,7 +205,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetVertexInputEXT-None-04790# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791#@@ -388,11 +388,11 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@ -- -- - #VUID-VkVertexInputBindingDescription2EXT-divisor-04798# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+-- <https://www.khronos.org/registry/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 +433,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.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+ -- <https://www.khronos.org/registry/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
@@ -112,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_sampler_ycbcr_conversion@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Tony Zlatinski@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2020-07-28 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -64,18 +73,28 @@ -- -- - Extending 'Vulkan.Core10.Enums.Format.Format': ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+-- - 'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+-- - 'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+-- - 'FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+-- - 'FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- - Revision 1, 2020-03-08 (Piers Daniell)@@ -89,11 +108,15 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats ( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(..)+module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats ( pattern FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT+ , pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT+ , pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT+ , pattern FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT+ , PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(..) , EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION , pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION , EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME@@ -121,7 +144,27 @@ import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.Format (Format(FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16))+import Vulkan.Core10.Enums.Format (Format(FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16))+import Vulkan.Core10.Enums.Format (Format(FORMAT_G16_B16R16_2PLANE_444_UNORM))+import Vulkan.Core10.Enums.Format (Format(FORMAT_G8_B8R8_2PLANE_444_UNORM)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT))+-- No documentation found for TopLevel "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT"+pattern FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = FORMAT_G8_B8R8_2PLANE_444_UNORM+++-- No documentation found for TopLevel "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT"+pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16+++-- No documentation found for TopLevel "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT"+pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16+++-- No documentation found for TopLevel "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT"+pattern FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = FORMAT_G16_B16R16_2PLANE_444_UNORM++ -- | VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - Structure describing -- whether the implementation supports additional 2-plane 444 Y′CBCR -- formats@@ -144,6 +187,13 @@ -- -- == Valid Usage (Implicit) --+-- Note+--+-- Although the formats defined by the @VK_EXT_ycbcr_2plane_444_formats@+-- were promoted to Vulkan 1.3 as optional formats, the+-- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT' structure was not+-- promoted to Vulkan 1.3.+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats VK_EXT_ycbcr_2plane_444_formats>,@@ -153,13 +203,13 @@ { -- | #features-ycbcr2plane444Formats# @ycbcr2plane444Formats@ indicates that -- the implementation supports the following 2-plane 444 Y′CBCR formats: --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM' --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16' --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16' --- -- - 'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM' ycbcr2plane444Formats :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_sampler_ycbcr_conversion@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Tony Zlatinski@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2020-07-28 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -64,18 +73,28 @@ -- -- - Extending 'Vulkan.Core10.Enums.Format.Format': ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+-- - 'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+-- - 'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+-- - 'FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT' ----- - 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+-- - 'FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT' --+-- == Promotion to Vulkan 1.3+--+-- This extension has been partially promoted. The format enumerants+-- introduced by the extension are included in core Vulkan 1.3, with the+-- EXT suffix omitted. However, runtime support for these formats is+-- optional in core Vulkan 1.3, while if this extension is supported,+-- runtime support is mandatory. The feature structure is not promoted. The+-- original enum names are still available as aliases of the core+-- functionality.+-- -- == Version History -- -- - Revision 1, 2020-03-08 (Piers Daniell)@@ -89,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -40,7 +40,7 @@ -- == Description -- -- This extension allows images of a format that requires--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://www.khronos.org/registry/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 +74,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification>+-- <https://www.khronos.org/registry/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 +137,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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+ -- <https://www.khronos.org/registry/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
@@ -40,7 +40,7 @@ -- == Description -- -- This extension allows images of a format that requires--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://www.khronos.org/registry/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 +74,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -204,7 +204,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification>+-- <https://www.khronos.org/registry/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 +402,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter ("allocator" ::: Maybe AllocationCallbacks) -> io (BufferCollectionFUCHSIA)@@ -642,7 +642,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1051,7 +1051,7 @@ , -- | @bufferCount@ is the number of buffers in the collection bufferCount :: Word32 , -- | @createInfoIndex@ as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen create infos>+ -- <https://www.khronos.org/registry/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 +1204,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.2-extensions/html/vkspec.html#buffer-compatible-format-features buffer compatible format features>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-compatible-format-features buffer compatible format features> -- -- == Valid Usage (Implicit) --@@ -1487,7 +1487,7 @@ -- -- - #VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+-- <https://www.khronos.org/registry/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',
src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot view
@@ -204,7 +204,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -111,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -111,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -109,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/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 +203,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>. -- -- == Return Codes --@@ -334,13 +334,13 @@ -- -- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765# -- @handleType@ /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fuchsia Handle Types Supported by >+-- <https://www.khronos.org/registry/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.2-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-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 +472,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+-- <https://www.khronos.org/registry/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 +480,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://www.khronos.org/registry/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
@@ -109,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -69,7 +69,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_decorate_string Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -73,7 +73,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_hlsl_functionality1 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_surfaceless_query Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -69,7 +69,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_user_type Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -77,10 +77,9 @@ -- -- - 'HUAWEI_INVOCATION_MASK_SPEC_VERSION' ----- - Extending--- 'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':@@ -88,9 +87,9 @@ -- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI' -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -141,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -151,11 +150,6 @@ , pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION , HUAWEI_INVOCATION_MASK_EXTENSION_NAME , pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME- , AccessFlagBits2KHR(..)- , AccessFlags2KHR- , PipelineStageFlagBits2KHR(..)- , PipelineStageFlags2KHR- , Flags64 ) where import Vulkan.Internal.Utils (traceAroundEvent)@@ -198,11 +192,6 @@ import Vulkan.Core10.Handles (ImageView(..)) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI))-import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlags2KHR)-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe@@ -216,7 +205,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdBindInvocationMaskHUAWEI-None-04976# 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.3-extensions/html/vkspec.html#features-invocationMask invocation mask image> -- feature /must/ be enabled -- -- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977# If @imageView@
src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot view
@@ -77,10 +77,9 @@ -- -- - 'HUAWEI_INVOCATION_MASK_SPEC_VERSION' ----- - Extending--- 'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':@@ -88,9 +87,9 @@ -- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI' -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -141,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -108,9 +108,9 @@ -- - 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI' -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - Extending -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':@@ -335,7 +335,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -348,9 +348,6 @@ , pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION , HUAWEI_SUBPASS_SHADING_EXTENSION_NAME , pattern HUAWEI_SUBPASS_SHADING_EXTENSION_NAME- , PipelineStageFlagBits2KHR(..)- , PipelineStageFlags2KHR- , Flags64 ) where import Vulkan.Internal.Utils (traceAroundEvent)@@ -409,9 +406,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe@@ -515,7 +509,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdSubpassShadingHUAWEI-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -571,7 +565,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -579,7 +573,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -813,7 +807,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.2-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+ -- <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
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot view
@@ -108,9 +108,9 @@ -- - 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI' -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - Extending -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':@@ -335,7 +335,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_IMG_filter_cubic Vulkan Specification>+-- <https://www.khronos.org/registry/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.
src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs view
@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_IMG_format_pvrtc Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -313,7 +313,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -867,7 +867,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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot view
@@ -313,7 +313,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -81,7 +81,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -81,7 +81,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -111,13 +111,13 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-StorageBuffer16BitAccess StorageBuffer16BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-UniformAndStorageBuffer16BitAccess UniformAndStorageBuffer16BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-StoragePushConstant16 StoragePushConstant16> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageInputOutput16 StorageInputOutput16>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageInputOutput16 StorageInputOutput16> -- -- == Version History --@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_16bit_storage Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -97,11 +97,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-StorageBuffer8BitAccess StorageBuffer8BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-UniformAndStorageBuffer8BitAccess UniformAndStorageBuffer8BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant8 StoragePushConstant8>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant8 StoragePushConstant8> -- -- == Version History --@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_8bit_storage Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -355,9 +355,10 @@ -- <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 'FormatFeatureFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' -- -- == Issues --@@ -375,7 +376,7 @@ -- 'cmdCopyMemoryToAccelerationStructureKHR') -- -- - document--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances> -- -- - added 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure --@@ -383,7 +384,7 @@ -- ('cmdBuildAccelerationStructuresIndirectKHR') -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://www.khronos.org/registry/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@@ -654,7 +655,7 @@ -- structure and require one of them be @NULL@ -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- support for acceleration structures -- -- - changed the @update@ member of@@ -1146,7 +1147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -1245,40 +1246,6 @@ , ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR , .. )- , FormatFeatureFlags2KHR- , FormatFeatureFlagBits2KHR( FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR- , FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR- , FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR- , FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR- , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR- , FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR- , FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR- , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR- , FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR- , FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR- , FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR- , FORMAT_FEATURE_2_BLIT_DST_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT- , FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR- , FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR- , FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR- , FORMAT_FEATURE_2_DISJOINT_BIT_KHR- , FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR- , FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR- , FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR- , FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR- , 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- , FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR- , ..- ) , KHR_ACCELERATION_STRUCTURE_SPEC_VERSION , pattern KHR_ACCELERATION_STRUCTURE_SPEC_VERSION , KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME@@ -1286,7 +1253,6 @@ , AccelerationStructureKHR(..) , DeferredOperationKHR(..) , DebugReportObjectTypeEXT(..)- , Flags64 ) where import Vulkan.CStruct.Utils (FixedArray)@@ -1409,7 +1375,6 @@ import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.FundamentalTypes (Flags64) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.IndexType (IndexType) import Vulkan.CStruct.Extends (PeekChain)@@ -1446,7 +1411,6 @@ import Vulkan.Extensions.Handles (AccelerationStructureKHR(..)) import Vulkan.Extensions.VK_EXT_debug_report (DebugReportObjectTypeEXT(..)) import Vulkan.Extensions.Handles (DeferredOperationKHR(..))-import Vulkan.Core10.FundamentalTypes (Flags64) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe@@ -1511,7 +1475,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1543,12 +1507,12 @@ -- @pInfo->mode@. -- -- Accesses to @pInfo->src@ and @pInfo->dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/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@@ -1660,7 +1624,7 @@ -- -- - #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used@@ -1717,7 +1681,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://www.khronos.org/registry/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@@ -1748,12 +1712,12 @@ -- = Description -- -- Accesses to @pInfo->src@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/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@@ -1927,7 +1891,7 @@ -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783# The@@ -1980,7 +1944,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://www.khronos.org/registry/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'@@ -2011,12 +1975,12 @@ -- = Description -- -- Accesses to @pInfo->dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/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@@ -2158,7 +2122,7 @@ -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782# The@@ -2211,7 +2175,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://www.khronos.org/registry/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'@@ -2243,12 +2207,12 @@ -- -- Accesses to any of the acceleration structures listed in -- @pAccelerationStructures@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. --@@ -2458,7 +2422,7 @@ -- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784# The@@ -2556,9 +2520,9 @@ -- -- - #VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2634,18 +2598,18 @@ -- -- - #VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructure accelerationStructure>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2695,7 +2659,7 @@ -- structure. (AccelerationStructureCreateInfoKHR a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (AccelerationStructureKHR)@@ -2756,12 +2720,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.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/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@@ -2778,12 +2742,12 @@ -- 'AccelerationStructureGeometryTrianglesDataKHR'::@transformData@, -- 'AccelerationStructureGeometryAabbsDataKHR'::@data@, and -- 'AccelerationStructureGeometryInstancesDataKHR'::@data@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADER_READ_BIT'. -- -- == Valid Usage@@ -3344,12 +3308,12 @@ -- 'cmdBuildAccelerationStructuresKHR'. -- -- Accesses to any element of @pIndirectDeviceAddresses@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_INDIRECT_COMMAND_READ_BIT'. --@@ -3838,7 +3802,7 @@ -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild> -- feature /must/ be enabled -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651#@@ -4281,7 +4245,7 @@ -- -- - #VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03725# If@@ -4424,7 +4388,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://www.khronos.org/registry/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@@@ -4499,7 +4463,7 @@ -- -- - #VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504# If -- @device@ was created with multiple physical devices, then the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -4617,14 +4581,14 @@ -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619# If@@ -4722,7 +4686,7 @@ -- -- - #VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/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' --@@ -4818,7 +4782,7 @@ { -- | #features-accelerationStructure# @accelerationStructure@ indicates -- whether the implementation supports the acceleration structure -- functionality. See- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure Acceleration Structures>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure Acceleration Structures>. accelerationStructure :: Bool , -- | #features-accelerationStructureCaptureReplay# -- @accelerationStructureCaptureReplay@ indicates whether the@@ -4908,10 +4872,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.2-extensions/html/vkspec.html#limits-maxGeometryCount maxGeometryCount>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxInstanceCount maxInstanceCount>,+-- <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>, -- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxPrimitiveCount maxPrimitiveCount>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxPrimitiveCount maxPrimitiveCount> -- /must/ not exceed 232-1. -- -- If the 'PhysicalDeviceAccelerationStructurePropertiesKHR' structure is@@ -5274,7 +5238,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.2-extensions/html/vkspec.html#acceleration-structure-motion-instances motion instances>+ -- <https://www.khronos.org/registry/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'@@ -5407,9 +5371,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.2-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR built-in>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shader-binding-table-hit-shader-indexing used to determine hit and intersection shaders executed during traversal>.+-- <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>. -- The geometry index is available to ray queries via the -- @OpRayQueryGetIntersectionGeometryIndexKHR@ instruction. --@@ -5928,7 +5892,7 @@ type' :: AccelerationStructureTypeKHR , -- | @deviceAddress@ is the device address requested for the acceleration -- structure if the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay> -- feature is being used. deviceAddress :: DeviceAddress }@@ -6169,6 +6133,7 @@ peek = peekCStruct poke ptr poked = pokeCStruct ptr poked (pure ()) +-- | The Identity Matrix instance Zero TransformMatrixKHR where zero = TransformMatrixKHR (1,0,0,0)@@ -6857,7 +6822,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.2-extensions/html/vkspec.html#ray-traversal-culling-face facing determination>+-- <https://www.khronos.org/registry/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.@@ -7390,517 +7355,6 @@ showTableAccelerationStructureCompatibilityKHR conNameAccelerationStructureCompatibilityKHR AccelerationStructureCompatibilityKHR---type FormatFeatureFlags2KHR = FormatFeatureFlagBits2KHR---- | VkFormatFeatureFlagBits2KHR - Bitmask specifying features supported by a--- buffer------ = Description------ The following bits /may/ be set in @linearTilingFeatures@ and--- @optimalTilingFeatures@, specifying that the features are supported by--- <VkImage.html images> or <VkImageView.html image views> or--- <VkSamplerYcbcrConversion.html sampler Y′CBCR conversion objects>--- created with the queried--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:------ - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' specifies that an image--- view /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.------ - 'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR' specifies that an image--- view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.------ - 'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR' specifies that an--- image view /can/ be used as storage image that supports atomic--- operations.------ - 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR' specifies that an image--- view /can/ be used as a framebuffer color attachment and as an input--- attachment.------ - 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR' specifies that an--- image view /can/ be used as a framebuffer color attachment that--- supports blending and as an input attachment.------ - 'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR' specifies that--- an image view /can/ be used as a framebuffer depth\/stencil--- attachment and as an input attachment.------ - 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' specifies that an image /can/ be--- used as @srcImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.------ - 'FORMAT_FEATURE_2_BLIT_DST_BIT_KHR' specifies that an image /can/ be--- used as @dstImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.------ - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR' specifies--- that if 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' is also set, an--- image view /can/ be used with a sampler that has either of--- @magFilter@ or @minFilter@ set to--- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or @mipmapMode@ set to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'.--- If 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' is also set, an image can be--- used as the @srcImage@ to--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@--- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only--- be exposed for formats that also support the--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' or--- 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR'.------ If the format being queried is a depth\/stencil format, this bit--- only specifies that the depth aspect (not the stencil aspect) of an--- image of this format supports linear filtering. Where depth--- comparison is supported it /may/ be linear filtered whether this bit--- is present or not, but where this bit is not present the filtered--- value /may/ be computed in an implementation-dependent manner which--- differs from the normal rules of linear filtering. The resulting--- value /must/ be in the range [0,1] and /should/ be proportional to,--- or a weighted average of, the number of comparison passes or--- failures.------ - 'FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR' specifies that an image--- /can/ be used as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>.------ - 'FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR' specifies that an image--- /can/ be used as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.------ - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR' specifies--- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with--- a min or max--- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'.--- This bit /must/ only be exposed for formats that also support the--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR'.------ - 'FORMAT_FEATURE_2_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_2_SAMPLED_IMAGE_BIT_KHR'. 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_KHR' specifies that an--- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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'--- @xChromaOffset@ and\/or @yChromaOffset@ of--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'.--- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.--- If a format does not incorporate chroma downsampling (it is not a--- “422” or “420” format) but the implementation supports sampler--- Y′CBCR conversion for this format, the implementation /must/ set--- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR'.------ - 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' specifies that an--- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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'--- @xChromaOffset@ and\/or @yChromaOffset@ of--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.--- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If--- neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' nor--- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR' is set, the--- application /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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_KHR'--- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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'.------ - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR'--- specifies that the format can have different chroma, min, and mag--- filters.------ - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'--- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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_KHR'--- specifies that reconstruction /can/ be forcibly made explicit by--- setting--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@--- to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being--- queried supports--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'--- it /must/ also support--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR'.------ - 'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' specifies that a multi-planar--- image /can/ have the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'--- set during image creation. An implementation /must/ not set--- 'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' for /single-plane formats/.------ - '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.2-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.2-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.------ - 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR' specifies--- that image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for read operations without specifying a format.------ - 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR' specifies--- that image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for write operations without specifying a format.------ - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR' specifies--- that image views created with this format /can/ be used for depth--- comparison performed by @OpImage*Dref@ instructions.------ - '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.2-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.------ 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--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'::@format@:------ - 'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR' specifies that the--- format /can/ be used to create a buffer view that /can/ be bound to--- a--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'--- descriptor.------ - 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR' specifies that the--- format /can/ be used to create a buffer view that /can/ be bound to--- a--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'--- descriptor.------ - 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR' specifies--- that atomic operations are supported on--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'--- with this format.------ - 'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR' specifies that the format--- /can/ be used as a vertex attribute format--- ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).------ - '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.2-extensions/html/vkspec.html#acceleration-structure 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.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>--- builds.------ = 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>-newtype FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2KHR Flags64- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' specifies that an image view--- /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000001--- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR' specifies that an image view--- /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.-pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000002--- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR' specifies that an image--- view /can/ be used as storage image that supports atomic operations.-pattern FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000004--- | 'FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR' specifies that the--- format /can/ be used to create a buffer view that /can/ be bound to a--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'--- descriptor.-pattern FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000008--- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR' specifies that the--- format /can/ be used to create a buffer view that /can/ be bound to a--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'--- descriptor.-pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000010--- | 'FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR' specifies that--- atomic operations are supported on--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'--- with this format.-pattern FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000020--- | 'FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR' specifies that the format /can/--- be used as a vertex attribute format--- ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).-pattern FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000040--- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR' specifies that an image view--- /can/ be used as a framebuffer color attachment and as an input--- attachment.-pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000080--- | 'FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR' specifies that an--- image view /can/ be used as a framebuffer color attachment that supports--- blending and as an input attachment.-pattern FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000100--- | 'FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR' specifies that an--- image view /can/ be used as a framebuffer depth\/stencil attachment and--- as an input attachment.-pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000200--- | 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' specifies that an image /can/ be--- used as @srcImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.-pattern FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000400--- | 'FORMAT_FEATURE_2_BLIT_DST_BIT_KHR' specifies that an image /can/ be--- used as @dstImage@ for the--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.-pattern FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000000800--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR' specifies that if--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' is also set, an image view--- /can/ be used with a sampler that has either of @magFilter@ or--- @minFilter@ set to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or--- @mipmapMode@ set to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. If--- 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR' is also set, an image can be used as--- the @srcImage@ to--- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@ of--- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be--- exposed for formats that also support the--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR' or--- 'FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR'.------ If the format being queried is a depth\/stencil format, this bit only--- specifies that the depth aspect (not the stencil aspect) of an image of--- this format supports linear filtering. Where depth comparison is--- supported it /may/ be linear filtered whether this bit is present or--- not, but where this bit is not present the filtered value /may/ be--- computed in an implementation-dependent manner which differs from the--- normal rules of linear filtering. The resulting value /must/ be in the--- range [0,1] and /should/ be proportional to, or a weighted average of,--- the number of comparison passes or failures.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000001000--- | 'FORMAT_FEATURE_2_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_2_SAMPLED_IMAGE_BIT_KHR'. 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_EXT = FormatFeatureFlagBits2KHR 0x0000000000002000--- | 'FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR' specifies that an image /can/ be--- used as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>.-pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000004000--- | 'FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR' specifies that an image /can/ be--- used as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>.-pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000008000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR' specifies--- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with a--- min or max--- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode'. This--- bit /must/ only be exposed for formats that also support the--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR'.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000010000--- | 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR' specifies that an--- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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'--- @xChromaOffset@ and\/or @yChromaOffset@ of--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. Otherwise--- both @xChromaOffset@ and @yChromaOffset@ /must/ be--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'. If a--- format does not incorporate chroma downsampling (it is not a “422” or--- “420” format) but the implementation supports sampler Y′CBCR conversion--- for this format, the implementation /must/ set--- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR'.-pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000020000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR'--- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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_KHR =- FormatFeatureFlagBits2KHR 0x0000000000040000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR'--- specifies that the format can have different chroma, min, and mag--- filters.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR =- FormatFeatureFlagBits2KHR 0x0000000000080000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'--- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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_KHR =- FormatFeatureFlagBits2KHR 0x0000000000100000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR'--- specifies that reconstruction /can/ be forcibly made explicit by setting--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'::@forceExplicitReconstruction@--- to 'Vulkan.Core10.FundamentalTypes.TRUE'. If the format being queried--- supports--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR'--- it /must/ also support--- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR'.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR =- FormatFeatureFlagBits2KHR 0x0000000000200000--- | 'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' specifies that a multi-planar image--- /can/ have the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' set--- during image creation. An implementation /must/ not set--- 'FORMAT_FEATURE_2_DISJOINT_BIT_KHR' for /single-plane formats/.-pattern FORMAT_FEATURE_2_DISJOINT_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000000400000--- | 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' specifies that an--- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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'--- @xChromaOffset@ and\/or @yChromaOffset@ of--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN'.--- Otherwise both @xChromaOffset@ and @yChromaOffset@ /must/ be--- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT'. If--- neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR' nor--- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR' is set, the--- application /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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_KHR = FormatFeatureFlagBits2KHR 0x0000000000800000--- | 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR' specifies that--- image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for read operations without specifying a format.-pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000080000000--- | 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR' specifies that--- image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for write operations without specifying a format.-pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000100000000--- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR' 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_KHR = FormatFeatureFlagBits2KHR 0x0000000200000000--- | '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.2-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 = FormatFeatureFlagBits2KHR 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.2-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 = FormatFeatureFlagBits2KHR 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.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.-pattern FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = FormatFeatureFlagBits2KHR 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.2-extensions/html/vkspec.html#acceleration-structure 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.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>--- builds.-pattern FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits2KHR 0x0000000020000000--conNameFormatFeatureFlagBits2KHR :: String-conNameFormatFeatureFlagBits2KHR = "FormatFeatureFlagBits2KHR"--enumPrefixFormatFeatureFlagBits2KHR :: String-enumPrefixFormatFeatureFlagBits2KHR = "FORMAT_FEATURE_2_"--showTableFormatFeatureFlagBits2KHR :: [(FormatFeatureFlagBits2KHR, String)]-showTableFormatFeatureFlagBits2KHR =- [ (FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR , "SAMPLED_IMAGE_BIT_KHR")- , (FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR , "STORAGE_IMAGE_BIT_KHR")- , (FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR , "STORAGE_IMAGE_ATOMIC_BIT_KHR")- , (FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR , "UNIFORM_TEXEL_BUFFER_BIT_KHR")- , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR , "STORAGE_TEXEL_BUFFER_BIT_KHR")- , (FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR, "STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR")- , (FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR , "VERTEX_BUFFER_BIT_KHR")- , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR , "COLOR_ATTACHMENT_BIT_KHR")- , (FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR , "COLOR_ATTACHMENT_BLEND_BIT_KHR")- , (FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR , "DEPTH_STENCIL_ATTACHMENT_BIT_KHR")- , (FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR , "BLIT_SRC_BIT_KHR")- , (FORMAT_FEATURE_2_BLIT_DST_BIT_KHR , "BLIT_DST_BIT_KHR")- , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR, "SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR")- , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT , "SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT")- , (FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR , "TRANSFER_SRC_BIT_KHR")- , (FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR , "TRANSFER_DST_BIT_KHR")- , (FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR, "SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR")- , (FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR , "MIDPOINT_CHROMA_SAMPLES_BIT_KHR")- , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR- , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"- )- , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR- , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"- )- , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR- , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"- )- , ( FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR- , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"- )- , (FORMAT_FEATURE_2_DISJOINT_BIT_KHR , "DISJOINT_BIT_KHR")- , (FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR , "COSITED_CHROMA_SAMPLES_BIT_KHR")- , (FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR , "STORAGE_READ_WITHOUT_FORMAT_BIT_KHR")- , (FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR , "STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR")- , (FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR , "SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR")- , (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")- , (FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR")- ]--instance Show FormatFeatureFlagBits2KHR where- showsPrec = enumShowsPrec enumPrefixFormatFeatureFlagBits2KHR- showTableFormatFeatureFlagBits2KHR- conNameFormatFeatureFlagBits2KHR- (\(FormatFeatureFlagBits2KHR x) -> x)- (\x -> showString "0x" . showHex x)--instance Read FormatFeatureFlagBits2KHR where- readPrec = enumReadPrec enumPrefixFormatFeatureFlagBits2KHR- showTableFormatFeatureFlagBits2KHR- conNameFormatFeatureFlagBits2KHR- FormatFeatureFlagBits2KHR type KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -355,9 +355,10 @@ -- <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 'FormatFeatureFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' -- -- == Issues --@@ -375,7 +376,7 @@ -- 'cmdCopyMemoryToAccelerationStructureKHR') -- -- - document--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances> -- -- - added 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure --@@ -383,7 +384,7 @@ -- ('cmdBuildAccelerationStructuresIndirectKHR') -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://www.khronos.org/registry/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@@ -654,7 +655,7 @@ -- structure and require one of them be @NULL@ -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- support for acceleration structures -- -- - changed the @update@ member of@@ -1146,7 +1147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -109,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_bind_memory2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -195,7 +195,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddresses>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddresses> -- -- == Version History --@@ -215,7 +215,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_address Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -21,3239 +21,324 @@ -- -- - Requires Vulkan 1.0 ----- [__Contact__]------ - Jeff Leger--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @jackohound%0A<<Here describe the issue or question you have about the VK_KHR_copy_commands2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-07-06------ [__Interactions and External Dependencies__]------ - None------ [__Contributors__]------ - Jeff Leger, Qualcomm------ - Tobias Hector, AMD------ - Jan-Harald Fredriksen, ARM------ - Tom Olson, ARM------ == Description------ This extension provides extensible versions of the Vulkan buffer and--- image copy commands. The new commands are functionally identical to the--- core commands, except that their copy parameters are specified using--- extensible structures that can be used to pass extension-specific--- information.------ The following extensible copy commands are introduced with this--- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an--- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.--- Lower level structures describing each region to be copied are also--- extended with @sType@\/@pNext@ members.------ == New Commands------ - 'cmdBlitImage2KHR'------ - 'cmdCopyBuffer2KHR'------ - 'cmdCopyBufferToImage2KHR'------ - 'cmdCopyImage2KHR'------ - 'cmdCopyImageToBuffer2KHR'------ - 'cmdResolveImage2KHR'------ == New Structures------ - 'BlitImageInfo2KHR'------ - 'BufferCopy2KHR'------ - 'BufferImageCopy2KHR'------ - 'CopyBufferInfo2KHR'------ - 'CopyBufferToImageInfo2KHR'------ - 'CopyImageInfo2KHR'------ - 'CopyImageToBufferInfo2KHR'------ - 'ImageBlit2KHR'------ - 'ImageCopy2KHR'------ - 'ImageResolve2KHR'------ - 'ResolveImageInfo2KHR'------ == New Enum Constants------ - 'KHR_COPY_COMMANDS_2_EXTENSION_NAME'------ - 'KHR_COPY_COMMANDS_2_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'------ == Version History------ - Revision 1, 2020-07-06 (Jeff Leger)------ - Internal revisions------ == See Also------ 'BlitImageInfo2KHR', 'BufferCopy2KHR', 'BufferImageCopy2KHR',--- 'CopyBufferInfo2KHR', 'CopyBufferToImageInfo2KHR', 'CopyImageInfo2KHR',--- 'CopyImageToBufferInfo2KHR', 'ImageBlit2KHR', 'ImageCopy2KHR',--- 'ImageResolve2KHR', 'ResolveImageInfo2KHR', 'cmdBlitImage2KHR',--- 'cmdCopyBuffer2KHR', 'cmdCopyBufferToImage2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyImageToBuffer2KHR', 'cmdResolveImage2KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_copy_commands2 ( cmdCopyBuffer2KHR- , cmdCopyImage2KHR- , cmdBlitImage2KHR- , cmdCopyBufferToImage2KHR- , cmdCopyImageToBuffer2KHR- , cmdResolveImage2KHR- , BufferCopy2KHR(..)- , ImageCopy2KHR(..)- , ImageBlit2KHR(..)- , BufferImageCopy2KHR(..)- , ImageResolve2KHR(..)- , CopyBufferInfo2KHR(..)- , CopyImageInfo2KHR(..)- , BlitImageInfo2KHR(..)- , CopyBufferToImageInfo2KHR(..)- , CopyImageToBufferInfo2KHR(..)- , ResolveImageInfo2KHR(..)- , KHR_COPY_COMMANDS_2_SPEC_VERSION- , pattern KHR_COPY_COMMANDS_2_SPEC_VERSION- , KHR_COPY_COMMANDS_2_EXTENSION_NAME- , pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME- ) where--import Vulkan.CStruct.Utils (FixedArray)-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 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.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 Data.Word (Word32)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.CStruct.Extends (forgetExtensions)-import Vulkan.CStruct.Utils (lowerArrayPtr)-import Vulkan.CStruct.Extends (peekSomeCStruct)-import Vulkan.CStruct.Extends (pokeSomeCStruct)-import Vulkan.Core10.Handles (Buffer)-import Vulkan.CStruct.Extends (Chain)-import Vulkan.Core10.Handles (CommandBuffer)-import Vulkan.Core10.Handles (CommandBuffer(..))-import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))-import Vulkan.Core10.Handles (CommandBuffer_T)-import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM)-import Vulkan.Dynamic (DeviceCmds(pVkCmdBlitImage2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBuffer2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBufferToImage2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImage2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImageToBuffer2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdResolveImage2KHR))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.CStruct.Extends (Extends)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.CStruct.Extends (Extensible(..))-import Vulkan.Core10.FundamentalTypes (Extent3D)-import Vulkan.Core10.Enums.Filter (Filter)-import Vulkan.Core10.Handles (Image)-import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)-import Vulkan.Core10.FundamentalTypes (Offset3D)-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.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyBuffer2KHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()---- | vkCmdCopyBuffer2KHR - Copy data between buffer regions------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ - #VUID-vkCmdCopyBuffer2KHR-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-vkCmdCopyBuffer2KHR-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-vkCmdCopyBuffer2KHR-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------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyBuffer2KHR-pCopyBufferInfo-parameter#--- @pCopyBufferInfo@ /must/ be a valid pointer to a valid--- 'CopyBufferInfo2KHR' structure------ - #VUID-vkCmdCopyBuffer2KHR-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-vkCmdCopyBuffer2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyBuffer2KHR-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 | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferInfo2KHR'-cmdCopyBuffer2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pCopyBufferInfo@ is a pointer to a 'CopyBufferInfo2KHR' structure- -- describing the copy parameters.- CopyBufferInfo2KHR- -> io ()-cmdCopyBuffer2KHR commandBuffer copyBufferInfo = liftIO . evalContT $ do- let vkCmdCopyBuffer2KHRPtr = pVkCmdCopyBuffer2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyBuffer2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer2KHR is null" Nothing Nothing- let vkCmdCopyBuffer2KHR' = mkVkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHRPtr- pCopyBufferInfo <- ContT $ withCStruct (copyBufferInfo)- lift $ traceAroundEvent "vkCmdCopyBuffer2KHR" (vkCmdCopyBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferInfo)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyImage2KHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()---- | vkCmdCopyImage2KHR - Copy data between images------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ - #VUID-vkCmdCopyImage2KHR-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-vkCmdCopyImage2KHR-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-vkCmdCopyImage2KHR-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------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyImage2KHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyImage2KHR-pCopyImageInfo-parameter# @pCopyImageInfo@--- /must/ be a valid pointer to a valid 'CopyImageInfo2KHR' structure------ - #VUID-vkCmdCopyImage2KHR-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-vkCmdCopyImage2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyImage2KHR-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 | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageInfo2KHR'-cmdCopyImage2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pCopyImageInfo@ is a pointer to a 'CopyImageInfo2KHR' structure- -- describing the copy parameters.- CopyImageInfo2KHR- -> io ()-cmdCopyImage2KHR commandBuffer copyImageInfo = liftIO . evalContT $ do- let vkCmdCopyImage2KHRPtr = pVkCmdCopyImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyImage2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage2KHR is null" Nothing Nothing- let vkCmdCopyImage2KHR' = mkVkCmdCopyImage2KHR vkCmdCopyImage2KHRPtr- pCopyImageInfo <- ContT $ withCStruct (copyImageInfo)- lift $ traceAroundEvent "vkCmdCopyImage2KHR" (vkCmdCopyImage2KHR' (commandBufferHandle (commandBuffer)) pCopyImageInfo)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBlitImage2KHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()---- | vkCmdBlitImage2KHR - Copy regions of an image, potentially performing--- format conversion,------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ - #VUID-vkCmdBlitImage2KHR-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-vkCmdBlitImage2KHR-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-vkCmdBlitImage2KHR-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------ == Valid Usage (Implicit)------ - #VUID-vkCmdBlitImage2KHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBlitImage2KHR-pBlitImageInfo-parameter# @pBlitImageInfo@--- /must/ be a valid pointer to a valid 'BlitImageInfo2KHR' structure------ - #VUID-vkCmdBlitImage2KHR-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-vkCmdBlitImage2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBlitImage2KHR-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 | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'BlitImageInfo2KHR', 'Vulkan.Core10.Handles.CommandBuffer'-cmdBlitImage2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pBlitImageInfo@ is a pointer to a 'BlitImageInfo2KHR' structure- -- describing the blit parameters.- BlitImageInfo2KHR- -> io ()-cmdBlitImage2KHR commandBuffer blitImageInfo = liftIO . evalContT $ do- let vkCmdBlitImage2KHRPtr = pVkCmdBlitImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdBlitImage2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage2KHR is null" Nothing Nothing- let vkCmdBlitImage2KHR' = mkVkCmdBlitImage2KHR vkCmdBlitImage2KHRPtr- pBlitImageInfo <- ContT $ withCStruct (blitImageInfo)- lift $ traceAroundEvent "vkCmdBlitImage2KHR" (vkCmdBlitImage2KHR' (commandBufferHandle (commandBuffer)) pBlitImageInfo)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyBufferToImage2KHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()---- | vkCmdCopyBufferToImage2KHR - Copy data from a buffer into an image------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ - #VUID-vkCmdCopyBufferToImage2KHR-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-vkCmdCopyBufferToImage2KHR-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-vkCmdCopyBufferToImage2KHR-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------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyBufferToImage2KHR-pCopyBufferToImageInfo-parameter#--- @pCopyBufferToImageInfo@ /must/ be a valid pointer to a valid--- 'CopyBufferToImageInfo2KHR' structure------ - #VUID-vkCmdCopyBufferToImage2KHR-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-vkCmdCopyBufferToImage2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyBufferToImage2KHR-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 | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferToImageInfo2KHR'-cmdCopyBufferToImage2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pCopyBufferToImageInfo@ is a pointer to a 'CopyBufferToImageInfo2KHR'- -- structure describing the copy parameters.- CopyBufferToImageInfo2KHR- -> io ()-cmdCopyBufferToImage2KHR commandBuffer copyBufferToImageInfo = liftIO . evalContT $ do- let vkCmdCopyBufferToImage2KHRPtr = pVkCmdCopyBufferToImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyBufferToImage2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage2KHR is null" Nothing Nothing- let vkCmdCopyBufferToImage2KHR' = mkVkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHRPtr- pCopyBufferToImageInfo <- ContT $ withCStruct (copyBufferToImageInfo)- lift $ traceAroundEvent "vkCmdCopyBufferToImage2KHR" (vkCmdCopyBufferToImage2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferToImageInfo)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyImageToBuffer2KHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()---- | vkCmdCopyImageToBuffer2KHR - Copy image data into a buffer------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ - #VUID-vkCmdCopyImageToBuffer2KHR-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-vkCmdCopyImageToBuffer2KHR-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-vkCmdCopyImageToBuffer2KHR-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------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyImageToBuffer2KHR-pCopyImageToBufferInfo-parameter#--- @pCopyImageToBufferInfo@ /must/ be a valid pointer to a valid--- 'CopyImageToBufferInfo2KHR' structure------ - #VUID-vkCmdCopyImageToBuffer2KHR-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-vkCmdCopyImageToBuffer2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyImageToBuffer2KHR-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 | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageToBufferInfo2KHR'-cmdCopyImageToBuffer2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'CopyImageToBufferInfo2KHR'- -- structure describing the copy parameters.- CopyImageToBufferInfo2KHR- -> io ()-cmdCopyImageToBuffer2KHR commandBuffer copyImageToBufferInfo = liftIO . evalContT $ do- let vkCmdCopyImageToBuffer2KHRPtr = pVkCmdCopyImageToBuffer2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyImageToBuffer2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer2KHR is null" Nothing Nothing- let vkCmdCopyImageToBuffer2KHR' = mkVkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHRPtr- pCopyImageToBufferInfo <- ContT $ withCStruct (copyImageToBufferInfo)- lift $ traceAroundEvent "vkCmdCopyImageToBuffer2KHR" (vkCmdCopyImageToBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyImageToBufferInfo)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdResolveImage2KHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()---- | vkCmdResolveImage2KHR - Resolve regions of an image------ = Description------ This command is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage', but includes--- extensible sub-structures that include @sType@ and @pNext@ parameters,--- allowing them to be more easily extended.------ == Valid Usage------ - #VUID-vkCmdResolveImage2KHR-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-vkCmdResolveImage2KHR-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-vkCmdResolveImage2KHR-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------ == Valid Usage (Implicit)------ - #VUID-vkCmdResolveImage2KHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdResolveImage2KHR-pResolveImageInfo-parameter#--- @pResolveImageInfo@ /must/ be a valid pointer to a valid--- 'ResolveImageInfo2KHR' structure------ - #VUID-vkCmdResolveImage2KHR-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-vkCmdResolveImage2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdResolveImage2KHR-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 | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'ResolveImageInfo2KHR'-cmdResolveImage2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pResolveImageInfo@ is a pointer to a 'ResolveImageInfo2KHR' structure- -- describing the resolve parameters.- ResolveImageInfo2KHR- -> io ()-cmdResolveImage2KHR commandBuffer resolveImageInfo = liftIO . evalContT $ do- let vkCmdResolveImage2KHRPtr = pVkCmdResolveImage2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdResolveImage2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage2KHR is null" Nothing Nothing- let vkCmdResolveImage2KHR' = mkVkCmdResolveImage2KHR vkCmdResolveImage2KHRPtr- pResolveImageInfo <- ContT $ withCStruct (resolveImageInfo)- lift $ traceAroundEvent "vkCmdResolveImage2KHR" (vkCmdResolveImage2KHR' (commandBufferHandle (commandBuffer)) pResolveImageInfo)- pure $ ()----- | VkBufferCopy2KHR - Structure specifying a buffer copy operation------ == Valid Usage------ - #VUID-VkBufferCopy2KHR-size-01988# The @size@ /must/ be greater than--- @0@------ == Valid Usage (Implicit)------ - #VUID-VkBufferCopy2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2_KHR'------ - #VUID-VkBufferCopy2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'CopyBufferInfo2KHR', 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data BufferCopy2KHR = BufferCopy2KHR- { -- | @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 (BufferCopy2KHR)-#endif-deriving instance Show BufferCopy2KHR--instance ToCStruct BufferCopy2KHR where- withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)- pokeCStruct p BufferCopy2KHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (srcOffset)- poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (dstOffset)- poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (size)- f- cStructSize = 40- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)- f--instance FromCStruct BufferCopy2KHR where- peekCStruct p = do- srcOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))- dstOffset <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))- size <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))- pure $ BufferCopy2KHR- srcOffset dstOffset size--instance Storable BufferCopy2KHR where- sizeOf ~_ = 40- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferCopy2KHR where- zero = BufferCopy2KHR- zero- zero- zero----- | VkImageCopy2KHR - Structure specifying an image copy operation------ == Valid Usage------ - #VUID-VkImageCopy2KHR-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)------ == Valid Usage (Implicit)------ - #VUID-VkImageCopy2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2_KHR'------ - #VUID-VkImageCopy2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkImageCopy2KHR-srcSubresource-parameter# @srcSubresource@--- /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'--- structure------ - #VUID-VkImageCopy2KHR-dstSubresource-parameter# @dstSubresource@--- /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'--- structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'CopyImageInfo2KHR', 'Vulkan.Core10.FundamentalTypes.Extent3D',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageCopy2KHR = ImageCopy2KHR- { -- | @srcSubresource@ and @dstSubresource@ are- -- 'Vulkan.Core10.CommandBufferBuilding.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 "VkImageCopy2KHR" "dstSubresource"- dstSubresource :: ImageSubresourceLayers- , -- No documentation found for Nested "VkImageCopy2KHR" "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 (ImageCopy2KHR)-#endif-deriving instance Show ImageCopy2KHR--instance ToCStruct ImageCopy2KHR where- withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageCopy2KHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)- poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)- poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)- poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)- poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)- f- cStructSize = 88- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)- f--instance FromCStruct ImageCopy2KHR where- peekCStruct p = do- srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))- srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))- dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))- dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))- extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))- pure $ ImageCopy2KHR- srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageCopy2KHR where- sizeOf ~_ = 88- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageCopy2KHR where- zero = ImageCopy2KHR- zero- zero- zero- zero- zero----- | VkImageBlit2KHR - 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-VkImageBlit2KHR-aspectMask-00238# The @aspectMask@ member of--- @srcSubresource@ and @dstSubresource@ /must/ match------ - #VUID-VkImageBlit2KHR-layerCount-00239# The @layerCount@ member of--- @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ - #VUID-VkImageBlit2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'------ - #VUID-VkImageBlit2KHR-pNext-pNext# @pNext@ /must/ be @NULL@ or a--- pointer to a valid instance of--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'------ - #VUID-VkImageBlit2KHR-sType-unique# The @sType@ value of each struct--- in the @pNext@ chain /must/ be unique------ - #VUID-VkImageBlit2KHR-srcSubresource-parameter# @srcSubresource@--- /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'--- structure------ - #VUID-VkImageBlit2KHR-dstSubresource-parameter# @dstSubresource@--- /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'--- structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'BlitImageInfo2KHR',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageBlit2KHR (es :: [Type]) = ImageBlit2KHR- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @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 (ImageBlit2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (ImageBlit2KHR es)--instance Extensible ImageBlit2KHR where- extensibleTypeName = "ImageBlit2KHR"- setNext ImageBlit2KHR{..} next' = ImageBlit2KHR{next = next', ..}- getNext ImageBlit2KHR{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2KHR e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f- | otherwise = Nothing--instance (Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es) where- withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageBlit2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)- let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))- lift $ case (srcOffsets) of- (e0, e1) -> do- poke (pSrcOffsets' :: Ptr Offset3D) (e0)- poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (dstSubresource)- let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))- lift $ case (dstOffsets) of- (e0, e1) -> do- poke (pDstOffsets' :: Ptr Offset3D) (e0)- poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- lift $ f- cStructSize = 96- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)- let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))- lift $ case ((zero, zero)) of- (e0, e1) -> do- poke (pSrcOffsets' :: Ptr Offset3D) (e0)- poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (zero)- let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))- lift $ case ((zero, zero)) of- (e0, e1) -> do- poke (pDstOffsets' :: Ptr Offset3D) (e0)- poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- lift $ f--instance (Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))- let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 32 :: 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` 56 :: Ptr ImageSubresourceLayers))- let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))- dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))- dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))- pure $ ImageBlit2KHR- next srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))--instance es ~ '[] => Zero (ImageBlit2KHR es) where- zero = ImageBlit2KHR- ()- zero- (zero, zero)- zero- (zero, zero)----- | VkBufferImageCopy2KHR - Structure specifying a buffer image copy--- operation------ = Description------ This structure is functionally identical to--- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy', but adds @sType@--- and @pNext@ parameters, allowing it to be more easily extended.------ == Valid Usage------ - #VUID-VkBufferImageCopy2KHR-bufferRowLength-00195# @bufferRowLength@--- /must/ be @0@, or greater than or equal to the @width@ member of--- @imageExtent@------ - #VUID-VkBufferImageCopy2KHR-bufferImageHeight-00196#--- @bufferImageHeight@ /must/ be @0@, or greater than or equal to the--- @height@ member of @imageExtent@------ - #VUID-VkBufferImageCopy2KHR-aspectMask-00212# The @aspectMask@--- member of @imageSubresource@ /must/ only have a single bit set------ == Valid Usage (Implicit)------ - #VUID-VkBufferImageCopy2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'------ - #VUID-VkBufferImageCopy2KHR-pNext-pNext# @pNext@ /must/ be @NULL@ or--- a pointer to a valid instance of--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'------ - #VUID-VkBufferImageCopy2KHR-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique------ - #VUID-VkBufferImageCopy2KHR-imageSubresource-parameter#--- @imageSubresource@ /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'--- structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'CopyBufferToImageInfo2KHR', 'CopyImageToBufferInfo2KHR',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.FundamentalTypes.Extent3D',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data BufferImageCopy2KHR (es :: [Type]) = BufferImageCopy2KHR- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @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 "VkBufferImageCopy2KHR" "bufferImageHeight"- bufferImageHeight :: Word32- , -- | @imageSubresource@ is a- -- 'Vulkan.Core10.CommandBufferBuilding.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 (BufferImageCopy2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (BufferImageCopy2KHR es)--instance Extensible BufferImageCopy2KHR where- extensibleTypeName = "BufferImageCopy2KHR"- setNext BufferImageCopy2KHR{..} next' = BufferImageCopy2KHR{next = next', ..}- getNext BufferImageCopy2KHR{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2KHR e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f- | otherwise = Nothing--instance (Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es) where- withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)- pokeCStruct p BufferImageCopy2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (bufferOffset)- lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (bufferRowLength)- lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (bufferImageHeight)- lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource)- lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset)- lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent)- lift $ f- cStructSize = 72- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)- lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)- lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)- lift $ poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero)- lift $ poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero)- lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero)- lift $ f--instance (Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- bufferOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))- bufferRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))- bufferImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))- imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers))- imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))- imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))- pure $ BufferImageCopy2KHR- next bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent--instance es ~ '[] => Zero (BufferImageCopy2KHR es) where- zero = BufferImageCopy2KHR- ()- zero- zero- zero- zero- zero- zero----- | VkImageResolve2KHR - Structure specifying an image resolve operation------ == Valid Usage------ - #VUID-VkImageResolve2KHR-aspectMask-00266# The @aspectMask@ member--- of @srcSubresource@ and @dstSubresource@ /must/ only contain--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ - #VUID-VkImageResolve2KHR-layerCount-00267# The @layerCount@ member--- of @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ - #VUID-VkImageResolve2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'------ - #VUID-VkImageResolve2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkImageResolve2KHR-srcSubresource-parameter# @srcSubresource@--- /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'--- structure------ - #VUID-VkImageResolve2KHR-dstSubresource-parameter# @dstSubresource@--- /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'--- structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D',--- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'ResolveImageInfo2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageResolve2KHR = ImageResolve2KHR- { -- | @srcSubresource@ and @dstSubresource@ are- -- 'Vulkan.Core10.CommandBufferBuilding.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 "VkImageResolve2KHR" "dstSubresource"- dstSubresource :: ImageSubresourceLayers- , -- No documentation found for Nested "VkImageResolve2KHR" "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 (ImageResolve2KHR)-#endif-deriving instance Show ImageResolve2KHR--instance ToCStruct ImageResolve2KHR where- withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageResolve2KHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource)- poke ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset)- poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource)- poke ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset)- poke ((p `plusPtr` 72 :: Ptr Extent3D)) (extent)- f- cStructSize = 88- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 60 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 72 :: Ptr Extent3D)) (zero)- f--instance FromCStruct ImageResolve2KHR where- peekCStruct p = do- srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))- srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))- dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))- dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))- extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))- pure $ ImageResolve2KHR- srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageResolve2KHR where- sizeOf ~_ = 88- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageResolve2KHR where- zero = ImageResolve2KHR- zero- zero- zero- zero- zero----- | VkCopyBufferInfo2KHR - Structure specifying parameters of a buffer copy--- command------ = Description------ Members defined by this structure with the same name as parameters in--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer' have the identical--- effect to those parameters; the child structure 'BufferCopy2KHR' is a--- variant of 'Vulkan.Core10.CommandBufferBuilding.BufferCopy' which--- includes @sType@ and @pNext@ parameters, allowing it to be extended.------ == Valid Usage------ - #VUID-VkCopyBufferInfo2KHR-srcOffset-00113# The @srcOffset@ member--- of each element of @pRegions@ /must/ be less than the size of--- @srcBuffer@------ - #VUID-VkCopyBufferInfo2KHR-dstOffset-00114# The @dstOffset@ member--- of each element of @pRegions@ /must/ be less than the size of--- @dstBuffer@------ - #VUID-VkCopyBufferInfo2KHR-size-00115# The @size@ member of each--- element of @pRegions@ /must/ be less than or equal to the size of--- @srcBuffer@ minus @srcOffset@------ - #VUID-VkCopyBufferInfo2KHR-size-00116# The @size@ member of each--- element of @pRegions@ /must/ be less than or equal to the size of--- @dstBuffer@ minus @dstOffset@------ - #VUID-VkCopyBufferInfo2KHR-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-VkCopyBufferInfo2KHR-srcBuffer-00118# @srcBuffer@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-VkCopyBufferInfo2KHR-srcBuffer-00119# If @srcBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkCopyBufferInfo2KHR-dstBuffer-00120# @dstBuffer@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-VkCopyBufferInfo2KHR-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-VkCopyBufferInfo2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'------ - #VUID-VkCopyBufferInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkCopyBufferInfo2KHR-srcBuffer-parameter# @srcBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-VkCopyBufferInfo2KHR-dstBuffer-parameter# @dstBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-VkCopyBufferInfo2KHR-pRegions-parameter# @pRegions@ /must/ be--- a valid pointer to an array of @regionCount@ valid 'BufferCopy2KHR'--- structures------ - #VUID-VkCopyBufferInfo2KHR-regionCount-arraylength# @regionCount@--- /must/ be greater than @0@------ - #VUID-VkCopyBufferInfo2KHR-commonparent# Both of @dstBuffer@, and--- @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyBuffer2KHR'-data CopyBufferInfo2KHR = CopyBufferInfo2KHR- { -- | @srcBuffer@ is the source buffer.- srcBuffer :: Buffer- , -- | @dstBuffer@ is the destination buffer.- dstBuffer :: Buffer- , -- | @pRegions@ is a pointer to an array of 'BufferCopy2KHR' structures- -- specifying the regions to copy.- regions :: Vector BufferCopy2KHR- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyBufferInfo2KHR)-#endif-deriving instance Show CopyBufferInfo2KHR--instance ToCStruct CopyBufferInfo2KHR where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p CopyBufferInfo2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)- lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (dstBuffer)- lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))- pPRegions' <- ContT $ allocaBytes @BufferCopy2KHR ((Data.Vector.length (regions)) * 40)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (40 * (i)) :: Ptr BufferCopy2KHR) (e)) (regions)- lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2KHR))) (pPRegions')- lift $ f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)- poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)- f--instance FromCStruct CopyBufferInfo2KHR where- peekCStruct p = do- srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))- dstBuffer <- peek @Buffer ((p `plusPtr` 24 :: Ptr Buffer))- regionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))- pRegions <- peek @(Ptr BufferCopy2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2KHR)))- pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferCopy2KHR ((pRegions `advancePtrBytes` (40 * (i)) :: Ptr BufferCopy2KHR)))- pure $ CopyBufferInfo2KHR- srcBuffer dstBuffer pRegions'--instance Zero CopyBufferInfo2KHR where- zero = CopyBufferInfo2KHR- zero- zero- mempty----- | VkCopyImageInfo2KHR - Structure specifying parameters of an image copy--- command------ == Valid Usage------ - #VUID-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-srcImage-00126# @srcImage@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-dstImage-00131# @dstImage@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-srcImage-00136# The sample count of--- @srcImage@ and @dstImage@ /must/ match------ - #VUID-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-dstImage-02542# @dstImage@ and @srcImage@--- /must/ not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-aspectMask-00142# For each element of--- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects--- present in @srcImage@------ - #VUID-VkCopyImageInfo2KHR-aspectMask-00143# For each element of--- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects--- present in @dstImage@------ - #VUID-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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-VkCopyImageInfo2KHR-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@------ == Valid Usage (Implicit)------ - #VUID-VkCopyImageInfo2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'------ - #VUID-VkCopyImageInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkCopyImageInfo2KHR-srcImage-parameter# @srcImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkCopyImageInfo2KHR-srcImageLayout-parameter# @srcImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-VkCopyImageInfo2KHR-dstImage-parameter# @dstImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkCopyImageInfo2KHR-dstImageLayout-parameter# @dstImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-VkCopyImageInfo2KHR-pRegions-parameter# @pRegions@ /must/ be a--- valid pointer to an array of @regionCount@ valid 'ImageCopy2KHR'--- structures------ - #VUID-VkCopyImageInfo2KHR-regionCount-arraylength# @regionCount@--- /must/ be greater than @0@------ - #VUID-VkCopyImageInfo2KHR-commonparent# Both of @dstImage@, and--- @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Image', 'ImageCopy2KHR',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyImage2KHR'-data CopyImageInfo2KHR = CopyImageInfo2KHR- { -- | @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 'ImageCopy2KHR' structures- -- specifying the regions to copy.- regions :: Vector ImageCopy2KHR- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyImageInfo2KHR)-#endif-deriving instance Show CopyImageInfo2KHR--instance ToCStruct CopyImageInfo2KHR where- withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)- pokeCStruct p CopyImageInfo2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)- lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)- lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)- lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)- lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))- pPRegions' <- ContT $ allocaBytes @ImageCopy2KHR ((Data.Vector.length (regions)) * 88)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2KHR) (e)) (regions)- lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2KHR))) (pPRegions')- lift $ f- cStructSize = 56- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Image)) (zero)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)- poke ((p `plusPtr` 32 :: Ptr Image)) (zero)- poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)- f--instance FromCStruct CopyImageInfo2KHR where- peekCStruct p = do- srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))- srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))- dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))- dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))- regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))- pRegions <- peek @(Ptr ImageCopy2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2KHR)))- pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageCopy2KHR ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageCopy2KHR)))- pure $ CopyImageInfo2KHR- srcImage srcImageLayout dstImage dstImageLayout pRegions'--instance Zero CopyImageInfo2KHR where- zero = CopyImageInfo2KHR- zero- zero- zero- zero- mempty----- | VkBlitImageInfo2KHR - Structure specifying parameters of blit image--- command------ == Valid Usage------ - #VUID-VkBlitImageInfo2KHR-pRegions-00215# The source region--- specified by each element of @pRegions@ /must/ be a region that is--- contained within @srcImage@------ - #VUID-VkBlitImageInfo2KHR-pRegions-00216# The destination region--- specified by each element of @pRegions@ /must/ be a region that is--- contained within @dstImage@------ - #VUID-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-srcImage-00219# @srcImage@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-VkBlitImageInfo2KHR-srcImage-00220# If @srcImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-dstImage-00224# @dstImage@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-VkBlitImageInfo2KHR-dstImage-00225# If @dstImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-srcImage-00231# If either of @srcImage@ or--- @dstImage@ was created with a depth\/stencil format, the other--- /must/ have exactly the same format------ - #VUID-VkBlitImageInfo2KHR-srcImage-00232# If @srcImage@ was created--- with a depth\/stencil format, @filter@ /must/ be--- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'------ - #VUID-VkBlitImageInfo2KHR-srcImage-00233# @srcImage@ /must/ have--- been created with a @samples@ value of--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-VkBlitImageInfo2KHR-dstImage-00234# @dstImage@ /must/ have--- been created with a @samples@ value of--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-dstImage-02545# @dstImage@ and @srcImage@--- /must/ not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-aspectMask-00241# For each element of--- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects--- present in @srcImage@------ - #VUID-VkBlitImageInfo2KHR-aspectMask-00242# For each element of--- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects--- present in @dstImage@------ - #VUID-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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-VkBlitImageInfo2KHR-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@------ - #VUID-VkBlitImageInfo2KHR-pRegions-04561# If any element of--- @pRegions@ contains--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, then @srcImage@ and @dstImage@ /must/ not be--- block-compressed images------ - #VUID-VkBlitImageInfo2KHR-pRegions-06207# If any element of--- @pRegions@ contains--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, then @srcImage@ /must/ be of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ - #VUID-VkBlitImageInfo2KHR-pRegions-06208# If any element of--- @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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ == Valid Usage (Implicit)------ - #VUID-VkBlitImageInfo2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'------ - #VUID-VkBlitImageInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkBlitImageInfo2KHR-srcImage-parameter# @srcImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkBlitImageInfo2KHR-srcImageLayout-parameter# @srcImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-VkBlitImageInfo2KHR-dstImage-parameter# @dstImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkBlitImageInfo2KHR-dstImageLayout-parameter# @dstImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-VkBlitImageInfo2KHR-pRegions-parameter# @pRegions@ /must/ be a--- valid pointer to an array of @regionCount@ valid 'ImageBlit2KHR'--- structures------ - #VUID-VkBlitImageInfo2KHR-filter-parameter# @filter@ /must/ be a--- valid 'Vulkan.Core10.Enums.Filter.Filter' value------ - #VUID-VkBlitImageInfo2KHR-regionCount-arraylength# @regionCount@--- /must/ be greater than @0@------ - #VUID-VkBlitImageInfo2KHR-commonparent# Both of @dstImage@, and--- @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',--- 'ImageBlit2KHR', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBlitImage2KHR'-data BlitImageInfo2KHR = BlitImageInfo2KHR- { -- | @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 'ImageBlit2KHR' structures- -- specifying the regions to blit.- regions :: Vector (SomeStruct ImageBlit2KHR)- , -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter- -- to apply if the blits require scaling.- filter' :: Filter- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BlitImageInfo2KHR)-#endif-deriving instance Show BlitImageInfo2KHR--instance ToCStruct BlitImageInfo2KHR where- withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)- pokeCStruct p BlitImageInfo2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)- lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)- lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)- lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)- lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))- pPRegions' <- ContT $ allocaBytes @(ImageBlit2KHR _) ((Data.Vector.length (regions)) * 96)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (96 * (i)) :: Ptr (ImageBlit2KHR _))) (e) . ($ ())) (regions)- lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR _)))) (pPRegions')- lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (filter')- lift $ f- cStructSize = 64- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Image)) (zero)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)- poke ((p `plusPtr` 32 :: Ptr Image)) (zero)- poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)- poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)- f--instance FromCStruct BlitImageInfo2KHR where- peekCStruct p = do- srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))- srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))- dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))- dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))- regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))- pRegions <- peek @(Ptr (ImageBlit2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR _))))- pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2KHR _)))))- filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))- pure $ BlitImageInfo2KHR- srcImage srcImageLayout dstImage dstImageLayout pRegions' filter'--instance Zero BlitImageInfo2KHR where- zero = BlitImageInfo2KHR- zero- zero- zero- zero- mempty- zero----- | VkCopyBufferToImageInfo2KHR - Structure specifying parameters of a--- buffer to image copy command------ == Valid Usage------ - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04565# If the image--- region specified by each element of @pRegions@ does not contain--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, it /must/ be a region that is contained within--- the specified @imageSubresource@ of @dstImage@------ - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image--- 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.2-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.2-extensions/html/vkspec.html#blocked-image blocked image>------ - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203# If any element of--- @pRegions@ contains--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, then @dstImage@ /must/ be of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204# If any element of--- @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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ - #VUID-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-srcBuffer-00174# @srcBuffer@--- /must/ have been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-srcBuffer-00176# If @srcBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkCopyBufferToImageInfo2KHR-dstImage-00177# @dstImage@ /must/--- have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-VkCopyBufferToImageInfo2KHR-dstImage-00178# If @dstImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkCopyBufferToImageInfo2KHR-dstImage-00179# @dstImage@ /must/--- have a sample count equal to--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-dstImage-02543# @dstImage@ /must/--- not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-pRegions-06223# For each element--- of @pRegions@ not containing--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, @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-VkCopyBufferToImageInfo2KHR-pRegions-06224# For each element--- of @pRegions@ not containing--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, @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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-aspectMask-00211# For each element--- of @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects--- present in @dstImage@------ - #VUID-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-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-VkCopyBufferToImageInfo2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'------ - #VUID-VkCopyBufferToImageInfo2KHR-pNext-pNext# @pNext@ /must/ be--- @NULL@------ - #VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-parameter# @srcBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-VkCopyBufferToImageInfo2KHR-dstImage-parameter# @dstImage@--- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-parameter#--- @dstImageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-parameter# @pRegions@--- /must/ be a valid pointer to an array of @regionCount@ valid--- 'BufferImageCopy2KHR' structures------ - #VUID-VkCopyBufferToImageInfo2KHR-regionCount-arraylength#--- @regionCount@ /must/ be greater than @0@------ - #VUID-VkCopyBufferToImageInfo2KHR-commonparent# Both of @dstImage@,--- and @srcBuffer@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2KHR',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdCopyBufferToImage2KHR'-data CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2KHR- { -- | @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 'BufferImageCopy2KHR' structures- -- specifying the regions to copy.- regions :: Vector (SomeStruct BufferImageCopy2KHR)- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyBufferToImageInfo2KHR)-#endif-deriving instance Show CopyBufferToImageInfo2KHR--instance ToCStruct CopyBufferToImageInfo2KHR where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p CopyBufferToImageInfo2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)- lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage)- lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout)- lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))- pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2KHR _) ((Data.Vector.length (regions)) * 72)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (regions)- lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')- lift $ f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)- poke ((p `plusPtr` 24 :: Ptr Image)) (zero)- poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)- f--instance FromCStruct CopyBufferToImageInfo2KHR where- peekCStruct p = do- srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))- dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))- dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))- regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))- pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR _))))- pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))- pure $ CopyBufferToImageInfo2KHR- srcBuffer dstImage dstImageLayout pRegions'--instance Zero CopyBufferToImageInfo2KHR where- zero = CopyBufferToImageInfo2KHR- zero- zero- zero- mempty----- | VkCopyImageToBufferInfo2KHR - Structure specifying parameters of an--- image to buffer copy command------ == Valid Usage------ - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04566# If the image--- region specified by each element of @pRegions@ does not contain--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, it /must/ be contained within the specified--- @imageSubresource@ of @srcImage@------ - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image--- 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.2-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.2-extensions/html/vkspec.html#blocked-image blocked image>------ - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205# If any element of--- @pRegions@ contains--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, then @srcImage@ /must/ be of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206# If any element of--- @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.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ - #VUID-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-srcImage-00186# @srcImage@ /must/--- have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-srcImage-00187# If @srcImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00191# @dstBuffer@--- /must/ have been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00192# If @dstBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkCopyImageToBufferInfo2KHR-srcImage-00188# @srcImage@ /must/--- have a sample count equal to--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-srcImage-02544# @srcImage@ /must/--- not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197# For each--- element of @pRegions@ not containing--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, @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-VkCopyImageToBufferInfo2KHR-imageOffset-00198# For each--- element of @pRegions@ not containing--- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'--- in its @pNext@ chain, @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-VkCopyImageToBufferInfo2KHR-bufferOffset-01558# If--- {imageparam} 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-VkCopyImageToBufferInfo2KHR-bufferOffset-01559# If--- {imageparam} 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-VkCopyImageToBufferInfo2KHR-srcImage-00199# If {imageparam} 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-VkCopyImageToBufferInfo2KHR-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 {imageparam}------ - #VUID-VkCopyImageToBufferInfo2KHR-srcImage-00201# If {imageparam} 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-VkCopyImageToBufferInfo2KHR-bufferRowLength-00203# If--- {imageparam} 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-VkCopyImageToBufferInfo2KHR-bufferImageHeight-00204# If--- {imageparam} 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-VkCopyImageToBufferInfo2KHR-imageOffset-00205# If {imageparam}--- 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-VkCopyImageToBufferInfo2KHR-bufferOffset-00206# If--- {imageparam} 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-VkCopyImageToBufferInfo2KHR-imageExtent-00207# If {imageparam}--- 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}------ - #VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00208# If {imageparam}--- 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}------ - #VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00209# If {imageparam}--- 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}------ - #VUID-VkCopyImageToBufferInfo2KHR-aspectMask-00211# For each element--- of @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects--- present in {imageparam}------ - #VUID-VkCopyImageToBufferInfo2KHR-aspectMask-01560# If {imageparam}--- 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-VkCopyImageToBufferInfo2KHR-baseArrayLayer-00213# If--- {imageparam} 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-VkCopyImageToBufferInfo2KHR-pRegions-04725# If {imageparam} 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------ - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04726# If {imageparam} 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------ - #VUID-VkCopyImageToBufferInfo2KHR-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-VkCopyImageToBufferInfo2KHR-srcImage-04053# If {imageparam}--- has a depth\/stencil format, the @bufferOffset@ member of any--- element of @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ - #VUID-VkCopyImageToBufferInfo2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'------ - #VUID-VkCopyImageToBufferInfo2KHR-pNext-pNext# @pNext@ /must/ be--- @NULL@------ - #VUID-VkCopyImageToBufferInfo2KHR-srcImage-parameter# @srcImage@--- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-parameter#--- @srcImageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-parameter# @dstBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-parameter# @pRegions@--- /must/ be a valid pointer to an array of @regionCount@ valid--- 'BufferImageCopy2KHR' structures------ - #VUID-VkCopyImageToBufferInfo2KHR-regionCount-arraylength#--- @regionCount@ /must/ be greater than @0@------ - #VUID-VkCopyImageToBufferInfo2KHR-commonparent# Both of @dstBuffer@,--- and @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2KHR',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdCopyImageToBuffer2KHR'-data CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2KHR- { -- | @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 'BufferImageCopy2KHR' structures- -- specifying the regions to copy.- regions :: Vector (SomeStruct BufferImageCopy2KHR)- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CopyImageToBufferInfo2KHR)-#endif-deriving instance Show CopyImageToBufferInfo2KHR--instance ToCStruct CopyImageToBufferInfo2KHR where- withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)- pokeCStruct p CopyImageToBufferInfo2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)- lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)- lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (dstBuffer)- lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))- pPRegions' <- ContT $ allocaBytes @(BufferImageCopy2KHR _) ((Data.Vector.length (regions)) * 72)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (regions)- lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')- lift $ f- cStructSize = 56- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Image)) (zero)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)- poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)- f--instance FromCStruct CopyImageToBufferInfo2KHR where- peekCStruct p = do- srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))- srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))- dstBuffer <- peek @Buffer ((p `plusPtr` 32 :: Ptr Buffer))- regionCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))- pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR _))))- pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))- pure $ CopyImageToBufferInfo2KHR- srcImage srcImageLayout dstBuffer pRegions'--instance Zero CopyImageToBufferInfo2KHR where- zero = CopyImageToBufferInfo2KHR- zero- zero- zero- mempty----- | VkResolveImageInfo2KHR - Structure specifying parameters of resolve--- image command------ == Valid Usage------ - #VUID-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-srcImage-00256# If @srcImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-dstImage-00258# If @dstImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkResolveImageInfo2KHR-dstImage-00259# @dstImage@ /must/ have--- a sample count equal to--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ - #VUID-VkResolveImageInfo2KHR-srcImage-01386# @srcImage@ and--- @dstImage@ /must/ have been created with the same image format------ - #VUID-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-dstImage-02546# @dstImage@ and--- @srcImage@ /must/ not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-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-VkResolveImageInfo2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'------ - #VUID-VkResolveImageInfo2KHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkResolveImageInfo2KHR-srcImage-parameter# @srcImage@ /must/--- be a valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkResolveImageInfo2KHR-srcImageLayout-parameter#--- @srcImageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-VkResolveImageInfo2KHR-dstImage-parameter# @dstImage@ /must/--- be a valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkResolveImageInfo2KHR-dstImageLayout-parameter#--- @dstImageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-VkResolveImageInfo2KHR-pRegions-parameter# @pRegions@ /must/--- be a valid pointer to an array of @regionCount@ valid--- 'ImageResolve2KHR' structures------ - #VUID-VkResolveImageInfo2KHR-regionCount-arraylength# @regionCount@--- /must/ be greater than @0@------ - #VUID-VkResolveImageInfo2KHR-commonparent# Both of @dstImage@, and--- @srcImage@ /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_KHR_copy_commands2 VK_KHR_copy_commands2>,--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdResolveImage2KHR'-data ResolveImageInfo2KHR = ResolveImageInfo2KHR- { -- | @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 'ImageResolve2KHR' structures- -- specifying the regions to resolve.- regions :: Vector ImageResolve2KHR- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ResolveImageInfo2KHR)-#endif-deriving instance Show ResolveImageInfo2KHR--instance ToCStruct ResolveImageInfo2KHR where- withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ResolveImageInfo2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)- lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)- lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)- lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)- lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))- pPRegions' <- ContT $ allocaBytes @ImageResolve2KHR ((Data.Vector.length (regions)) * 88)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageResolve2KHR) (e)) (regions)- lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2KHR))) (pPRegions')- lift $ f- cStructSize = 56- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Image)) (zero)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)- poke ((p `plusPtr` 32 :: Ptr Image)) (zero)- poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)- f--instance FromCStruct ResolveImageInfo2KHR where- peekCStruct p = do- srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))- srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))- dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))- dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))- regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))- pRegions <- peek @(Ptr ImageResolve2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2KHR)))- pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageResolve2KHR ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageResolve2KHR)))- pure $ ResolveImageInfo2KHR- srcImage srcImageLayout dstImage dstImageLayout pRegions'--instance Zero ResolveImageInfo2KHR where- zero = ResolveImageInfo2KHR- zero- zero- zero- zero- mempty+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+-- - Jeff Leger+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @jackohound%0A<<Here describe the issue or question you have about the VK_KHR_copy_commands2 extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-07-06+--+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+--+-- [__Interactions and External Dependencies__]+--+-- - None+--+-- [__Contributors__]+--+-- - Jeff Leger, Qualcomm+--+-- - Tobias Hector, AMD+--+-- - Jan-Harald Fredriksen, ARM+--+-- - Tom Olson, ARM+--+-- == Description+--+-- This extension provides extensible versions of the Vulkan buffer and+-- image copy commands. The new commands are functionally identical to the+-- core commands, except that their copy parameters are specified using+-- extensible structures that can be used to pass extension-specific+-- information.+--+-- The following extensible copy commands are introduced with this+-- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR',+-- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',+-- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an+-- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.+-- Lower level structures describing each region to be copied are also+-- extended with @sType@\/@pNext@ members.+--+-- == New Commands+--+-- - 'cmdBlitImage2KHR'+--+-- - 'cmdCopyBuffer2KHR'+--+-- - 'cmdCopyBufferToImage2KHR'+--+-- - 'cmdCopyImage2KHR'+--+-- - 'cmdCopyImageToBuffer2KHR'+--+-- - 'cmdResolveImage2KHR'+--+-- == New Structures+--+-- - 'BlitImageInfo2KHR'+--+-- - 'BufferCopy2KHR'+--+-- - 'BufferImageCopy2KHR'+--+-- - 'CopyBufferInfo2KHR'+--+-- - 'CopyBufferToImageInfo2KHR'+--+-- - 'CopyImageInfo2KHR'+--+-- - 'CopyImageToBufferInfo2KHR'+--+-- - 'ImageBlit2KHR'+--+-- - 'ImageCopy2KHR'+--+-- - 'ImageResolve2KHR'+--+-- - 'ResolveImageInfo2KHR'+--+-- == New Enum Constants+--+-- - 'KHR_COPY_COMMANDS_2_EXTENSION_NAME'+--+-- - 'KHR_COPY_COMMANDS_2_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'+--+-- - 'STRUCTURE_TYPE_BUFFER_COPY_2_KHR'+--+-- - 'STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'+--+-- - 'STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'+--+-- - 'STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'+--+-- - 'STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'+--+-- - 'STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'+--+-- - 'STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'+--+-- - 'STRUCTURE_TYPE_IMAGE_COPY_2_KHR'+--+-- - 'STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'+--+-- - 'STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'+--+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+--+-- == Version History+--+-- - Revision 1, 2020-07-06 (Jeff Leger)+--+-- - Internal revisions+--+-- == See Also+--+-- 'BlitImageInfo2KHR', 'BufferCopy2KHR', 'BufferImageCopy2KHR',+-- 'CopyBufferInfo2KHR', 'CopyBufferToImageInfo2KHR', 'CopyImageInfo2KHR',+-- 'CopyImageToBufferInfo2KHR', 'ImageBlit2KHR', 'ImageCopy2KHR',+-- 'ImageResolve2KHR', 'ResolveImageInfo2KHR', 'cmdBlitImage2KHR',+-- 'cmdCopyBuffer2KHR', 'cmdCopyBufferToImage2KHR', 'cmdCopyImage2KHR',+-- 'cmdCopyImageToBuffer2KHR', 'cmdResolveImage2KHR'+--+-- == 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_copy_commands2 ( pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR+ , pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR+ , pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR+ , pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR+ , pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR+ , pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR+ , pattern STRUCTURE_TYPE_BUFFER_COPY_2_KHR+ , pattern STRUCTURE_TYPE_IMAGE_COPY_2_KHR+ , pattern STRUCTURE_TYPE_IMAGE_BLIT_2_KHR+ , pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR+ , pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR+ , cmdCopyBuffer2KHR+ , cmdCopyImage2KHR+ , cmdBlitImage2KHR+ , cmdCopyBufferToImage2KHR+ , cmdCopyImageToBuffer2KHR+ , cmdResolveImage2KHR+ , BufferCopy2KHR+ , ImageCopy2KHR+ , ImageBlit2KHR+ , BufferImageCopy2KHR+ , ImageResolve2KHR+ , CopyBufferInfo2KHR+ , CopyImageInfo2KHR+ , BlitImageInfo2KHR+ , CopyBufferToImageInfo2KHR+ , CopyImageToBufferInfo2KHR+ , ResolveImageInfo2KHR+ , KHR_COPY_COMMANDS_2_SPEC_VERSION+ , pattern KHR_COPY_COMMANDS_2_SPEC_VERSION+ , KHR_COPY_COMMANDS_2_EXTENSION_NAME+ , pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME+ ) where++import Data.String (IsString)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdBlitImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyBuffer2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyBufferToImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdCopyImageToBuffer2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (cmdResolveImage2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferCopy2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BufferImageCopy2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBufferToImageInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageCopy2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageResolve2)+import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = STRUCTURE_TYPE_COPY_BUFFER_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_COPY_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_BLIT_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_COPY_2_KHR = STRUCTURE_TYPE_BUFFER_COPY_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_COPY_2_KHR = STRUCTURE_TYPE_IMAGE_COPY_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = STRUCTURE_TYPE_IMAGE_BLIT_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = STRUCTURE_TYPE_IMAGE_RESOLVE_2+++-- No documentation found for TopLevel "vkCmdCopyBuffer2KHR"+cmdCopyBuffer2KHR = cmdCopyBuffer2+++-- No documentation found for TopLevel "vkCmdCopyImage2KHR"+cmdCopyImage2KHR = cmdCopyImage2+++-- No documentation found for TopLevel "vkCmdBlitImage2KHR"+cmdBlitImage2KHR = cmdBlitImage2+++-- No documentation found for TopLevel "vkCmdCopyBufferToImage2KHR"+cmdCopyBufferToImage2KHR = cmdCopyBufferToImage2+++-- No documentation found for TopLevel "vkCmdCopyImageToBuffer2KHR"+cmdCopyImageToBuffer2KHR = cmdCopyImageToBuffer2+++-- No documentation found for TopLevel "vkCmdResolveImage2KHR"+cmdResolveImage2KHR = cmdResolveImage2+++-- No documentation found for TopLevel "VkBufferCopy2KHR"+type BufferCopy2KHR = BufferCopy2+++-- No documentation found for TopLevel "VkImageCopy2KHR"+type ImageCopy2KHR = ImageCopy2+++-- No documentation found for TopLevel "VkImageBlit2KHR"+type ImageBlit2KHR = ImageBlit2+++-- No documentation found for TopLevel "VkBufferImageCopy2KHR"+type BufferImageCopy2KHR = BufferImageCopy2+++-- No documentation found for TopLevel "VkImageResolve2KHR"+type ImageResolve2KHR = ImageResolve2+++-- No documentation found for TopLevel "VkCopyBufferInfo2KHR"+type CopyBufferInfo2KHR = CopyBufferInfo2+++-- No documentation found for TopLevel "VkCopyImageInfo2KHR"+type CopyImageInfo2KHR = CopyImageInfo2+++-- No documentation found for TopLevel "VkBlitImageInfo2KHR"+type BlitImageInfo2KHR = BlitImageInfo2+++-- No documentation found for TopLevel "VkCopyBufferToImageInfo2KHR"+type CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2+++-- No documentation found for TopLevel "VkCopyImageToBufferInfo2KHR"+type CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2+++-- No documentation found for TopLevel "VkResolveImageInfo2KHR"+type ResolveImageInfo2KHR = ResolveImageInfo2 type KHR_COPY_COMMANDS_2_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot
@@ -1,262 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_copy_commands2 - device extension------ == VK_KHR_copy_commands2------ [__Name String__]--- @VK_KHR_copy_commands2@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 338------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ [__Contact__]------ - Jeff Leger--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_copy_commands2] @jackohound%0A<<Here describe the issue or question you have about the VK_KHR_copy_commands2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-07-06------ [__Interactions and External Dependencies__]------ - None------ [__Contributors__]------ - Jeff Leger, Qualcomm------ - Tobias Hector, AMD------ - Jan-Harald Fredriksen, ARM------ - Tom Olson, ARM------ == Description------ This extension provides extensible versions of the Vulkan buffer and--- image copy commands. The new commands are functionally identical to the--- core commands, except that their copy parameters are specified using--- extensible structures that can be used to pass extension-specific--- information.------ The following extensible copy commands are introduced with this--- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an--- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.--- Lower level structures describing each region to be copied are also--- extended with @sType@\/@pNext@ members.------ == New Commands------ - 'cmdBlitImage2KHR'------ - 'cmdCopyBuffer2KHR'------ - 'cmdCopyBufferToImage2KHR'------ - 'cmdCopyImage2KHR'------ - 'cmdCopyImageToBuffer2KHR'------ - 'cmdResolveImage2KHR'------ == New Structures------ - 'BlitImageInfo2KHR'------ - 'BufferCopy2KHR'------ - 'BufferImageCopy2KHR'------ - 'CopyBufferInfo2KHR'------ - 'CopyBufferToImageInfo2KHR'------ - 'CopyImageInfo2KHR'------ - 'CopyImageToBufferInfo2KHR'------ - 'ImageBlit2KHR'------ - 'ImageCopy2KHR'------ - 'ImageResolve2KHR'------ - 'ResolveImageInfo2KHR'------ == New Enum Constants------ - 'KHR_COPY_COMMANDS_2_EXTENSION_NAME'------ - 'KHR_COPY_COMMANDS_2_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'------ == Version History------ - Revision 1, 2020-07-06 (Jeff Leger)------ - Internal revisions------ == See Also------ 'BlitImageInfo2KHR', 'BufferCopy2KHR', 'BufferImageCopy2KHR',--- 'CopyBufferInfo2KHR', 'CopyBufferToImageInfo2KHR', 'CopyImageInfo2KHR',--- 'CopyImageToBufferInfo2KHR', 'ImageBlit2KHR', 'ImageCopy2KHR',--- 'ImageResolve2KHR', 'ResolveImageInfo2KHR', 'cmdBlitImage2KHR',--- 'cmdCopyBuffer2KHR', 'cmdCopyBufferToImage2KHR', 'cmdCopyImage2KHR',--- 'cmdCopyImageToBuffer2KHR', 'cmdResolveImage2KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_copy_commands2 ( BlitImageInfo2KHR- , BufferCopy2KHR- , BufferImageCopy2KHR- , CopyBufferInfo2KHR- , CopyBufferToImageInfo2KHR- , CopyImageInfo2KHR- , CopyImageToBufferInfo2KHR- , ImageBlit2KHR- , ImageCopy2KHR- , ImageResolve2KHR- , ResolveImageInfo2KHR- ) 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 BlitImageInfo2KHR--instance ToCStruct BlitImageInfo2KHR-instance Show BlitImageInfo2KHR--instance FromCStruct BlitImageInfo2KHR---data BufferCopy2KHR--instance ToCStruct BufferCopy2KHR-instance Show BufferCopy2KHR--instance FromCStruct BufferCopy2KHR---type role BufferImageCopy2KHR nominal-data BufferImageCopy2KHR (es :: [Type])--instance (Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es)-instance Show (Chain es) => Show (BufferImageCopy2KHR es)--instance (Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es)---data CopyBufferInfo2KHR--instance ToCStruct CopyBufferInfo2KHR-instance Show CopyBufferInfo2KHR--instance FromCStruct CopyBufferInfo2KHR---data CopyBufferToImageInfo2KHR--instance ToCStruct CopyBufferToImageInfo2KHR-instance Show CopyBufferToImageInfo2KHR--instance FromCStruct CopyBufferToImageInfo2KHR---data CopyImageInfo2KHR--instance ToCStruct CopyImageInfo2KHR-instance Show CopyImageInfo2KHR--instance FromCStruct CopyImageInfo2KHR---data CopyImageToBufferInfo2KHR--instance ToCStruct CopyImageToBufferInfo2KHR-instance Show CopyImageToBufferInfo2KHR--instance FromCStruct CopyImageToBufferInfo2KHR---type role ImageBlit2KHR nominal-data ImageBlit2KHR (es :: [Type])--instance (Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es)-instance Show (Chain es) => Show (ImageBlit2KHR es)--instance (Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es)---data ImageCopy2KHR--instance ToCStruct ImageCopy2KHR-instance Show ImageCopy2KHR--instance FromCStruct ImageCopy2KHR---data ImageResolve2KHR--instance ToCStruct ImageResolve2KHR-instance Show ImageResolve2KHR--instance FromCStruct ImageResolve2KHR---data ResolveImageInfo2KHR--instance ToCStruct ResolveImageInfo2KHR-instance Show ResolveImageInfo2KHR--instance FromCStruct ResolveImageInfo2KHR-
src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs view
@@ -159,7 +159,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -211,7 +211,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocation Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -264,7 +264,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operations Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -365,7 +365,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DeferredOperationKHR)@@ -456,7 +456,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/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
@@ -150,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -149,7 +149,7 @@ -- - 'MemoryAllocateFlagsInfoKHR' -- -- - Extending 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- -- - 'DeviceGroupRenderPassBeginInfoKHR' --@@ -317,11 +317,11 @@ -- -- == New Built-in Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-deviceindex DeviceIndex>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DeviceGroup DeviceGroup>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DeviceGroup DeviceGroup> -- -- == Version History --@@ -358,7 +358,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group_creation Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -507,7 +507,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createDisplayPlaneSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_display.hs-boot view
@@ -507,7 +507,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/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 +393,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_draw_indirect_count Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -142,7 +142,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_driver_properties Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,2301 +23,873 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ ----- [__Contact__]------ - Tobias Hector--- <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>------ == Other Extension Metadata------ [__Last Modified Date__]--- 2021-10-06------ [__Contributors__]------ - Tobias Hector, AMD------ - Arseny Kapoulkine, Roblox------ - François Duranleau, Gameloft------ - Stuart Smith, AMD------ - Hai Nguyen, Google------ - Jean-François Roy, Google------ - Jeff Leger, Qualcomm------ - Jan-Harald Fredriksen, Arm------ - Piers Daniell, Nvidia------ - James Fitzpatrick, Imagination------ - Piotr Byszewski, Mobica------ - Jesse Hall, Google------ - Mike Blumenkrantz, Valve------ == Description------ This extension allows applications to create single-pass render pass--- instances without needing to create render pass objects or framebuffers.--- Dynamic render passes can also span across multiple primary command--- buffers, rather than relying on secondary command buffers.------ This extension also incorporates--- 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'--- from <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>,--- enabling applications to avoid unnecessary synchronization when an--- attachment is not written during a render pass.------ == New Commands------ - 'cmdBeginRenderingKHR'------ - 'cmdEndRenderingKHR'------ == New Structures------ - 'RenderingAttachmentInfoKHR'------ - 'RenderingInfoKHR'------ - Extending--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':------ - 'CommandBufferInheritanceRenderingInfoKHR'------ - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':------ - 'PipelineRenderingCreateInfoKHR'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceDynamicRenderingFeaturesKHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>--- is supported:------ - Extending--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':------ - 'AttachmentSampleCountInfoAMD'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>--- is supported:------ - Extending 'RenderingInfoKHR':------ - 'RenderingFragmentDensityMapAttachmentInfoEXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>--- is supported:------ - Extending 'RenderingInfoKHR':------ - 'RenderingFragmentShadingRateAttachmentInfoKHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>--- is supported:------ - Extending--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':------ - 'AttachmentSampleCountInfoNV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>--- is supported:------ - Extending--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',--- 'RenderingInfoKHR':------ - 'MultiviewPerViewAttributesInfoNVX'------ == New Enums------ - 'RenderingFlagBitsKHR'------ == New Bitmasks------ - 'RenderingFlagsKHR'------ == New Enum Constants------ - 'KHR_DYNAMIC_RENDERING_EXTENSION_NAME'------ - 'KHR_DYNAMIC_RENDERING_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp':------ - 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>--- is supported:------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>--- is supported:------ - Extending--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':------ - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ - 'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>--- is supported:------ - Extending--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':------ - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ - 'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>--- is supported:------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>--- is supported:------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'------ == Version History------ - Revision 1, 2021-10-06 (Tobias Hector)------ - Initial revision------ == See Also------ 'CommandBufferInheritanceRenderingInfoKHR',--- 'PhysicalDeviceDynamicRenderingFeaturesKHR',--- 'PipelineRenderingCreateInfoKHR', 'RenderingAttachmentInfoKHR',--- 'RenderingFlagBitsKHR', 'RenderingFlagsKHR', 'RenderingInfoKHR',--- 'cmdBeginRenderingKHR', 'cmdEndRenderingKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_dynamic_rendering ( cmdBeginRenderingKHR- , cmdUseRenderingKHR- , cmdEndRenderingKHR- , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR- , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT- , pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV- , PipelineRenderingCreateInfoKHR(..)- , RenderingInfoKHR(..)- , RenderingAttachmentInfoKHR(..)- , RenderingFragmentShadingRateAttachmentInfoKHR(..)- , RenderingFragmentDensityMapAttachmentInfoEXT(..)- , PhysicalDeviceDynamicRenderingFeaturesKHR(..)- , CommandBufferInheritanceRenderingInfoKHR(..)- , AttachmentSampleCountInfoAMD(..)- , MultiviewPerViewAttributesInfoNVX(..)- , RenderingFlagsKHR- , RenderingFlagBitsKHR( RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR- , RENDERING_SUSPENDING_BIT_KHR- , RENDERING_RESUMING_BIT_KHR- , ..- )- , AttachmentSampleCountInfoNV- , KHR_DYNAMIC_RENDERING_SPEC_VERSION- , pattern KHR_DYNAMIC_RENDERING_SPEC_VERSION- , KHR_DYNAMIC_RENDERING_EXTENSION_NAME- , pattern KHR_DYNAMIC_RENDERING_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 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 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 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.Core10.Enums.AttachmentLoadOp (AttachmentLoadOp)-import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.CStruct.Extends (Chain)-import Vulkan.Core10.CommandBufferBuilding (ClearValue)-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(pVkCmdBeginRenderingKHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdEndRenderingKHR))-import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupRenderPassBeginInfo)-import Vulkan.CStruct.Extends (Extends)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.CStruct.Extends (Extensible(..))-import Vulkan.Core10.FundamentalTypes (Extent2D)-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.Enums.Format (Format)-import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import Vulkan.Core10.Handles (ImageView)-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (PokeChain(..))-import Vulkan.Core10.FundamentalTypes (Rect2D)-import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlagBits)-import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT))-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_INFO_KHR))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBeginRenderingKHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfoKHR) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderingInfoKHR) -> IO ()---- | vkCmdBeginRenderingKHR - Begin a dynamic render pass instance------ = Description------ After beginning a render pass instance, the command buffer is ready to--- record--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing draw commands>.------ If @pRenderingInfo->flags@ includes 'RENDERING_RESUMING_BIT_KHR' 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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ == Valid Usage------ - #VUID-vkCmdBeginRenderingKHR-dynamicRendering-06446# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>--- feature /must/ be enabled------ - #VUID-vkCmdBeginRenderingKHR-commandBuffer-06068# If @commandBuffer@--- is a secondary command buffer, @pRenderingInfo->flags@ /must/ not--- include 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR'------ == Valid Usage (Implicit)------ - #VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBeginRenderingKHR-pRenderingInfo-parameter#--- @pRenderingInfo@ /must/ be a valid pointer to a valid--- 'RenderingInfoKHR' structure------ - #VUID-vkCmdBeginRenderingKHR-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-vkCmdBeginRenderingKHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBeginRenderingKHR-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 | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderingInfoKHR'-cmdBeginRenderingKHR :: forall a io- . (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io)- => -- | @commandBuffer@ is the command buffer in which to record the command.- CommandBuffer- -> -- | @pRenderingInfo@ is a pointer to a 'RenderingInfoKHR' structure- -- specifying details of the render pass instance to begin.- (RenderingInfoKHR a)- -> io ()-cmdBeginRenderingKHR commandBuffer renderingInfo = liftIO . evalContT $ do- let vkCmdBeginRenderingKHRPtr = pVkCmdBeginRenderingKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdBeginRenderingKHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderingKHR is null" Nothing Nothing- let vkCmdBeginRenderingKHR' = mkVkCmdBeginRenderingKHR vkCmdBeginRenderingKHRPtr- pRenderingInfo <- ContT $ withCStruct (renderingInfo)- lift $ traceAroundEvent "vkCmdBeginRenderingKHR" (vkCmdBeginRenderingKHR' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderingInfo))- pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginRenderingKHR' and 'cmdEndRenderingKHR'------ Note that 'cmdEndRenderingKHR' is *not* called if an exception is thrown--- by the inner action.-cmdUseRenderingKHR :: forall a io r . (Extendss RenderingInfoKHR a, PokeChain a, MonadIO io) => CommandBuffer -> RenderingInfoKHR a -> io r -> io r-cmdUseRenderingKHR commandBuffer pRenderingInfo a =- (cmdBeginRenderingKHR commandBuffer pRenderingInfo) *> a <* (cmdEndRenderingKHR commandBuffer)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdEndRenderingKHR- :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()---- | vkCmdEndRenderingKHR - End a dynamic render pass instance------ = Description------ If the value of @pRenderingInfo->flags@ used to begin this render pass--- instance included 'RENDERING_SUSPENDING_BIT_KHR', then this render pass--- is suspended and will be resumed later in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ == Valid Usage------ - #VUID-vkCmdEndRenderingKHR-None-06161# The current render pass--- instance /must/ have been begun with 'cmdBeginRenderingKHR'------ - #VUID-vkCmdEndRenderingKHR-commandBuffer-06162# The current render--- pass instance /must/ have been begun in @commandBuffer@------ == Valid Usage (Implicit)------ - #VUID-vkCmdEndRenderingKHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdEndRenderingKHR-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-vkCmdEndRenderingKHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdEndRenderingKHR-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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdEndRenderingKHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer in which to record the command.- CommandBuffer- -> io ()-cmdEndRenderingKHR commandBuffer = liftIO $ do- let vkCmdEndRenderingKHRPtr = pVkCmdEndRenderingKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdEndRenderingKHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderingKHR is null" Nothing Nothing- let vkCmdEndRenderingKHR' = mkVkCmdEndRenderingKHR vkCmdEndRenderingKHRPtr- traceAroundEvent "vkCmdEndRenderingKHR" (vkCmdEndRenderingKHR' (commandBufferHandle (commandBuffer)))- pure $ ()----- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"-pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR----- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"-pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT----- No documentation found for TopLevel "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV"-pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD----- | VkPipelineRenderingCreateInfoKHR - Structure specifying attachment--- formats------ = Description------ When a pipeline is created without a 'Vulkan.Core10.Handles.RenderPass',--- if this structure is present in the @pNext@ chain of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it specifies the--- view mask and format of attachments used for rendering. If this--- structure is not specified, and the pipeline does not include a--- 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and--- @colorAttachmentCount@ are @0@, and @depthAttachmentFormat@ and--- @stencilAttachmentFormat@ are--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. If a graphics pipeline is--- created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters of--- this structure are ignored.------ If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of--- @pColorAttachmentFormats@ is--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the--- corresponding attachment is unused within the render pass. Valid formats--- indicate that an attachment /can/ be used - but it is still valid to set--- the attachment to @NULL@ when beginning rendering.------ == Valid Usage------ - #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-06495#--- 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.2-extensions/html/vkspec.html#potential-format-features potential format features>--- that includes either--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'--- or--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ - #VUID-VkPipelineRenderingCreateInfoKHR-depthAttachmentFormat-06065#--- If @depthAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format--- with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkPipelineRenderingCreateInfoKHR-stencilAttachmentFormat-06164#--- If @stencilAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format--- with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkPipelineRenderingCreateInfoKHR-depthAttachmentFormat-06165#--- If @depthAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and--- @stencilAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',--- @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@------ - #VUID-VkPipelineRenderingCreateInfoKHR-multiview-06066# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>--- feature is not enabled, @viewMask@ /must/ be @0@------ - #VUID-VkPipelineRenderingCreateInfoKHR-viewMask-06067# The index of--- the most significant bit in @viewMask@ /must/ be less than--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>------ == Valid Usage (Implicit)------ - #VUID-VkPipelineRenderingCreateInfoKHR-sType-sType# @sType@ /must/--- be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'------ - #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-parameter#--- If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@--- /must/ be a valid pointer to an array of @colorAttachmentCount@--- valid 'Vulkan.Core10.Enums.Format.Format' values------ - #VUID-VkPipelineRenderingCreateInfoKHR-depthAttachmentFormat-parameter#--- @depthAttachmentFormat@ /must/ be a valid--- 'Vulkan.Core10.Enums.Format.Format' value------ - #VUID-VkPipelineRenderingCreateInfoKHR-stencilAttachmentFormat-parameter#--- @stencilAttachmentFormat@ /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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.Format.Format',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfoKHR- { -- | @viewMask@ is the viewMask used for rendering.- viewMask :: Word32- , -- | @pColorAttachmentFormats@ is a pointer to an array of- -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color- -- attachments used in this pipeline.- colorAttachmentFormats :: Vector Format- , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value- -- defining the format of the depth attachment used in this pipeline.- depthAttachmentFormat :: Format- , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value- -- defining the format of the stencil attachment used in this pipeline.- stencilAttachmentFormat :: Format- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineRenderingCreateInfoKHR)-#endif-deriving instance Show PipelineRenderingCreateInfoKHR--instance ToCStruct PipelineRenderingCreateInfoKHR where- withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineRenderingCreateInfoKHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (viewMask)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))- pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)- lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')- lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (depthAttachmentFormat)- lift $ poke ((p `plusPtr` 36 :: Ptr Format)) (stencilAttachmentFormat)- lift $ f- cStructSize = 40- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 32 :: Ptr Format)) (zero)- poke ((p `plusPtr` 36 :: Ptr Format)) (zero)- f--instance FromCStruct PipelineRenderingCreateInfoKHR where- peekCStruct p = do- viewMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- colorAttachmentCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 24 :: Ptr (Ptr Format)))- pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))- depthAttachmentFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format))- stencilAttachmentFormat <- peek @Format ((p `plusPtr` 36 :: Ptr Format))- pure $ PipelineRenderingCreateInfoKHR- viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat--instance Zero PipelineRenderingCreateInfoKHR where- zero = PipelineRenderingCreateInfoKHR- zero- mempty- zero- zero----- | VkRenderingInfoKHR - Structure specifying render pass instance begin--- info------ = Description------ If @viewMask@ is not @0@, multiview is enabled.------ If there is an instance of--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- included in the @pNext@ chain and its @deviceCount@ member is not @0@,--- then @renderArea@ is ignored, and the render area is defined per-device--- by that structure.------ Each element of the @pColorAttachments@ array corresponds to an output--- location in the shader, i.e. if the shader declares an output variable--- decorated with a @Location@ value of __X__, then it uses the attachment--- provided in @pColorAttachments@[__X__]. If the @imageView@ member of any--- element of @pColorAttachments@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', writes to the corresponding--- location by a fragment are discarded.------ == Valid Usage------ - #VUID-VkRenderingInfoKHR-viewMask-06069# If @viewMask@ is @0@,--- @layerCount@ /must/ not be @0@------ - #VUID-VkRenderingInfoKHR-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@,--- @pStencilAttachment@, and elements of @pColorAttachments@ that are--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been--- created with the same @sampleCount@------ - #VUID-VkRenderingInfoKHR-pNext-06077# 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-VkRenderingInfoKHR-pNext-06078# 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-VkRenderingInfoKHR-pNext-06079# If the @pNext@ chain does not--- contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0, the width of--- the @imageView@ member of any element of @pColorAttachments@,--- @pDepthAttachment@, or @pStencilAttachment@ that is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or--- equal to @renderArea.offset.x@ + @renderArea.extent.width@------ - #VUID-VkRenderingInfoKHR-pNext-06080# If the @pNext@ chain does not--- contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0, the height of--- the @imageView@ member of any element of @pColorAttachments@,--- @pDepthAttachment@, or @pStencilAttachment@ that is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be greater than or--- equal to @renderArea.offset.y@ + @renderArea.extent.height@------ - #VUID-VkRenderingInfoKHR-pNext-06083# If the @pNext@ chain contains--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',--- the width of the @imageView@ member of any element of--- @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@--- that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be--- greater than or equal to the sum of the @offset.x@ and--- @extent.width@ members of each element of @pDeviceRenderAreas@------ - #VUID-VkRenderingInfoKHR-pNext-06084# If the @pNext@ chain contains--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',--- the height of the @imageView@ member of any element of--- @pColorAttachments@, @pDepthAttachment@, or @pStencilAttachment@--- that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be--- greater than or equal to the sum of the @offset.y@ and--- @extent.height@ members of each element of @pDeviceRenderAreas@------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06085# If neither--- @pDepthAttachment@ or @pStencilAttachment@ are @NULL@ and the--- @imageView@ member of either structure is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @imageView@ member of--- each structure /must/ be the same------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06086# If neither--- @pDepthAttachment@ or @pStencilAttachment@ are @NULL@, and the--- @resolveMode@ member of each is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the--- @resolveImageView@ member of each structure /must/ be the same------ - #VUID-VkRenderingInfoKHR-colorAttachmentCount-06087# If--- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an--- element of @pColorAttachments@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', that @imageView@ /must/--- have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06088# If--- @pDepthAttachment@ is not @NULL@ and @pDepthAttachment->imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pDepthAttachment->imageView@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkRenderingInfoKHR-pStencilAttachment-06089# If--- @pStencilAttachment@ is not @NULL@ and--- @pStencilAttachment->imageView@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pStencilAttachment->imageView@ /must/ have been created with a--- stencil usage including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkRenderingInfoKHR-colorAttachmentCount-06090# If--- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an--- element of @pColorAttachments@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of--- that element of @pColorAttachments@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-colorAttachmentCount-06091# If--- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an--- element of @pColorAttachments@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@--- member of that element of @pColorAttachments@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its--- @resolveImageLayout@ member /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06092# If--- @pDepthAttachment@ is not @NULL@ and @pDepthAttachment->imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pDepthAttachment->layout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06093# If--- @pDepthAttachment@ is not @NULL@, @pDepthAttachment->imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- @pDepthAttachment->resolveMode@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @pDepthAttachment->resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-pStencilAttachment-06094# If--- @pStencilAttachment@ is not @NULL@ and--- @pStencilAttachment->imageView@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pStencilAttachment->layout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-pStencilAttachment-06095# If--- @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- @pStencilAttachment->resolveMode@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @pStencilAttachment->resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-colorAttachmentCount-06096# If--- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an--- element of @pColorAttachments@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of--- that element of @pColorAttachments@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-colorAttachmentCount-06097# If--- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an--- element of @pColorAttachments@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@--- member of that element of @pColorAttachments@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its--- @resolveImageLayout@ member /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06098# If--- @pDepthAttachment@ is not @NULL@, @pDepthAttachment->imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- @pDepthAttachment->resolveMode@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @pDepthAttachment->resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-pStencilAttachment-06099# If--- @pStencilAttachment@ is not @NULL@, @pStencilAttachment->imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- @pStencilAttachment->resolveMode@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @pStencilAttachment->resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkRenderingInfoKHR-colorAttachmentCount-06100# If--- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an--- element of @pColorAttachments@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @layout@ member of--- that element of @pColorAttachments@ /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-VkRenderingInfoKHR-colorAttachmentCount-06101# If--- @colorAttachmentCount@ is not @0@ and the @imageView@ member of an--- element of @pColorAttachments@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the @resolveMode@--- member of that element of @pColorAttachments@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', its--- @resolveImageLayout@ 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-VkRenderingInfoKHR-pDepthAttachment-06102# If--- @pDepthAttachment@ is not @NULL@ and @pDepthAttachment->imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pDepthAttachment->resolveMode@ /must/ be one of the bits set in--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedDepthResolveModes@------ - #VUID-VkRenderingInfoKHR-pStencilAttachment-06103# If--- @pStencilAttachment@ is not @NULL@ and--- @pStencilAttachment->imageView@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pStencilAttachment->resolveMode@ /must/ be one of the bits set in--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@supportedStencilResolveModes@------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06104# If--- @pDepthAttachment@ or @pStencilAttachment@ are both not @NULL@,--- @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@--- are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolveNone@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', the @resolveMode@ of both--- structures /must/ be the same value------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-06105# If--- @pDepthAttachment@ or @pStencilAttachment@ are both not @NULL@,--- @pDepthAttachment->imageView@ and @pStencilAttachment->imageView@--- are both not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties'::@independentResolve@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', and the @resolveMode@ of--- neither structure is--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the--- @resolveMode@ of both structures /must/ be the same value------ - #VUID-VkRenderingInfoKHR-colorAttachmentCount-06106#--- @colorAttachmentCount@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxColorAttachments@------ - #VUID-VkRenderingInfoKHR-imageView-06107# If the @imageView@ member--- of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-VkRenderingInfoKHR-imageView-06108# If the @imageView@ member--- of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,--- @imageView@ /must/ have a @layerCount@ greater than or equal to the--- index of the most significant bit in @viewMask@------ - #VUID-VkRenderingInfoKHR-imageView-06109# If the @imageView@ member--- of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,--- @imageView@ /must/ have a @layerCount@ equal to @1@------ - #VUID-VkRenderingInfoKHR-pNext-06112# If the @pNext@ chain does not--- contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0 and the--- @imageView@ member of a--- 'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in--- the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @imageView@ /must/ have a width greater than or equal to--- \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)------ - #VUID-VkRenderingInfoKHR-pNext-06113# If the @pNext@ chain contains--- a--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- structure, its @deviceRenderAreaCount@ member is not 0, and the--- @imageView@ member of a--- 'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in--- the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @imageView@ /must/ have a width greater than or equal to--- \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)--- for each element of @pDeviceRenderAreas@------ - #VUID-VkRenderingInfoKHR-pNext-06114# If the @pNext@ chain does not--- contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0 and the--- @imageView@ member of a--- 'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in--- the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @imageView@ /must/ have a height greater than or equal to--- \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)------ - #VUID-VkRenderingInfoKHR-pNext-06115# If the @pNext@ chain contains--- a--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- structure, its @deviceRenderAreaCount@ member is not 0, and the--- @imageView@ member of a--- 'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in--- the @pNext@ chain is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @imageView@ /must/ have a height greater than or equal to--- \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)--- for each element of @pDeviceRenderAreas@------ - #VUID-VkRenderingInfoKHR-imageView-06116# If the @imageView@ member--- of a 'RenderingFragmentDensityMapAttachmentInfoEXT' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to--- the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,--- @pStencilAttachment@, or any element of @pColorAttachments@------ - #VUID-VkRenderingInfoKHR-pNext-06119# If the @pNext@ chain does not--- contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0 and the--- @imageView@ member of a--- 'RenderingFragmentShadingRateAttachmentInfoKHR' structure included--- in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a--- width greater than or equal to--- \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)------ - #VUID-VkRenderingInfoKHR-pNext-06120# If the @pNext@ chain contains--- a--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- structure, its @deviceRenderAreaCount@ member is not 0, and the--- @imageView@ member of a--- 'RenderingFragmentShadingRateAttachmentInfoKHR' structure included--- in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a--- width greater than or equal to--- \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)--- for each element of @pDeviceRenderAreas@------ - #VUID-VkRenderingInfoKHR-pNext-06121# If the @pNext@ chain does not--- contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0 and the--- @imageView@ member of a--- 'RenderingFragmentShadingRateAttachmentInfoKHR' structure included--- in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a--- height greater than or equal to--- \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)------ - #VUID-VkRenderingInfoKHR-pNext-06122# If the @pNext@ chain contains--- a--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- structure, its @deviceRenderAreaCount@ member is not 0, and the--- @imageView@ member of a--- 'RenderingFragmentShadingRateAttachmentInfoKHR' structure included--- in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageView@ /must/ have a--- height greater than or equal to--- \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)--- for each element of @pDeviceRenderAreas@------ - #VUID-VkRenderingInfoKHR-imageView-06123# If the @imageView@ member--- of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is @0@,--- @imageView@ /must/ have a @layerCount@ that is either equal to @1@--- or greater than or equal to @layerCount@------ - #VUID-VkRenderingInfoKHR-imageView-06124# If the @imageView@ member--- of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @viewMask@ is not @0@,--- @imageView@ /must/ have a @layerCount@ that either equal to @1@ or--- greater than or equal to the index of the most significant bit in--- @viewMask@------ - #VUID-VkRenderingInfoKHR-imageView-06125# If the @imageView@ member--- of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to--- the @imageView@ or @resolveImageView@ member of @pDepthAttachment@,--- @pStencilAttachment@, or any element of @pColorAttachments@------ - #VUID-VkRenderingInfoKHR-imageView-06126# If the @imageView@ member--- of a 'RenderingFragmentShadingRateAttachmentInfoKHR' structure--- included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ not be equal to--- the @imageView@ member of a--- 'RenderingFragmentDensityMapAttachmentInfoEXT' structure included in--- the @pNext@ chain------ - #VUID-VkRenderingInfoKHR-multiview-06127# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>--- feature is not enabled, @viewMask@ /must/ be @0@------ - #VUID-VkRenderingInfoKHR-viewMask-06128# The index of the most--- significant bit in @viewMask@ /must/ be less than--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>------ == Valid Usage (Implicit)------ - #VUID-VkRenderingInfoKHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO_KHR'------ - #VUID-VkRenderingInfoKHR-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',--- 'MultiviewPerViewAttributesInfoNVX',--- 'RenderingFragmentDensityMapAttachmentInfoEXT', or--- 'RenderingFragmentShadingRateAttachmentInfoKHR'------ - #VUID-VkRenderingInfoKHR-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique------ - #VUID-VkRenderingInfoKHR-flags-parameter# @flags@ /must/ be a valid--- combination of 'RenderingFlagBitsKHR' values------ - #VUID-VkRenderingInfoKHR-pColorAttachments-parameter# If--- @colorAttachmentCount@ is not @0@, @pColorAttachments@ /must/ be a--- valid pointer to an array of @colorAttachmentCount@ valid--- 'RenderingAttachmentInfoKHR' structures------ - #VUID-VkRenderingInfoKHR-pDepthAttachment-parameter# If--- @pDepthAttachment@ is not @NULL@, @pDepthAttachment@ /must/ be a--- valid pointer to a valid 'RenderingAttachmentInfoKHR' structure------ - #VUID-VkRenderingInfoKHR-pStencilAttachment-parameter# If--- @pStencilAttachment@ is not @NULL@, @pStencilAttachment@ /must/ be a--- valid pointer to a valid 'RenderingAttachmentInfoKHR' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'RenderingAttachmentInfoKHR',--- 'RenderingFlagsKHR', 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdBeginRenderingKHR'-data RenderingInfoKHR (es :: [Type]) = RenderingInfoKHR- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is a bitmask of 'RenderingFlagBitsKHR'.- flags :: RenderingFlagsKHR- , -- | @renderArea@ is the render area that is affected by the render pass- -- instance.- renderArea :: Rect2D- , -- | @layerCount@ is the number of layers rendered to in each attachment when- -- @viewMask@ is @0@.- layerCount :: Word32- , -- | @viewMask@ is the view mask indicating the indices of attachment layers- -- that will be rendered when it is not @0@.- viewMask :: Word32- , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@- -- 'RenderingAttachmentInfoKHR' structures describing any color attachments- -- used.- colorAttachments :: Vector RenderingAttachmentInfoKHR- , -- | @pDepthAttachment@ is a pointer to a 'RenderingAttachmentInfoKHR'- -- structure describing a depth attachment.- depthAttachment :: Maybe RenderingAttachmentInfoKHR- , -- | @pStencilAttachment@ is a pointer to a 'RenderingAttachmentInfoKHR'- -- structure describing a stencil attachment.- stencilAttachment :: Maybe RenderingAttachmentInfoKHR- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingInfoKHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (RenderingInfoKHR es)--instance Extensible RenderingInfoKHR where- extensibleTypeName = "RenderingInfoKHR"- setNext RenderingInfoKHR{..} next' = RenderingInfoKHR{next = next', ..}- getNext RenderingInfoKHR{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingInfoKHR e => b) -> Maybe b- extends _ f- | 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 @DeviceGroupRenderPassBeginInfo = Just f- | otherwise = Nothing--instance (Extendss RenderingInfoKHR es, PokeChain es) => ToCStruct (RenderingInfoKHR es) where- withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)- pokeCStruct p RenderingInfoKHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO_KHR)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlagsKHR)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (renderArea)- lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (layerCount)- lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (viewMask)- lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachments)) :: Word32))- pPColorAttachments' <- ContT $ allocaBytes @RenderingAttachmentInfoKHR ((Data.Vector.length (colorAttachments)) * 72)- Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPColorAttachments' `plusPtr` (72 * (i)) :: Ptr RenderingAttachmentInfoKHR) (e) . ($ ())) (colorAttachments)- lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr RenderingAttachmentInfoKHR))) (pPColorAttachments')- pDepthAttachment'' <- case (depthAttachment) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr RenderingAttachmentInfoKHR))) pDepthAttachment''- pStencilAttachment'' <- case (stencilAttachment) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- lift $ poke ((p `plusPtr` 64 :: Ptr (Ptr RenderingAttachmentInfoKHR))) pStencilAttachment''- lift $ f- cStructSize = 72- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_INFO_KHR)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 20 :: Ptr Rect2D)) (zero)- lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)- lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)- lift $ f--instance es ~ '[] => Zero (RenderingInfoKHR es) where- zero = RenderingInfoKHR- ()- zero- zero- zero- zero- mempty- Nothing- Nothing----- | VkRenderingAttachmentInfoKHR - Structure specifying attachment--- information------ = Description------ Values in @imageView@ are loaded and stored according to the values of--- @loadOp@ and @storeOp@, within the render area for each device specified--- in 'RenderingInfoKHR'. If @imageView@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', other members of this--- structure are ignored; writes to this attachment will be discarded, and--- no load, store, or resolve operations will be performed.------ 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--- @resolveMode@ and stored into the the same location in--- @resolveImageView@.------ Note------ The resolve mode and store operation are independent; it is valid to--- write both resolved and unresolved values, and equally valid to discard--- the unresolved values while writing the resolved ones.------ Store and resolve operations are only performed at the end of a render--- pass instance that does not specify the 'RENDERING_SUSPENDING_BIT_KHR'--- flag.------ Load operations are only performed at the beginning of a render pass--- instance that does not specify the 'RENDERING_RESUMING_BIT_KHR' flag.------ Image contents at the end of a suspended render pass instance remain--- defined for access by a resuming render pass instance.------ == Valid Usage------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06129# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has a--- non-integer color format, @resolveMode@ /must/ be--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_AVERAGE_BIT'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06130# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and has an integer--- color format, @resolveMode@ /must/ be--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_SAMPLE_ZERO_BIT'------ - #VUID-VkRenderingAttachmentInfoKHR-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--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06133# If @imageView@--- 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-VkRenderingAttachmentInfoKHR-imageView-06134# If @imageView@--- 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-VkRenderingAttachmentInfoKHR-imageView-06135# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /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',--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06136# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- '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',--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06137# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06138# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not--- be--- 'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06139# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @resolveImageLayout@ /must/ not be--- 'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06140# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06141# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06142# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06143# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06144# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06145# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not--- be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-06146# If @imageView@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @resolveImageLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'------ == Valid Usage (Implicit)------ - #VUID-VkRenderingAttachmentInfoKHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'------ - #VUID-VkRenderingAttachmentInfoKHR-pNext-pNext# @pNext@ /must/ be--- @NULL@------ - #VUID-VkRenderingAttachmentInfoKHR-imageView-parameter# If--- @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'--- handle------ - #VUID-VkRenderingAttachmentInfoKHR-imageLayout-parameter#--- @imageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-VkRenderingAttachmentInfoKHR-resolveMode-parameter# If--- @resolveMode@ is not @0@, @resolveMode@ /must/ be a valid--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value------ - #VUID-VkRenderingAttachmentInfoKHR-resolveImageView-parameter# If--- @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @resolveImageView@ /must/ be a valid--- 'Vulkan.Core10.Handles.ImageView' handle------ - #VUID-VkRenderingAttachmentInfoKHR-resolveImageLayout-parameter#--- @resolveImageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-VkRenderingAttachmentInfoKHR-loadOp-parameter# @loadOp@ /must/--- be a valid 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'--- value------ - #VUID-VkRenderingAttachmentInfoKHR-storeOp-parameter# @storeOp@--- /must/ be a valid--- 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp' value------ - #VUID-VkRenderingAttachmentInfoKHR-clearValue-parameter#--- @clearValue@ /must/ be a valid--- 'Vulkan.Core10.CommandBufferBuilding.ClearValue' union------ - #VUID-VkRenderingAttachmentInfoKHR-commonparent# Both of--- @imageView@, and @resolveImageView@ 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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp',--- 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp',--- 'Vulkan.Core10.CommandBufferBuilding.ClearValue',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Handles.ImageView', 'RenderingInfoKHR',--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data RenderingAttachmentInfoKHR = RenderingAttachmentInfoKHR- { -- | @imageView@ is the image view that will be used for rendering.- imageView :: ImageView- , -- | @imageLayout@ is the layout that @imageView@ will be in during- -- rendering.- imageLayout :: ImageLayout- , -- | @resolveMode@ is a- -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value- -- defining how multisampled data written to @imageView@ will be resolved.- resolveMode :: ResolveModeFlagBits- , -- | @resolveImageView@ is an image view used to write resolved multisample- -- data at the end of rendering.- resolveImageView :: ImageView- , -- | @resolveImageLayout@ is the layout that @resolveImageView@ will be in- -- during rendering.- resolveImageLayout :: ImageLayout- , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'- -- value specifying how the contents of @imageView@ are treated at the- -- start of the render pass instance.- loadOp :: AttachmentLoadOp- , -- | @storeOp@ is a 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp'- -- value specifying how the contents of @imageView@ are treated at the end- -- of the render pass instance.- storeOp :: AttachmentStoreOp- , -- | @clearValue@ is a 'Vulkan.Core10.CommandBufferBuilding.ClearValue'- -- structure defining values used to clear @imageView@ when @loadOp@ is- -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'.- clearValue :: ClearValue- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingAttachmentInfoKHR)-#endif-deriving instance Show RenderingAttachmentInfoKHR--instance ToCStruct RenderingAttachmentInfoKHR where- withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)- pokeCStruct p RenderingAttachmentInfoKHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)- lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)- lift $ poke ((p `plusPtr` 28 :: Ptr ResolveModeFlagBits)) (resolveMode)- lift $ poke ((p `plusPtr` 32 :: Ptr ImageView)) (resolveImageView)- lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (resolveImageLayout)- lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (loadOp)- lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (storeOp)- ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (clearValue) . ($ ())- lift $ f- cStructSize = 72- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)- lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)- lift $ poke ((p `plusPtr` 44 :: Ptr AttachmentLoadOp)) (zero)- lift $ poke ((p `plusPtr` 48 :: Ptr AttachmentStoreOp)) (zero)- ContT $ pokeCStruct ((p `plusPtr` 52 :: Ptr ClearValue)) (zero) . ($ ())- lift $ f--instance Zero RenderingAttachmentInfoKHR where- zero = RenderingAttachmentInfoKHR- zero- zero- zero- zero- zero- zero- zero- zero----- | VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying--- fragment shading rate attachment information------ = Description------ This structure can be included in the @pNext@ chain of--- 'RenderingInfoKHR' to define a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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--- single pixel per fragment.------ == Valid Usage------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @layout@ /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it--- /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @shadingRateAttachmentTexelSize.width@ /must/ be a power of two--- value------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150#--- 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.2-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.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @shadingRateAttachmentTexelSize.height@ /must/ be a power of two--- value------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153#--- 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.2-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.2-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.2-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.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>------ == Valid Usage (Implicit)------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType#--- @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'--- handle------ - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter#--- @imageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ = 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_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>,--- 'Vulkan.Core10.FundamentalTypes.Extent2D',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.Handles.ImageView',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR- { -- | @imageView@ is the image view that will be used as a fragment shading- -- rate attachment.- imageView :: ImageView- , -- | @imageLayout@ is the layout that @imageView@ will be in during- -- rendering.- imageLayout :: ImageLayout- , -- | @shadingRateAttachmentTexelSize@ specifies the number of pixels- -- corresponding to each texel in @imageView@.- shadingRateAttachmentTexelSize :: Extent2D- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingFragmentShadingRateAttachmentInfoKHR)-#endif-deriving instance Show RenderingFragmentShadingRateAttachmentInfoKHR--instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR where- withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)- pokeCStruct p RenderingFragmentShadingRateAttachmentInfoKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)- poke ((p `plusPtr` 28 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)- f- cStructSize = 40- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)- poke ((p `plusPtr` 28 :: Ptr Extent2D)) (zero)- f--instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR where- peekCStruct p = do- imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))- imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))- shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))- pure $ RenderingFragmentShadingRateAttachmentInfoKHR- imageView imageLayout shadingRateAttachmentTexelSize--instance Storable RenderingFragmentShadingRateAttachmentInfoKHR where- sizeOf ~_ = 40- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero RenderingFragmentShadingRateAttachmentInfoKHR where- zero = RenderingFragmentShadingRateAttachmentInfoKHR- zero- zero- zero----- | VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying--- fragment shading rate attachment information------ = Description------ This structure can be included in the @pNext@ chain of--- 'RenderingInfoKHR' to define a fragment density map. If this structure--- is not included in the @pNext@ chain, @imageView@ is treated as--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.------ == Valid Usage------ - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @layout@ /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it--- /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'------ - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159#--- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it--- /must/ not have been created with--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ == Valid Usage (Implicit)------ - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType#--- @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'------ - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter#--- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'--- handle------ - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter#--- @imageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- '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 :: ImageView- , -- | @imageLayout@ is the layout that @imageView@ will be in during- -- rendering.- imageLayout :: ImageLayout- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderingFragmentDensityMapAttachmentInfoEXT)-#endif-deriving instance Show RenderingFragmentDensityMapAttachmentInfoEXT--instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p RenderingFragmentDensityMapAttachmentInfoEXT{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)- f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr ImageView)) (zero)- poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)- f--instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT where- peekCStruct p = do- imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))- imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))- pure $ RenderingFragmentDensityMapAttachmentInfoEXT- imageView imageLayout--instance Storable RenderingFragmentDensityMapAttachmentInfoEXT where- sizeOf ~_ = 32- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero RenderingFragmentDensityMapAttachmentInfoEXT where- zero = RenderingFragmentDensityMapAttachmentInfoEXT- zero- zero----- | VkPhysicalDeviceDynamicRenderingFeaturesKHR - Structure indicating--- support for dynamic render pass instances------ = Members------ The members of the 'PhysicalDeviceDynamicRenderingFeaturesKHR' structure--- describe the following features:------ = Description------ If the 'PhysicalDeviceDynamicRenderingFeaturesKHR' 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. 'PhysicalDeviceDynamicRenderingFeaturesKHR' /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_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeaturesKHR- { -- | #features-dynamicRendering# @dynamicRendering@ specifies that the- -- implementation supports dynamic render pass instances using the- -- 'cmdBeginRenderingKHR' command.- dynamicRendering :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceDynamicRenderingFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceDynamicRenderingFeaturesKHR--instance ToCStruct PhysicalDeviceDynamicRenderingFeaturesKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceDynamicRenderingFeaturesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (dynamicRendering))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f--instance FromCStruct PhysicalDeviceDynamicRenderingFeaturesKHR where- peekCStruct p = do- dynamicRendering <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceDynamicRenderingFeaturesKHR- (bool32ToBool dynamicRendering)--instance Storable PhysicalDeviceDynamicRenderingFeaturesKHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceDynamicRenderingFeaturesKHR where- zero = PhysicalDeviceDynamicRenderingFeaturesKHR- zero----- | VkCommandBufferInheritanceRenderingInfoKHR - Structure specifying--- command buffer inheritance info for dynamic render pass instances------ = Description------ If the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes a--- 'CommandBufferInheritanceRenderingInfoKHR' structure, then that--- structure controls parameters of dynamic render pass instances that the--- 'Vulkan.Core10.Handles.CommandBuffer' /can/ be executed within. If--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'--- is not specified in--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,--- parameters of this structure are ignored.------ If @colorAttachmentCount@ is @0@ and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>--- feature is enabled, @rasterizationSamples@ is ignored.------ If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of--- @pColorAttachmentFormats@ is--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the--- corresponding attachment is unused within the render pass.------ == Valid Usage------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-colorAttachmentCount-06004#--- If @colorAttachmentCount@ is not @0@, @rasterizationSamples@ /must/--- be a valid--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-variableMultisampleRate-06005#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>--- feature is not enabled, @rasterizationSamples@ /must/ be a valid--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06006#--- 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.2-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-depthAttachmentFormat-06007#--- If @depthAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format--- with--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-stencilAttachmentFormat-06199#--- If @stencilAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format--- with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-depthAttachmentFormat-06200#--- If @depthAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' and--- @stencilAttachmentFormat@ is not--- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',--- @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-multiview-06008# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>--- feature is not enabled, @viewMask@ /must/ be @0@------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-viewMask-06009# The--- index of the most significant bit in @viewMask@ /must/ be less than--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>------ == Valid Usage (Implicit)------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-sType-sType#--- @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-flags-parameter#--- @flags@ /must/ be a valid combination of 'RenderingFlagBitsKHR'--- values------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-parameter#--- If @colorAttachmentCount@ is not @0@, @pColorAttachmentFormats@--- /must/ be a valid pointer to an array of @colorAttachmentCount@--- valid 'Vulkan.Core10.Enums.Format.Format' values------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-depthAttachmentFormat-parameter#--- @depthAttachmentFormat@ /must/ be a valid--- 'Vulkan.Core10.Enums.Format.Format' value------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-stencilAttachmentFormat-parameter#--- @stencilAttachmentFormat@ /must/ be a valid--- 'Vulkan.Core10.Enums.Format.Format' value------ - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-rasterizationSamples-parameter#--- If @rasterizationSamples@ is not @0@, @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_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'Vulkan.Core10.Enums.Format.Format', 'RenderingFlagsKHR',--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfoKHR- { -- | @flags@ is a bitmask of 'RenderingFlagBitsKHR' used by the render pass- -- instance.- flags :: RenderingFlagsKHR- , -- | @viewMask@ is the view mask used for rendering.- viewMask :: Word32- , -- | @pColorAttachmentFormats@ is a pointer to an array of- -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color- -- attachments.- colorAttachmentFormats :: Vector Format- , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value- -- defining the format of the depth attachment.- depthAttachmentFormat :: Format- , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value- -- defining the format of the stencil attachment.- stencilAttachmentFormat :: Format- , -- | @rasterizationSamples@ is a- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying- -- the number of samples used in rasterization.- rasterizationSamples :: SampleCountFlagBits- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CommandBufferInheritanceRenderingInfoKHR)-#endif-deriving instance Show CommandBufferInheritanceRenderingInfoKHR--instance ToCStruct CommandBufferInheritanceRenderingInfoKHR where- withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)- pokeCStruct p CommandBufferInheritanceRenderingInfoKHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr RenderingFlagsKHR)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewMask)- lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32))- pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4)- lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats)- lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr Format))) (pPColorAttachmentFormats')- lift $ poke ((p `plusPtr` 40 :: Ptr Format)) (depthAttachmentFormat)- lift $ poke ((p `plusPtr` 44 :: Ptr Format)) (stencilAttachmentFormat)- lift $ poke ((p `plusPtr` 48 :: Ptr SampleCountFlagBits)) (rasterizationSamples)- lift $ f- cStructSize = 56- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 40 :: Ptr Format)) (zero)- poke ((p `plusPtr` 44 :: Ptr Format)) (zero)- f--instance FromCStruct CommandBufferInheritanceRenderingInfoKHR where- peekCStruct p = do- flags <- peek @RenderingFlagsKHR ((p `plusPtr` 16 :: Ptr RenderingFlagsKHR))- viewMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- colorAttachmentCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))- pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 32 :: Ptr (Ptr Format)))- pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format)))- depthAttachmentFormat <- peek @Format ((p `plusPtr` 40 :: Ptr Format))- stencilAttachmentFormat <- peek @Format ((p `plusPtr` 44 :: Ptr Format))- rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 48 :: Ptr SampleCountFlagBits))- pure $ CommandBufferInheritanceRenderingInfoKHR- flags viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat rasterizationSamples--instance Zero CommandBufferInheritanceRenderingInfoKHR where- zero = CommandBufferInheritanceRenderingInfoKHR- zero- zero- mempty- zero- zero- zero----- | VkAttachmentSampleCountInfoAMD - Structure specifying command buffer--- inheritance info for dynamic render pass instances------ = Description------ If--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'--- is specified in--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@, and the--- @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes--- 'AttachmentSampleCountInfoAMD', then this structure defines the sample--- counts of each attachment within the render pass instance. If--- 'AttachmentSampleCountInfoAMD' is not included, the value of--- 'CommandBufferInheritanceRenderingInfoKHR'::@rasterizationSamples@ is--- used as the sample count for each attachment. If--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'--- is not specified in--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,--- parameters of this structure are ignored.------ 'AttachmentSampleCountInfoAMD' /can/ also be included in the @pNext@--- chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'. When a--- graphics pipeline is created without a--- 'Vulkan.Core10.Handles.RenderPass', if this structure is present in the--- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it--- specifies the sample count of attachments used for rendering. If this--- structure is not specified, and the pipeline does not include a--- 'Vulkan.Core10.Handles.RenderPass', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- is used as the sample count for each attachment. If a graphics pipeline--- is created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters--- of this structure are ignored.------ == Valid Usage (Implicit)------ - #VUID-VkAttachmentSampleCountInfoAMD-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'------ - #VUID-VkAttachmentSampleCountInfoAMD-pColorAttachmentSamples-parameter#--- @pColorAttachmentSamples@ /must/ be a valid pointer to an array of--- @colorAttachmentCount@ valid or--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values------ - #VUID-VkAttachmentSampleCountInfoAMD-depthStencilAttachmentSamples-parameter#--- If @depthStencilAttachmentSamples@ is not @0@,--- @depthStencilAttachmentSamples@ /must/ be a valid--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ - #VUID-VkAttachmentSampleCountInfoAMD-colorAttachmentCount-arraylength#--- @colorAttachmentCount@ /must/ be greater than @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>,--- <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_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD- { -- | @pColorAttachmentSamples@ is a pointer to an array of- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values- -- defining the sample count of color attachments.- colorAttachmentSamples :: Vector SampleCountFlagBits- , -- | @depthStencilAttachmentSamples@ is a- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value- -- defining the sample count of a depth\/stencil attachment.- depthStencilAttachmentSamples :: SampleCountFlagBits- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (AttachmentSampleCountInfoAMD)-#endif-deriving instance Show AttachmentSampleCountInfoAMD--instance ToCStruct AttachmentSampleCountInfoAMD where- withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)- pokeCStruct p AttachmentSampleCountInfoAMD{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentSamples)) :: Word32))- pPColorAttachmentSamples' <- ContT $ allocaBytes @SampleCountFlagBits ((Data.Vector.length (colorAttachmentSamples)) * 4)- lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentSamples' `plusPtr` (4 * (i)) :: Ptr SampleCountFlagBits) (e)) (colorAttachmentSamples)- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits))) (pPColorAttachmentSamples')- lift $ poke ((p `plusPtr` 32 :: Ptr SampleCountFlagBits)) (depthStencilAttachmentSamples)- lift $ f- cStructSize = 40- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- f--instance FromCStruct AttachmentSampleCountInfoAMD where- peekCStruct p = do- colorAttachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- pColorAttachmentSamples <- peek @(Ptr SampleCountFlagBits) ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits)))- pColorAttachmentSamples' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @SampleCountFlagBits ((pColorAttachmentSamples `advancePtrBytes` (4 * (i)) :: Ptr SampleCountFlagBits)))- depthStencilAttachmentSamples <- peek @SampleCountFlagBits ((p `plusPtr` 32 :: Ptr SampleCountFlagBits))- pure $ AttachmentSampleCountInfoAMD- pColorAttachmentSamples' depthStencilAttachmentSamples--instance Zero AttachmentSampleCountInfoAMD where- zero = AttachmentSampleCountInfoAMD- mempty- zero----- | VkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview--- per-attribute properties------ = Description------ When dynamic render pass instances are being used, instead of specifying--- '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--- render pass instance /must/ be specified by the--- 'MultiviewPerViewAttributesInfoNVX' structure Include the--- 'MultiviewPerViewAttributesInfoNVX' structure in the @pNext@ chain of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' when creating a--- graphics pipeline for dynamic rendering, 'RenderingInfoKHR' when--- starting a dynamic render pass instance, and--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' when--- specifying the dynamic render pass instance parameters for secondary--- command buffers.------ == Valid Usage------ - #VUID-VkMultiviewPerViewAttributesInfoNVX-perViewAttributesPositionXOnly-06163#--- If @perViewAttributesPositionXOnly@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE' then @perViewAttributes@--- /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'------ == Valid Usage (Implicit)------ - #VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'------ = 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_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX- { -- | @perViewAttributes@ specifies that shaders compiled for this pipeline- -- write the attributes for all views in a single invocation of each vertex- -- processing stage. All pipelines executed within a render pass instance- -- 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.- perViewAttributes :: Bool- , -- | @perViewAttributesPositionXOnly@ specifies that shaders compiled for- -- this pipeline use per-view positions which only differ in value in the x- -- component. Per-view viewport mask /can/ also be used.- perViewAttributesPositionXOnly :: Bool- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (MultiviewPerViewAttributesInfoNVX)-#endif-deriving instance Show MultiviewPerViewAttributesInfoNVX--instance ToCStruct MultiviewPerViewAttributesInfoNVX where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p MultiviewPerViewAttributesInfoNVX{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (perViewAttributes))- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (perViewAttributesPositionXOnly))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)- 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 MultiviewPerViewAttributesInfoNVX where- peekCStruct p = do- perViewAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- perViewAttributesPositionXOnly <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- pure $ MultiviewPerViewAttributesInfoNVX- (bool32ToBool perViewAttributes) (bool32ToBool perViewAttributesPositionXOnly)--instance Storable MultiviewPerViewAttributesInfoNVX where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero MultiviewPerViewAttributesInfoNVX where- zero = MultiviewPerViewAttributesInfoNVX- zero- zero---type RenderingFlagsKHR = RenderingFlagBitsKHR---- | VkRenderingFlagBitsKHR - Bitmask specifying additional properties of a--- dynamic render pass instance------ = Description------ The contents of @pRenderingInfo@ /must/ match between suspended render--- pass instances and the render pass instances that resume them, other--- than the presence or absence of the 'RENDERING_RESUMING_BIT_KHR',--- 'RENDERING_SUSPENDING_BIT_KHR', and--- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR' flags. No action--- or synchronization commands, or other render pass instances, are allowed--- between suspending and resuming render pass instances.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,--- 'RenderingFlagsKHR'-newtype RenderingFlagBitsKHR = RenderingFlagBitsKHR Flags- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR' specifies that--- draw calls for the render pass instance will be recorded in secondary--- command buffers.-pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = RenderingFlagBitsKHR 0x00000001--- | 'RENDERING_SUSPENDING_BIT_KHR' specifies that the render pass instance--- will be suspended.-pattern RENDERING_SUSPENDING_BIT_KHR = RenderingFlagBitsKHR 0x00000002--- | 'RENDERING_RESUMING_BIT_KHR' specifies that the render pass instance is--- resuming an earlier suspended render pass instance.-pattern RENDERING_RESUMING_BIT_KHR = RenderingFlagBitsKHR 0x00000004--conNameRenderingFlagBitsKHR :: String-conNameRenderingFlagBitsKHR = "RenderingFlagBitsKHR"--enumPrefixRenderingFlagBitsKHR :: String-enumPrefixRenderingFlagBitsKHR = "RENDERING_"--showTableRenderingFlagBitsKHR :: [(RenderingFlagBitsKHR, String)]-showTableRenderingFlagBitsKHR =- [ (RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR, "CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR")- , (RENDERING_SUSPENDING_BIT_KHR , "SUSPENDING_BIT_KHR")- , (RENDERING_RESUMING_BIT_KHR , "RESUMING_BIT_KHR")- ]--instance Show RenderingFlagBitsKHR where- showsPrec = enumShowsPrec enumPrefixRenderingFlagBitsKHR- showTableRenderingFlagBitsKHR- conNameRenderingFlagBitsKHR- (\(RenderingFlagBitsKHR x) -> x)- (\x -> showString "0x" . showHex x)--instance Read RenderingFlagBitsKHR where- readPrec = enumReadPrec enumPrefixRenderingFlagBitsKHR- showTableRenderingFlagBitsKHR- conNameRenderingFlagBitsKHR- RenderingFlagBitsKHR+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+-- - Tobias Hector+-- <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>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-10-06+--+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+--+-- [__Contributors__]+--+-- - Tobias Hector, AMD+--+-- - Arseny Kapoulkine, Roblox+--+-- - François Duranleau, Gameloft+--+-- - Stuart Smith, AMD+--+-- - Hai Nguyen, Google+--+-- - Jean-François Roy, Google+--+-- - Jeff Leger, Qualcomm+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Piers Daniell, Nvidia+--+-- - James Fitzpatrick, Imagination+--+-- - Piotr Byszewski, Mobica+--+-- - Jesse Hall, Google+--+-- - Mike Blumenkrantz, Valve+--+-- == Description+--+-- This extension allows applications to create single-pass render pass+-- instances without needing to create render pass objects or framebuffers.+-- Dynamic render passes can also span across multiple primary command+-- buffers, rather than relying on secondary command buffers.+--+-- This extension also incorporates 'ATTACHMENT_STORE_OP_NONE_KHR' from+-- <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>,+-- enabling applications to avoid unnecessary synchronization when an+-- attachment is not written during a render pass.+--+-- == New Commands+--+-- - 'cmdBeginRenderingKHR'+--+-- - 'cmdEndRenderingKHR'+--+-- == New Structures+--+-- - 'RenderingAttachmentInfoKHR'+--+-- - 'RenderingInfoKHR'+--+-- - Extending+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':+--+-- - 'CommandBufferInheritanceRenderingInfoKHR'+--+-- - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':+--+-- - 'PipelineRenderingCreateInfoKHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceDynamicRenderingFeaturesKHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':+--+-- - 'AttachmentSampleCountInfoAMD'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+-- - 'RenderingFragmentDensityMapAttachmentInfoEXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+-- - 'RenderingFragmentShadingRateAttachmentInfoKHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo':+--+-- - 'AttachmentSampleCountInfoNV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+-- - 'MultiviewPerViewAttributesInfoNVX'+--+-- == New Enums+--+-- - 'RenderingFlagBitsKHR'+--+-- == New Bitmasks+--+-- - 'RenderingFlagsKHR'+--+-- == New Enum Constants+--+-- - 'KHR_DYNAMIC_RENDERING_EXTENSION_NAME'+--+-- - 'KHR_DYNAMIC_RENDERING_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp':+--+-- - 'ATTACHMENT_STORE_OP_NONE_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'+--+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR'+--+-- - 'STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'+--+-- - 'STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'+--+-- - 'STRUCTURE_TYPE_RENDERING_INFO_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>+-- is supported:+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - 'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - 'PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>+-- is supported:+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>+-- is supported:+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'+--+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+--+-- == Version History+--+-- - Revision 1, 2021-10-06 (Tobias Hector)+--+-- - Initial revision+--+-- == See Also+--+-- 'CommandBufferInheritanceRenderingInfoKHR',+-- 'PhysicalDeviceDynamicRenderingFeaturesKHR',+-- 'PipelineRenderingCreateInfoKHR', 'RenderingAttachmentInfoKHR',+-- 'RenderingFlagBitsKHR', 'RenderingFlagsKHR', 'RenderingInfoKHR',+-- 'cmdBeginRenderingKHR', 'cmdEndRenderingKHR'+--+-- == 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_dynamic_rendering ( pattern STRUCTURE_TYPE_RENDERING_INFO_KHR+ , pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR+ , pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR+ , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR+ , pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR+ , pattern ATTACHMENT_STORE_OP_NONE_KHR+ , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+ , pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT+ , pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV+ , cmdBeginRenderingKHR+ , cmdEndRenderingKHR+ , RenderingFragmentShadingRateAttachmentInfoKHR(..)+ , RenderingFragmentDensityMapAttachmentInfoEXT(..)+ , AttachmentSampleCountInfoAMD(..)+ , MultiviewPerViewAttributesInfoNVX(..)+ , RenderingFlagsKHR+ , RenderingFlagBitsKHR+ , PipelineRenderingCreateInfoKHR+ , RenderingInfoKHR+ , RenderingAttachmentInfoKHR+ , PhysicalDeviceDynamicRenderingFeaturesKHR+ , CommandBufferInheritanceRenderingInfoKHR+ , AttachmentSampleCountInfoNV+ , KHR_DYNAMIC_RENDERING_SPEC_VERSION+ , pattern KHR_DYNAMIC_RENDERING_SPEC_VERSION+ , KHR_DYNAMIC_RENDERING_EXTENSION_NAME+ , pattern KHR_DYNAMIC_RENDERING_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+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 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 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.Core13.Promoted_From_VK_KHR_dynamic_rendering (cmdBeginRendering)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (cmdEndRendering)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (CommandBufferInheritanceRenderingInfo)+import Vulkan.Core10.FundamentalTypes (Extent2D)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.Handles (ImageView)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo)+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlagBits)+import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_INFO))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDERING_INFO_KHR"+pattern STRUCTURE_TYPE_RENDERING_INFO_KHR = STRUCTURE_TYPE_RENDERING_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR"+pattern STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO+++-- No documentation found for TopLevel "VK_ATTACHMENT_STORE_OP_NONE_KHR"+pattern ATTACHMENT_STORE_OP_NONE_KHR = ATTACHMENT_STORE_OP_NONE+++-- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"+pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"+pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV"+pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD+++-- No documentation found for TopLevel "vkCmdBeginRenderingKHR"+cmdBeginRenderingKHR = cmdBeginRendering+++-- No documentation found for TopLevel "vkCmdEndRenderingKHR"+cmdEndRenderingKHR = cmdEndRendering+++-- | VkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying+-- fragment shading rate attachment information+--+-- = Description+--+-- 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>.+-- 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+-- single pixel per fragment.+--+-- == Valid Usage+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @layout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it+-- /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @shadingRateAttachmentTexelSize.width@ /must/ be a power of two+-- value+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150#+-- 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>+--+-- - #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>+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @shadingRateAttachmentTexelSize.height@ /must/ be a power of two+-- value+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153#+-- 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>+--+-- - #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>+--+-- - #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>+--+-- - #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>+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType#+-- @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'+-- handle+--+-- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter#+-- @imageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- = 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_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>,+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR+ { -- | @imageView@ is the image view that will be used as a fragment shading+ -- rate attachment.+ imageView :: ImageView+ , -- | @imageLayout@ is the layout that @imageView@ will be in during+ -- rendering.+ imageLayout :: ImageLayout+ , -- | @shadingRateAttachmentTexelSize@ specifies the number of pixels+ -- corresponding to each texel in @imageView@.+ shadingRateAttachmentTexelSize :: Extent2D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingFragmentShadingRateAttachmentInfoKHR)+#endif+deriving instance Show RenderingFragmentShadingRateAttachmentInfoKHR++instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderingFragmentShadingRateAttachmentInfoKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)+ poke ((p `plusPtr` 28 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ poke ((p `plusPtr` 28 :: Ptr Extent2D)) (zero)+ f++instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR where+ peekCStruct p = do+ imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))+ imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))+ pure $ RenderingFragmentShadingRateAttachmentInfoKHR+ imageView imageLayout shadingRateAttachmentTexelSize++instance Storable RenderingFragmentShadingRateAttachmentInfoKHR where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderingFragmentShadingRateAttachmentInfoKHR where+ zero = RenderingFragmentShadingRateAttachmentInfoKHR+ zero+ zero+ zero+++-- | VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying+-- fragment shading rate attachment information+--+-- = Description+--+-- This structure can be included in the @pNext@ chain of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to+-- define a fragment density map. If this structure is not included in the+-- @pNext@ chain, @imageView@ is treated as+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.+--+-- == Valid Usage+--+-- - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @layout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'+--+-- - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it+-- /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'+--+-- - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159#+-- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it+-- /must/ not have been created with+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType#+-- @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT'+--+-- - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter#+-- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'+-- handle+--+-- - #VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter#+-- @imageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- '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 :: ImageView+ , -- | @imageLayout@ is the layout that @imageView@ will be in during+ -- rendering.+ imageLayout :: ImageLayout+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderingFragmentDensityMapAttachmentInfoEXT)+#endif+deriving instance Show RenderingFragmentDensityMapAttachmentInfoEXT++instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderingFragmentDensityMapAttachmentInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageView)) (imageView)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (imageLayout)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageView)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ f++instance FromCStruct RenderingFragmentDensityMapAttachmentInfoEXT where+ peekCStruct p = do+ imageView <- peek @ImageView ((p `plusPtr` 16 :: Ptr ImageView))+ imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ pure $ RenderingFragmentDensityMapAttachmentInfoEXT+ imageView imageLayout++instance Storable RenderingFragmentDensityMapAttachmentInfoEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderingFragmentDensityMapAttachmentInfoEXT where+ zero = RenderingFragmentDensityMapAttachmentInfoEXT+ zero+ zero+++-- | VkAttachmentSampleCountInfoAMD - Structure specifying command buffer+-- inheritance info for dynamic render pass instances+--+-- = Description+--+-- If+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+-- is specified in+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@, and the+-- @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+-- 'AttachmentSampleCountInfoAMD', then this structure defines the sample+-- counts of each attachment within the render pass instance. If+-- 'AttachmentSampleCountInfoAMD' is not included, the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+-- is used as the sample count for each attachment. If+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', or+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+-- is not specified in+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@flags@,+-- parameters of this structure are ignored.+--+-- 'AttachmentSampleCountInfoAMD' /can/ also be included in the @pNext@+-- chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'. When a+-- graphics pipeline is created without a+-- 'Vulkan.Core10.Handles.RenderPass', if this structure is present in the+-- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it+-- specifies the sample count of attachments used for rendering. If this+-- structure is not specified, and the pipeline does not include a+-- 'Vulkan.Core10.Handles.RenderPass', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- is used as the sample count for each attachment. If a graphics pipeline+-- is created with a valid 'Vulkan.Core10.Handles.RenderPass', parameters+-- of this structure are ignored.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkAttachmentSampleCountInfoAMD-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD'+--+-- - #VUID-VkAttachmentSampleCountInfoAMD-pColorAttachmentSamples-parameter#+-- @pColorAttachmentSamples@ /must/ be a valid pointer to an array of+-- @colorAttachmentCount@ valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values+--+-- - #VUID-VkAttachmentSampleCountInfoAMD-depthStencilAttachmentSamples-parameter#+-- If @depthStencilAttachmentSamples@ is not @0@,+-- @depthStencilAttachmentSamples@ /must/ be a valid+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- - #VUID-VkAttachmentSampleCountInfoAMD-colorAttachmentCount-arraylength#+-- @colorAttachmentCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>,+-- <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_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data AttachmentSampleCountInfoAMD = AttachmentSampleCountInfoAMD+ { -- | @pColorAttachmentSamples@ is a pointer to an array of+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values+ -- defining the sample count of color attachments.+ colorAttachmentSamples :: Vector SampleCountFlagBits+ , -- | @depthStencilAttachmentSamples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- defining the sample count of a depth\/stencil attachment.+ depthStencilAttachmentSamples :: SampleCountFlagBits+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (AttachmentSampleCountInfoAMD)+#endif+deriving instance Show AttachmentSampleCountInfoAMD++instance ToCStruct AttachmentSampleCountInfoAMD where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p AttachmentSampleCountInfoAMD{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentSamples)) :: Word32))+ pPColorAttachmentSamples' <- ContT $ allocaBytes @SampleCountFlagBits ((Data.Vector.length (colorAttachmentSamples)) * 4)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentSamples' `plusPtr` (4 * (i)) :: Ptr SampleCountFlagBits) (e)) (colorAttachmentSamples)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits))) (pPColorAttachmentSamples')+ lift $ poke ((p `plusPtr` 32 :: Ptr SampleCountFlagBits)) (depthStencilAttachmentSamples)+ lift $ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct AttachmentSampleCountInfoAMD where+ peekCStruct p = do+ colorAttachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pColorAttachmentSamples <- peek @(Ptr SampleCountFlagBits) ((p `plusPtr` 24 :: Ptr (Ptr SampleCountFlagBits)))+ pColorAttachmentSamples' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @SampleCountFlagBits ((pColorAttachmentSamples `advancePtrBytes` (4 * (i)) :: Ptr SampleCountFlagBits)))+ depthStencilAttachmentSamples <- peek @SampleCountFlagBits ((p `plusPtr` 32 :: Ptr SampleCountFlagBits))+ pure $ AttachmentSampleCountInfoAMD+ pColorAttachmentSamples' depthStencilAttachmentSamples++instance Zero AttachmentSampleCountInfoAMD where+ zero = AttachmentSampleCountInfoAMD+ mempty+ zero+++-- | VkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview+-- per-attribute properties+--+-- = Description+--+-- When dynamic render pass instances are being used, instead of specifying+-- '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+-- render pass instance /must/ be specified by the+-- 'MultiviewPerViewAttributesInfoNVX' structure Include the+-- 'MultiviewPerViewAttributesInfoNVX' structure in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' when creating a+-- graphics pipeline for dynamic rendering,+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+-- when starting a dynamic render pass instance, and+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' when+-- specifying the dynamic render pass instance parameters for secondary+-- command buffers.+--+-- == Valid Usage+--+-- - #VUID-VkMultiviewPerViewAttributesInfoNVX-perViewAttributesPositionXOnly-06163#+-- If @perViewAttributesPositionXOnly@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE' then @perViewAttributes@+-- /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX'+--+-- = 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_NVX_multiview_per_view_attributes VK_NVX_multiview_per_view_attributes>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data MultiviewPerViewAttributesInfoNVX = MultiviewPerViewAttributesInfoNVX+ { -- | @perViewAttributes@ specifies that shaders compiled for this pipeline+ -- write the attributes for all views in a single invocation of each vertex+ -- processing stage. All pipelines executed within a render pass instance+ -- 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.+ perViewAttributes :: Bool+ , -- | @perViewAttributesPositionXOnly@ specifies that shaders compiled for+ -- this pipeline use per-view positions which only differ in value in the x+ -- component. Per-view viewport mask /can/ also be used.+ perViewAttributesPositionXOnly :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MultiviewPerViewAttributesInfoNVX)+#endif+deriving instance Show MultiviewPerViewAttributesInfoNVX++instance ToCStruct MultiviewPerViewAttributesInfoNVX where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MultiviewPerViewAttributesInfoNVX{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (perViewAttributes))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (perViewAttributesPositionXOnly))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX)+ 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 MultiviewPerViewAttributesInfoNVX where+ peekCStruct p = do+ perViewAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ perViewAttributesPositionXOnly <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ pure $ MultiviewPerViewAttributesInfoNVX+ (bool32ToBool perViewAttributes) (bool32ToBool perViewAttributesPositionXOnly)++instance Storable MultiviewPerViewAttributesInfoNVX where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MultiviewPerViewAttributesInfoNVX where+ zero = MultiviewPerViewAttributesInfoNVX+ zero+ zero+++-- No documentation found for TopLevel "VkRenderingFlagsKHR"+type RenderingFlagsKHR = RenderingFlags+++-- No documentation found for TopLevel "VkRenderingFlagBitsKHR"+type RenderingFlagBitsKHR = RenderingFlagBits+++-- No documentation found for TopLevel "VkPipelineRenderingCreateInfoKHR"+type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo+++-- No documentation found for TopLevel "VkRenderingInfoKHR"+type RenderingInfoKHR = RenderingInfo+++-- No documentation found for TopLevel "VkRenderingAttachmentInfoKHR"+type RenderingAttachmentInfoKHR = RenderingAttachmentInfo+++-- No documentation found for TopLevel "VkPhysicalDeviceDynamicRenderingFeaturesKHR"+type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures+++-- No documentation found for TopLevel "VkCommandBufferInheritanceRenderingInfoKHR"+type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo -- No documentation found for TopLevel "VkAttachmentSampleCountInfoNV"
src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Tobias Hector@@ -36,6 +41,10 @@ -- [__Last Modified Date__] -- 2021-10-06 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__Contributors__] -- -- - Tobias Hector, AMD@@ -71,9 +80,8 @@ -- Dynamic render passes can also span across multiple primary command -- buffers, rather than relying on secondary command buffers. ----- This extension also incorporates--- 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'--- from <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>,+-- This extension also incorporates 'ATTACHMENT_STORE_OP_NONE_KHR' from+-- <VK_QCOM_render_pass_store_ops.html VK_QCOM_render_pass_store_ops>, -- enabling applications to avoid unnecessary synchronization when an -- attachment is not written during a render pass. --@@ -118,7 +126,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map> -- is supported: ----- - Extending 'RenderingInfoKHR':+-- - Extending+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- -- - 'RenderingFragmentDensityMapAttachmentInfoEXT' --@@ -126,7 +135,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate> -- is supported: ----- - Extending 'RenderingInfoKHR':+-- - Extending+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- -- - 'RenderingFragmentShadingRateAttachmentInfoKHR' --@@ -147,7 +157,7 @@ -- - Extending -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',--- 'RenderingInfoKHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo': -- -- - 'MultiviewPerViewAttributesInfoNVX' --@@ -167,19 +177,19 @@ -- -- - Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp': ----- - 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_NONE_KHR'+-- - 'ATTACHMENT_STORE_OP_NONE_KHR' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR'+-- - 'STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR'+-- - 'STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR'+-- - 'STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_INFO_KHR'+-- - 'STRUCTURE_TYPE_RENDERING_INFO_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>@@ -235,6 +245,12 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2021-10-06 (Tobias Hector)@@ -252,27 +268,20 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification>+-- <https://www.khronos.org/registry/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. module Vulkan.Extensions.VK_KHR_dynamic_rendering ( AttachmentSampleCountInfoAMD- , CommandBufferInheritanceRenderingInfoKHR , MultiviewPerViewAttributesInfoNVX- , PhysicalDeviceDynamicRenderingFeaturesKHR- , PipelineRenderingCreateInfoKHR- , RenderingAttachmentInfoKHR , RenderingFragmentDensityMapAttachmentInfoEXT , RenderingFragmentShadingRateAttachmentInfoKHR- , RenderingInfoKHR ) 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 (PokeChain)+ data AttachmentSampleCountInfoAMD instance ToCStruct AttachmentSampleCountInfoAMD@@ -281,14 +290,6 @@ instance FromCStruct AttachmentSampleCountInfoAMD -data CommandBufferInheritanceRenderingInfoKHR--instance ToCStruct CommandBufferInheritanceRenderingInfoKHR-instance Show CommandBufferInheritanceRenderingInfoKHR--instance FromCStruct CommandBufferInheritanceRenderingInfoKHR-- data MultiviewPerViewAttributesInfoNVX instance ToCStruct MultiviewPerViewAttributesInfoNVX@@ -297,28 +298,6 @@ instance FromCStruct MultiviewPerViewAttributesInfoNVX -data PhysicalDeviceDynamicRenderingFeaturesKHR--instance ToCStruct PhysicalDeviceDynamicRenderingFeaturesKHR-instance Show PhysicalDeviceDynamicRenderingFeaturesKHR--instance FromCStruct PhysicalDeviceDynamicRenderingFeaturesKHR---data PipelineRenderingCreateInfoKHR--instance ToCStruct PipelineRenderingCreateInfoKHR-instance Show PipelineRenderingCreateInfoKHR--instance FromCStruct PipelineRenderingCreateInfoKHR---data RenderingAttachmentInfoKHR--instance ToCStruct RenderingAttachmentInfoKHR-instance Show RenderingAttachmentInfoKHR-- data RenderingFragmentDensityMapAttachmentInfoEXT instance ToCStruct RenderingFragmentDensityMapAttachmentInfoEXT@@ -333,11 +312,4 @@ instance Show RenderingFragmentShadingRateAttachmentInfoKHR instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR---type role RenderingInfoKHR nominal-data RenderingInfoKHR (es :: [Type])--instance (Extendss RenderingInfoKHR es, PokeChain es) => ToCStruct (RenderingInfoKHR es)-instance Show (Chain es) => Show (RenderingInfoKHR es)
src/Vulkan/Extensions/VK_KHR_external_fence.hs view
@@ -119,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -99,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification>+-- <https://www.khronos.org/registry/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 +203,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.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence State>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence State>. -- -- == Return Codes --@@ -330,12 +330,12 @@ -- -- - #VUID-VkImportFenceFdInfoKHR-handleType-01464# @handleType@ /must/ -- be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fence-handletypes-fd Handle Types Supported by >+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence 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> -- -- If @handleType@ is -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT',@@ -470,13 +470,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.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>+-- <https://www.khronos.org/registry/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
@@ -99,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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 +214,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.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>. -- -- == Return Codes --@@ -343,7 +343,7 @@ -- -- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457# @handleType@ -- /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-fence-handletypes-win32 Handle Types Supported by >+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-win32 Handle Types Supported by > -- table -- -- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459# If@@ -365,11 +365,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.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence 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> -- -- - #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.2-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence 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> -- -- == Valid Usage (Implicit) --@@ -603,7 +603,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.2-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>+-- <https://www.khronos.org/registry/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 +611,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.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>+-- <https://www.khronos.org/registry/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
@@ -118,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -146,7 +146,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.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/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 +333,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -237,7 +237,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification>+-- <https://www.khronos.org/registry/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 +364,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.2-extensions/html/vkspec.html#external-memory-handle-types-compatibility>+-- <https://www.khronos.org/registry/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.2-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-memory-handle-types-compatibility external memory handle types compatibility> -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot view
@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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 +407,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.2-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-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.2-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-memory-handle-types-compatibility external memory handle types compatibility> -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot view
@@ -131,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -140,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification>+-- <https://www.khronos.org/registry/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 +202,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>. -- -- == Return Codes --@@ -331,12 +331,12 @@ -- -- - #VUID-VkImportSemaphoreFdInfoKHR-handleType-01143# @handleType@ -- /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fd Handle Types Supported by >+-- <https://www.khronos.org/registry/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.2-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-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- - #VUID-VkImportSemaphoreFdInfoKHR-handleType-03263# If @handleType@ -- is@@ -497,7 +497,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+-- <https://www.khronos.org/registry/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 +505,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -142,7 +142,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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 +248,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>. -- -- == Return Codes --@@ -382,7 +382,7 @@ -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140# -- @handleType@ /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-win32 Handle Types Supported by >+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-win32 Handle Types Supported by > -- table -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466# If@@ -406,12 +406,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.2-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-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.2-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-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261# If -- @handleType@ is@@ -673,7 +673,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.2-extensions/html/vkspec.html#synchronization-semaphores-payloads payload>+-- <https://www.khronos.org/registry/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 +841,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+-- <https://www.khronos.org/registry/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 +849,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.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://www.khronos.org/registry/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
@@ -142,7 +142,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Lionel Landwerlin@@ -33,6 +38,10 @@ -- [__Last Modified Date__] -- 2021-07-01 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. --@@ -52,9 +61,8 @@ -- -- == Description ----- This extension adds a new--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- 64bits format feature flag type to extend the existing+-- This extension adds a new 'FormatFeatureFlagBits2KHR' 64bits format+-- feature flag type to extend the existing -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' which -- is limited to 31 flags. At the time of this writing 29 bits of -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' are@@ -69,17 +77,16 @@ -- -- On top of replicating all the bits from -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- adds the following bits :+-- 'FormatFeatureFlagBits2KHR' adds the following bits : ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR' -- and--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR' -- indicate that an implementation supports respectively reading and -- writing a given 'Vulkan.Core10.Enums.Format.Format' through storage -- operations without specifying the format in the shader. ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR' -- indicates that an implementation supports depth comparison performed -- by @OpImage*Dref@ instructions on a given -- 'Vulkan.Core10.Enums.Format.Format'. Previously the result of@@ -97,11 +104,11 @@ -- -- == New Enums ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'+-- - 'FormatFeatureFlagBits2KHR' -- -- == New Bitmasks ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'+-- - 'FormatFeatureFlags2KHR' -- -- == New Enum Constants --@@ -111,8 +118,14 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR'+-- - 'STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2020-07-21 (Lionel Landwerlin)@@ -121,123 +134,45 @@ -- -- == See Also ----- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',+-- 'FormatFeatureFlagBits2KHR', 'FormatFeatureFlags2KHR', -- 'FormatProperties3KHR' -- -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_KHR_format_feature_flags2 ( FormatProperties3KHR(..)+module Vulkan.Extensions.VK_KHR_format_feature_flags2 ( pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR+ , FormatFeatureFlags2KHR+ , FormatFeatureFlagBits2KHR+ , FormatProperties3KHR , KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION , pattern KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION , KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME , pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME- , FormatFeatureFlagBits2KHR(..)- , FormatFeatureFlags2KHR- , Flags64 ) 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.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)--- | VkFormatProperties3KHR - Structure specifying image format properties------ = Description------ The bits reported in @linearTilingFeatures@, @optimalTilingFeatures@ and--- @bufferFeatures@ /must/ include the bits reported in the corresponding--- fields of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2'::@formatProperties@.------ == Valid Usage (Implicit)------ = 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>,--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data FormatProperties3KHR = FormatProperties3KHR- { -- | @linearTilingFeatures@ is a bitmask of- -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'- -- specifying features supported by images created with a @tiling@- -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'.- linearTilingFeatures :: FormatFeatureFlags2KHR- , -- | @optimalTilingFeatures@ is a bitmask of- -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'- -- specifying features supported by images created with a @tiling@- -- parameter of 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'.- optimalTilingFeatures :: FormatFeatureFlags2KHR- , -- | @bufferFeatures@ is a bitmask of- -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'- -- specifying features supported by buffers.- bufferFeatures :: FormatFeatureFlags2KHR- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (FormatProperties3KHR)-#endif-deriving instance Show FormatProperties3KHR+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlagBits2)+import Vulkan.Core13.Enums.FormatFeatureFlags2 (FormatFeatureFlags2)+import Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_3))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR"+pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = STRUCTURE_TYPE_FORMAT_PROPERTIES_3 -instance ToCStruct FormatProperties3KHR where- withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)- pokeCStruct p FormatProperties3KHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR)) (linearTilingFeatures)- poke ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2KHR)) (optimalTilingFeatures)- poke ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR)) (bufferFeatures)- f- cStructSize = 40- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- f -instance FromCStruct FormatProperties3KHR where- peekCStruct p = do- linearTilingFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2KHR))- optimalTilingFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 24 :: Ptr FormatFeatureFlags2KHR))- bufferFeatures <- peek @FormatFeatureFlags2KHR ((p `plusPtr` 32 :: Ptr FormatFeatureFlags2KHR))- pure $ FormatProperties3KHR- linearTilingFeatures optimalTilingFeatures bufferFeatures+-- No documentation found for TopLevel "VkFormatFeatureFlags2KHR"+type FormatFeatureFlags2KHR = FormatFeatureFlags2 -instance Storable FormatProperties3KHR where- sizeOf ~_ = 40- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero FormatProperties3KHR where- zero = FormatProperties3KHR- zero- zero- zero+-- No documentation found for TopLevel "VkFormatFeatureFlagBits2KHR"+type FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2+++-- No documentation found for TopLevel "VkFormatProperties3KHR"+type FormatProperties3KHR = FormatProperties3 type KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs-boot
@@ -1,147 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_format_feature_flags2 - device extension------ == VK_KHR_format_feature_flags2------ [__Name String__]--- @VK_KHR_format_feature_flags2@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 361------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Lionel Landwerlin--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_format_feature_flags2] @llandwerlin%0A<<Here describe the issue or question you have about the VK_KHR_format_feature_flags2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2021-07-01------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Lionel Landwerlin, Intel------ - Jason Ekstrand, Intel------ - Tobias Hector, AMD------ - Spencer Fricke, Samsung Electronics------ - Graeme Leese, Broadcom------ - Jan-Harald Fredriksen, ARM------ == Description------ This extension adds a new--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- 64bits format feature flag type to extend the existing--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' which--- is limited to 31 flags. At the time of this writing 29 bits of--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' are--- already used.------ Because--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2'--- is already defined to extend the Vulkan 1.0--- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'--- entry point, this extension defines a new 'FormatProperties3KHR' to--- extend the 'Vulkan.Core10.DeviceInitialization.FormatProperties'.------ On top of replicating all the bits from--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'--- adds the following bits :------ - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'--- and--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'--- indicate that an implementation supports respectively reading and--- writing a given 'Vulkan.Core10.Enums.Format.Format' through storage--- operations without specifying the format in the shader.------ - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'--- indicates that an implementation supports depth comparison performed--- by @OpImage*Dref@ instructions on a given--- 'Vulkan.Core10.Enums.Format.Format'. Previously the result of--- executing a @OpImage*Dref*@ instruction on an image view, where the--- @format@ was not one of the depth\/stencil formats with a depth--- component, was undefined. This bit clarifies on which formats such--- instructions can be used.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':------ - 'FormatProperties3KHR'------ == New Enums------ - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'------ == New Bitmasks------ - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR'------ == New Enum Constants------ - 'KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME'------ - 'KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR'------ == Version History------ - Revision 1, 2020-07-21 (Lionel Landwerlin)------ - Initial draft------ == See Also------ 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlags2KHR',--- 'FormatProperties3KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_format_feature_flags2 (FormatProperties3KHR) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data FormatProperties3KHR--instance ToCStruct FormatProperties3KHR-instance Show FormatProperties3KHR--instance FromCStruct FormatProperties3KHR-
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -80,14 +80,14 @@ -- Up to three methods are available to the application to change the -- fragment shading rate: ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>,+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>,+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>,+-- - <https://www.khronos.org/registry/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 +101,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>,+-- <https://www.khronos.org/registry/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@@ -188,9 +188,9 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- == Version History --@@ -216,7 +216,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -238,9 +238,6 @@ , pattern KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION , KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME , pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME- , FormatFeatureFlagBits2KHR(..)- , FormatFeatureFlags2KHR- , Flags64 ) where import Vulkan.CStruct.Utils (FixedArray)@@ -323,9 +320,6 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe@@ -352,37 +346,37 @@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,+-- <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>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps>+-- <https://www.khronos.org/registry/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'@@ -461,12 +455,12 @@ ("fragmentSize" ::: Extent2D) -> -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' determining -- how the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <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>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://www.khronos.org/registry/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 ()@@ -519,7 +513,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.2-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.width>.+-- <https://www.khronos.org/registry/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@.@@ -527,7 +521,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.2-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.height>.+-- <https://www.khronos.org/registry/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@.@@ -536,12 +530,12 @@ -- -- - The highest sample count in @sampleCounts@ /must/ be less than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateRasterizationSamples maxFragmentShadingRateRasterizationSamples>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples maxFragmentShadingRateCoverageSamples>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples maxFragmentShadingRateCoverageSamples>. -- -- Implementations /must/ support at least the following shading rates: --@@ -560,7 +554,7 @@ -- +--------------------------------------------------------------+-----------------------------------+ -- -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-framebufferColorSampleCounts framebufferColorSampleCounts>,+-- <https://www.khronos.org/registry/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'.@@ -681,7 +675,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -689,7 +683,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.width@ /must/ be greater than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -704,7 +698,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -712,7 +706,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.height@ /must/ be greater than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -721,7 +715,7 @@ -- @shadingRateAttachmentTexelSize.width@ and -- @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -730,7 +724,7 @@ -- @shadingRateAttachmentTexelSize.height@ and -- @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- == Valid Usage (Implicit) --@@ -839,12 +833,12 @@ fragmentSize :: Extent2D , -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' value -- determining how the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <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>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://www.khronos.org/registry/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) }@@ -929,15 +923,15 @@ data PhysicalDeviceFragmentShadingRateFeaturesKHR = PhysicalDeviceFragmentShadingRateFeaturesKHR { -- | #features-pipelineFragmentShadingRate# @pipelineFragmentShadingRate@ -- indicates that the implementation supports the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline fragment shading rate>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate>. attachmentFragmentShadingRate :: Bool } deriving (Typeable, Eq)@@ -999,7 +993,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.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://www.khronos.org/registry/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@@ -1016,7 +1010,7 @@ -- property. -- -- These properties are related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>. -- -- == Valid Usage (Implicit) --@@ -1035,7 +1029,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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. minFragmentShadingRateAttachmentTexelSize :: Extent2D , -- | #limits-maxFragmentShadingRateAttachmentTexelSize#@@ -1045,7 +1039,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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. maxFragmentShadingRateAttachmentTexelSize :: Extent2D , -- | #limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio#@@ -1059,23 +1053,23 @@ -- @maxFragmentShadingRateAttachmentTexelSize.height@ \/ -- @minFragmentShadingRateAttachmentTexelSize.width@). It /must/ be 0 if -- the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> -- feature is not supported. primitiveFragmentShadingRateWithMultipleViewports :: Bool , -- | #limits-layeredShadingRateAttachments# @layeredShadingRateAttachments@@@ -1086,13 +1080,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.2-extensions/html/vkspec.html#features-multiview multiview>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview> -- feature, the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. layeredShadingRateAttachments :: Bool , -- | #limits-fragmentShadingRateNonTrivialCombinerOps#@@ -1101,9 +1095,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.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> -- or- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is supported. fragmentShadingRateNonTrivialCombinerOps :: Bool , -- | #limits-maxFragmentSize# @maxFragmentSize@ indicates the maximum@@ -1160,32 +1154,32 @@ fragmentShadingRateWithShaderSampleMask :: Bool , -- | #limits-fragmentShadingRateWithConservativeRasterization# -- @fragmentShadingRateWithConservativeRasterization@ specifies whether- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>+ -- <https://www.khronos.org/registry/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#@@ -1374,12 +1368,12 @@ -- inputs to the operation. -- -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://www.khronos.org/registry/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
@@ -80,14 +80,14 @@ -- Up to three methods are available to the application to change the -- fragment shading rate: ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>,+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>,+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>,+-- - <https://www.khronos.org/registry/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 +101,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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>,+-- <https://www.khronos.org/registry/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@@ -188,9 +188,9 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- == Version History --@@ -216,7 +216,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -124,7 +124,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -124,7 +124,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -137,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification>+-- <https://www.khronos.org/registry/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.
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot view
@@ -137,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification>+-- <https://www.khronos.org/registry/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.
+ src/Vulkan/Extensions/VK_KHR_global_priority.hs view
@@ -0,0 +1,539 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_global_priority - device extension+--+-- == VK_KHR_global_priority+--+-- [__Name String__]+-- @VK_KHR_global_priority@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 189+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- [__Contact__]+--+-- - Tobias Hector+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_global_priority] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_global_priority extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-10-22+--+-- [__Contributors__]+--+-- - 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+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>+--+-- == Description+--+-- In Vulkan, users can specify device-scope queue priorities. In some+-- cases it may be useful to extend this concept to a system-wide scope.+-- This device extension allows applications to query the global queue+-- priorities supported by a queue family, and then set a priority when+-- creating queues. The default queue priority is+-- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.+--+-- Implementations can report which global priority levels are treated+-- differently by the implementation. It is intended primarily for use in+-- system integration along with certain platform-specific priority+-- enforcement rules.+--+-- The driver implementation will attempt to skew hardware resource+-- allocation in favour of the higher-priority task. Therefore,+-- higher-priority work may retain similar latency and throughput+-- characteristics even if the system is congested with lower priority+-- work.+--+-- The global priority level of a queue shall take precedence over the+-- per-process queue priority+-- ('Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@).+--+-- Abuse of this feature may result in starving the rest of the system from+-- hardware resources. Therefore, the driver implementation may deny+-- requests to acquire a priority above the default priority+-- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have+-- sufficient privileges. In this scenario+-- 'Vulkan.Extensions.VK_EXT_global_priority.ERROR_NOT_PERMITTED_EXT' is+-- returned.+--+-- The driver implementation may fail the queue allocation request if+-- resources required to complete the operation have been exhausted (either+-- by the same process or a different process). In this scenario+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' is returned.+--+-- == New Structures+--+-- - Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo':+--+-- - 'DeviceQueueGlobalPriorityCreateInfoKHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':+--+-- - 'QueueFamilyGlobalPriorityPropertiesKHR'+--+-- == New Enums+--+-- - 'QueueGlobalPriorityKHR'+--+-- == New Enum Constants+--+-- - 'KHR_GLOBAL_PRIORITY_EXTENSION_NAME'+--+-- - 'KHR_GLOBAL_PRIORITY_SPEC_VERSION'+--+-- - 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.Result.Result':+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'+--+-- == Issues+--+-- 1) Can we additionally query whether a caller is permitted to acquire a+-- specific global queue priority in this extension?+--+-- __RESOLVED__: No. Whether a caller has enough privilege goes with the+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call.+--+-- 2) If more than 1 queue using global priority is requested, is there a+-- good way to know which queue is failing the device creation?+--+-- __RESOLVED__: No. There is not a good way at this moment, and it is also+-- not quite actionable for the applications to know that because the+-- information may not be accurate. Queue creation can fail because of+-- runtime constraints like insufficient privilege or lack of resource, and+-- the failure is not necessarily tied to that particular queue+-- configuration requested.+--+-- == Version History+--+-- - Revision 1, 2021-10-22 (Tobias Hector)+--+-- - Initial draft+--+-- == See Also+--+-- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR',+-- 'DeviceQueueGlobalPriorityCreateInfoKHR',+-- 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR',+-- 'QueueFamilyGlobalPriorityPropertiesKHR', 'QueueGlobalPriorityKHR'+--+-- == 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_global_priority ( pattern QUEUE_GLOBAL_PRIORITY_LOW_EXT+ , pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT+ , pattern QUEUE_GLOBAL_PRIORITY_HIGH_EXT+ , pattern QUEUE_GLOBAL_PRIORITY_REALTIME_EXT+ , DeviceQueueGlobalPriorityCreateInfoKHR(..)+ , PhysicalDeviceGlobalPriorityQueryFeaturesKHR(..)+ , QueueFamilyGlobalPriorityPropertiesKHR(..)+ , QueueGlobalPriorityKHR( QUEUE_GLOBAL_PRIORITY_LOW_KHR+ , QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR+ , QUEUE_GLOBAL_PRIORITY_HIGH_KHR+ , QUEUE_GLOBAL_PRIORITY_REALTIME_KHR+ , ..+ )+ , KHR_GLOBAL_PRIORITY_SPEC_VERSION+ , pattern KHR_GLOBAL_PRIORITY_SPEC_VERSION+ , KHR_GLOBAL_PRIORITY_EXTENSION_NAME+ , pattern KHR_GLOBAL_PRIORITY_EXTENSION_NAME+ , MAX_GLOBAL_PRIORITY_SIZE_KHR+ , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR+ ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Control.Monad (unless)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+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 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 GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.Kind (Type)+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR))+import Vulkan.Core10.APIConstants (MAX_GLOBAL_PRIORITY_SIZE_KHR)+import Vulkan.Core10.APIConstants (pattern MAX_GLOBAL_PRIORITY_SIZE_KHR)+-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"+pattern QUEUE_GLOBAL_PRIORITY_LOW_EXT = QUEUE_GLOBAL_PRIORITY_LOW_KHR+++-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"+pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR+++-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"+pattern QUEUE_GLOBAL_PRIORITY_HIGH_EXT = QUEUE_GLOBAL_PRIORITY_HIGH_KHR+++-- No documentation found for TopLevel "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"+pattern QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = QUEUE_GLOBAL_PRIORITY_REALTIME_KHR+++-- | VkDeviceQueueGlobalPriorityCreateInfoKHR - Specify a system wide+-- priority+--+-- = Description+--+-- A queue created without specifying+-- 'DeviceQueueGlobalPriorityCreateInfoKHR' will default to+-- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,+-- 'QueueGlobalPriorityKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DeviceQueueGlobalPriorityCreateInfoKHR = DeviceQueueGlobalPriorityCreateInfoKHR+ { -- | @globalPriority@ is the system-wide priority associated to this queue as+ -- specified by+ -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT'+ --+ -- #VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter#+ -- @globalPriority@ /must/ be a valid 'QueueGlobalPriorityKHR' value+ globalPriority :: QueueGlobalPriorityKHR }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceQueueGlobalPriorityCreateInfoKHR)+#endif+deriving instance Show DeviceQueueGlobalPriorityCreateInfoKHR++instance ToCStruct DeviceQueueGlobalPriorityCreateInfoKHR where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p DeviceQueueGlobalPriorityCreateInfoKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityKHR)) (globalPriority)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityKHR)) (zero)+ f++instance FromCStruct DeviceQueueGlobalPriorityCreateInfoKHR where+ peekCStruct p = do+ globalPriority <- peek @QueueGlobalPriorityKHR ((p `plusPtr` 16 :: Ptr QueueGlobalPriorityKHR))+ pure $ DeviceQueueGlobalPriorityCreateInfoKHR+ globalPriority++instance Storable DeviceQueueGlobalPriorityCreateInfoKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceQueueGlobalPriorityCreateInfoKHR where+ zero = DeviceQueueGlobalPriorityCreateInfoKHR+ zero+++-- | VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - Structure describing+-- whether global priority query can be supported by an implementation+--+-- = Members+--+-- The members of the+-- 'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR' 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. 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR' /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_global_priority VK_KHR_global_priority>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceGlobalPriorityQueryFeaturesKHR = PhysicalDeviceGlobalPriorityQueryFeaturesKHR+ { -- | #features-globalPriorityQuery# @globalPriorityQuery@ indicates whether+ -- the implementation supports the ability to query global queue+ -- priorities.+ globalPriorityQuery :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceGlobalPriorityQueryFeaturesKHR++instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceGlobalPriorityQueryFeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (globalPriorityQuery))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+ peekCStruct p = do+ globalPriorityQuery <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceGlobalPriorityQueryFeaturesKHR+ (bool32ToBool globalPriorityQuery)++instance Storable PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceGlobalPriorityQueryFeaturesKHR where+ zero = PhysicalDeviceGlobalPriorityQueryFeaturesKHR+ zero+++-- | VkQueueFamilyGlobalPriorityPropertiesKHR - Return structure for queue+-- family global priority information query+--+-- = Description+--+-- The valid elements of @priorities@ /must/ not contain any duplicate+-- values.+--+-- The valid elements of @priorities@ /must/ be a continuous sequence of+-- 'QueueGlobalPriorityKHR' enums in the ascending order.+--+-- Note+--+-- For example, returning @priorityCount@ as 3 with supported @priorities@+-- as 'QUEUE_GLOBAL_PRIORITY_LOW_KHR', 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR'+-- and 'QUEUE_GLOBAL_PRIORITY_REALTIME_KHR' is not allowed.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'+--+-- - #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter#+-- Any given element of @priorities@ /must/ be a valid+-- 'QueueGlobalPriorityKHR' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,+-- 'QueueGlobalPriorityKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data QueueFamilyGlobalPriorityPropertiesKHR = QueueFamilyGlobalPriorityPropertiesKHR+ { -- | @priorityCount@ is the number of supported global queue priorities in+ -- this queue family, and it /must/ be greater than 0.+ priorityCount :: Word32+ , -- | @priorities@ is an array of+ -- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_EXT'+ -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' enums+ -- representing all supported global queue priorities in this queue family.+ -- The first @priorityCount@ elements of the array will be valid.+ priorities :: Vector QueueGlobalPriorityKHR+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (QueueFamilyGlobalPriorityPropertiesKHR)+#endif+deriving instance Show QueueFamilyGlobalPriorityPropertiesKHR++instance ToCStruct QueueFamilyGlobalPriorityPropertiesKHR where+ withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p QueueFamilyGlobalPriorityPropertiesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (priorityCount)+ unless ((Data.Vector.length $ (priorities)) <= MAX_GLOBAL_PRIORITY_SIZE_KHR) $+ throwIO $ IOError Nothing InvalidArgument "" "priorities is too long, a maximum of MAX_GLOBAL_PRIORITY_SIZE_KHR elements are allowed" Nothing Nothing+ Data.Vector.imapM_ (\i e -> poke ((lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_KHR QueueGlobalPriorityKHR)))) `plusPtr` (4 * (i)) :: Ptr QueueGlobalPriorityKHR) (e)) (priorities)+ f+ cStructSize = 88+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ f++instance FromCStruct QueueFamilyGlobalPriorityPropertiesKHR where+ peekCStruct p = do+ priorityCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ priorities <- generateM (MAX_GLOBAL_PRIORITY_SIZE_KHR) (\i -> peek @QueueGlobalPriorityKHR (((lowerArrayPtr @QueueGlobalPriorityKHR ((p `plusPtr` 20 :: Ptr (FixedArray MAX_GLOBAL_PRIORITY_SIZE_KHR QueueGlobalPriorityKHR)))) `advancePtrBytes` (4 * (i)) :: Ptr QueueGlobalPriorityKHR)))+ pure $ QueueFamilyGlobalPriorityPropertiesKHR+ priorityCount priorities++instance Storable QueueFamilyGlobalPriorityPropertiesKHR where+ sizeOf ~_ = 88+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero QueueFamilyGlobalPriorityPropertiesKHR where+ zero = QueueFamilyGlobalPriorityPropertiesKHR+ zero+ mempty+++-- | VkQueueGlobalPriorityKHR - Values specifying a system-wide queue+-- priority+--+-- = Description+--+-- Priority values are sorted in ascending order. A comparison operation on+-- the enum values can be used to determine the priority order.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,+-- 'DeviceQueueGlobalPriorityCreateInfoKHR',+-- 'QueueFamilyGlobalPriorityPropertiesKHR'+newtype QueueGlobalPriorityKHR = QueueGlobalPriorityKHR Int32+ deriving newtype (Eq, Ord, Storable, Zero)+-- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error++-- | 'QUEUE_GLOBAL_PRIORITY_LOW_KHR' is below the system default. Useful for+-- non-interactive tasks.+pattern QUEUE_GLOBAL_PRIORITY_LOW_KHR = QueueGlobalPriorityKHR 128+-- | 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR' is the system default priority.+pattern QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = QueueGlobalPriorityKHR 256+-- | 'QUEUE_GLOBAL_PRIORITY_HIGH_KHR' is above the system default.+pattern QUEUE_GLOBAL_PRIORITY_HIGH_KHR = QueueGlobalPriorityKHR 512+-- | 'QUEUE_GLOBAL_PRIORITY_REALTIME_KHR' is the highest priority. Useful for+-- critical tasks.+pattern QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = QueueGlobalPriorityKHR 1024+{-# complete QUEUE_GLOBAL_PRIORITY_LOW_KHR,+ QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,+ QUEUE_GLOBAL_PRIORITY_HIGH_KHR,+ QUEUE_GLOBAL_PRIORITY_REALTIME_KHR :: QueueGlobalPriorityKHR #-}++conNameQueueGlobalPriorityKHR :: String+conNameQueueGlobalPriorityKHR = "QueueGlobalPriorityKHR"++enumPrefixQueueGlobalPriorityKHR :: String+enumPrefixQueueGlobalPriorityKHR = "QUEUE_GLOBAL_PRIORITY_"++showTableQueueGlobalPriorityKHR :: [(QueueGlobalPriorityKHR, String)]+showTableQueueGlobalPriorityKHR =+ [ (QUEUE_GLOBAL_PRIORITY_LOW_KHR , "LOW_KHR")+ , (QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR , "MEDIUM_KHR")+ , (QUEUE_GLOBAL_PRIORITY_HIGH_KHR , "HIGH_KHR")+ , (QUEUE_GLOBAL_PRIORITY_REALTIME_KHR, "REALTIME_KHR")+ ]++instance Show QueueGlobalPriorityKHR where+ showsPrec = enumShowsPrec enumPrefixQueueGlobalPriorityKHR+ showTableQueueGlobalPriorityKHR+ conNameQueueGlobalPriorityKHR+ (\(QueueGlobalPriorityKHR x) -> x)+ (showsPrec 11)++instance Read QueueGlobalPriorityKHR where+ readPrec = enumReadPrec enumPrefixQueueGlobalPriorityKHR+ showTableQueueGlobalPriorityKHR+ conNameQueueGlobalPriorityKHR+ QueueGlobalPriorityKHR+++type KHR_GLOBAL_PRIORITY_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION"+pattern KHR_GLOBAL_PRIORITY_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_GLOBAL_PRIORITY_SPEC_VERSION = 1+++type KHR_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_KHR_global_priority"++-- No documentation found for TopLevel "VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME"+pattern KHR_GLOBAL_PRIORITY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_KHR_global_priority"+
+ src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot view
@@ -0,0 +1,197 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_global_priority - device extension+--+-- == VK_KHR_global_priority+--+-- [__Name String__]+-- @VK_KHR_global_priority@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 189+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- [__Contact__]+--+-- - Tobias Hector+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_global_priority] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_global_priority extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-10-22+--+-- [__Contributors__]+--+-- - 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+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>+--+-- == Description+--+-- In Vulkan, users can specify device-scope queue priorities. In some+-- cases it may be useful to extend this concept to a system-wide scope.+-- This device extension allows applications to query the global queue+-- priorities supported by a queue family, and then set a priority when+-- creating queues. The default queue priority is+-- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'.+--+-- Implementations can report which global priority levels are treated+-- differently by the implementation. It is intended primarily for use in+-- system integration along with certain platform-specific priority+-- enforcement rules.+--+-- The driver implementation will attempt to skew hardware resource+-- allocation in favour of the higher-priority task. Therefore,+-- higher-priority work may retain similar latency and throughput+-- characteristics even if the system is congested with lower priority+-- work.+--+-- The global priority level of a queue shall take precedence over the+-- per-process queue priority+-- ('Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@).+--+-- Abuse of this feature may result in starving the rest of the system from+-- hardware resources. Therefore, the driver implementation may deny+-- requests to acquire a priority above the default priority+-- ('QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT') if the caller does not have+-- sufficient privileges. In this scenario+-- 'Vulkan.Extensions.VK_EXT_global_priority.ERROR_NOT_PERMITTED_EXT' is+-- returned.+--+-- The driver implementation may fail the queue allocation request if+-- resources required to complete the operation have been exhausted (either+-- by the same process or a different process). In this scenario+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' is returned.+--+-- == New Structures+--+-- - Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo':+--+-- - 'DeviceQueueGlobalPriorityCreateInfoKHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':+--+-- - 'QueueFamilyGlobalPriorityPropertiesKHR'+--+-- == New Enums+--+-- - 'QueueGlobalPriorityKHR'+--+-- == New Enum Constants+--+-- - 'KHR_GLOBAL_PRIORITY_EXTENSION_NAME'+--+-- - 'KHR_GLOBAL_PRIORITY_SPEC_VERSION'+--+-- - 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.Result.Result':+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_NOT_PERMITTED_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR'+--+-- == Issues+--+-- 1) Can we additionally query whether a caller is permitted to acquire a+-- specific global queue priority in this extension?+--+-- __RESOLVED__: No. Whether a caller has enough privilege goes with the+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call.+--+-- 2) If more than 1 queue using global priority is requested, is there a+-- good way to know which queue is failing the device creation?+--+-- __RESOLVED__: No. There is not a good way at this moment, and it is also+-- not quite actionable for the applications to know that because the+-- information may not be accurate. Queue creation can fail because of+-- runtime constraints like insufficient privilege or lack of resource, and+-- the failure is not necessarily tied to that particular queue+-- configuration requested.+--+-- == Version History+--+-- - Revision 1, 2021-10-22 (Tobias Hector)+--+-- - Initial draft+--+-- == See Also+--+-- 'Vulkan.Core10.APIConstants.MAX_GLOBAL_PRIORITY_SIZE_KHR',+-- 'DeviceQueueGlobalPriorityCreateInfoKHR',+-- 'PhysicalDeviceGlobalPriorityQueryFeaturesKHR',+-- 'QueueFamilyGlobalPriorityPropertiesKHR', 'QueueGlobalPriorityKHR'+--+-- == 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_global_priority ( DeviceQueueGlobalPriorityCreateInfoKHR+ , PhysicalDeviceGlobalPriorityQueryFeaturesKHR+ , QueueFamilyGlobalPriorityPropertiesKHR+ , QueueGlobalPriorityKHR+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DeviceQueueGlobalPriorityCreateInfoKHR++instance ToCStruct DeviceQueueGlobalPriorityCreateInfoKHR+instance Show DeviceQueueGlobalPriorityCreateInfoKHR++instance FromCStruct DeviceQueueGlobalPriorityCreateInfoKHR+++data PhysicalDeviceGlobalPriorityQueryFeaturesKHR++instance ToCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR+instance Show PhysicalDeviceGlobalPriorityQueryFeaturesKHR++instance FromCStruct PhysicalDeviceGlobalPriorityQueryFeaturesKHR+++data QueueFamilyGlobalPriorityPropertiesKHR++instance ToCStruct QueueFamilyGlobalPriorityPropertiesKHR+instance Show QueueFamilyGlobalPriorityPropertiesKHR++instance FromCStruct QueueFamilyGlobalPriorityPropertiesKHR+++data QueueGlobalPriorityKHR+
src/Vulkan/Extensions/VK_KHR_image_format_list.hs view
@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_image_format_list Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -123,7 +123,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_imageless_framebuffer Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -158,7 +158,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -158,7 +158,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -240,7 +240,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -111,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance3 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -21,6 +21,11 @@ -- -- - Requires Vulkan 1.1 --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Piers Daniell@@ -33,6 +38,8 @@ -- -- [__Interactions and External Dependencies__] --+-- - Promoted to Vulkan 1.3 Core+-- -- - Requires SPIR-V 1.2 for @LocalSizeId@ -- -- [__Contributors__]@@ -68,7 +75,7 @@ -- its handle valid while the created object is in use. -- -- - Add a new--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize>+-- <https://www.khronos.org/registry/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. --@@ -134,14 +141,20 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR'+-- - 'STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR'+-- - 'STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Issues -- -- None.@@ -168,568 +181,81 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_KHR_maintenance4 ( getDeviceBufferMemoryRequirementsKHR+module Vulkan.Extensions.VK_KHR_maintenance4 ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR+ , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR+ , pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR+ , pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR+ , getDeviceBufferMemoryRequirementsKHR , getDeviceImageMemoryRequirementsKHR , getDeviceImageSparseMemoryRequirementsKHR- , DeviceBufferMemoryRequirementsKHR(..)- , DeviceImageMemoryRequirementsKHR(..)- , PhysicalDeviceMaintenance4FeaturesKHR(..)- , PhysicalDeviceMaintenance4PropertiesKHR(..)+ , DeviceBufferMemoryRequirementsKHR+ , DeviceImageMemoryRequirementsKHR+ , PhysicalDeviceMaintenance4FeaturesKHR+ , PhysicalDeviceMaintenance4PropertiesKHR , KHR_MAINTENANCE_4_SPEC_VERSION , pattern KHR_MAINTENANCE_4_SPEC_VERSION , KHR_MAINTENANCE_4_EXTENSION_NAME , pattern KHR_MAINTENANCE_4_EXTENSION_NAME ) 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 (castPtr)-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.CStruct.Extends (peekSomeCStruct)-import Vulkan.CStruct.Extends (withSomeCStruct)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Buffer (BufferCreateInfo)-import Vulkan.Core10.Handles (Device)-import Vulkan.Core10.Handles (Device(..))-import Vulkan.Core10.Handles (Device(Device))-import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceBufferMemoryRequirementsKHR))-import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageMemoryRequirementsKHR))-import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageSparseMemoryRequirementsKHR))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.Core10.Handles (Device_T)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits)-import Vulkan.Core10.Image (ImageCreateInfo)-import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2)-import Vulkan.CStruct.Extends (PeekChain)-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.CStruct.Extends (SomeStruct(..))-import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (SparseImageMemoryRequirements2)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkGetDeviceBufferMemoryRequirementsKHR- :: FunPtr (Ptr Device_T -> Ptr DeviceBufferMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceBufferMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO ()+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceBufferMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceImageMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceImageSparseMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceBufferMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)+import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES --- | vkGetDeviceBufferMemoryRequirementsKHR - Returns the memory requirements--- for specified Vulkan object------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Handles.Device', 'DeviceBufferMemoryRequirementsKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'-getDeviceBufferMemoryRequirementsKHR :: forall a io- . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)- => -- | @device@ is the logical device intended to own the buffer.- --- -- #VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter# @device@- -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle- Device- -> -- | @pInfo@ is a pointer to a 'DeviceBufferMemoryRequirementsKHR' structure- -- containing parameters required for the memory requirements query.- --- -- #VUID-vkGetDeviceBufferMemoryRequirementsKHR-pInfo-parameter# @pInfo@- -- /must/ be a valid pointer to a valid 'DeviceBufferMemoryRequirementsKHR'- -- structure- ("info" ::: DeviceBufferMemoryRequirementsKHR)- -> io (MemoryRequirements2 a)-getDeviceBufferMemoryRequirementsKHR device info = liftIO . evalContT $ do- let vkGetDeviceBufferMemoryRequirementsKHRPtr = pVkGetDeviceBufferMemoryRequirementsKHR (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkGetDeviceBufferMemoryRequirementsKHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceBufferMemoryRequirementsKHR is null" Nothing Nothing- let vkGetDeviceBufferMemoryRequirementsKHR' = mkVkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHRPtr- pInfo <- ContT $ withCStruct (info)- pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))- lift $ traceAroundEvent "vkGetDeviceBufferMemoryRequirementsKHR" (vkGetDeviceBufferMemoryRequirementsKHR' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))- pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements- pure $ (pMemoryRequirements) +-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkGetDeviceImageMemoryRequirementsKHR- :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr (SomeStruct MemoryRequirements2) -> IO () --- | vkGetDeviceImageMemoryRequirementsKHR - Returns the memory requirements--- for specified Vulkan object------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirementsKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'-getDeviceImageMemoryRequirementsKHR :: forall a io- . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)- => -- | @device@ is the logical device intended to own the image.- --- -- #VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter# @device@- -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle- Device- -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirementsKHR' structure- -- containing parameters required for the memory requirements query.- --- -- #VUID-vkGetDeviceImageMemoryRequirementsKHR-pInfo-parameter# @pInfo@- -- /must/ be a valid pointer to a valid 'DeviceImageMemoryRequirementsKHR'- -- structure- ("info" ::: DeviceImageMemoryRequirementsKHR)- -> io (MemoryRequirements2 a)-getDeviceImageMemoryRequirementsKHR device info = liftIO . evalContT $ do- let vkGetDeviceImageMemoryRequirementsKHRPtr = pVkGetDeviceImageMemoryRequirementsKHR (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkGetDeviceImageMemoryRequirementsKHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageMemoryRequirementsKHR is null" Nothing Nothing- let vkGetDeviceImageMemoryRequirementsKHR' = mkVkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHRPtr- pInfo <- ContT $ withCStruct (info)- pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))- lift $ traceAroundEvent "vkGetDeviceImageMemoryRequirementsKHR" (vkGetDeviceImageMemoryRequirementsKHR' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))- pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements- pure $ (pMemoryRequirements)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR"+pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkGetDeviceImageSparseMemoryRequirementsKHR- :: FunPtr (Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()) -> Ptr Device_T -> Ptr DeviceImageMemoryRequirementsKHR -> Ptr Word32 -> Ptr SparseImageMemoryRequirements2 -> IO ()+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR"+pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS --- | vkGetDeviceImageSparseMemoryRequirementsKHR - Query the memory--- requirements for a sparse image------ == Valid Usage (Implicit)------ - #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter#--- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle------ - #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-pInfo-parameter#--- @pInfo@ /must/ be a valid pointer to a valid--- 'DeviceImageMemoryRequirementsKHR' structure------ - #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-pSparseMemoryRequirementCount-parameter#--- @pSparseMemoryRequirementCount@ /must/ be a valid pointer to a--- @uint32_t@ value------ - #VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-pSparseMemoryRequirements-parameter#--- If the value referenced by @pSparseMemoryRequirementCount@ is not--- @0@, and @pSparseMemoryRequirements@ is not @NULL@,--- @pSparseMemoryRequirements@ /must/ be a valid pointer to an array of--- @pSparseMemoryRequirementCount@--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'--- structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Handles.Device', 'DeviceImageMemoryRequirementsKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2'-getDeviceImageSparseMemoryRequirementsKHR :: forall io- . (MonadIO io)- => -- | @device@ is the logical device intended to own the image.- Device- -> -- | @pInfo@ is a pointer to a 'DeviceImageMemoryRequirementsKHR' structure- -- containing parameters required for the memory requirements query.- ("info" ::: DeviceImageMemoryRequirementsKHR)- -> io (("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2))-getDeviceImageSparseMemoryRequirementsKHR device info = liftIO . evalContT $ do- let vkGetDeviceImageSparseMemoryRequirementsKHRPtr = pVkGetDeviceImageSparseMemoryRequirementsKHR (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkGetDeviceImageSparseMemoryRequirementsKHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageSparseMemoryRequirementsKHR is null" Nothing Nothing- let vkGetDeviceImageSparseMemoryRequirementsKHR' = mkVkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHRPtr- let device' = deviceHandle (device)- pInfo <- ContT $ withCStruct (info)- pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirementsKHR" (vkGetDeviceImageSparseMemoryRequirementsKHR' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr))- pSparseMemoryRequirementCount <- lift $ peek @Word32 pPSparseMemoryRequirementCount- pPSparseMemoryRequirements <- ContT $ bracket (callocBytes @SparseImageMemoryRequirements2 ((fromIntegral (pSparseMemoryRequirementCount)) * 64)) free- _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSparseMemoryRequirements `advancePtrBytes` (i * 64) :: Ptr SparseImageMemoryRequirements2) . ($ ())) [0..(fromIntegral (pSparseMemoryRequirementCount)) - 1]- lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirementsKHR" (vkGetDeviceImageSparseMemoryRequirementsKHR' device' pInfo (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements)))- pSparseMemoryRequirementCount' <- lift $ peek @Word32 pPSparseMemoryRequirementCount- pSparseMemoryRequirements' <- lift $ generateM (fromIntegral (pSparseMemoryRequirementCount')) (\i -> peekCStruct @SparseImageMemoryRequirements2 (((pPSparseMemoryRequirements) `advancePtrBytes` (64 * (i)) :: Ptr SparseImageMemoryRequirements2)))- pure $ (pSparseMemoryRequirements') +-- No documentation found for TopLevel "vkGetDeviceBufferMemoryRequirementsKHR"+getDeviceBufferMemoryRequirementsKHR = getDeviceBufferMemoryRequirements --- | VkDeviceBufferMemoryRequirementsKHR - (None)------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Buffer.BufferCreateInfo',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'getDeviceBufferMemoryRequirementsKHR'-data DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirementsKHR- { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Buffer.BufferCreateInfo'- -- structure containing parameters affecting creation of the buffer to- -- query.- --- -- #VUID-VkDeviceBufferMemoryRequirementsKHR-pCreateInfo-parameter#- -- @pCreateInfo@ /must/ be a valid pointer to a valid- -- 'Vulkan.Core10.Buffer.BufferCreateInfo' structure- createInfo :: SomeStruct BufferCreateInfo }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DeviceBufferMemoryRequirementsKHR)-#endif-deriving instance Show DeviceBufferMemoryRequirementsKHR -instance ToCStruct DeviceBufferMemoryRequirementsKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p DeviceBufferMemoryRequirementsKHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo (createInfo) (cont . castPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''- lift $ f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pCreateInfo'' <- ContT @_ @_ @(Ptr (BufferCreateInfo '[])) $ \cont -> withSomeCStruct @BufferCreateInfo ((SomeStruct zero)) (cont . castPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _)))) pCreateInfo''- lift $ f+-- No documentation found for TopLevel "vkGetDeviceImageMemoryRequirementsKHR"+getDeviceImageMemoryRequirementsKHR = getDeviceImageMemoryRequirements -instance FromCStruct DeviceBufferMemoryRequirementsKHR where- peekCStruct p = do- pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (BufferCreateInfo _))))- pure $ DeviceBufferMemoryRequirementsKHR- pCreateInfo -instance Zero DeviceBufferMemoryRequirementsKHR where- zero = DeviceBufferMemoryRequirementsKHR- (SomeStruct zero)+-- No documentation found for TopLevel "vkGetDeviceImageSparseMemoryRequirementsKHR"+getDeviceImageSparseMemoryRequirementsKHR = getDeviceImageSparseMemoryRequirements --- | VkDeviceImageMemoryRequirementsKHR - (None)------ == Valid Usage------ - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416# The--- @pCreateInfo@::@pNext@ chain /must/ not contain a--- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR'--- structure------ - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417# If--- @pCreateInfo@::@flags@ has--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'--- set then @planeAspect@ /must/ not be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'------ - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06418# If--- @pCreateInfo@::@flags@ has--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'--- set then @planeAspect@ /must/ not be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'------ - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419# If--- @pCreateInfo@::@flags@ has--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'--- set and if the @pCreateInfo@::@tiling@ is--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then--- @planeAspect@ /must/ be a single valid /format plane/ for the image--- (that is, for a two-plane image @planeAspect@ /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',--- and for a three-plane image @planeAspect@ /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-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420# If--- @pCreateInfo@::@flags@ has--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'--- set and the @pCreateInfo@::@tiling@ is--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',--- then @planeAspect@ /must/ be a single valid /memory plane/ for the--- image (that is, @aspectMask@ /must/ specify a plane index that is--- 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-VkDeviceImageMemoryRequirementsKHR-sType-sType# @sType@ /must/--- be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR'------ - #VUID-VkDeviceImageMemoryRequirementsKHR-pNext-pNext# @pNext@ /must/--- be @NULL@------ - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-parameter#--- @pCreateInfo@ /must/ be a valid pointer to a valid--- 'Vulkan.Core10.Image.ImageCreateInfo' structure------ - #VUID-VkDeviceImageMemoryRequirementsKHR-planeAspect-parameter#--- @planeAspect@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits',--- 'Vulkan.Core10.Image.ImageCreateInfo',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'getDeviceImageMemoryRequirementsKHR',--- 'getDeviceImageSparseMemoryRequirementsKHR'-data DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirementsKHR- { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Image.ImageCreateInfo'- -- structure containing parameters affecting creation of the image to- -- query.- createInfo :: SomeStruct ImageCreateInfo- , -- | @planeAspect@ is a- -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value- -- specifying the aspect corresponding to the image plane to query. This- -- parameter is ignored unless @pCreateInfo@::@flags@ has- -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' or- -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'- -- set.- planeAspect :: ImageAspectFlagBits- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DeviceImageMemoryRequirementsKHR)-#endif-deriving instance Show DeviceImageMemoryRequirementsKHR+-- No documentation found for TopLevel "VkDeviceBufferMemoryRequirementsKHR"+type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements -instance ToCStruct DeviceImageMemoryRequirementsKHR where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p DeviceImageMemoryRequirementsKHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo (createInfo) (cont . castPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''- lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (planeAspect)- lift $ f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo ((SomeStruct zero)) (cont . castPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo''- lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits)) (zero)- lift $ f -instance FromCStruct DeviceImageMemoryRequirementsKHR where- peekCStruct p = do- pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _))))- planeAspect <- peek @ImageAspectFlagBits ((p `plusPtr` 24 :: Ptr ImageAspectFlagBits))- pure $ DeviceImageMemoryRequirementsKHR- pCreateInfo planeAspect--instance Zero DeviceImageMemoryRequirementsKHR where- zero = DeviceImageMemoryRequirementsKHR- (SomeStruct zero)- zero+-- No documentation found for TopLevel "VkDeviceImageMemoryRequirementsKHR"+type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements --- | VkPhysicalDeviceMaintenance4FeaturesKHR - Structure describing whether--- the implementation supports maintenance4 functionality------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceMaintenance4FeaturesKHR' 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. 'PhysicalDeviceMaintenance4FeaturesKHR' /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_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4FeaturesKHR- { -- | #features-maintenance4# @maintenance4@ indicates that the implementation- -- supports the following:- --- -- - The application /may/ destroy a- -- 'Vulkan.Core10.Handles.PipelineLayout' object immediately after- -- using it to create another object.- --- -- - @LocalSizeId@ /can/ be used as an alternative to @LocalSize@ to- -- specify the local workgroup size with specialization constants.- --- -- - Images created with identical creation parameters will always have- -- the same alignment requirements.- --- -- - The size memory requirement of a buffer or image is never greater- -- than that of another buffer or image created with a greater or equal- -- size.- --- -- - Push constants do not have to be initialized before they are- -- dynamically accessed.- --- -- - The interface matching rules allow a larger output vector to match- -- with a smaller input vector, with additional values being discarded.- maintenance4 :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMaintenance4FeaturesKHR)-#endif-deriving instance Show PhysicalDeviceMaintenance4FeaturesKHR--instance ToCStruct PhysicalDeviceMaintenance4FeaturesKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceMaintenance4FeaturesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (maintenance4))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f--instance FromCStruct PhysicalDeviceMaintenance4FeaturesKHR where- peekCStruct p = do- maintenance4 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceMaintenance4FeaturesKHR- (bool32ToBool maintenance4)--instance Storable PhysicalDeviceMaintenance4FeaturesKHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceMaintenance4FeaturesKHR where- zero = PhysicalDeviceMaintenance4FeaturesKHR- zero+-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance4FeaturesKHR"+type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features --- | VkPhysicalDeviceMaintenance4PropertiesKHR - Structure describing various--- implementation-defined properties introduced with VK_KHR_maintenance4------ = Description------ If the 'PhysicalDeviceMaintenance4PropertiesKHR' 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_maintenance4 VK_KHR_maintenance4>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4PropertiesKHR- { -- | #limits-maxBufferSize# @maxBufferSize@ is the maximum size- -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created.- maxBufferSize :: DeviceSize }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMaintenance4PropertiesKHR)-#endif-deriving instance Show PhysicalDeviceMaintenance4PropertiesKHR--instance ToCStruct PhysicalDeviceMaintenance4PropertiesKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceMaintenance4PropertiesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (maxBufferSize)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)- f--instance FromCStruct PhysicalDeviceMaintenance4PropertiesKHR where- peekCStruct p = do- maxBufferSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))- pure $ PhysicalDeviceMaintenance4PropertiesKHR- maxBufferSize--instance Storable PhysicalDeviceMaintenance4PropertiesKHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceMaintenance4PropertiesKHR where- zero = PhysicalDeviceMaintenance4PropertiesKHR- zero+-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance4PropertiesKHR"+type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties type KHR_MAINTENANCE_4_SPEC_VERSION = 2
− src/Vulkan/Extensions/VK_KHR_maintenance4.hs-boot
@@ -1,215 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_maintenance4 - device extension------ == VK_KHR_maintenance4------ [__Name String__]--- @VK_KHR_maintenance4@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 414------ [__Revision__]--- 2------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.1------ [__Contact__]------ - Piers Daniell--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance4] @pdaniell-nv%0A<<Here describe the issue or question you have about the VK_KHR_maintenance4 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2021-10-25------ [__Interactions and External Dependencies__]------ - Requires SPIR-V 1.2 for @LocalSizeId@------ [__Contributors__]------ - Lionel Duc, NVIDIA------ - Jason Ekstrand, Intel------ - Spencer Fricke, Samsung------ - Tobias Hector, AMD------ - Lionel Landwerlin, Intel------ - Graeme Leese, Broadcom------ - Tom Olson, Arm------ - Stu Smith, AMD------ - Yiwei Zhang, Google------ == Description------ @VK_KHR_maintenance4@ adds a collection of minor features, none of which--- would warrant an entire extension of their own.------ The new features are as follows:------ - Allow the application to destroy their--- 'Vulkan.Core10.Handles.PipelineLayout' object immediately after it--- was used to create another object. It is no longer necessary to keep--- its handle valid while the created object is in use.------ - Add a new--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize>--- implementation-defined limit for the maximum size--- 'Vulkan.Core10.Handles.Buffer' that /can/ be created.------ - Add support for the SPIR-V 1.2 @LocalSizeId@ execution mode, which--- can be used as an alternative to @LocalSize@ to specify the local--- workgroup size with specialization constants.------ - Add a guarantee that images created with identical creation--- parameters will always have the same alignment requirements.------ - Add new 'getDeviceBufferMemoryRequirementsKHR',--- 'getDeviceImageMemoryRequirementsKHR', and--- 'getDeviceImageSparseMemoryRequirementsKHR' to allow the application--- to query the image memory requirements without having to create an--- image object and query it.------ - Relax the requirement that push constants must be initialized before--- they are dynamically accessed.------ - Relax the interface matching rules to allow a larger output vector--- to match with a smaller input vector, with additional values being--- discarded.------ - Add a guarantee for buffer memory requirement that the size memory--- requirement is never greater than the result of aligning create size--- with the alignment memory requirement.------ == New Commands------ - 'getDeviceBufferMemoryRequirementsKHR'------ - 'getDeviceImageMemoryRequirementsKHR'------ - 'getDeviceImageSparseMemoryRequirementsKHR'------ == New Structures------ - 'DeviceBufferMemoryRequirementsKHR'------ - 'DeviceImageMemoryRequirementsKHR'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceMaintenance4FeaturesKHR'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------ - 'PhysicalDeviceMaintenance4PropertiesKHR'------ == New Enum Constants------ - 'KHR_MAINTENANCE_4_EXTENSION_NAME'------ - 'KHR_MAINTENANCE_4_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits':------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE_KHR'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR'------ == Issues------ None.------ == Version History------ - Revision 1, 2021-08-18 (Piers Daniell)------ - Internal revisions------ - Revision 2, 2021-10-25 (Yiwei Zhang)------ - More guarantees on buffer memory requirements------ == See Also------ 'DeviceBufferMemoryRequirementsKHR', 'DeviceImageMemoryRequirementsKHR',--- 'PhysicalDeviceMaintenance4FeaturesKHR',--- 'PhysicalDeviceMaintenance4PropertiesKHR',--- 'getDeviceBufferMemoryRequirementsKHR',--- 'getDeviceImageMemoryRequirementsKHR',--- 'getDeviceImageSparseMemoryRequirementsKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_maintenance4 ( DeviceBufferMemoryRequirementsKHR- , DeviceImageMemoryRequirementsKHR- , PhysicalDeviceMaintenance4FeaturesKHR- , PhysicalDeviceMaintenance4PropertiesKHR- ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data DeviceBufferMemoryRequirementsKHR--instance ToCStruct DeviceBufferMemoryRequirementsKHR-instance Show DeviceBufferMemoryRequirementsKHR--instance FromCStruct DeviceBufferMemoryRequirementsKHR---data DeviceImageMemoryRequirementsKHR--instance ToCStruct DeviceImageMemoryRequirementsKHR-instance Show DeviceImageMemoryRequirementsKHR--instance FromCStruct DeviceImageMemoryRequirementsKHR---data PhysicalDeviceMaintenance4FeaturesKHR--instance ToCStruct PhysicalDeviceMaintenance4FeaturesKHR-instance Show PhysicalDeviceMaintenance4FeaturesKHR--instance FromCStruct PhysicalDeviceMaintenance4FeaturesKHR---data PhysicalDeviceMaintenance4PropertiesKHR--instance ToCStruct PhysicalDeviceMaintenance4PropertiesKHR-instance Show PhysicalDeviceMaintenance4PropertiesKHR--instance FromCStruct PhysicalDeviceMaintenance4PropertiesKHR-
src/Vulkan/Extensions/VK_KHR_multiview.hs view
@@ -66,7 +66,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.2-extensions/html/vkspec.html#renderpass render pass>+-- <https://www.khronos.org/registry/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 +124,11 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewindex ViewIndex>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MultiView MultiView>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MultiView MultiView> -- -- == Version History --@@ -145,7 +145,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiview Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -116,7 +116,7 @@ -- - 'QueryPoolPerformanceCreateInfoKHR' -- -- - Extending 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- -- - 'PerformanceQuerySubmitInfoKHR' --@@ -473,7 +473,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/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 +1203,7 @@ -- -- - #VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterQueryPools performanceCounterQueryPools>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-performanceCounterQueryPools performanceCounterQueryPools> -- feature /must/ be enabled -- -- - #VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321#
src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot view
@@ -116,7 +116,7 @@ -- - 'QueryPoolPerformanceCreateInfoKHR' -- -- - Extending 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- -- - 'PerformanceQuerySubmitInfoKHR' --@@ -473,7 +473,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification>+-- <https://www.khronos.org/registry/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,7 +312,7 @@ -- == Valid Usage -- -- - #VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270#--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo> -- /must/ be enabled -- -- - #VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271#@@ -410,7 +410,7 @@ -- == Valid Usage -- -- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272#--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo> -- /must/ be enabled -- -- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273#@@ -519,7 +519,7 @@ -- == Valid Usage -- -- - #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276#--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo> -- /must/ be enabled -- -- - #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277#
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot view
@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification>+-- <https://www.khronos.org/registry/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_pipeline_library.hs-boot view
@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification>+-- <https://www.khronos.org/registry/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_subset.hs view
@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification>+-- <https://www.khronos.org/registry/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 +203,13 @@ { -- | #features-constantAlphaColorBlendFactors# -- @constantAlphaColorBlendFactors@ indicates whether this implementation -- supports constant /alpha/- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendfactors>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors> -- used as source or destination /color/- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-events>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events>. events :: Bool , -- | #features-imageViewFormatReinterpretation# -- @imageViewFormatReinterpretation@ indicates whether this implementation@@ -236,56 +236,56 @@ , -- | #features-mutableComparisonSamplers# @mutableComparisonSamplers@ -- indicates whether this implementation allows descriptors with comparison -- samplers to be- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates updated>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast> -- using a /point/- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-polygonmode>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#samplers-mipLodBias mipmap LOD bias value>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias mipmap LOD bias value> -- when- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers creating a sampler>.+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fragops-stencil>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-InterpolationFunction InterpolationFunction>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output> -- from the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders> -- are supported. tessellationIsolines :: Bool , -- | #features-tessellationPointMode# @tessellationPointMode@ indicates -- whether this implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation-point-mode point output>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-point-mode point output> -- from the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders> -- are supported. tessellationPointMode :: Bool , -- | #features-triangleFans# @triangleFans@ indicates whether this -- implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-fans>+ -- <https://www.khronos.org/registry/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
@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+-- <https://www.khronos.org/registry/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 +219,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.2-extensions/html/vkspec.html#features-presentId presentId>+-- <https://www.khronos.org/registry/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
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -135,7 +135,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+-- <https://www.khronos.org/registry/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 +277,7 @@ -- in the retired state -- -- - #VUID-vkWaitForPresentKHR-presentWait-06234# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-presentWait presentWait>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentWait presentWait> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot view
@@ -135,7 +135,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification>+-- <https://www.khronos.org/registry/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 +208,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.2-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-staticuse statically used>+-- <https://www.khronos.org/registry/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
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot view
@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -167,9 +167,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-RayQueryKHR RayQueryKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Sample Code --@@ -240,7 +240,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -167,9 +167,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-RayQueryKHR RayQueryKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Sample Code --@@ -240,7 +240,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification>+-- <https://www.khronos.org/registry/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_pipeline.hs view
@@ -44,13 +44,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.2-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shader-call-related shader-call-related>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shader-call-order shader-call-order>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR> -- scope. -- -- - This extension interacts with @VK_KHR_pipeline_library@,@@ -287,43 +287,43 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchid LaunchIdKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchsize LaunchSizeKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldrayorigin WorldRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldraydirection WorldRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectrayorigin ObjectRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectraydirection ObjectRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmin RayTminKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmax RayTmaxKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instancecustomindex InstanceCustomIndexKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objecttoworld ObjectToWorldKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldtoobject WorldToObjectKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-hitkind HitKindKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-incomingrayflags IncomingRayFlagsKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR>+-- - <https://www.khronos.org/registry/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.2-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-RayTracingKHR RayTracingKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Issues --@@ -345,7 +345,7 @@ -- -- - removed vkCompileDeferredNV compilation functionality and replaced -- with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations deferred host operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations> -- interactions for ray tracing -- -- - added 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure@@ -370,17 +370,17 @@ -- device build -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-library pipeline library>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions>+-- <https://www.khronos.org/registry/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@@ -706,7 +706,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -840,7 +840,7 @@ import Vulkan.Core10.Handles (PipelineCache) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo) import Vulkan.Core10.Handles (PipelineLayout) import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)@@ -904,7 +904,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdTraceRaysKHR-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -960,7 +960,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdTraceRaysKHR-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -968,7 +968,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -1626,7 +1626,7 @@ -- -- - #VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903# If -- @pipelineCache@ was created with--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', -- host access to @pipelineCache@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized> --@@ -1640,13 +1640,13 @@ -- @deferredOperation@ /must/ be complete -- -- - #VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> -- feature /must/ be enabled -- -- - #VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587# If -- @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- the @flags@ member of elements of @pCreateInfos@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- == Valid Usage (Implicit) --@@ -1697,7 +1697,7 @@ -- -- - 'Vulkan.Core10.Enums.Result.OPERATION_NOT_DEFERRED_KHR' ----- - 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+-- - '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>] --@@ -1720,12 +1720,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.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- <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@@ -1733,7 +1733,7 @@ -- 'RayTracingPipelineCreateInfoKHR' structures. ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoKHR)) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <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))@@ -1810,7 +1810,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1866,7 +1866,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -1874,7 +1874,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -2210,7 +2210,7 @@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect ::rayTracingPipelineTraceRaysIndirect>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect ::rayTracingPipelineTraceRaysIndirect> -- feature /must/ be enabled -- -- - #VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951#@@ -2398,7 +2398,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.2-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>. -- -- == Valid Usage --@@ -2643,7 +2643,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- When -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'@@ -2669,7 +2669,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.2-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>. -- -- == Valid Usage --@@ -2724,9 +2724,9 @@ -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-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_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' -- or--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425# If @flags@ does -- not include@@ -2845,20 +2845,20 @@ -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling>+-- <https://www.khronos.org/registry/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' -- -- - #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.2-extensions/html/vkspec.html#features-rayTracingPipelineShaderGroupHandleCaptureReplay rayTracingPipelineShaderGroupHandleCaptureReplay>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineShaderGroupHandleCaptureReplay rayTracingPipelineShaderGroupHandleCaptureReplay> -- /must/ be enabled -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599#@@ -2889,7 +2889,7 @@ -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext# @pNext@ /must/ -- be @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo' -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique@@ -2964,7 +2964,7 @@ -- pipeline. groups :: Vector RayTracingShaderGroupCreateInfoKHR , -- | @maxPipelineRayRecursionDepth@ is the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>+ -- <https://www.khronos.org/registry/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@@ -3003,7 +3003,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 @PipelineCreationFeedbackCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f | otherwise = Nothing instance (Extendss RayTracingPipelineCreateInfoKHR es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoKHR es) where@@ -3105,7 +3105,7 @@ -- - #features-rayTracingPipeline# @rayTracingPipeline@ indicates whether -- the implementation supports the ray tracing pipeline functionality. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing Ray Tracing>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing Ray Tracing>. -- -- - #features-rayTracingPipelineShaderGroupHandleCaptureReplay# -- @rayTracingPipelineShaderGroupHandleCaptureReplay@ indicates whether@@ -3128,7 +3128,7 @@ -- - #features-rayTraversalPrimitiveCulling# -- @rayTraversalPrimitiveCulling@ indicates whether the implementation -- supports--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>.+-- <https://www.khronos.org/registry/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@@ -3508,7 +3508,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.2-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>+-- <https://www.khronos.org/registry/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
@@ -44,13 +44,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.2-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shader-call-related shader-call-related>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shader-call-order shader-call-order>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR> -- scope. -- -- - This extension interacts with @VK_KHR_pipeline_library@,@@ -287,43 +287,43 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchid LaunchIdKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchsize LaunchSizeKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldrayorigin WorldRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldraydirection WorldRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectrayorigin ObjectRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectraydirection ObjectRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmin RayTminKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmax RayTmaxKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instancecustomindex InstanceCustomIndexKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objecttoworld ObjectToWorldKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldtoobject WorldToObjectKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-hitkind HitKindKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-incomingrayflags IncomingRayFlagsKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR>+-- - <https://www.khronos.org/registry/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.2-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-RayTracingKHR RayTracingKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Issues --@@ -345,7 +345,7 @@ -- -- - removed vkCompileDeferredNV compilation functionality and replaced -- with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations deferred host operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations> -- interactions for ray tracing -- -- - added 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure@@ -370,17 +370,17 @@ -- device build -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-library pipeline library>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions>+-- <https://www.khronos.org/registry/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@@ -706,7 +706,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -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.2-extensions/html/vkspec.html#interfaces-resources-layout Offset and Stride Assignment>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_KHR_relaxed_block_layout Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -144,7 +144,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_mirror_clamp_to_edge Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -392,7 +392,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -128,7 +128,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -93,7 +93,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-Int64Atomics Int64Atomics>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-Int64Atomics Int64Atomics> -- -- == Version History --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_atomic_int64 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,7 +86,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR> -- -- == Version History --@@ -101,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,7 +86,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR> -- -- == Version History --@@ -101,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -96,7 +96,7 @@ -- -- All functionality in this extension is included in core Vulkan 1.1, -- however a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderDrawParameters feature bit was added>+-- <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. -- -- == New Enum Constants@@ -107,15 +107,15 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-baseinstance BaseInstance> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-basevertex BaseVertex> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-drawindex DrawIndex>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DrawParameters DrawParameters>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DrawParameters DrawParameters> -- -- == Issues --@@ -149,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_draw_parameters Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -78,7 +78,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.2-extensions/html/vkspec.html#interfaces-iointerfaces shader input and output interfaces>+-- <https://www.khronos.org/registry/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 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float16_int8 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -105,15 +105,15 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-DenormPreserve DenormPreserve> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-DenormFlushToZero DenormFlushToZero> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-SignedZeroInfNanPreserve SignedZeroInfNanPreserve> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-RoundingModeRTE RoundingModeRTE> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTZ RoundingModeRTZ>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTZ RoundingModeRTZ> -- -- == Issues --@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float_controls Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Kevin Petit@@ -38,6 +43,8 @@ -- -- [__Interactions and External Dependencies__] --+-- - Promoted to Vulkan 1.3 Core+-- -- - This extension requires -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_integer_dot_product.html SPV_KHR_integer_dot_product>. --@@ -106,19 +113,25 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-DotProductInputAllKHR DotProductInputAllKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-DotProductInput4x8BitKHR DotProductInput4x8BitKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR> -- -- == Version History --@@ -134,488 +147,39 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_KHR_shader_integer_dot_product ( PhysicalDeviceShaderIntegerDotProductFeaturesKHR(..)- , PhysicalDeviceShaderIntegerDotProductPropertiesKHR(..)+module Vulkan.Extensions.VK_KHR_shader_integer_dot_product ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR+ , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR+ , PhysicalDeviceShaderIntegerDotProductFeaturesKHR+ , PhysicalDeviceShaderIntegerDotProductPropertiesKHR , KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION , pattern KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION , KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME , pattern KHR_SHADER_INTEGER_DOT_PRODUCT_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_INTEGER_DOT_PRODUCT_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR))--- | VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR - Structure--- describing integer dot product features that can be supported by an--- implementation------ = Members------ The members of the 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR'--- structure describe the following features:------ = Description------ If the 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR' 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. 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR' /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_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeaturesKHR- { -- | #features-shaderIntegerDotProduct# @shaderIntegerDotProduct@ specifies- -- whether shader modules /can/ declare the @DotProductInputAllKHR@,- -- @DotProductInput4x8BitKHR@, @DotProductInput4x8BitPackedKHR@ and- -- @DotProductKHR@ capabilities.- shaderIntegerDotProduct :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceShaderIntegerDotProductFeaturesKHR+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures)+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductProperties)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES -instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceShaderIntegerDotProductFeaturesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderIntegerDotProduct))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR where- peekCStruct p = do- shaderIntegerDotProduct <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceShaderIntegerDotProductFeaturesKHR- (bool32ToBool shaderIntegerDotProduct)+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES -instance Storable PhysicalDeviceShaderIntegerDotProductFeaturesKHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceShaderIntegerDotProductFeaturesKHR where- zero = PhysicalDeviceShaderIntegerDotProductFeaturesKHR- zero+-- No documentation found for TopLevel "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR"+type PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures --- | VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR - Structure--- containing information about integer dot product support for a physical--- device------ = Description------ If the 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR' 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 integer dot product acceleration information--- of a physical device.------ Note------ A dot product operation is deemed accelerated if its implementation--- provides a performance advantage over application-provided code composed--- from elementary instructions and\/or other dot product instructions,--- either because the implementation uses optimized machine code sequences--- whose generation from application-provided code cannot be guaranteed or--- because it uses hardware features that cannot otherwise be targeted from--- application-provided code.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductPropertiesKHR- { -- | @integerDotProduct8BitUnsignedAccelerated@ is a boolean that will be- -- '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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.- integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)-#endif-deriving instance Show PhysicalDeviceShaderIntegerDotProductPropertiesKHR--instance ToCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR where- withCStruct x f = allocaBytes 136 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceShaderIntegerDotProductPropertiesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitUnsignedAccelerated))- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitSignedAccelerated))- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (integerDotProduct8BitMixedSignednessAccelerated))- poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedUnsignedAccelerated))- poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedSignedAccelerated))- poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (integerDotProduct4x8BitPackedMixedSignednessAccelerated))- poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitUnsignedAccelerated))- poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitSignedAccelerated))- poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (integerDotProduct16BitMixedSignednessAccelerated))- poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitUnsignedAccelerated))- poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitSignedAccelerated))- poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (integerDotProduct32BitMixedSignednessAccelerated))- poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitUnsignedAccelerated))- poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitSignedAccelerated))- poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (integerDotProduct64BitMixedSignednessAccelerated))- poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))- poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitSignedAccelerated))- poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))- poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))- poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))- poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))- poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))- poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitSignedAccelerated))- poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))- poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))- poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitSignedAccelerated))- poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))- poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))- poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitSignedAccelerated))- poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))- f- cStructSize = 136- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR)- 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))- poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (zero))- f--instance FromCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR where- peekCStruct p = do- integerDotProduct8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- integerDotProduct8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- integerDotProduct8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))- integerDotProduct4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))- integerDotProduct4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))- integerDotProduct4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))- integerDotProduct16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))- integerDotProduct16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))- integerDotProduct16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))- integerDotProduct32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))- integerDotProduct32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))- integerDotProduct32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))- integerDotProduct64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))- integerDotProduct64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))- integerDotProduct64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))- integerDotProductAccumulatingSaturating8BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))- integerDotProductAccumulatingSaturating8BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))- integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))- integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))- integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))- integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))- integerDotProductAccumulatingSaturating16BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))- integerDotProductAccumulatingSaturating16BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))- integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))- integerDotProductAccumulatingSaturating32BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))- integerDotProductAccumulatingSaturating32BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))- integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))- integerDotProductAccumulatingSaturating64BitUnsignedAccelerated <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))- integerDotProductAccumulatingSaturating64BitSignedAccelerated <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))- integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))- pure $ PhysicalDeviceShaderIntegerDotProductPropertiesKHR- (bool32ToBool integerDotProduct8BitUnsignedAccelerated) (bool32ToBool integerDotProduct8BitSignedAccelerated) (bool32ToBool integerDotProduct8BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProduct4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProduct16BitUnsignedAccelerated) (bool32ToBool integerDotProduct16BitSignedAccelerated) (bool32ToBool integerDotProduct16BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct32BitUnsignedAccelerated) (bool32ToBool integerDotProduct32BitSignedAccelerated) (bool32ToBool integerDotProduct32BitMixedSignednessAccelerated) (bool32ToBool integerDotProduct64BitUnsignedAccelerated) (bool32ToBool integerDotProduct64BitSignedAccelerated) (bool32ToBool integerDotProduct64BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitSignedAccelerated) (bool32ToBool integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated)--instance Storable PhysicalDeviceShaderIntegerDotProductPropertiesKHR where- sizeOf ~_ = 136- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceShaderIntegerDotProductPropertiesKHR where- zero = PhysicalDeviceShaderIntegerDotProductPropertiesKHR- 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+-- No documentation found for TopLevel "VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR"+type PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties type KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs-boot
@@ -1,163 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_shader_integer_dot_product - device extension------ == VK_KHR_shader_integer_dot_product------ [__Name String__]--- @VK_KHR_shader_integer_dot_product@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 281------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Kevin Petit--- <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>------ == Other Extension Metadata------ [__Last Modified Date__]--- 2021-06-16------ [__Interactions and External Dependencies__]------ - This extension requires--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_integer_dot_product.html SPV_KHR_integer_dot_product>.------ - This extension interacts with @VK_KHR_shader_float16_int8@.------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Kévin Petit, Arm Ltd.------ - Jeff Bolz, NVidia------ - Spencer Fricke, Samsung------ - Jesse Hall, Google------ - John Kessenich, Google------ - Graeme Leese, Broadcom------ - Einar Hov, Arm Ltd.------ - Stuart Brady, Arm Ltd.------ - Pablo Cascon, Arm Ltd.------ - Tobias Hector, AMD------ - Jeff Leger, Qualcomm------ - Ruihao Zhang, Qualcomm------ - Pierre Boudier, NVidia------ - Jon Leech, The Khronos Group------ - Tom Olson, Arm Ltd.------ == Description------ This extension adds support for the integer dot product SPIR-V--- instructions defined in SPV_KHR_integer_dot_product. These instructions--- are particularly useful for neural network inference and training but--- find uses in other general purpose compute applications as well.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':------ - 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR'------ == New Enum Constants------ - 'KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME'------ - 'KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR'------ == New SPIR-V Capabilities------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR>------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR>------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR>------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR>------ == Version History------ - Revision 1, 2021-06-16 (Kévin Petit)------ - Initial revision------ == See Also------ 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR',--- 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_shader_integer_dot_product ( PhysicalDeviceShaderIntegerDotProductFeaturesKHR- , PhysicalDeviceShaderIntegerDotProductPropertiesKHR- ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceShaderIntegerDotProductFeaturesKHR--instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR-instance Show PhysicalDeviceShaderIntegerDotProductFeaturesKHR--instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR---data PhysicalDeviceShaderIntegerDotProductPropertiesKHR--instance ToCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR-instance Show PhysicalDeviceShaderIntegerDotProductPropertiesKHR--instance FromCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR-
src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs view
@@ -21,6 +21,11 @@ -- -- - Requires Vulkan 1.0 --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Baldur Karlsson@@ -31,14 +36,16 @@ -- [__Last Modified Date__] -- 2019-10-16 ----- [__IP Status__]--- No known IP claims.--- -- [__Interactions and External Dependencies__] --+-- - Promoted to Vulkan 1.3 Core+-- -- - This extension requires -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_non_semantic_info.html SPV_KHR_non_semantic_info> --+-- [__IP Status__]+-- No known IP claims.+-- -- [__Contributors__] -- -- - Baldur Karlsson, Valve@@ -54,6 +61,13 @@ -- -- - 'KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION' --+-- == Promotion to Vulkan 1.3+--+-- 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>.+-- -- == Version History -- -- - Revision 1, 2019-10-16 (Baldur Karlsson)@@ -67,7 +81,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_non_semantic_info Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -107,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_extended_types Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -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.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>).+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -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.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>).+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Jesse Hall@@ -33,15 +38,17 @@ -- [__Last Modified Date__] -- 2020-08-11 ----- [__IP Status__]--- No known IP claims.--- -- [__Interactions and External Dependencies__] --+-- - Promoted to Vulkan 1.3 Core+-- -- - Requires the -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_terminate_invocation.html SPV_KHR_terminate_invocation> -- SPIR-V extension. --+-- [__IP Status__]+-- No known IP claims.+-- -- [__Contributors__] -- -- - Alan Baker, Google@@ -86,8 +93,14 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2020-08-11 (Jesse Hall)@@ -99,108 +112,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_terminate_invocation Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_KHR_shader_terminate_invocation ( PhysicalDeviceShaderTerminateInvocationFeaturesKHR(..)+module Vulkan.Extensions.VK_KHR_shader_terminate_invocation ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR+ , PhysicalDeviceShaderTerminateInvocationFeaturesKHR , KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION , pattern KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION , KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME , pattern KHR_SHADER_TERMINATE_INVOCATION_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_TERMINATE_INVOCATION_FEATURES_KHR))--- | VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR - Structure--- describing support for the SPIR-V @SPV_KHR_terminate_invocation@--- extension------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' 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. 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' /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_shader_terminate_invocation VK_KHR_shader_terminate_invocation>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeaturesKHR- { -- | #features-shaderTerminateInvocation# @shaderTerminateInvocation@- -- specifies whether the implementation supports SPIR-V modules that use- -- the @SPV_KHR_terminate_invocation@ extension.- shaderTerminateInvocation :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceShaderTerminateInvocationFeaturesKHR+import Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES -instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceShaderTerminateInvocationFeaturesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderTerminateInvocation))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR where- peekCStruct p = do- shaderTerminateInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceShaderTerminateInvocationFeaturesKHR- (bool32ToBool shaderTerminateInvocation)--instance Storable PhysicalDeviceShaderTerminateInvocationFeaturesKHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceShaderTerminateInvocationFeaturesKHR where- zero = PhysicalDeviceShaderTerminateInvocationFeaturesKHR- zero+-- No documentation found for TopLevel "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR"+type PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures type KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot
@@ -1,118 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_shader_terminate_invocation - device extension------ == VK_KHR_shader_terminate_invocation------ [__Name String__]--- @VK_KHR_shader_terminate_invocation@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 216------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Jesse Hall--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_terminate_invocation] @critsec%0A<<Here describe the issue or question you have about the VK_KHR_shader_terminate_invocation extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-08-11------ [__IP Status__]--- No known IP claims.------ [__Interactions and External Dependencies__]------ - Requires the--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_terminate_invocation.html SPV_KHR_terminate_invocation>--- SPIR-V extension.------ [__Contributors__]------ - Alan Baker, Google------ - Jeff Bolz, NVIDIA------ - Jesse Hall, Google------ - Ralph Potter, Samsung------ - Tom Olson, Arm------ == Description------ This extension adds Vulkan support for the--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_terminate_invocation.html SPV_KHR_terminate_invocation>--- SPIR-V extension. That SPIR-V extension provides a new instruction,--- @OpTerminateInvocation@, which causes a shader invocation to immediately--- terminate and sets the coverage of shaded samples to @0@; only--- previously executed instructions will have observable effects. The--- @OpTerminateInvocation@ instruction, along with the--- @OpDemoteToHelperInvocation@ instruction from the--- @VK_EXT_shader_demote_to_helper_invocation@ extension, together replace--- the @OpKill@ instruction, which could behave like either of these--- instructions. @OpTerminateInvocation@ provides the behavior required by--- the GLSL @discard@ statement, and should be used when available by GLSL--- compilers and applications that need the GLSL @discard@ behavior.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'------ == New Enum Constants------ - 'KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME'------ - 'KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR'------ == Version History------ - Revision 1, 2020-08-11 (Jesse Hall)------ == See Also------ 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceShaderTerminateInvocationFeaturesKHR--instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR-instance Show PhysicalDeviceShaderTerminateInvocationFeaturesKHR--instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR-
@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification>+-- <https://www.khronos.org/registry/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.
@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_spirv_1_4 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -367,7 +367,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io () destroySurfaceKHR instance' surface allocator = liftIO . evalContT $ do@@ -1416,7 +1416,7 @@ -- -- The transfer functions are described in the “Transfer Functions” chapter -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://www.khronos.org/registry/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
@@ -367,7 +367,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -1069,7 +1069,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -1370,7 +1370,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SwapchainKHR) createSwapchainKHR device createInfo allocator = liftIO . evalContT $ do@@ -1487,7 +1487,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io () destroySwapchainKHR device swapchain allocator = liftIO . evalContT $ do@@ -1819,7 +1819,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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+-- <https://www.khronos.org/registry/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@@ -2500,7 +2500,7 @@ -- referred to by @surface@ -- -- - #VUID-VkSwapchainCreateInfoKHR-imageFormat-01778# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters>+-- <https://www.khronos.org/registry/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' --@@ -2518,7 +2518,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.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+-- <https://www.khronos.org/registry/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@@@ -2879,7 +2879,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.2-extensions/html/vkspec.html#features-presentId presentId>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId> -- feature is not enabled, each @presentIds@ entry in that structure -- /must/ be NULL --@@ -3121,7 +3121,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.2-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters>+-- <https://www.khronos.org/registry/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
@@ -1069,7 +1069,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -114,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain_mutable_format Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,5978 +23,1124 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ ----- [__Contact__]------ - Tobias Hector--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_synchronization2] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_synchronization2 extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-12-03------ [__Interactions and External Dependencies__]------ - Interacts with @VK_KHR_create_renderpass2@------ [__Contributors__]------ - Tobias Hector------ == Description------ This extension modifies the original core synchronization APIs to--- simplify the interface and improve usability of these APIs. It also adds--- new pipeline stage and access flag types that extend into the 64-bit--- range, as we have run out within the 32-bit range. The new flags are--- identical to the old values within the 32-bit range, with new stages and--- bits beyond that.------ Pipeline stages and access flags are now specified together in memory--- barrier structures, making the connection between the two more obvious.--- Additionally, scoping the pipeline stages into the barrier structs--- allows the use of the @MEMORY_READ@ and @MEMORY_WRITE@ flags without--- sacrificing precision. The per-stage access flags should be used to--- disambiguate specific accesses in a given stage or set of stages - for--- instance, between uniform reads and sampling operations.------ Layout transitions have been simplified as well; rather than requiring a--- different set of layouts for depth\/stencil\/color attachments, there--- are generic--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'--- and 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- layouts which are contextually applied based on the image format. For--- example, for a depth format image,--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is--- equivalent to--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- also functionally replaces--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'.------ Events are now more efficient, because they include memory dependency--- information when you set them on the device. Previously, this--- information was only known when waiting on an event, so the dependencies--- could not be satisfied until the wait occurred. That sometimes meant--- stalling the pipeline when the wait occurred. The new API provides--- enough information for implementations to satisfy these dependencies in--- parallel with other tasks.------ Queue submission has been changed to wrap command buffers and semaphores--- in extensible structures, which incorporate changes from Vulkan 1.1,--- @VK_KHR_device_group@, and @VK_KHR_timeline_semaphore@. This also adds a--- pipeline stage to the semaphore signal operation, mirroring the existing--- pipeline stage specification for wait operations.------ Other miscellaneous changes include:------ - Events can now be specified as interacting only with the device,--- allowing more efficient access to the underlying object.------ - Image memory barriers that do not perform an image layout transition--- can be specified by setting @oldLayout@ equal to @newLayout@.------ - E.g. the old and new layout can both be set to--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',--- without discarding data in the image.------ - Queue family ownership transfer parameters are simplified in some--- cases.------ - Where two synchronization commands need to be matched up (queue--- transfer operations, events), the dependency information specified--- in each place must now match completely for consistency.------ - Extensions with commands or functions with a--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags' or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- parameter have had those APIs replaced with equivalents using--- 'PipelineStageFlags2KHR'.------ - The new event and barrier interfaces are now more extensible for--- future changes.------ - Relevant pipeline stage masks can now be specified as empty with the--- new--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'--- and 'PIPELINE_STAGE_2_NONE_KHR' values.------ - 'MemoryBarrier2KHR' can be chained to--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',--- overriding the original 32-bit stage and access masks.------ == New Base Types------ - 'Vulkan.Core10.FundamentalTypes.Flags64'------ == New Commands------ - 'cmdPipelineBarrier2KHR'------ - 'cmdResetEvent2KHR'------ - 'cmdSetEvent2KHR'------ - 'cmdWaitEvents2KHR'------ - 'cmdWriteTimestamp2KHR'------ - 'queueSubmit2KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>--- is supported:------ - 'cmdWriteBufferMarker2AMD'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>--- is supported:------ - 'getQueueCheckpointData2NV'------ == New Structures------ - 'BufferMemoryBarrier2KHR'------ - 'CommandBufferSubmitInfoKHR'------ - 'DependencyInfoKHR'------ - 'ImageMemoryBarrier2KHR'------ - 'SemaphoreSubmitInfoKHR'------ - 'SubmitInfo2KHR'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceSynchronization2FeaturesKHR'------ - Extending--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2':------ - 'MemoryBarrier2KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>--- is supported:------ - 'CheckpointData2NV'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':------ - 'QueueFamilyCheckpointProperties2NV'------ == New Enums------ - 'AccessFlagBits2KHR'------ - 'PipelineStageFlagBits2KHR'------ - 'SubmitFlagBitsKHR'------ == New Bitmasks------ - 'AccessFlags2KHR'------ - 'PipelineStageFlags2KHR'------ - 'SubmitFlagsKHR'------ == New Enum Constants------ - 'KHR_SYNCHRONIZATION_2_EXTENSION_NAME'------ - 'KHR_SYNCHRONIZATION_2_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':------ - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_NONE_KHR'------ - Extending--- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits':------ - 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'------ - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':------ - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'------ - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'------ - Extending--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':------ - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced>--- is supported:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering>--- is supported:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>--- is supported:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_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:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'------ - 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'------ - 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>--- is supported:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'------ - 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>--- is supported:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ 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:------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>--- is supported:------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'------ 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 'AccessFlagBits2KHR':------ - 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'------ - 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>--- is supported:------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_MESH_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>--- is supported:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV'------ - 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV'------ - 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>--- is supported:------ - Extending 'AccessFlagBits2KHR':------ - 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV'------ - Extending 'PipelineStageFlagBits2KHR':------ - 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ == Examples------ See--- <https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples>------ == Version History------ - Revision 1, 2020-12-03 (Tobias Hector)------ - Internal revisions------ == See Also------ 'AccessFlagBits2KHR', 'AccessFlags2KHR', 'BufferMemoryBarrier2KHR',--- 'CommandBufferSubmitInfoKHR', 'DependencyInfoKHR',--- 'Vulkan.Core10.FundamentalTypes.Flags64', 'ImageMemoryBarrier2KHR',--- 'MemoryBarrier2KHR', 'PhysicalDeviceSynchronization2FeaturesKHR',--- 'PipelineStageFlagBits2KHR', 'PipelineStageFlags2KHR',--- 'SemaphoreSubmitInfoKHR', 'SubmitFlagBitsKHR', 'SubmitFlagsKHR',--- 'SubmitInfo2KHR', 'cmdPipelineBarrier2KHR', 'cmdResetEvent2KHR',--- 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR', 'cmdWriteTimestamp2KHR',--- 'queueSubmit2KHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_synchronization2 ( cmdSetEvent2KHR- , cmdResetEvent2KHR- , cmdWaitEvents2KHR- , cmdWaitEvents2KHRSafe- , cmdPipelineBarrier2KHR- , queueSubmit2KHR- , cmdWriteTimestamp2KHR- , cmdWriteBufferMarker2AMD- , getQueueCheckpointData2NV- , pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV- , pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV- , pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV- , 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_TRANSFER_BIT_KHR- , MemoryBarrier2KHR(..)- , ImageMemoryBarrier2KHR(..)- , BufferMemoryBarrier2KHR(..)- , DependencyInfoKHR(..)- , SemaphoreSubmitInfoKHR(..)- , CommandBufferSubmitInfoKHR(..)- , SubmitInfo2KHR(..)- , QueueFamilyCheckpointProperties2NV(..)- , CheckpointData2NV(..)- , PhysicalDeviceSynchronization2FeaturesKHR(..)- , AccessFlags2KHR- , AccessFlagBits2KHR( ACCESS_2_NONE_KHR- , ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR- , ACCESS_2_INDEX_READ_BIT_KHR- , ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR- , ACCESS_2_UNIFORM_READ_BIT_KHR- , ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR- , ACCESS_2_SHADER_READ_BIT_KHR- , ACCESS_2_SHADER_WRITE_BIT_KHR- , ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR- , ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR- , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR- , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR- , ACCESS_2_TRANSFER_READ_BIT_KHR- , ACCESS_2_TRANSFER_WRITE_BIT_KHR- , ACCESS_2_HOST_READ_BIT_KHR- , ACCESS_2_HOST_WRITE_BIT_KHR- , ACCESS_2_MEMORY_READ_BIT_KHR- , ACCESS_2_MEMORY_WRITE_BIT_KHR- , ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR- , ACCESS_2_SHADER_STORAGE_READ_BIT_KHR- , ACCESS_2_SHADER_STORAGE_WRITE_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- , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR- , ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR- , ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR- , ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV- , ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV- , ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT- , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT- , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT- , ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT- , ..- )- , PipelineStageFlags2KHR- , PipelineStageFlagBits2KHR( PIPELINE_STAGE_2_NONE_KHR- , PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR- , PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR- , PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR- , PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR- , PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR- , PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR- , PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR- , PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR- , PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR- , PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR- , PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR- , PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR- , PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR- , PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR- , PIPELINE_STAGE_2_HOST_BIT_KHR- , PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR- , PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR- , PIPELINE_STAGE_2_COPY_BIT_KHR- , PIPELINE_STAGE_2_RESOLVE_BIT_KHR- , PIPELINE_STAGE_2_BLIT_BIT_KHR- , PIPELINE_STAGE_2_CLEAR_BIT_KHR- , PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR- , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR- , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_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_FRAGMENT_DENSITY_PROCESS_BIT_EXT- , PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR- , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR- , PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR- , PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV- , PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT- , PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT- , ..- )- , SubmitFlagsKHR- , SubmitFlagBitsKHR( SUBMIT_PROTECTED_BIT_KHR- , ..- )- , KHR_SYNCHRONIZATION_2_SPEC_VERSION- , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION- , KHR_SYNCHRONIZATION_2_EXTENSION_NAME- , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME- , Flags64- ) where--import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Vulkan.Internal.Utils (traceAroundEvent)-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)-import GHC.Show (showString)-import Numeric (showHex)-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 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.Word (Word64)-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.Extends (peekSomeCStruct)-import Vulkan.CStruct.Extends (pokeSomeCStruct)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Handles (Buffer)-import Vulkan.Core10.Handles (Buffer(..))-import Vulkan.CStruct.Extends (Chain)-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.Enums.DependencyFlagBits (DependencyFlags)-import Vulkan.Dynamic (DeviceCmds(pVkCmdPipelineBarrier2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdResetEvent2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdSetEvent2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdWaitEvents2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteBufferMarker2AMD))-import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteTimestamp2KHR))-import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointData2NV))-import Vulkan.Dynamic (DeviceCmds(pVkQueueSubmit2KHR))-import Vulkan.Core10.FundamentalTypes (DeviceSize)-import Vulkan.Core10.Handles (Event)-import Vulkan.Core10.Handles (Event(..))-import Vulkan.CStruct.Extends (Extends)-import Vulkan.CStruct.Extends (Extendss)-import Vulkan.CStruct.Extends (Extensible(..))-import Vulkan.Core10.Handles (Fence)-import Vulkan.Core10.Handles (Fence(..))-import Vulkan.Core10.FundamentalTypes (Flags)-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Core10.Handles (Image)-import Vulkan.Core10.Enums.ImageLayout (ImageLayout)-import Vulkan.Core10.ImageView (ImageSubresourceRange)-import Vulkan.CStruct.Extends (PeekChain)-import Vulkan.CStruct.Extends (PeekChain(..))-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (PokeChain(..))-import Vulkan.Core10.Handles (QueryPool)-import Vulkan.Core10.Handles (QueryPool(..))-import Vulkan.Core10.Handles (Queue)-import Vulkan.Core10.Handles (Queue(..))-import Vulkan.Core10.Handles (Queue(Queue))-import Vulkan.Core10.Handles (Queue_T)-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)-import Vulkan.Core10.Handles (Semaphore)-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Exception (VulkanException(..))-import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoKHR)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoNV)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2_KHR))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.FundamentalTypes (Flags64)-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetEvent2KHR- :: FunPtr (Ptr CommandBuffer_T -> Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Event -> Ptr DependencyInfoKHR -> IO ()---- | vkCmdSetEvent2KHR - Set an event object to signaled state------ = Description------ When 'cmdSetEvent2KHR' is submitted to a queue, it defines the first--- half of memory dependencies defined by @pDependencyInfo@, as well as an--- event signal operation which sets the event to the signaled state. A--- memory dependency is defined between the event signal operation and--- commands that occur earlier in submission order.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers Queue family ownership transfers>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>--- defined by @pDependencyInfo@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- includes only--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.------ Future 'cmdWaitEvents2KHR' commands rely on all values of each element--- in @pDependencyInfo@ matching exactly with those used to signal the--- corresponding event. 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents'--- /must/ not be used to wait on the result of a signal operation defined--- by 'cmdSetEvent2KHR'.------ Note------ The extra information provided by 'cmdSetEvent2KHR' compared to--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent' allows implementations--- to more efficiently schedule the operations required to satisfy the--- requested dependencies. With--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent', the full dependency--- information is not known until--- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' is recorded, forcing--- implementations to insert the required operations at that point and not--- before.------ If @event@ is already in the signaled state when 'cmdSetEvent2KHR' is--- executed on the device, then 'cmdSetEvent2KHR' has no effect, no event--- signal operation occurs, and no dependency is generated.------ == Valid Usage------ - #VUID-vkCmdSetEvent2KHR-synchronization2-03824# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature /must/ be enabled------ - #VUID-vkCmdSetEvent2KHR-dependencyFlags-03825# The @dependencyFlags@--- member of @pDependencyInfo@ /must/ be @0@------ - #VUID-vkCmdSetEvent2KHR-commandBuffer-03826# The current device mask--- of @commandBuffer@ /must/ include exactly one physical device------ - #VUID-vkCmdSetEvent2KHR-srcStageMask-03827# The @srcStageMask@--- member of any element of the @pMemoryBarriers@,--- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of--- @pDependencyInfo@ /must/ only include pipeline stages valid for the--- queue family that was used to create the command pool that--- @commandBuffer@ was allocated from------ - #VUID-vkCmdSetEvent2KHR-dstStageMask-03828# The @dstStageMask@--- member of any element of the @pMemoryBarriers@,--- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of--- @pDependencyInfo@ /must/ only include pipeline stages valid for the--- queue family that was used to create the command pool that--- @commandBuffer@ was allocated from------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetEvent2KHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetEvent2KHR-event-parameter# @event@ /must/ be a valid--- 'Vulkan.Core10.Handles.Event' handle------ - #VUID-vkCmdSetEvent2KHR-pDependencyInfo-parameter# @pDependencyInfo@--- /must/ be a valid pointer to a valid 'DependencyInfoKHR' structure------ - #VUID-vkCmdSetEvent2KHR-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-vkCmdSetEvent2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdSetEvent2KHR-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdSetEvent2KHR-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_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfoKHR',--- 'Vulkan.Core10.Handles.Event'-cmdSetEvent2KHR :: 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- -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfoKHR' structure- -- defining the first scopes of this operation.- DependencyInfoKHR- -> io ()-cmdSetEvent2KHR commandBuffer event dependencyInfo = liftIO . evalContT $ do- let vkCmdSetEvent2KHRPtr = pVkCmdSetEvent2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdSetEvent2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent2KHR is null" Nothing Nothing- let vkCmdSetEvent2KHR' = mkVkCmdSetEvent2KHR vkCmdSetEvent2KHRPtr- pDependencyInfo <- ContT $ withCStruct (dependencyInfo)- lift $ traceAroundEvent "vkCmdSetEvent2KHR" (vkCmdSetEvent2KHR' (commandBufferHandle (commandBuffer)) (event) pDependencyInfo)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdResetEvent2KHR- :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags2KHR -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags2KHR -> IO ()---- | vkCmdResetEvent2KHR - Reset an event object to non-signaled state------ = Description------ When 'cmdResetEvent2KHR' is submitted to a queue, it defines an--- execution dependency on commands that were submitted before it, and--- defines an event unsignal operation which resets the event to the--- unsignaled state.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than @stageMask@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes only the event unsignal operation.------ If @event@ is already in the unsignaled state when 'cmdResetEvent2KHR'--- is executed on the device, then this command has no effect, no event--- unsignal operation occurs, and no execution dependency is generated.------ == Valid Usage------ - #VUID-vkCmdResetEvent2KHR-stageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-vkCmdResetEvent2KHR-stageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-vkCmdResetEvent2KHR-stageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdResetEvent2KHR-stageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdResetEvent2KHR-stageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdResetEvent2KHR-stageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdResetEvent2KHR-stageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdResetEvent2KHR-stageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdResetEvent2KHR-stageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @stageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-vkCmdResetEvent2KHR-stageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @stageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-vkCmdResetEvent2KHR-synchronization2-03829# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature /must/ be enabled------ - #VUID-vkCmdResetEvent2KHR-stageMask-03830# @stageMask@ /must/ not--- include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-vkCmdResetEvent2KHR-event-03831# There /must/ be an execution--- dependency between 'cmdResetEvent2KHR' and the execution of any--- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' that includes--- @event@ in its @pEvents@ parameter------ - #VUID-vkCmdResetEvent2KHR-event-03832# There /must/ be an execution--- dependency between 'cmdResetEvent2KHR' and the execution of any--- 'cmdWaitEvents2KHR' that includes @event@ in its @pEvents@ parameter------ - #VUID-vkCmdResetEvent2KHR-commandBuffer-03833# @commandBuffer@’s--- current device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ - #VUID-vkCmdResetEvent2KHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdResetEvent2KHR-event-parameter# @event@ /must/ be a valid--- 'Vulkan.Core10.Handles.Event' handle------ - #VUID-vkCmdResetEvent2KHR-stageMask-parameter# @stageMask@ /must/ be--- a valid combination of 'PipelineStageFlagBits2KHR' values------ - #VUID-vkCmdResetEvent2KHR-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-vkCmdResetEvent2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdResetEvent2KHR-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdResetEvent2KHR-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_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'PipelineStageFlags2KHR'-cmdResetEvent2KHR :: 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 'PipelineStageFlags2KHR' mask of pipeline stages used- -- to determine the first- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.- ("stageMask" ::: PipelineStageFlags2KHR)- -> io ()-cmdResetEvent2KHR commandBuffer event stageMask = liftIO $ do- let vkCmdResetEvent2KHRPtr = pVkCmdResetEvent2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdResetEvent2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent2KHR is null" Nothing Nothing- let vkCmdResetEvent2KHR' = mkVkCmdResetEvent2KHR vkCmdResetEvent2KHRPtr- traceAroundEvent "vkCmdResetEvent2KHR" (vkCmdResetEvent2KHR' (commandBufferHandle (commandBuffer)) (event) (stageMask))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdWaitEvents2KHRUnsafe- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()--foreign import ccall- "dynamic" mkVkCmdWaitEvents2KHRSafe- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()---- | cmdWaitEvents2KHR with selectable safeness-cmdWaitEvents2KHRSafeOrUnsafe :: forall io- . (MonadIO io)- => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> Ptr DependencyInfoKHR -> IO ())- -> -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.- ("events" ::: Vector Event)- -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@- -- 'DependencyInfoKHR' structures, defining the second- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.- ("dependencyInfos" ::: Vector DependencyInfoKHR)- -> io ()-cmdWaitEvents2KHRSafeOrUnsafe mkVkCmdWaitEvents2KHR commandBuffer events dependencyInfos = liftIO . evalContT $ do- let vkCmdWaitEvents2KHRPtr = pVkCmdWaitEvents2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdWaitEvents2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents2KHR is null" Nothing Nothing- let vkCmdWaitEvents2KHR' = mkVkCmdWaitEvents2KHR vkCmdWaitEvents2KHRPtr- let pEventsLength = Data.Vector.length $ (events)- lift $ unless ((Data.Vector.length $ (dependencyInfos)) == pEventsLength) $- throwIO $ IOError Nothing InvalidArgument "" "pDependencyInfos and pEvents must have the same length" Nothing Nothing- pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)- pPDependencyInfos <- ContT $ allocaBytes @DependencyInfoKHR ((Data.Vector.length (dependencyInfos)) * 64)- Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPDependencyInfos `plusPtr` (64 * (i)) :: Ptr DependencyInfoKHR) (e) . ($ ())) (dependencyInfos)- lift $ traceAroundEvent "vkCmdWaitEvents2KHR" (vkCmdWaitEvents2KHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pEventsLength :: Word32)) (pPEvents) (pPDependencyInfos))- pure $ ()---- | vkCmdWaitEvents2KHR - Wait for one or more events------ = Description------ When 'cmdWaitEvents2KHR' is submitted to a queue, it inserts memory--- dependencies according to the elements of @pDependencyInfos@ and each--- corresponding element of @pEvents@. 'cmdWaitEvents2KHR' /must/ not be--- used to wait on event signal operations occurring on other queues, or--- signal operations executed by--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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 'cmdSetEvent2KHR' command that occurred--- earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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_KHR',--- and the first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- defined by the element of @pDependencyInfos@ at index i only--- includes host operations ('PIPELINE_STAGE_2_HOST_BIT_KHR').------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>--- than 'cmdWaitEvents2KHR'.------ Note------ 'cmdWaitEvents2KHR' is used with 'cmdSetEvent2KHR' to define a memory--- dependency between two sets of action commands, roughly in the same way--- as pipeline barriers, but split into two commands such that work between--- the two /may/ execute unhindered.------ Note------ Applications should be careful to avoid race conditions when using--- events. There is no direct ordering guarantee between 'cmdSetEvent2KHR'--- and 'cmdResetEvent2KHR',--- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent', or--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'. Another execution--- dependency (e.g. a pipeline barrier or semaphore with--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR') is needed to prevent such a--- race condition.------ == Valid Usage------ - #VUID-vkCmdWaitEvents2KHR-synchronization2-03836# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature /must/ be enabled------ - #VUID-vkCmdWaitEvents2KHR-pEvents-03837# Members of @pEvents@ /must/--- not have been signaled by--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'------ - #VUID-vkCmdWaitEvents2KHR-pEvents-03838# For any element i of--- @pEvents@, if that event is signaled by 'cmdSetEvent2KHR', that--- command’s @dependencyInfo@ parameter /must/ be exactly equal to the--- ith element of @pDependencyInfos@------ - #VUID-vkCmdWaitEvents2KHR-pEvents-03839# For any element i of--- @pEvents@, if that event is signaled by--- '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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>------ - #VUID-vkCmdWaitEvents2KHR-pEvents-03840# For any element i of--- @pEvents@, if barriers in the ith element of @pDependencyInfos@--- include only host operations, the ith element of @pEvents@ /must/ be--- signaled before 'cmdWaitEvents2KHR' is executed------ - #VUID-vkCmdWaitEvents2KHR-pEvents-03841# For any element i of--- @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 'cmdSetEvent2KHR' that occurred earlier--- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>------ - #VUID-vkCmdWaitEvents2KHR-srcStageMask-03842# The @srcStageMask@--- member of any element of the @pMemoryBarriers@,--- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of--- @pDependencyInfos@ /must/ either include only pipeline stages valid--- for the queue family that was used to create the command pool that--- @commandBuffer@ was allocated from, or include only--- 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-vkCmdWaitEvents2KHR-dstStageMask-03843# The @dstStageMask@--- member of any element of the @pMemoryBarriers@,--- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of--- @pDependencyInfos@ /must/ only include pipeline stages valid for the--- queue family that was used to create the command pool that--- @commandBuffer@ was allocated from------ - #VUID-vkCmdWaitEvents2KHR-dependencyFlags-03844# The--- @dependencyFlags@ member of any element of @pDependencyInfo@ /must/--- be @0@------ - #VUID-vkCmdWaitEvents2KHR-pEvents-03845# 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 'cmdWaitEvents2KHR' /must/ not be called--- inside a render pass instance------ - #VUID-vkCmdWaitEvents2KHR-commandBuffer-03846# @commandBuffer@’s--- current device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ - #VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdWaitEvents2KHR-pEvents-parameter# @pEvents@ /must/ be a--- valid pointer to an array of @eventCount@ valid--- 'Vulkan.Core10.Handles.Event' handles------ - #VUID-vkCmdWaitEvents2KHR-pDependencyInfos-parameter#--- @pDependencyInfos@ /must/ be a valid pointer to an array of--- @eventCount@ valid 'DependencyInfoKHR' structures------ - #VUID-vkCmdWaitEvents2KHR-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-vkCmdWaitEvents2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdWaitEvents2KHR-eventCount-arraylength# @eventCount@--- /must/ be greater than @0@------ - #VUID-vkCmdWaitEvents2KHR-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_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfoKHR',--- 'Vulkan.Core10.Handles.Event'-cmdWaitEvents2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.- ("events" ::: Vector Event)- -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@- -- 'DependencyInfoKHR' structures, defining the second- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.- ("dependencyInfos" ::: Vector DependencyInfoKHR)- -> io ()-cmdWaitEvents2KHR = cmdWaitEvents2KHRSafeOrUnsafe mkVkCmdWaitEvents2KHRUnsafe---- | A variant of 'cmdWaitEvents2KHR' which makes a *safe* FFI call-cmdWaitEvents2KHRSafe :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.- ("events" ::: Vector Event)- -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@- -- 'DependencyInfoKHR' structures, defining the second- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.- ("dependencyInfos" ::: Vector DependencyInfoKHR)- -> io ()-cmdWaitEvents2KHRSafe = cmdWaitEvents2KHRSafeOrUnsafe mkVkCmdWaitEvents2KHRSafe---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdPipelineBarrier2KHR- :: FunPtr (Ptr CommandBuffer_T -> Ptr DependencyInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr DependencyInfoKHR -> IO ()---- | vkCmdPipelineBarrier2KHR - Insert a memory dependency------ = Description------ When 'cmdPipelineBarrier2KHR' is submitted to a queue, it defines memory--- dependencies between commands that were submitted before it, and those--- submitted after it.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ If 'cmdPipelineBarrier2KHR' is recorded within a render pass instance,--- the synchronization scopes are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies limited to operations within the same subpass>.------ == Valid Usage------ - #VUID-vkCmdPipelineBarrier2KHR-pDependencies-02285# If--- 'cmdPipelineBarrier2KHR' 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-vkCmdPipelineBarrier2KHR-bufferMemoryBarrierCount-01178# If--- 'cmdPipelineBarrier2KHR' is called within a render pass instance, it--- /must/ not include any buffer memory barriers------ - #VUID-vkCmdPipelineBarrier2KHR-image-04073# If--- 'cmdPipelineBarrier2KHR' 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-vkCmdPipelineBarrier2KHR-oldLayout-01181# If--- 'cmdPipelineBarrier2KHR' 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-vkCmdPipelineBarrier2KHR-srcQueueFamilyIndex-01182# If--- 'cmdPipelineBarrier2KHR' 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-vkCmdPipelineBarrier2KHR-dependencyFlags-01186# If--- 'cmdPipelineBarrier2KHR' 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-vkCmdPipelineBarrier2KHR-None-06191# If--- 'cmdPipelineBarrier2KHR' is called within a render pass instance,--- the render pass /must/ not have been started with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'------ - #VUID-vkCmdPipelineBarrier2KHR-synchronization2-03848# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature /must/ be enabled------ - #VUID-vkCmdPipelineBarrier2KHR-srcStageMask-03849# The--- @srcStageMask@ member of any element of the @pMemoryBarriers@,--- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of--- @pDependencyInfo@ /must/ only include pipeline stages valid for the--- queue family that was used to create the command pool that--- @commandBuffer@ was allocated from------ - #VUID-vkCmdPipelineBarrier2KHR-dstStageMask-03850# The--- @dstStageMask@ member of any element of the @pMemoryBarriers@,--- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of--- @pDependencyInfo@ /must/ only include pipeline stages valid for the--- queue family that was used to create the command pool that--- @commandBuffer@ was allocated from------ == Valid Usage (Implicit)------ - #VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdPipelineBarrier2KHR-pDependencyInfo-parameter#--- @pDependencyInfo@ /must/ be a valid pointer to a valid--- 'DependencyInfoKHR' structure------ - #VUID-vkCmdPipelineBarrier2KHR-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-vkCmdPipelineBarrier2KHR-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_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'DependencyInfoKHR'-cmdPipelineBarrier2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @pDependencyInfo@ is a pointer to a 'DependencyInfoKHR' structure- -- defining the scopes of this operation.- DependencyInfoKHR- -> io ()-cmdPipelineBarrier2KHR commandBuffer dependencyInfo = liftIO . evalContT $ do- let vkCmdPipelineBarrier2KHRPtr = pVkCmdPipelineBarrier2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdPipelineBarrier2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier2KHR is null" Nothing Nothing- let vkCmdPipelineBarrier2KHR' = mkVkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHRPtr- pDependencyInfo <- ContT $ withCStruct (dependencyInfo)- lift $ traceAroundEvent "vkCmdPipelineBarrier2KHR" (vkCmdPipelineBarrier2KHR' (commandBufferHandle (commandBuffer)) pDependencyInfo)- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkQueueSubmit2KHR- :: FunPtr (Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2KHR) -> Fence -> IO Result) -> Ptr Queue_T -> Word32 -> Ptr (SomeStruct SubmitInfo2KHR) -> Fence -> IO Result---- | vkQueueSubmit2KHR - Submits command buffers to a queue------ = Description------ 'queueSubmit2KHR' is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,--- with each batch defined by an element of @pSubmits@.------ Semaphore operations submitted with 'queueSubmit2KHR' 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.2-extensions/html/vkspec.html#synchronization-semaphores semaphore>--- section of--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>,--- it is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,--- back to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.------ If 'queueSubmit2KHR' fails, it /may/ return--- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or--- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'. If it does, the--- implementation /must/ ensure that the state and contents of any--- resources or synchronization primitives referenced by the submitted--- command buffers and any semaphores referenced by @pSubmits@ is--- unaffected by the call or its failure. If 'queueSubmit2KHR' fails in--- such a 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.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>.------ == Valid Usage------ - #VUID-vkQueueSubmit2KHR-fence-04894# If @fence@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be--- unsignaled------ - #VUID-vkQueueSubmit2KHR-fence-04895# If @fence@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ not be--- associated with any other queue command that has not yet completed--- execution on that queue------ - #VUID-vkQueueSubmit2KHR-synchronization2-03866# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature /must/ be enabled------ - #VUID-vkQueueSubmit2KHR-commandBuffer-03867# If a command recorded--- into the @commandBuffer@ member of any element of the--- @pCommandBufferInfos@ member of any element of @pSubmits@ referenced--- an 'Vulkan.Core10.Handles.Event', that event /must/ not be--- referenced by a command that has been submitted to another queue and--- is still in the /pending state/------ - #VUID-vkQueueSubmit2KHR-semaphore-03868# The @semaphore@ member of--- any binary semaphore element of the @pSignalSemaphoreInfos@ member--- of any element of @pSubmits@ /must/ be unsignaled when the semaphore--- signal operation it defines is executed on the device------ - #VUID-vkQueueSubmit2KHR-stageMask-03869# The @stageMask@ member of--- any element of the @pSignalSemaphoreInfos@ member of any element of--- @pSubmits@ /must/ only include pipeline stages that are supported by--- the queue family which @queue@ belongs to------ - #VUID-vkQueueSubmit2KHR-stageMask-03870# The @stageMask@ member of--- any element of the @pWaitSemaphoreInfos@ member of any element of--- @pSubmits@ /must/ only include pipeline stages that are supported by--- the queue family which @queue@ belongs to------ - #VUID-vkQueueSubmit2KHR-semaphore-03871# When a semaphore wait--- operation for a binary semaphore is executed, as defined by the--- @semaphore@ member of any element of the @pWaitSemaphoreInfos@--- member of any element of @pSubmits@, there /must/ be no other queues--- waiting on the same semaphore------ - #VUID-vkQueueSubmit2KHR-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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>--- previously submitted for execution------ - #VUID-vkQueueSubmit2KHR-semaphore-03873# Any @semaphore@ member of--- any element of the @pWaitSemaphoreInfos@ member of any element of--- @pSubmits@ that was created with a--- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.SemaphoreTypeKHR' of--- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.SEMAPHORE_TYPE_BINARY_KHR'--- /must/ reference a semaphore signal operation that has been--- submitted for execution and any semaphore signal operations on which--- it depends (if any) /must/ have also been submitted for execution------ - #VUID-vkQueueSubmit2KHR-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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>------ - #VUID-vkQueueSubmit2KHR-commandBuffer-03875# If a command 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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>------ - #VUID-vkQueueSubmit2KHR-commandBuffer-03876# Any--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>------ - #VUID-vkQueueSubmit2KHR-commandBuffer-03877# If any--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>------ - #VUID-vkQueueSubmit2KHR-commandBuffer-03878# The @commandBuffer@--- member of any element of the @pCommandBufferInfos@ member of any--- element of @pSubmits@ /must/ have been allocated from a--- 'Vulkan.Core10.Handles.CommandPool' that was created for the same--- queue family @queue@ belongs to------ - #VUID-vkQueueSubmit2KHR-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.2-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.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>,--- and which happens before the acquire operation------ - #VUID-vkQueueSubmit2KHR-commandBuffer-03880# If a command recorded--- into the @commandBuffer@ member of any element of the--- @pCommandBufferInfos@ member of any element of @pSubmits@ was a--- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery' whose--- @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 continuously on the--- 'Vulkan.Core10.Handles.Device' that @queue@ was retrieved from,--- throughout recording of those command buffers------ - #VUID-vkQueueSubmit2KHR-queue-06447# If @queue@ was not created with--- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT',--- the @flags@ member of any element of @pSubmits@ /must/ not include--- 'SUBMIT_PROTECTED_BIT_KHR'------ == Valid Usage (Implicit)------ - #VUID-vkQueueSubmit2KHR-queue-parameter# @queue@ /must/ be a valid--- 'Vulkan.Core10.Handles.Queue' handle------ - #VUID-vkQueueSubmit2KHR-pSubmits-parameter# If @submitCount@ is not--- @0@, @pSubmits@ /must/ be a valid pointer to an array of--- @submitCount@ valid 'SubmitInfo2KHR' structures------ - #VUID-vkQueueSubmit2KHR-fence-parameter# If @fence@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be a valid--- 'Vulkan.Core10.Handles.Fence' handle------ - #VUID-vkQueueSubmit2KHR-commonparent# Both of @fence@, and @queue@--- 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 @queue@ /must/ be externally synchronized------ - Host access to @fence@ /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> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ == 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'------ - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'------ - 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.Fence', 'Vulkan.Core10.Handles.Queue',--- 'SubmitInfo2KHR'-queueSubmit2KHR :: forall io- . (MonadIO io)- => -- | @queue@ is the queue that the command buffers will be submitted to.- Queue- -> -- | @pSubmits@ is a pointer to an array of 'SubmitInfo2KHR' structures, each- -- specifying a command buffer submission batch.- ("submits" ::: Vector (SomeStruct SubmitInfo2KHR))- -> -- | @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.2-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.- Fence- -> io ()-queueSubmit2KHR queue submits fence = liftIO . evalContT $ do- let vkQueueSubmit2KHRPtr = pVkQueueSubmit2KHR (case queue of Queue{deviceCmds} -> deviceCmds)- lift $ unless (vkQueueSubmit2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueSubmit2KHR is null" Nothing Nothing- let vkQueueSubmit2KHR' = mkVkQueueSubmit2KHR vkQueueSubmit2KHRPtr- pPSubmits <- ContT $ allocaBytes @(SubmitInfo2KHR _) ((Data.Vector.length (submits)) * 64)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPSubmits `plusPtr` (64 * (i)) :: Ptr (SubmitInfo2KHR _))) (e) . ($ ())) (submits)- r <- lift $ traceAroundEvent "vkQueueSubmit2KHR" (vkQueueSubmit2KHR' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (submits)) :: Word32)) (forgetExtensions (pPSubmits)) (fence))- lift $ when (r < SUCCESS) (throwIO (VulkanException r))---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdWriteTimestamp2KHR- :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> Word32 -> IO ()---- | vkCmdWriteTimestamp2KHR - Write a device timestamp into a query object------ = Description------ When 'cmdWriteTimestamp2KHR' 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://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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--- 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 'cmdWriteTimestamp2KHR' 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-vkCmdWriteTimestamp2KHR-stage-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-vkCmdWriteTimestamp2KHR-stage-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-vkCmdWriteTimestamp2KHR-synchronization2-03858# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature /must/ be enabled------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03859# @stage@ /must/ only--- include a single pipeline stage------ - #VUID-vkCmdWriteTimestamp2KHR-stage-03860# @stage@ /must/ only--- include stages valid for the queue family that was used to create--- the command pool that @commandBuffer@ was allocated from------ - #VUID-vkCmdWriteTimestamp2KHR-queryPool-03861# @queryPool@ /must/--- have been created with a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ - #VUID-vkCmdWriteTimestamp2KHR-queryPool-03862# The query identified--- by @queryPool@ and @query@ /must/ be /unavailable/------ - #VUID-vkCmdWriteTimestamp2KHR-timestampValidBits-03863# The command--- pool’s queue family /must/ support a non-zero @timestampValidBits@------ - #VUID-vkCmdWriteTimestamp2KHR-query-04903# @query@ /must/ be less--- than the number of queries in @queryPool@------ - #VUID-vkCmdWriteTimestamp2KHR-None-03864# All queries used by the--- command /must/ be unavailable------ - #VUID-vkCmdWriteTimestamp2KHR-query-03865# If--- 'cmdWriteTimestamp2KHR' 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-vkCmdWriteTimestamp2KHR-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdWriteTimestamp2KHR-stage-parameter# @stage@ /must/ be a--- valid combination of 'PipelineStageFlagBits2KHR' values------ - #VUID-vkCmdWriteTimestamp2KHR-queryPool-parameter# @queryPool@--- /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle------ - #VUID-vkCmdWriteTimestamp2KHR-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-vkCmdWriteTimestamp2KHR-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, compute, decode,--- or encode operations------ - #VUID-vkCmdWriteTimestamp2KHR-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_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Handles.QueryPool'-cmdWriteTimestamp2KHR :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @stage@ specifies a stage of the pipeline.- PipelineStageFlags2KHR- -> -- | @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 ()-cmdWriteTimestamp2KHR commandBuffer stage queryPool query = liftIO $ do- let vkCmdWriteTimestamp2KHRPtr = pVkCmdWriteTimestamp2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdWriteTimestamp2KHRPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp2KHR is null" Nothing Nothing- let vkCmdWriteTimestamp2KHR' = mkVkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHRPtr- traceAroundEvent "vkCmdWriteTimestamp2KHR" (vkCmdWriteTimestamp2KHR' (commandBufferHandle (commandBuffer)) (stage) (queryPool) (query))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdWriteBufferMarker2AMD- :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> Buffer -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> Buffer -> DeviceSize -> Word32 -> IO ()---- | vkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value--- into a buffer------ = Description------ The command will write the 32-bit marker value into the buffer only--- after all preceding commands have finished executing up to at least the--- specified pipeline stage. This includes the completion of other--- preceding 'cmdWriteBufferMarker2AMD' commands so long as their specified--- pipeline stages occur either at the same time or earlier than this--- command’s specified @stage@.------ While consecutive buffer marker writes with the same @stage@ parameter--- implicitly complete in submission order, memory and execution--- dependencies between buffer marker writes and other operations /must/--- still be explicitly ordered using synchronization commands. The access--- scope for buffer marker writes falls under the--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the--- pipeline stages for identifying the synchronization scope /must/ include--- both @stage@ and--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'.------ Note------ Similar to 'cmdWriteTimestamp2KHR', if an implementation is unable to--- write a marker at any specific pipeline stage, it /may/ instead do so at--- any logically later stage.------ Note------ Implementations /may/ only support a limited number of pipelined marker--- write operations in flight at a given time. Thus an excessive number of--- marker write operations /may/ degrade command execution performance.------ == 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>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-vkCmdWriteBufferMarker2AMD-stage-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-vkCmdWriteBufferMarker2AMD-stage-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @stage@ /must/ not contain--- '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>--- feature is not enabled, @stage@ /must/ not contain--- '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>--- feature is not enabled, @stage@ /must/ not contain--- '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>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdWriteBufferMarker2AMD-stage-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdWriteBufferMarker2AMD-stage-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- 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>--- feature is not enabled, @stage@ /must/ not contain--- '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>--- feature is not enabled, @stage@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature /must/ be enabled------ - #VUID-vkCmdWriteBufferMarker2AMD-stage-03894# @stage@ /must/ include--- only a single pipeline stage------ - #VUID-vkCmdWriteBufferMarker2AMD-stage-03895# @stage@ /must/ include--- only stages that are valid for the queue family that was used to--- create the command pool that @commandBuffer@ was allocated from------ - #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896# @dstOffset@ /must/--- be less than or equal to the size of @dstBuffer@ minus @4@------ - #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897# @dstBuffer@ /must/--- have been created with the--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898# If @dstBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899# @dstOffset@ /must/--- be a multiple of @4@------ == Valid Usage (Implicit)------ - #VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdWriteBufferMarker2AMD-stage-parameter# @stage@ /must/ be--- a valid combination of 'PipelineStageFlagBits2KHR' values------ - #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter# @dstBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdWriteBufferMarker2AMD-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-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdWriteBufferMarker2AMD-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 | Both | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'PipelineStageFlags2KHR'-cmdWriteBufferMarker2AMD :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @stage@ specifies the pipeline stage whose completion triggers the- -- marker write.- PipelineStageFlags2KHR- -> -- | @dstBuffer@ is the buffer where the marker will be written.- ("dstBuffer" ::: Buffer)- -> -- | @dstOffset@ is the byte offset into the buffer where the marker will be- -- written.- ("dstOffset" ::: DeviceSize)- -> -- | @marker@ is the 32-bit value of the marker.- ("marker" ::: Word32)- -> io ()-cmdWriteBufferMarker2AMD commandBuffer stage dstBuffer dstOffset marker = liftIO $ do- let vkCmdWriteBufferMarker2AMDPtr = pVkCmdWriteBufferMarker2AMD (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdWriteBufferMarker2AMDPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarker2AMD is null" Nothing Nothing- let vkCmdWriteBufferMarker2AMD' = mkVkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMDPtr- traceAroundEvent "vkCmdWriteBufferMarker2AMD" (vkCmdWriteBufferMarker2AMD' (commandBufferHandle (commandBuffer)) (stage) (dstBuffer) (dstOffset) (marker))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkGetQueueCheckpointData2NV- :: FunPtr (Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()) -> Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()---- | vkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data------ = Description------ If @pCheckpointData@ is @NULL@, then the number of checkpoint markers--- available is returned in @pCheckpointDataCount@. Otherwise,--- @pCheckpointDataCount@ /must/ point to a variable set by the user to the--- number of elements in the @pCheckpointData@ array, and on return the--- variable is overwritten with the number of structures actually written--- to @pCheckpointData@.------ If @pCheckpointDataCount@ is less than the number of checkpoint markers--- available, at most @pCheckpointDataCount@ structures will be written.------ == Valid Usage------ - #VUID-vkGetQueueCheckpointData2NV-queue-03892# The device that--- @queue@ belongs to /must/ be in the lost state------ == Valid Usage (Implicit)------ - #VUID-vkGetQueueCheckpointData2NV-queue-parameter# @queue@ /must/ be--- a valid 'Vulkan.Core10.Handles.Queue' handle------ - #VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter#--- @pCheckpointDataCount@ /must/ be a valid pointer to a @uint32_t@--- value------ - #VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter# If the--- value referenced by @pCheckpointDataCount@ is not @0@, and--- @pCheckpointData@ is not @NULL@, @pCheckpointData@ /must/ be a valid--- pointer to an array of @pCheckpointDataCount@ 'CheckpointData2NV'--- structures------ = 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_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,--- 'CheckpointData2NV', 'Vulkan.Core10.Handles.Queue'-getQueueCheckpointData2NV :: forall io- . (MonadIO io)- => -- | @queue@ is the 'Vulkan.Core10.Handles.Queue' object the caller would- -- like to retrieve checkpoint data for- Queue- -> io (("checkpointData" ::: Vector CheckpointData2NV))-getQueueCheckpointData2NV queue = liftIO . evalContT $ do- let vkGetQueueCheckpointData2NVPtr = pVkGetQueueCheckpointData2NV (case queue of Queue{deviceCmds} -> deviceCmds)- lift $ unless (vkGetQueueCheckpointData2NVPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueueCheckpointData2NV is null" Nothing Nothing- let vkGetQueueCheckpointData2NV' = mkVkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NVPtr- let queue' = queueHandle (queue)- pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) (nullPtr))- pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount- pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointData2NV ((fromIntegral (pCheckpointDataCount)) * 32)) free- _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointData2NV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]- lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) ((pPCheckpointData)))- pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount- pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointData2NV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointData2NV)))- pure $ (pCheckpointData')----- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV"-pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR----- No documentation found for TopLevel "VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV"-pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR----- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV"-pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR----- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV"-pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR----- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV"-pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR----- 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_TRANSFER_BIT_KHR"-pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR----- | VkMemoryBarrier2KHR - Structure specifying a global memory barrier------ = Description------ This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- affecting all device memory.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-VkMemoryBarrier2KHR-srcStageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03900# If @srcAccessMask@--- includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03901# If @srcAccessMask@--- includes 'ACCESS_2_INDEX_READ_BIT_KHR', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03902# If @srcAccessMask@--- includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03903# If @srcAccessMask@--- includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03904# If @srcAccessMask@--- includes 'ACCESS_2_UNIFORM_READ_BIT_KHR', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03905# If @srcAccessMask@--- includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03906# If @srcAccessMask@--- includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03907# If @srcAccessMask@--- includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03908# If @srcAccessMask@--- includes 'ACCESS_2_SHADER_READ_BIT_KHR', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of--- the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03909# If @srcAccessMask@--- includes 'ACCESS_2_SHADER_WRITE_BIT_KHR', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03910# If @srcAccessMask@--- includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03911# If @srcAccessMask@--- includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03912# If @srcAccessMask@--- includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03913# If @srcAccessMask@--- includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03914# If @srcAccessMask@--- includes 'ACCESS_2_TRANSFER_READ_BIT_KHR', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03915# If @srcAccessMask@--- includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_CLEAR_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03916# If @srcAccessMask@--- includes 'ACCESS_2_HOST_READ_BIT_KHR', @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03917# If @srcAccessMask@--- includes 'ACCESS_2_HOST_WRITE_BIT_KHR', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03918# If @srcAccessMask@--- includes 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03919# If @srcAccessMask@--- includes 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03920# If @srcAccessMask@--- includes 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-04747# If @srcAccessMask@--- includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03922# If @srcAccessMask@--- includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03923# If @srcAccessMask@--- includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-04994# If @srcAccessMask@--- includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03924# If @srcAccessMask@--- includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03925# If @srcAccessMask@--- includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03926# If @srcAccessMask@--- includes 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03927# If @srcAccessMask@--- includes 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03928# If @srcAccessMask@--- includes 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-06256# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @srcAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@--- /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@--- stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03900# If @dstAccessMask@--- includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03901# If @dstAccessMask@--- includes 'ACCESS_2_INDEX_READ_BIT_KHR', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03902# If @dstAccessMask@--- includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03903# If @dstAccessMask@--- includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03904# If @dstAccessMask@--- includes 'ACCESS_2_UNIFORM_READ_BIT_KHR', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03905# If @dstAccessMask@--- includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03906# If @dstAccessMask@--- includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03907# If @dstAccessMask@--- includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03908# If @dstAccessMask@--- includes 'ACCESS_2_SHADER_READ_BIT_KHR', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of--- the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03909# If @dstAccessMask@--- includes 'ACCESS_2_SHADER_WRITE_BIT_KHR', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03910# If @dstAccessMask@--- includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03911# If @dstAccessMask@--- includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03912# If @dstAccessMask@--- includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03913# If @dstAccessMask@--- includes 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03914# If @dstAccessMask@--- includes 'ACCESS_2_TRANSFER_READ_BIT_KHR', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03915# If @dstAccessMask@--- includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_CLEAR_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03916# If @dstAccessMask@--- includes 'ACCESS_2_HOST_READ_BIT_KHR', @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03917# If @dstAccessMask@--- includes 'ACCESS_2_HOST_WRITE_BIT_KHR', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03918# If @dstAccessMask@--- includes 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03919# If @dstAccessMask@--- includes 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03920# If @dstAccessMask@--- includes 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-04747# If @dstAccessMask@--- includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03922# If @dstAccessMask@--- includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03923# If @dstAccessMask@--- includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-04994# If @dstAccessMask@--- includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03924# If @dstAccessMask@--- includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03925# If @dstAccessMask@--- includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03926# If @dstAccessMask@--- includes 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03927# If @dstAccessMask@--- includes 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03928# If @dstAccessMask@--- includes 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-06256# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @dstAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@--- /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@--- stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ == Valid Usage (Implicit)------ - #VUID-VkMemoryBarrier2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'------ - #VUID-VkMemoryBarrier2KHR-srcStageMask-parameter# @srcStageMask@--- /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ - #VUID-VkMemoryBarrier2KHR-srcAccessMask-parameter# @srcAccessMask@--- /must/ be a valid combination of 'AccessFlagBits2KHR' values------ - #VUID-VkMemoryBarrier2KHR-dstStageMask-parameter# @dstStageMask@--- /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ - #VUID-VkMemoryBarrier2KHR-dstAccessMask-parameter# @dstAccessMask@--- /must/ be a valid combination of 'AccessFlagBits2KHR' values------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'AccessFlags2KHR', 'DependencyInfoKHR', 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data MemoryBarrier2KHR = MemoryBarrier2KHR- { -- | @srcStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to- -- be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.- srcStageMask :: PipelineStageFlags2KHR- , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be- -- included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.- srcAccessMask :: AccessFlags2KHR- , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to- -- be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.- dstStageMask :: PipelineStageFlags2KHR- , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be- -- included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.- dstAccessMask :: AccessFlags2KHR- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (MemoryBarrier2KHR)-#endif-deriving instance Show MemoryBarrier2KHR--instance ToCStruct MemoryBarrier2KHR where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p MemoryBarrier2KHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)- poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)- poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)- poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)- f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- f--instance FromCStruct MemoryBarrier2KHR where- peekCStruct p = do- srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))- dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))- dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))- pure $ MemoryBarrier2KHR- srcStageMask srcAccessMask dstStageMask dstAccessMask--instance Storable MemoryBarrier2KHR where- sizeOf ~_ = 48- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero MemoryBarrier2KHR where- zero = MemoryBarrier2KHR- zero- zero- zero- zero----- | VkImageMemoryBarrier2KHR - Structure specifying an image memory barrier------ = Description------ This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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@.------ If @image@ was created with--- '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.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers>.--- A--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>,--- the layout transition is only executed once between the queues.------ Note------ 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--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' in the--- @aspectMask@ member of @subresourceRange@ is equivalent to including--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', and--- (for three-plane formats only)--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'.------ == Valid Usage------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03900# If--- @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03901# If--- @srcAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03902# If--- @srcAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03903# If--- @srcAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03904# If--- @srcAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03905# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03906# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03907# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03908# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of--- the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03909# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03910# If--- @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03911# If--- @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03912# If--- @srcAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03913# If--- @srcAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03914# If--- @srcAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03915# If--- @srcAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_CLEAR_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03916# If--- @srcAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03917# If--- @srcAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03918# If--- @srcAccessMask@ includes--- 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03919# If--- @srcAccessMask@ includes--- 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03920# If--- @srcAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04747# If--- @srcAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03922# If--- @srcAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03923# If--- @srcAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04994# If--- @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03924# If--- @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03925# If--- @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03926# If--- @srcAccessMask@ includes--- 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03927# If--- @srcAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03928# If--- @srcAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @srcStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-06256# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @srcAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@--- /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@--- stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03900# If--- @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03901# If--- @dstAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03902# If--- @dstAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03903# If--- @dstAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03904# If--- @dstAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03905# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03906# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03907# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03908# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of--- the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03909# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03910# If--- @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03911# If--- @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03912# If--- @dstAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03913# If--- @dstAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03914# If--- @dstAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03915# If--- @dstAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_CLEAR_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03916# If--- @dstAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03917# If--- @dstAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03918# If--- @dstAccessMask@ includes--- 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03919# If--- @dstAccessMask@ includes--- 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03920# If--- @dstAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04747# If--- @dstAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03922# If--- @dstAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03923# If--- @dstAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04994# If--- @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03924# If--- @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03925# If--- @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03926# If--- @dstAccessMask@ includes--- 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03927# If--- @dstAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03928# If--- @dstAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @dstStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-06256# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @dstAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@--- /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@--- stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01486#--- @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@--- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was--- created------ - #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01724# If--- @subresourceRange.levelCount@ is not--- 'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',--- @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@--- /must/ be less than or equal to the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ - #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01488#--- @subresourceRange.baseArrayLayer@ /must/ be less than the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @image@ was created------ - #VUID-VkImageMemoryBarrier2KHR-subresourceRange-01725# If--- @subresourceRange.layerCount@ is not--- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',--- @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@--- /must/ be less than or equal to the @arrayLayers@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ - #VUID-VkImageMemoryBarrier2KHR-image-01932# If @image@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01208# 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_COLOR_ATTACHMENT_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01209# 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_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01210# 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_DEPTH_STENCIL_READ_ONLY_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01211# 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_SHADER_READ_ONLY_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01212# 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_TRANSFER_SRC_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01213# 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_TRANSFER_DST_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01197# 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>,--- @oldLayout@ /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or the--- current layout of the image subresources affected by the barrier------ - #VUID-VkImageMemoryBarrier2KHR-newLayout-01198# 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>,--- @newLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01658# 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_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-01659# 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_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04065# 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_DEPTH_READ_ONLY_OPTIMAL'--- then @image@ /must/ have been created with at least one of--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04066# 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_DEPTH_ATTACHMENT_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'--- set------ - #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04067# 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_STENCIL_READ_ONLY_OPTIMAL'--- then @image@ /must/ have been created with at least one of--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04068# 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_STENCIL_ATTACHMENT_OPTIMAL'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'--- set------ - #VUID-VkImageMemoryBarrier2KHR-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>--- 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_OPTIMAL_KHR',--- @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'--- or--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03939# 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_READ_ONLY_OPTIMAL_KHR',--- @image@ /must/ have been created with at least one of--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT',--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-02088# 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_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'--- then @image@ /must/ have been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'--- set------ - #VUID-VkImageMemoryBarrier2KHR-image-01671# If @image@ has a--- single-plane color format or is not /disjoint/, then the--- @aspectMask@ member of @subresourceRange@ /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-image-01672# If @image@ has a--- multi-planar format and the image is /disjoint/, then the--- @aspectMask@ member of @subresourceRange@ /must/ include either at--- least one of--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',--- and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';--- or /must/ include--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-image-01673# If @image@ has a--- multi-planar format with only two planes, then the @aspectMask@--- member of @subresourceRange@ /must/ not include--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-image-03319# If @image@ has a--- depth\/stencil format with both depth and stencil and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>--- feature is enabled, then the @aspectMask@ member of--- @subresourceRange@ /must/ include either or both--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-image-03320# If @image@ has a--- depth\/stencil format with both depth and stencil and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>--- feature is not enabled, then the @aspectMask@ member of--- @subresourceRange@ /must/ include both--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ - #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04070# If--- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at--- least one /must/ not be a special queue family reserved for external--- memory ownership transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ - #VUID-VkImageMemoryBarrier2KHR-image-04071# If @image@ was created--- with a sharing mode of--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and--- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the--- special queue family values reserved for external memory transfers,--- the other /must/ be--- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'------ - #VUID-VkImageMemoryBarrier2KHR-image-04072# If @image@ was created--- with a sharing mode of--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid--- queue families, or one of the special queue family values reserved--- for external memory transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03854# If either--- @srcStageMask@ or @dstStageMask@ includes--- 'PIPELINE_STAGE_2_HOST_BIT_KHR', @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ /must/ be equal------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03855# If @srcStageMask@--- includes 'PIPELINE_STAGE_2_HOST_BIT_KHR', and @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>,--- @oldLayout@ /must/ be one of--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ == Valid Usage (Implicit)------ - #VUID-VkImageMemoryBarrier2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'------ - #VUID-VkImageMemoryBarrier2KHR-pNext-pNext# @pNext@ /must/ be @NULL@--- or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT'------ - #VUID-VkImageMemoryBarrier2KHR-sType-unique# The @sType@ value of--- each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-parameter#--- @srcStageMask@ /must/ be a valid combination of--- 'PipelineStageFlagBits2KHR' values------ - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-parameter#--- @srcAccessMask@ /must/ be a valid combination of--- 'AccessFlagBits2KHR' values------ - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-parameter#--- @dstStageMask@ /must/ be a valid combination of--- 'PipelineStageFlagBits2KHR' values------ - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-parameter#--- @dstAccessMask@ /must/ be a valid combination of--- 'AccessFlagBits2KHR' values------ - #VUID-VkImageMemoryBarrier2KHR-oldLayout-parameter# @oldLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-VkImageMemoryBarrier2KHR-newLayout-parameter# @newLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-VkImageMemoryBarrier2KHR-image-parameter# @image@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-VkImageMemoryBarrier2KHR-subresourceRange-parameter#--- @subresourceRange@ /must/ be a valid--- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'AccessFlags2KHR', 'DependencyInfoKHR', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange',--- 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageMemoryBarrier2KHR (es :: [Type]) = ImageMemoryBarrier2KHR- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @srcStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to- -- be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.- srcStageMask :: PipelineStageFlags2KHR- , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be- -- included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.- srcAccessMask :: AccessFlags2KHR- , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to- -- be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.- dstStageMask :: PipelineStageFlags2KHR- , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be- -- included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.- dstAccessMask :: AccessFlags2KHR- , -- | @oldLayout@ is the old layout in an- -- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#resources-image-views image subresource range>- -- within @image@ that is affected by this barrier.- subresourceRange :: ImageSubresourceRange- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageMemoryBarrier2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (ImageMemoryBarrier2KHR es)--instance Extensible ImageMemoryBarrier2KHR where- extensibleTypeName = "ImageMemoryBarrier2KHR"- setNext ImageMemoryBarrier2KHR{..} next' = ImageMemoryBarrier2KHR{next = next', ..}- getNext ImageMemoryBarrier2KHR{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier2KHR e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f- | otherwise = Nothing--instance (Extendss ImageMemoryBarrier2KHR es, PokeChain es) => ToCStruct (ImageMemoryBarrier2KHR es) where- withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageMemoryBarrier2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)- lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)- lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)- lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)- lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (oldLayout)- lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (newLayout)- lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (srcQueueFamilyIndex)- lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (dstQueueFamilyIndex)- lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (image)- lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (subresourceRange)- lift $ f- cStructSize = 96- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)- lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (zero)- lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)- lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)- lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (zero)- lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (zero)- lift $ f--instance (Extendss ImageMemoryBarrier2KHR es, PeekChain es) => FromCStruct (ImageMemoryBarrier2KHR es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))- dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))- dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))- oldLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))- newLayout <- peek @ImageLayout ((p `plusPtr` 52 :: Ptr ImageLayout))- srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))- dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))- image <- peek @Image ((p `plusPtr` 64 :: Ptr Image))- subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 72 :: Ptr ImageSubresourceRange))- pure $ ImageMemoryBarrier2KHR- next srcStageMask srcAccessMask dstStageMask dstAccessMask oldLayout newLayout srcQueueFamilyIndex dstQueueFamilyIndex image subresourceRange--instance es ~ '[] => Zero (ImageMemoryBarrier2KHR es) where- zero = ImageMemoryBarrier2KHR- ()- zero- zero- zero- zero- zero- zero- zero- zero- zero- zero----- | VkBufferMemoryBarrier2KHR - Structure specifying a buffer memory barrier------ = Description------ This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>--- for that range.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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@.------ If @buffer@ was created with--- '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.2-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.2-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.2-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.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers>.--- A--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>--- is defined when @srcQueueFamilyIndex@ is one of those values.------ == Valid Usage------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03900# If--- @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03901# If--- @srcAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03902# If--- @srcAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03903# If--- @srcAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03904# If--- @srcAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03905# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03906# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03907# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03908# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of--- the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03909# If--- @srcAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03910# If--- @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03911# If--- @srcAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03912# If--- @srcAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03913# If--- @srcAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03914# If--- @srcAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03915# If--- @srcAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_CLEAR_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03916# If--- @srcAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03917# If--- @srcAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',--- @srcStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03918# If--- @srcAccessMask@ includes--- 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03919# If--- @srcAccessMask@ includes--- 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03920# If--- @srcAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @srcStageMask@ /must/--- include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04747# If--- @srcAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03922# If--- @srcAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03923# If--- @srcAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04994# If--- @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03924# If--- @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03925# If--- @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',--- @srcStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03926# If--- @srcAccessMask@ includes--- 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @srcStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03927# If--- @srcAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03928# If--- @srcAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @srcStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-06256# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @srcAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @srcStageMask@--- /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@--- stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03900# If--- @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03901# If--- @dstAccessMask@ includes 'ACCESS_2_INDEX_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03902# If--- @dstAccessMask@ includes 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03903# If--- @dstAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03904# If--- @dstAccessMask@ includes 'ACCESS_2_UNIFORM_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03905# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03906# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03907# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03908# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or one of--- the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03909# If--- @dstAccessMask@ includes 'ACCESS_2_SHADER_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03910# If--- @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03911# If--- @dstAccessMask@ includes 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03912# If--- @dstAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03913# If--- @dstAccessMask@ includes--- 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03914# If--- @dstAccessMask@ includes 'ACCESS_2_TRANSFER_READ_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03915# If--- @dstAccessMask@ includes 'ACCESS_2_TRANSFER_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR',--- 'PIPELINE_STAGE_2_CLEAR_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR',--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03916# If--- @dstAccessMask@ includes 'ACCESS_2_HOST_READ_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03917# If--- @dstAccessMask@ includes 'ACCESS_2_HOST_WRITE_BIT_KHR',--- @dstStageMask@ /must/ include 'PIPELINE_STAGE_2_HOST_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03918# If--- @dstAccessMask@ includes--- 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03919# If--- @dstAccessMask@ includes--- 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03920# If--- @dstAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT', @dstStageMask@ /must/--- include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04747# If--- @dstAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03922# If--- @dstAccessMask@ includes--- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03923# If--- @dstAccessMask@ includes 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV',--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04994# If--- @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03924# If--- @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03925# If--- @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV',--- @dstStageMask@ /must/ include--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03926# If--- @dstAccessMask@ includes--- 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT', @dstStageMask@--- /must/ include 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'--- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03927# If--- @dstAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR', or one of the--- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03928# If--- @dstAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR', @dstStageMask@--- /must/ include--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-06256# If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @dstAccessMask@ includes--- 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', @dstStageMask@--- /must/ not include any of the @VK_PIPELINE_STAGE_*_SHADER_BIT@--- stages except 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-offset-01187# @offset@ /must/ be--- less than the size of @buffer@------ - #VUID-VkBufferMemoryBarrier2KHR-size-01188# If @size@ is not equal--- to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater--- than @0@------ - #VUID-VkBufferMemoryBarrier2KHR-size-01189# If @size@ is not equal--- to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less--- than or equal to than the size of @buffer@ minus @offset@------ - #VUID-VkBufferMemoryBarrier2KHR-buffer-01931# If @buffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-VkBufferMemoryBarrier2KHR-srcQueueFamilyIndex-04087# If--- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at--- least one /must/ not be a special queue family reserved for external--- memory ownership transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ - #VUID-VkBufferMemoryBarrier2KHR-buffer-04088# If @buffer@ was--- created with a sharing mode of--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and--- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the--- special queue family values reserved for external memory transfers,--- the other /must/ be--- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'------ - #VUID-VkBufferMemoryBarrier2KHR-buffer-04089# If @buffer@ was--- created with a sharing mode of--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal,--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid--- queue families, or one of the special queue family values reserved--- for external memory transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???>------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03851# If either--- @srcStageMask@ or @dstStageMask@ includes--- 'PIPELINE_STAGE_2_HOST_BIT_KHR', @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ /must/ be equal------ == Valid Usage (Implicit)------ - #VUID-VkBufferMemoryBarrier2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'------ - #VUID-VkBufferMemoryBarrier2KHR-pNext-pNext# @pNext@ /must/ be--- @NULL@------ - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-parameter#--- @srcStageMask@ /must/ be a valid combination of--- 'PipelineStageFlagBits2KHR' values------ - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-parameter#--- @srcAccessMask@ /must/ be a valid combination of--- 'AccessFlagBits2KHR' values------ - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-parameter#--- @dstStageMask@ /must/ be a valid combination of--- 'PipelineStageFlagBits2KHR' values------ - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-parameter#--- @dstAccessMask@ /must/ be a valid combination of--- 'AccessFlagBits2KHR' values------ - #VUID-VkBufferMemoryBarrier2KHR-buffer-parameter# @buffer@ /must/ be--- a valid 'Vulkan.Core10.Handles.Buffer' handle------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'AccessFlags2KHR', 'Vulkan.Core10.Handles.Buffer', 'DependencyInfoKHR',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data BufferMemoryBarrier2KHR = BufferMemoryBarrier2KHR- { -- | @srcStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to- -- be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.- srcStageMask :: PipelineStageFlags2KHR- , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be- -- included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.- srcAccessMask :: AccessFlags2KHR- , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to- -- be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.- dstStageMask :: PipelineStageFlags2KHR- , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be- -- included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.- dstAccessMask :: AccessFlags2KHR- , -- | @srcQueueFamilyIndex@ is the source queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.- buffer :: Buffer- , -- | @offset@ is an offset in bytes into the backing memory for @buffer@;- -- this is relative to the base offset as bound to the buffer (see- -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory').- offset :: DeviceSize- , -- | @size@ is a size in bytes of the affected area of backing memory for- -- @buffer@, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to use the range- -- from @offset@ to the end of the buffer.- size :: DeviceSize- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferMemoryBarrier2KHR)-#endif-deriving instance Show BufferMemoryBarrier2KHR--instance ToCStruct BufferMemoryBarrier2KHR where- withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)- pokeCStruct p BufferMemoryBarrier2KHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)- poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)- poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)- poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)- poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)- poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)- poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)- poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)- poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size)- f- cStructSize = 80- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)- poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)- f--instance FromCStruct BufferMemoryBarrier2KHR where- peekCStruct p = do- srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))- dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))- dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))- srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))- dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))- buffer <- peek @Buffer ((p `plusPtr` 56 :: Ptr Buffer))- offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))- size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))- pure $ BufferMemoryBarrier2KHR- srcStageMask srcAccessMask dstStageMask dstAccessMask srcQueueFamilyIndex dstQueueFamilyIndex buffer offset size--instance Storable BufferMemoryBarrier2KHR where- sizeOf ~_ = 80- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferMemoryBarrier2KHR where- zero = BufferMemoryBarrier2KHR- zero- zero- zero- zero- zero- zero- zero- zero- zero----- | VkDependencyInfoKHR - Structure specifying dependency information for a--- synchronization command------ = Description------ This structure defines a set of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependencies>,--- as well as--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operations>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>.------ == Valid Usage (Implicit)------ - #VUID-VkDependencyInfoKHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'------ - #VUID-VkDependencyInfoKHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkDependencyInfoKHR-dependencyFlags-parameter#--- @dependencyFlags@ /must/ be a valid combination of--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values------ - #VUID-VkDependencyInfoKHR-pMemoryBarriers-parameter# If--- @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid--- pointer to an array of @memoryBarrierCount@ valid--- 'MemoryBarrier2KHR' structures------ - #VUID-VkDependencyInfoKHR-pBufferMemoryBarriers-parameter# If--- @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@--- /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@--- valid 'BufferMemoryBarrier2KHR' structures------ - #VUID-VkDependencyInfoKHR-pImageMemoryBarriers-parameter# If--- @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/--- be a valid pointer to an array of @imageMemoryBarrierCount@ valid--- 'ImageMemoryBarrier2KHR' structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'BufferMemoryBarrier2KHR',--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',--- 'ImageMemoryBarrier2KHR', 'MemoryBarrier2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'cmdPipelineBarrier2KHR', 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR'-data DependencyInfoKHR = DependencyInfoKHR- { -- | @dependencyFlags@ is a bitmask of- -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying- -- how execution and memory dependencies are formed.- dependencyFlags :: DependencyFlags- , -- | @pMemoryBarriers@ is a pointer to an array of 'MemoryBarrier2KHR'- -- structures defining memory dependencies between any memory accesses.- memoryBarriers :: Vector MemoryBarrier2KHR- , -- | @pBufferMemoryBarriers@ is a pointer to an array of- -- 'BufferMemoryBarrier2KHR' structures defining memory dependencies- -- between buffer ranges.- bufferMemoryBarriers :: Vector BufferMemoryBarrier2KHR- , -- | @pImageMemoryBarriers@ is a pointer to an array of- -- 'ImageMemoryBarrier2KHR' structures defining memory dependencies between- -- image subresources.- imageMemoryBarriers :: Vector (SomeStruct ImageMemoryBarrier2KHR)- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (DependencyInfoKHR)-#endif-deriving instance Show DependencyInfoKHR--instance ToCStruct DependencyInfoKHR where- withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)- pokeCStruct p DependencyInfoKHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr DependencyFlags)) (dependencyFlags)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))- pPMemoryBarriers' <- ContT $ allocaBytes @MemoryBarrier2KHR ((Data.Vector.length (memoryBarriers)) * 48)- lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2KHR) (e)) (memoryBarriers)- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR))) (pPMemoryBarriers')- lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))- pPBufferMemoryBarriers' <- ContT $ allocaBytes @BufferMemoryBarrier2KHR ((Data.Vector.length (bufferMemoryBarriers)) * 80)- lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR) (e)) (bufferMemoryBarriers)- lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR))) (pPBufferMemoryBarriers')- lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))- pPImageMemoryBarriers' <- ContT $ allocaBytes @(ImageMemoryBarrier2KHR _) ((Data.Vector.length (imageMemoryBarriers)) * 96)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _))) (e) . ($ ())) (imageMemoryBarriers)- lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _)))) (pPImageMemoryBarriers')- lift $ f- cStructSize = 64- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPENDENCY_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- f--instance FromCStruct DependencyInfoKHR where- peekCStruct p = do- dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 16 :: Ptr DependencyFlags))- memoryBarrierCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pMemoryBarriers <- peek @(Ptr MemoryBarrier2KHR) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR)))- pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2KHR ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2KHR)))- bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))- pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR)))- pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2KHR ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR)))- imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))- pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2KHR _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _))))- pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _)))))- pure $ DependencyInfoKHR- dependencyFlags pMemoryBarriers' pBufferMemoryBarriers' pImageMemoryBarriers'--instance Zero DependencyInfoKHR where- zero = DependencyInfoKHR- zero- mempty- mempty- mempty----- | VkSemaphoreSubmitInfoKHR - Structure specifying a semaphore signal or--- wait operation------ = Description------ Whether this structure defines a semaphore wait or signal operation is--- defined by how it is used.------ == Valid Usage------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03929# 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--- 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03930# 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--- 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' or--- 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03931# 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--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03932# 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--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03933# 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--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03934# 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--- 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-03935# 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--- 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04956# 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--- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>--- feature is not enabled, @stageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>--- feature is not enabled, @stageMask@ /must/ not contain--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'------ - #VUID-VkSemaphoreSubmitInfoKHR-device-03888# If the @device@ that--- @semaphore@ was created on is not a device group, @deviceIndex@--- /must/ be @0@------ - #VUID-VkSemaphoreSubmitInfoKHR-device-03889# If the @device@ that--- @semaphore@ was created on is a device group, @deviceIndex@ /must/--- be a valid device index------ == Valid Usage (Implicit)------ - #VUID-VkSemaphoreSubmitInfoKHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'------ - #VUID-VkSemaphoreSubmitInfoKHR-pNext-pNext# @pNext@ /must/ be @NULL@------ - #VUID-VkSemaphoreSubmitInfoKHR-semaphore-parameter# @semaphore@--- /must/ be a valid 'Vulkan.Core10.Handles.Semaphore' handle------ - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-parameter# @stageMask@--- /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'PipelineStageFlags2KHR', 'Vulkan.Core10.Handles.Semaphore',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2KHR'-data SemaphoreSubmitInfoKHR = SemaphoreSubmitInfoKHR- { -- | @semaphore@ is a 'Vulkan.Core10.Handles.Semaphore' affected by this- -- operation.- semaphore :: Semaphore- , -- | @value@ is either the value used to signal @semaphore@ or the value- -- waited on by @semaphore@, if @semaphore@ is a timeline semaphore.- -- Otherwise it is ignored.- value :: Word64- , -- | @stageMask@ is a 'PipelineStageFlags2KHR' mask of 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.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>- -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>- -- sections of- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization the synchronization chapter>.- stageMask :: PipelineStageFlags2KHR- , -- | @deviceIndex@ is the index of the device within a device group that- -- executes the semaphore wait or signal operation.- deviceIndex :: Word32- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (SemaphoreSubmitInfoKHR)-#endif-deriving instance Show SemaphoreSubmitInfoKHR--instance ToCStruct SemaphoreSubmitInfoKHR where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p SemaphoreSubmitInfoKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)- poke ((p `plusPtr` 24 :: Ptr Word64)) (value)- poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (stageMask)- poke ((p `plusPtr` 40 :: Ptr Word32)) (deviceIndex)- f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)- poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)- poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)- f--instance FromCStruct SemaphoreSubmitInfoKHR where- peekCStruct p = do- semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))- value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))- stageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))- deviceIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))- pure $ SemaphoreSubmitInfoKHR- semaphore value stageMask deviceIndex--instance Storable SemaphoreSubmitInfoKHR where- sizeOf ~_ = 48- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero SemaphoreSubmitInfoKHR where- zero = SemaphoreSubmitInfoKHR- zero- zero- zero- zero----- | VkCommandBufferSubmitInfoKHR - Structure specifying a command buffer--- submission------ == Valid Usage------ - #VUID-VkCommandBufferSubmitInfoKHR-commandBuffer-03890#--- @commandBuffer@ /must/ not have been allocated with--- 'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'------ - #VUID-VkCommandBufferSubmitInfoKHR-deviceMask-03891# If @deviceMask@--- is not @0@, it /must/ be a valid device mask------ == Valid Usage (Implicit)------ - #VUID-VkCommandBufferSubmitInfoKHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'------ - #VUID-VkCommandBufferSubmitInfoKHR-pNext-pNext# @pNext@ /must/ be--- @NULL@------ - #VUID-VkCommandBufferSubmitInfoKHR-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2KHR'-data CommandBufferSubmitInfoKHR = CommandBufferSubmitInfoKHR- { -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be- -- submitted for execution.- commandBuffer :: Ptr CommandBuffer_T- , -- | @deviceMask@ is a bitmask indicating which devices in a device group- -- execute the command buffer. A @deviceMask@ of @0@ is equivalent to- -- setting all bits corresponding to valid devices in the group to @1@.- deviceMask :: Word32- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CommandBufferSubmitInfoKHR)-#endif-deriving instance Show CommandBufferSubmitInfoKHR--instance ToCStruct CommandBufferSubmitInfoKHR where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p CommandBufferSubmitInfoKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)- poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)- f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)- poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)- f--instance FromCStruct CommandBufferSubmitInfoKHR where- peekCStruct p = do- commandBuffer <- peek @(Ptr CommandBuffer_T) ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T)))- deviceMask <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))- pure $ CommandBufferSubmitInfoKHR- commandBuffer deviceMask--instance Storable CommandBufferSubmitInfoKHR where- sizeOf ~_ = 32- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero CommandBufferSubmitInfoKHR where- zero = CommandBufferSubmitInfoKHR- zero- zero----- | VkSubmitInfo2KHR - Structure specifying a queue submit operation------ == Valid Usage------ - #VUID-VkSubmitInfo2KHR-semaphore-03881# If the same semaphore is--- used as the @semaphore@ member of both an element of--- @pSignalSemaphoreInfos@ and @pWaitSemaphoreInfos@, and that--- semaphore is a timeline semaphore, the @value@ member of the--- @pSignalSemaphoreInfos@ element /must/ be greater than the @value@--- member of the @pWaitSemaphoreInfos@ element------ - #VUID-VkSubmitInfo2KHR-semaphore-03882# If the @semaphore@ member of--- 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.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>--- is executed------ - #VUID-VkSubmitInfo2KHR-semaphore-03883# If the @semaphore@ member of--- any element of @pSignalSemaphoreInfos@ is a timeline semaphore, the--- @value@ member of that element /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.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>------ - #VUID-VkSubmitInfo2KHR-semaphore-03884# If the @semaphore@ member of--- any element of @pWaitSemaphoreInfos@ is a timeline semaphore, the--- @value@ member of that element /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.2-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>------ - #VUID-VkSubmitInfo2KHR-flags-03886# If @flags@ includes--- 'SUBMIT_PROTECTED_BIT_KHR', all elements of @pCommandBuffers@ /must/--- be protected command buffers------ - #VUID-VkSubmitInfo2KHR-flags-03887# If @flags@ does not include--- 'SUBMIT_PROTECTED_BIT_KHR', each element of @pCommandBuffers@ /must/--- not be a protected command buffer------ - #VUID-VkSubmitInfo2KHR-commandBuffer-06192# If any @commandBuffer@--- member of an element of @pCommandBufferInfos@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.2-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.2-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.2-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.2-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.2-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------ == Valid Usage (Implicit)------ - #VUID-VkSubmitInfo2KHR-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'------ - #VUID-VkSubmitInfo2KHR-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_performance_query.PerformanceQuerySubmitInfoKHR',--- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',--- or--- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV'------ - #VUID-VkSubmitInfo2KHR-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique------ - #VUID-VkSubmitInfo2KHR-flags-parameter# @flags@ /must/ be a valid--- combination of 'SubmitFlagBitsKHR' values------ - #VUID-VkSubmitInfo2KHR-pWaitSemaphoreInfos-parameter# If--- @waitSemaphoreInfoCount@ is not @0@, @pWaitSemaphoreInfos@ /must/ be--- a valid pointer to an array of @waitSemaphoreInfoCount@ valid--- 'SemaphoreSubmitInfoKHR' structures------ - #VUID-VkSubmitInfo2KHR-pCommandBufferInfos-parameter# If--- @commandBufferInfoCount@ is not @0@, @pCommandBufferInfos@ /must/ be--- a valid pointer to an array of @commandBufferInfoCount@ valid--- 'CommandBufferSubmitInfoKHR' structures------ - #VUID-VkSubmitInfo2KHR-pSignalSemaphoreInfos-parameter# If--- @signalSemaphoreInfoCount@ is not @0@, @pSignalSemaphoreInfos@--- /must/ be a valid pointer to an array of @signalSemaphoreInfoCount@--- valid 'SemaphoreSubmitInfoKHR' structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'CommandBufferSubmitInfoKHR', 'SemaphoreSubmitInfoKHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitFlagsKHR',--- 'queueSubmit2KHR'-data SubmitInfo2KHR (es :: [Type]) = SubmitInfo2KHR- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is a bitmask of 'SubmitFlagBitsKHR'.- flags :: SubmitFlagsKHR- , -- | @pWaitSemaphoreInfos@ is a pointer to an array of- -- 'SemaphoreSubmitInfoKHR' structures defining- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operations>.- waitSemaphoreInfos :: Vector SemaphoreSubmitInfoKHR- , -- | @pCommandBufferInfos@ is a pointer to an array of- -- 'CommandBufferSubmitInfoKHR' structures describing command buffers to- -- execute in the batch.- commandBufferInfos :: Vector CommandBufferSubmitInfoKHR- , -- | @pSignalSemaphoreInfos@ is a pointer to an array of- -- 'SemaphoreSubmitInfoKHR' describing- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>.- signalSemaphoreInfos :: Vector SemaphoreSubmitInfoKHR- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (SubmitInfo2KHR (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (SubmitInfo2KHR es)--instance Extensible SubmitInfo2KHR where- extensibleTypeName = "SubmitInfo2KHR"- setNext SubmitInfo2KHR{..} next' = SubmitInfo2KHR{next = next', ..}- getNext SubmitInfo2KHR{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo2KHR e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f- | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoKHR = Just f- | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f- | otherwise = Nothing--instance (Extendss SubmitInfo2KHR es, PokeChain es) => ToCStruct (SubmitInfo2KHR es) where- withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)- pokeCStruct p SubmitInfo2KHR{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2_KHR)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (waitSemaphoreInfos)) :: Word32))- pPWaitSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfoKHR ((Data.Vector.length (waitSemaphoreInfos)) * 48)- lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (waitSemaphoreInfos)- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPWaitSemaphoreInfos')- lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32))- pPCommandBufferInfos' <- ContT $ allocaBytes @CommandBufferSubmitInfoKHR ((Data.Vector.length (commandBufferInfos)) * 32)- lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR) (e)) (commandBufferInfos)- lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR))) (pPCommandBufferInfos')- lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))- pPSignalSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfoKHR ((Data.Vector.length (signalSemaphoreInfos)) * 48)- lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (signalSemaphoreInfos)- lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPSignalSemaphoreInfos')- lift $ f- cStructSize = 64- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO_2_KHR)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ f--instance (Extendss SubmitInfo2KHR es, PeekChain es) => FromCStruct (SubmitInfo2KHR es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @SubmitFlagsKHR ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR))- waitSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))- pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))- commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))- pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfoKHR) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR)))- pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfoKHR ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR)))- signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))- pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))- pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))- pure $ SubmitInfo2KHR- next flags pWaitSemaphoreInfos' pCommandBufferInfos' pSignalSemaphoreInfos'--instance es ~ '[] => Zero (SubmitInfo2KHR es) where- zero = SubmitInfo2KHR- ()- zero- mempty- mempty- mempty----- | VkQueueFamilyCheckpointProperties2NV - Return structure for queue family--- checkpoint information query------ = Description------ Additional queue family information can be queried by setting--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2'::@pNext@--- to point to a 'QueueFamilyCheckpointProperties2NV' structure.------ == Valid Usage (Implicit)------ = 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_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,--- 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data QueueFamilyCheckpointProperties2NV = QueueFamilyCheckpointProperties2NV- { -- | @checkpointExecutionStageMask@ is a mask indicating which pipeline- -- stages the implementation can execute checkpoint markers in.- checkpointExecutionStageMask :: PipelineStageFlags2KHR }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (QueueFamilyCheckpointProperties2NV)-#endif-deriving instance Show QueueFamilyCheckpointProperties2NV--instance ToCStruct QueueFamilyCheckpointProperties2NV where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p QueueFamilyCheckpointProperties2NV{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (checkpointExecutionStageMask)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (zero)- f--instance FromCStruct QueueFamilyCheckpointProperties2NV where- peekCStruct p = do- checkpointExecutionStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- pure $ QueueFamilyCheckpointProperties2NV- checkpointExecutionStageMask--instance Storable QueueFamilyCheckpointProperties2NV where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero QueueFamilyCheckpointProperties2NV where- zero = QueueFamilyCheckpointProperties2NV- zero----- | VkCheckpointData2NV - Return structure for command buffer checkpoint--- data------ == Valid Usage (Implicit)------ The stages at which a checkpoint marker /can/ be executed are--- implementation-defined and /can/ be queried by calling--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2'.------ = 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_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,--- 'PipelineStageFlags2KHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'getQueueCheckpointData2NV'-data CheckpointData2NV = CheckpointData2NV- { -- | @stage@ indicates a single pipeline stage which the checkpoint marker- -- data refers to.- stage :: PipelineStageFlags2KHR- , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker- -- executed in the stage that @stage@ refers to.- checkpointMarker :: Ptr ()- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CheckpointData2NV)-#endif-deriving instance Show CheckpointData2NV--instance ToCStruct CheckpointData2NV where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p CheckpointData2NV{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (stage)- poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (checkpointMarker)- f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (zero)- poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)- f--instance FromCStruct CheckpointData2NV where- peekCStruct p = do- stage <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- pCheckpointMarker <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))- pure $ CheckpointData2NV- stage pCheckpointMarker--instance Storable CheckpointData2NV where- sizeOf ~_ = 32- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero CheckpointData2NV where- zero = CheckpointData2NV- zero- zero----- | VkPhysicalDeviceSynchronization2FeaturesKHR - Structure describing--- whether the implementation supports v2 synchronization commands------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceSynchronization2FeaturesKHR' 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. 'PhysicalDeviceSynchronization2FeaturesKHR' /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_synchronization2 VK_KHR_synchronization2>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2FeaturesKHR- { -- | #features-synchronization2# @synchronization2@ indicates whether the- -- implementation supports the new set of synchronization commands- -- introduced in @VK_KHR_synchronization2@.- synchronization2 :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceSynchronization2FeaturesKHR)-#endif-deriving instance Show PhysicalDeviceSynchronization2FeaturesKHR--instance ToCStruct PhysicalDeviceSynchronization2FeaturesKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceSynchronization2FeaturesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (synchronization2))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f--instance FromCStruct PhysicalDeviceSynchronization2FeaturesKHR where- peekCStruct p = do- synchronization2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceSynchronization2FeaturesKHR- (bool32ToBool synchronization2)--instance Storable PhysicalDeviceSynchronization2FeaturesKHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceSynchronization2FeaturesKHR where- zero = PhysicalDeviceSynchronization2FeaturesKHR- zero---type AccessFlags2KHR = AccessFlagBits2KHR---- | VkAccessFlagBits2KHR - Access flags for VkAccessFlags2KHR------ = Description------ Note------ In situations where an application wishes to select all access types for--- a given set of pipeline stages, 'ACCESS_2_MEMORY_READ_BIT_KHR' or--- 'ACCESS_2_MEMORY_WRITE_BIT_KHR' can be used. This is particularly useful--- when specifying stages that only have a single access type.------ Note------ The 'AccessFlags2KHR' bitmask goes beyond the 31 individual bit flags--- allowable within a C99 enum, which is how--- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' is defined. The--- first 31 values are common to both, and are interchangeable.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>-newtype AccessFlagBits2KHR = AccessFlagBits2KHR Flags64- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'ACCESS_2_NONE_KHR' specifies no accesses.-pattern ACCESS_2_NONE_KHR = AccessFlagBits2KHR 0x0000000000000000--- | 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR' specifies read access to--- command data read from indirect buffers as part of an indirect build,--- trace, drawing or dispatch command. Such access occurs in the--- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' pipeline stage.-pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000001--- | 'ACCESS_2_INDEX_READ_BIT_KHR' specifies read access to an index buffer--- as part of an indexed drawing command, bound by--- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access--- occurs in the 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_INDEX_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000002--- | 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR' specifies read access to a--- vertex buffer as part of a drawing command, bound by--- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. Such access--- occurs in the 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' pipeline--- stage.-pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000004--- | 'ACCESS_2_UNIFORM_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>--- in any shader pipeline stage.-pattern ACCESS_2_UNIFORM_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000008--- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR' specifies read access to an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment>--- within a render pass during subpass shading or fragment shading. Such--- access occurs in the 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' or--- 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' pipeline stage.-pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000010--- | 'ACCESS_2_SHADER_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-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_UNIFORM_READ_BIT_KHR'------ - 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR'------ - 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR'-pattern ACCESS_2_SHADER_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000020--- | 'ACCESS_2_SHADER_WRITE_BIT_KHR' is equivalent to--- 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR'.-pattern ACCESS_2_SHADER_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000040--- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment>,--- such as via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop logic operations>,--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.--- It does not include--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000080--- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR' 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.2-extensions/html/vkspec.html#renderpass render pass>--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000100--- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR' specifies read access--- to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,--- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000200--- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR' specifies write access--- to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,--- via--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>--- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or--- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000400--- | 'ACCESS_2_TRANSFER_READ_BIT_KHR' specifies read access to an image or--- buffer in a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>--- operation. Such access occurs in the 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', or 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR'--- pipeline stages.-pattern ACCESS_2_TRANSFER_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000800--- | 'ACCESS_2_TRANSFER_WRITE_BIT_KHR' specifies write access to an image or--- buffer in a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>--- operation. Such access occurs in the 'PIPELINE_STAGE_2_COPY_BIT_KHR',--- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_CLEAR_BIT_KHR', or--- 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' pipeline stages.-pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000001000--- | 'ACCESS_2_HOST_READ_BIT_KHR' specifies read access by a host operation.--- Accesses of this type are not performed through a resource, but directly--- on memory. Such access occurs in the 'PIPELINE_STAGE_2_HOST_BIT_KHR'--- pipeline stage.-pattern ACCESS_2_HOST_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000002000--- | 'ACCESS_2_HOST_WRITE_BIT_KHR' specifies write access by a host--- operation. Accesses of this type are not performed through a resource,--- but directly on memory. Such access occurs in the--- 'PIPELINE_STAGE_2_HOST_BIT_KHR' pipeline stage.-pattern ACCESS_2_HOST_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000004000--- | 'ACCESS_2_MEMORY_READ_BIT_KHR' specifies all read accesses. It is always--- valid in any access mask, and is treated as equivalent to setting all--- @READ@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000008000--- | 'ACCESS_2_MEMORY_WRITE_BIT_KHR' specifies all write accesses. It is--- always valid in any access mask, and is treated as equivalent to setting--- all @WRITE@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000010000--- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>--- in any shader pipeline stage.-pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000100000000--- | 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>--- in any shader pipeline stage.-pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000200000000--- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>--- in any shader pipeline stage.-pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000400000000--- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a--- invocation mask image in the--- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' pipeline stage.-pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = AccessFlagBits2KHR 0x0000008000000000--- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read--- access to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachments>,--- including--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2KHR 0x0000000000080000--- | 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>--- during dynamic--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>.--- Such access occurs in the--- 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pipeline stage.-pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000001000000--- | 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access--- to an acceleration structure or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>--- as part of a build or copy command. Such access occurs in the--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' pipeline stage.-pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000400000--- | '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.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>--- as part of a build command. Such access occurs in the--- 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' pipeline stage or--- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' pipeline stage.-pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000200000--- | 'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read--- access to a fragment shading rate attachment during rasterization. Such--- access occurs in the--- 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' pipeline--- stage.-pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000800000--- | 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the--- target command buffer preprocess outputs. Such access occurs in the--- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits2KHR 0x0000000000040000--- | 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from buffer--- inputs to--- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.--- Such access occurs in the 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'--- pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits2KHR 0x0000000000020000--- | 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a--- predicate as part of conditional rendering. Such access occurs in the--- 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' pipeline stage.-pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000000100000--- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write--- access to a transform feedback counter buffer which is written when--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'--- executes. Such access occurs in the--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2KHR 0x0000000008000000--- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access--- to a transform feedback counter buffer which is read when--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'--- executes. Such access occurs in the--- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000004000000--- | 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a--- transform feedback buffer made when transform feedback is active. Such--- access occurs in the 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'--- pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits2KHR 0x0000000002000000--conNameAccessFlagBits2KHR :: String-conNameAccessFlagBits2KHR = "AccessFlagBits2KHR"--enumPrefixAccessFlagBits2KHR :: String-enumPrefixAccessFlagBits2KHR = "ACCESS_2_"--showTableAccessFlagBits2KHR :: [(AccessFlagBits2KHR, String)]-showTableAccessFlagBits2KHR =- [ (ACCESS_2_NONE_KHR , "NONE_KHR")- , (ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR , "INDIRECT_COMMAND_READ_BIT_KHR")- , (ACCESS_2_INDEX_READ_BIT_KHR , "INDEX_READ_BIT_KHR")- , (ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR , "VERTEX_ATTRIBUTE_READ_BIT_KHR")- , (ACCESS_2_UNIFORM_READ_BIT_KHR , "UNIFORM_READ_BIT_KHR")- , (ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR , "INPUT_ATTACHMENT_READ_BIT_KHR")- , (ACCESS_2_SHADER_READ_BIT_KHR , "SHADER_READ_BIT_KHR")- , (ACCESS_2_SHADER_WRITE_BIT_KHR , "SHADER_WRITE_BIT_KHR")- , (ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR , "COLOR_ATTACHMENT_READ_BIT_KHR")- , (ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR , "COLOR_ATTACHMENT_WRITE_BIT_KHR")- , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR , "DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR")- , (ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR")- , (ACCESS_2_TRANSFER_READ_BIT_KHR , "TRANSFER_READ_BIT_KHR")- , (ACCESS_2_TRANSFER_WRITE_BIT_KHR , "TRANSFER_WRITE_BIT_KHR")- , (ACCESS_2_HOST_READ_BIT_KHR , "HOST_READ_BIT_KHR")- , (ACCESS_2_HOST_WRITE_BIT_KHR , "HOST_WRITE_BIT_KHR")- , (ACCESS_2_MEMORY_READ_BIT_KHR , "MEMORY_READ_BIT_KHR")- , (ACCESS_2_MEMORY_WRITE_BIT_KHR , "MEMORY_WRITE_BIT_KHR")- , (ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR , "SHADER_SAMPLED_READ_BIT_KHR")- , (ACCESS_2_SHADER_STORAGE_READ_BIT_KHR , "SHADER_STORAGE_READ_BIT_KHR")- , (ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR , "SHADER_STORAGE_WRITE_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")- , (ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR , "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")- , (ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR , "ACCELERATION_STRUCTURE_READ_BIT_KHR")- , (ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")- , (ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV , "COMMAND_PREPROCESS_WRITE_BIT_NV")- , (ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV , "COMMAND_PREPROCESS_READ_BIT_NV")- , (ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT , "CONDITIONAL_RENDERING_READ_BIT_EXT")- , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT")- , (ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")- , (ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")- ]--instance Show AccessFlagBits2KHR where- showsPrec = enumShowsPrec enumPrefixAccessFlagBits2KHR- showTableAccessFlagBits2KHR- conNameAccessFlagBits2KHR- (\(AccessFlagBits2KHR x) -> x)- (\x -> showString "0x" . showHex x)--instance Read AccessFlagBits2KHR where- readPrec =- enumReadPrec enumPrefixAccessFlagBits2KHR showTableAccessFlagBits2KHR conNameAccessFlagBits2KHR AccessFlagBits2KHR---type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR---- | VkPipelineStageFlagBits2KHR - Pipeline stage flags for--- VkPipelineStageFlags2KHR------ = Description------ Note------ The @TOP@ and @BOTTOM@ pipeline stages are deprecated, and applications--- should prefer 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' and--- 'PIPELINE_STAGE_2_NONE_KHR'.------ Note------ The 'PipelineStageFlags2KHR' bitmask goes beyond the 31 individual bit--- flags allowable within a C99 enum, which is how--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' is--- defined. The first 31 values are common to both, and are--- interchangeable.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>-newtype PipelineStageFlagBits2KHR = PipelineStageFlagBits2KHR Flags64- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'PIPELINE_STAGE_2_NONE_KHR' specifies no stages of execution.-pattern PIPELINE_STAGE_2_NONE_KHR = PipelineStageFlagBits2KHR 0x0000000000000000--- | 'PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR' is equivalent to--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to--- @0@ when specified in the second synchronization scope, but equivalent--- to 'PIPELINE_STAGE_2_NONE_KHR' in the first scope.-pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000001--- | 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' specifies the stage of the--- pipeline where indirect command parameters are consumed. This stage also--- includes reading commands written by--- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.-pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000002--- | 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR' is equivalent to the logical OR--- of:------ - 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR'------ - 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR'-pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000004--- | 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR' specifies the vertex shader--- stage.-pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000008--- | 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' specifies the--- tessellation control shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000010--- | 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR' specifies the--- tessellation evaluation shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000020--- | 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR' specifies the geometry shader--- stage.-pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000040--- | 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' specifies the fragment shader--- stage.-pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000080--- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' 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.2-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_KHR = PipelineStageFlagBits2KHR 0x0000000000000100--- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' 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.2-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_KHR = PipelineStageFlagBits2KHR 0x0000000000000200--- | 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' 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.2-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.-pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000400--- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR' specifies the compute shader--- stage.-pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000800--- | 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR' is equivalent to specifying all--- of:------ - 'PIPELINE_STAGE_2_COPY_BIT_KHR'------ - 'PIPELINE_STAGE_2_BLIT_BIT_KHR'------ - 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR'------ - 'PIPELINE_STAGE_2_CLEAR_BIT_KHR'-pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000001000--- | 'PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR' is equivalent to--- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to--- @0@ when specified in the first synchronization scope, but equivalent to--- 'PIPELINE_STAGE_2_NONE_KHR' in the second scope.-pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000002000--- | 'PIPELINE_STAGE_2_HOST_BIT_KHR' specifies a pseudo-stage indicating--- execution on the host of reads\/writes of device memory. This stage is--- not invoked by any commands recorded in a command buffer.-pattern PIPELINE_STAGE_2_HOST_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000004000--- | 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR' specifies the execution of all--- graphics pipeline stages, and is equivalent to the logical OR of:------ - 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR'------ - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'------ - 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR'------ - 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR'------ - 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR'------ - 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR'------ - 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'------ - 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'------ - 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'------ - 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'-pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000008000--- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' specifies all operations--- performed by all commands supported on the queue it is used with.-pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000010000--- | 'PIPELINE_STAGE_2_COPY_BIT_KHR' specifies the execution of all--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>,--- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'.-pattern PIPELINE_STAGE_2_COPY_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000100000000--- | 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' specifies the execution of--- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'.-pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000200000000--- | 'PIPELINE_STAGE_2_BLIT_BIT_KHR' specifies the execution of--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'.-pattern PIPELINE_STAGE_2_BLIT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000400000000--- | 'PIPELINE_STAGE_2_CLEAR_BIT_KHR' specifies the execution of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>,--- with the exception of--- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.-pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000800000000--- | 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' specifies the stage of the--- pipeline where index buffers are consumed.-pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000001000000000--- | 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' specifies the stage of--- the pipeline where vertex buffers are consumed.-pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000002000000000--- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR' is equivalent to--- specifying all supported--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>:------ - 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR'------ - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'------ - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'-pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000004000000000--- | '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.-pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = PipelineStageFlagBits2KHR 0x0000010000000000--- | 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' specifies the subpass--- shading shader stage.-pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = PipelineStageFlagBits2KHR 0x0000008000000000--- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage.-pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = PipelineStageFlagBits2KHR 0x0000000000100000--- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.-pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = PipelineStageFlagBits2KHR 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.2-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = PipelineStageFlagBits2KHR 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 = PipelineStageFlagBits2KHR 0x0000000000200000--- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the--- execution of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure commands>.-pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = PipelineStageFlagBits2KHR 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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-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 = PipelineStageFlagBits2KHR 0x0000000000400000--- | 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the--- pipeline where device-side generation of commands via--- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'--- is handled.-pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = PipelineStageFlagBits2KHR 0x0000000000020000--- | 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of--- the pipeline where the predicate of conditional rendering is consumed.-pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = PipelineStageFlagBits2KHR 0x0000000000040000--- | 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the--- pipeline where vertex attribute output values are written to the--- transform feedback buffers.-pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = PipelineStageFlagBits2KHR 0x0000000001000000--conNamePipelineStageFlagBits2KHR :: String-conNamePipelineStageFlagBits2KHR = "PipelineStageFlagBits2KHR"--enumPrefixPipelineStageFlagBits2KHR :: String-enumPrefixPipelineStageFlagBits2KHR = "PIPELINE_STAGE_2_"--showTablePipelineStageFlagBits2KHR :: [(PipelineStageFlagBits2KHR, String)]-showTablePipelineStageFlagBits2KHR =- [ (PIPELINE_STAGE_2_NONE_KHR , "NONE_KHR")- , (PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR , "TOP_OF_PIPE_BIT_KHR")- , (PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR , "DRAW_INDIRECT_BIT_KHR")- , (PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR , "VERTEX_INPUT_BIT_KHR")- , (PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR , "VERTEX_SHADER_BIT_KHR")- , (PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR , "TESSELLATION_CONTROL_SHADER_BIT_KHR")- , (PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, "TESSELLATION_EVALUATION_SHADER_BIT_KHR")- , (PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR , "GEOMETRY_SHADER_BIT_KHR")- , (PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR , "FRAGMENT_SHADER_BIT_KHR")- , (PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR , "EARLY_FRAGMENT_TESTS_BIT_KHR")- , (PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR , "LATE_FRAGMENT_TESTS_BIT_KHR")- , (PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR , "COLOR_ATTACHMENT_OUTPUT_BIT_KHR")- , (PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR , "COMPUTE_SHADER_BIT_KHR")- , (PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR , "ALL_TRANSFER_BIT_KHR")- , (PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR , "BOTTOM_OF_PIPE_BIT_KHR")- , (PIPELINE_STAGE_2_HOST_BIT_KHR , "HOST_BIT_KHR")- , (PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR , "ALL_GRAPHICS_BIT_KHR")- , (PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR , "ALL_COMMANDS_BIT_KHR")- , (PIPELINE_STAGE_2_COPY_BIT_KHR , "COPY_BIT_KHR")- , (PIPELINE_STAGE_2_RESOLVE_BIT_KHR , "RESOLVE_BIT_KHR")- , (PIPELINE_STAGE_2_BLIT_BIT_KHR , "BLIT_BIT_KHR")- , (PIPELINE_STAGE_2_CLEAR_BIT_KHR , "CLEAR_BIT_KHR")- , (PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR , "INDEX_INPUT_BIT_KHR")- , (PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR , "VERTEX_ATTRIBUTE_INPUT_BIT_KHR")- , (PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR , "PRE_RASTERIZATION_SHADERS_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_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")- , (PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")- , (PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV , "COMMAND_PREPROCESS_BIT_NV")- , (PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT , "CONDITIONAL_RENDERING_BIT_EXT")- , (PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT , "TRANSFORM_FEEDBACK_BIT_EXT")- ]--instance Show PipelineStageFlagBits2KHR where- showsPrec = enumShowsPrec enumPrefixPipelineStageFlagBits2KHR- showTablePipelineStageFlagBits2KHR- conNamePipelineStageFlagBits2KHR- (\(PipelineStageFlagBits2KHR x) -> x)- (\x -> showString "0x" . showHex x)--instance Read PipelineStageFlagBits2KHR where- readPrec = enumReadPrec enumPrefixPipelineStageFlagBits2KHR- showTablePipelineStageFlagBits2KHR- conNamePipelineStageFlagBits2KHR- PipelineStageFlagBits2KHR---type SubmitFlagsKHR = SubmitFlagBitsKHR---- | VkSubmitFlagBitsKHR - Bitmask specifying behavior of a submission------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,--- 'SubmitFlagsKHR'-newtype SubmitFlagBitsKHR = SubmitFlagBitsKHR Flags- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)---- | 'SUBMIT_PROTECTED_BIT_KHR' specifies that this batch is a protected--- submission.-pattern SUBMIT_PROTECTED_BIT_KHR = SubmitFlagBitsKHR 0x00000001--conNameSubmitFlagBitsKHR :: String-conNameSubmitFlagBitsKHR = "SubmitFlagBitsKHR"--enumPrefixSubmitFlagBitsKHR :: String-enumPrefixSubmitFlagBitsKHR = "SUBMIT_PROTECTED_BIT_KHR"--showTableSubmitFlagBitsKHR :: [(SubmitFlagBitsKHR, String)]-showTableSubmitFlagBitsKHR = [(SUBMIT_PROTECTED_BIT_KHR, "")]--instance Show SubmitFlagBitsKHR where- showsPrec = enumShowsPrec enumPrefixSubmitFlagBitsKHR- showTableSubmitFlagBitsKHR- conNameSubmitFlagBitsKHR- (\(SubmitFlagBitsKHR x) -> x)- (\x -> showString "0x" . showHex x)--instance Read SubmitFlagBitsKHR where- readPrec =- enumReadPrec enumPrefixSubmitFlagBitsKHR showTableSubmitFlagBitsKHR conNameSubmitFlagBitsKHR SubmitFlagBitsKHR+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+--+-- [__Contact__]+--+-- - Tobias Hector+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_synchronization2] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_synchronization2 extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-12-03+--+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+--+-- - Interacts with @VK_KHR_create_renderpass2@+--+-- [__Contributors__]+--+-- - Tobias Hector+--+-- == Description+--+-- This extension modifies the original core synchronization APIs to+-- simplify the interface and improve usability of these APIs. It also adds+-- new pipeline stage and access flag types that extend into the 64-bit+-- range, as we have run out within the 32-bit range. The new flags are+-- identical to the old values within the 32-bit range, with new stages and+-- bits beyond that.+--+-- Pipeline stages and access flags are now specified together in memory+-- barrier structures, making the connection between the two more obvious.+-- Additionally, scoping the pipeline stages into the barrier structs+-- allows the use of the @MEMORY_READ@ and @MEMORY_WRITE@ flags without+-- sacrificing precision. The per-stage access flags should be used to+-- disambiguate specific accesses in a given stage or set of stages - for+-- instance, between uniform reads and sampling operations.+--+-- Layout transitions have been simplified as well; rather than requiring a+-- different set of layouts for depth\/stencil\/color attachments, there+-- are generic 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' and+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' layouts which are contextually+-- applied based on the image format. For example, for a depth format+-- image, 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is equivalent to+-- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' also functionally replaces+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'.+--+-- Events are now more efficient, because they include memory dependency+-- information when you set them on the device. Previously, this+-- information was only known when waiting on an event, so the dependencies+-- could not be satisfied until the wait occurred. That sometimes meant+-- stalling the pipeline when the wait occurred. The new API provides+-- enough information for implementations to satisfy these dependencies in+-- parallel with other tasks.+--+-- Queue submission has been changed to wrap command buffers and semaphores+-- in extensible structures, which incorporate changes from Vulkan 1.1,+-- @VK_KHR_device_group@, and @VK_KHR_timeline_semaphore@. This also adds a+-- pipeline stage to the semaphore signal operation, mirroring the existing+-- pipeline stage specification for wait operations.+--+-- Other miscellaneous changes include:+--+-- - Events can now be specified as interacting only with the device,+-- allowing more efficient access to the underlying object.+--+-- - Image memory barriers that do not perform an image layout transition+-- can be specified by setting @oldLayout@ equal to @newLayout@.+--+-- - E.g. the old and new layout can both be set to+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',+-- without discarding data in the image.+--+-- - Queue family ownership transfer parameters are simplified in some+-- cases.+--+-- - Where two synchronization commands need to be matched up (queue+-- transfer operations, events), the dependency information specified+-- in each place must now match completely for consistency.+--+-- - Extensions with commands or functions with a+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags' or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- parameter have had those APIs replaced with equivalents using+-- 'PipelineStageFlags2KHR'.+--+-- - The new event and barrier interfaces are now more extensible for+-- future changes.+--+-- - Relevant pipeline stage masks can now be specified as empty with the+-- new 'PIPELINE_STAGE_NONE_KHR' and+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_NONE_KHR'+-- values.+--+-- - 'MemoryBarrier2KHR' can be chained to+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',+-- overriding the original 32-bit stage and access masks.+--+-- == New Base Types+--+-- - 'Vulkan.Core10.FundamentalTypes.Flags64'+--+-- == New Commands+--+-- - 'cmdPipelineBarrier2KHR'+--+-- - 'cmdResetEvent2KHR'+--+-- - 'cmdSetEvent2KHR'+--+-- - 'cmdWaitEvents2KHR'+--+-- - 'cmdWriteTimestamp2KHR'+--+-- - 'queueSubmit2KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>+-- is supported:+--+-- - 'cmdWriteBufferMarker2AMD'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>+-- is supported:+--+-- - 'getQueueCheckpointData2NV'+--+-- == New Structures+--+-- - 'BufferMemoryBarrier2KHR'+--+-- - 'CommandBufferSubmitInfoKHR'+--+-- - 'DependencyInfoKHR'+--+-- - 'ImageMemoryBarrier2KHR'+--+-- - 'SemaphoreSubmitInfoKHR'+--+-- - 'SubmitInfo2KHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceSynchronization2FeaturesKHR'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2':+--+-- - 'MemoryBarrier2KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>+-- is supported:+--+-- - 'CheckpointData2NV'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2':+--+-- - 'QueueFamilyCheckpointProperties2NV'+--+-- == New Enums+--+-- - 'AccessFlagBits2KHR'+--+-- - 'PipelineStageFlagBits2KHR'+--+-- - 'SubmitFlagBitsKHR'+--+-- == New Bitmasks+--+-- - 'AccessFlags2KHR'+--+-- - 'PipelineStageFlags2KHR'+--+-- - 'SubmitFlagsKHR'+--+-- == New Enum Constants+--+-- - 'KHR_SYNCHRONIZATION_2_EXTENSION_NAME'+--+-- - 'KHR_SYNCHRONIZATION_2_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':+--+-- - 'ACCESS_NONE_KHR'+--+-- - Extending+-- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits':+--+-- - 'EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':+--+-- - 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+--+-- - 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':+--+-- - 'PIPELINE_STAGE_NONE_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'+--+-- - 'STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'+--+-- - 'STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'+--+-- - 'STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'+--+-- - 'STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'+--+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'+--+-- - 'STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'+--+-- - 'STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - '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_transform_feedback VK_EXT_transform_feedback>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- 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:+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>+-- is supported:+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV'+--+-- 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.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.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>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV'+--+-- - 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV'+--+-- - 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV'+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV'+--+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+--+-- == Examples+--+-- See+-- <https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples>+--+-- == Version History+--+-- - Revision 1, 2020-12-03 (Tobias Hector)+--+-- - Internal revisions+--+-- == See Also+--+-- 'AccessFlagBits2KHR', 'AccessFlags2KHR', 'BufferMemoryBarrier2KHR',+-- 'CommandBufferSubmitInfoKHR', 'DependencyInfoKHR',+-- 'Vulkan.Core10.FundamentalTypes.Flags64', 'ImageMemoryBarrier2KHR',+-- 'MemoryBarrier2KHR', 'PhysicalDeviceSynchronization2FeaturesKHR',+-- 'PipelineStageFlagBits2KHR', 'PipelineStageFlags2KHR',+-- 'SemaphoreSubmitInfoKHR', 'SubmitFlagBitsKHR', 'SubmitFlagsKHR',+-- 'SubmitInfo2KHR', 'cmdPipelineBarrier2KHR', 'cmdResetEvent2KHR',+-- 'cmdSetEvent2KHR', 'cmdWaitEvents2KHR', 'cmdWriteTimestamp2KHR',+-- 'queueSubmit2KHR'+--+-- == 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_synchronization2 ( cmdWriteBufferMarker2AMD+ , getQueueCheckpointData2NV+ , pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR+ , pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR+ , pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR+ , pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR+ , pattern STRUCTURE_TYPE_SUBMIT_INFO_2_KHR+ , pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR+ , pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR+ , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR+ , pattern EVENT_CREATE_DEVICE_ONLY_BIT_KHR+ , pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR+ , pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR+ , pattern PIPELINE_STAGE_NONE_KHR+ , pattern ACCESS_NONE_KHR+ , pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV+ , pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV+ , pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV+ , 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+ , cmdSetEvent2KHR+ , cmdResetEvent2KHR+ , cmdWaitEvents2KHR+ , cmdPipelineBarrier2KHR+ , queueSubmit2KHR+ , cmdWriteTimestamp2KHR+ , QueueFamilyCheckpointProperties2NV(..)+ , CheckpointData2NV(..)+ , AccessFlags2KHR+ , PipelineStageFlags2KHR+ , SubmitFlagsKHR+ , AccessFlagBits2KHR+ , PipelineStageFlagBits2KHR+ , SubmitFlagBitsKHR+ , MemoryBarrier2KHR+ , ImageMemoryBarrier2KHR+ , BufferMemoryBarrier2KHR+ , DependencyInfoKHR+ , SemaphoreSubmitInfoKHR+ , CommandBufferSubmitInfoKHR+ , SubmitInfo2KHR+ , PhysicalDeviceSynchronization2FeaturesKHR+ , KHR_SYNCHRONIZATION_2_SPEC_VERSION+ , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION+ , KHR_SYNCHRONIZATION_2_EXTENSION_NAME+ , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME+ ) 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.Core13.Promoted_From_VK_KHR_synchronization2 (cmdPipelineBarrier2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdResetEvent2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdSetEvent2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWaitEvents2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (cmdWriteTimestamp2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (queueSubmit2)+import Vulkan.NamedType ((:::))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (CommandBufferSubmitInfo)+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo)+import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteBufferMarker2AMD))+import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointData2NV))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (ImageMemoryBarrier2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(..))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core10.Handles (Queue)+import Vulkan.Core10.Handles (Queue(..))+import Vulkan.Core10.Handles (Queue(Queue))+import Vulkan.Core10.Handles (Queue_T)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlagBits)+import Vulkan.Core13.Enums.SubmitFlagBits (SubmitFlags)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SubmitInfo2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR))+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlags2)+import Vulkan.Core13.Enums.AccessFlags2 (AccessFlagBits2(ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR))+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_NONE))+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlags)+import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlagBits(EVENT_CREATE_DEVICE_ONLY_BIT))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_ATTACHMENT_OPTIMAL))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_READ_ONLY_OPTIMAL))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR))+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_RAY_TRACING_SHADER_BIT_KHR))+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))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPENDENCY_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER_2))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdWriteBufferMarker2AMD+ :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags2 -> Buffer -> DeviceSize -> Word32 -> IO ()++-- | vkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value+-- into a buffer+--+-- = Description+--+-- The command will write the 32-bit marker value into the buffer only+-- after all preceding commands have finished executing up to at least the+-- specified pipeline stage. This includes the completion of other+-- preceding 'cmdWriteBufferMarker2AMD' commands so long as their specified+-- pipeline stages occur either at the same time or earlier than this+-- command’s specified @stage@.+--+-- While consecutive buffer marker writes with the same @stage@ parameter+-- implicitly complete in submission order, memory and execution+-- dependencies between buffer marker writes and other operations /must/+-- still be explicitly ordered using synchronization commands. The access+-- scope for buffer marker writes falls under the+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the+-- pipeline stages for identifying the synchronization scope /must/ include+-- both @stage@ and+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'.+--+-- Note+--+-- Similar to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',+-- if an implementation is unable to write a marker at any specific+-- pipeline stage, it /may/ instead do so at any logically later stage.+--+-- Note+--+-- Implementations /may/ only support a limited number of pipelined marker+-- write operations in flight at a given time. Thus an excessive number of+-- marker write operations /may/ degrade command execution performance.+--+-- == 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- 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>+-- feature is not enabled, @stage@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03935# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- feature is not enabled, @stage@ /must/ not contain+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-stage-04956# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- 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>+-- 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>+-- 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>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03894# @stage@ /must/ include+-- only a single pipeline stage+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03895# @stage@ /must/ include+-- only stages that are valid for the queue family that was used to+-- create the command pool that @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896# @dstOffset@ /must/+-- be less than or equal to the size of @dstBuffer@ minus @4@+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897# @dstBuffer@ /must/+-- have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898# If @dstBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899# @dstOffset@ /must/+-- be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-stage-parameter# @stage@ /must/ be+-- a valid combination of+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2'+-- values+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter# @dstBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-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-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdWriteBufferMarker2AMD-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 | Both | Transfer |+-- | Secondary | | Graphics |+-- | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_marker VK_AMD_buffer_marker>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2'+cmdWriteBufferMarker2AMD :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @stage@ specifies the pipeline stage whose completion triggers the+ -- marker write.+ PipelineStageFlags2+ -> -- | @dstBuffer@ is the buffer where the marker will be written.+ ("dstBuffer" ::: Buffer)+ -> -- | @dstOffset@ is the byte offset into the buffer where the marker will be+ -- written.+ ("dstOffset" ::: DeviceSize)+ -> -- | @marker@ is the 32-bit value of the marker.+ ("marker" ::: Word32)+ -> io ()+cmdWriteBufferMarker2AMD commandBuffer stage dstBuffer dstOffset marker = liftIO $ do+ let vkCmdWriteBufferMarker2AMDPtr = pVkCmdWriteBufferMarker2AMD (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdWriteBufferMarker2AMDPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarker2AMD is null" Nothing Nothing+ let vkCmdWriteBufferMarker2AMD' = mkVkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMDPtr+ traceAroundEvent "vkCmdWriteBufferMarker2AMD" (vkCmdWriteBufferMarker2AMD' (commandBufferHandle (commandBuffer)) (stage) (dstBuffer) (dstOffset) (marker))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetQueueCheckpointData2NV+ :: FunPtr (Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()) -> Ptr Queue_T -> Ptr Word32 -> Ptr CheckpointData2NV -> IO ()++-- | vkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data+--+-- = Description+--+-- If @pCheckpointData@ is @NULL@, then the number of checkpoint markers+-- available is returned in @pCheckpointDataCount@. Otherwise,+-- @pCheckpointDataCount@ /must/ point to a variable set by the user to the+-- number of elements in the @pCheckpointData@ array, and on return the+-- variable is overwritten with the number of structures actually written+-- to @pCheckpointData@.+--+-- If @pCheckpointDataCount@ is less than the number of checkpoint markers+-- available, at most @pCheckpointDataCount@ structures will be written.+--+-- == Valid Usage+--+-- - #VUID-vkGetQueueCheckpointData2NV-queue-03892# The device that+-- @queue@ belongs to /must/ be in the lost state+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetQueueCheckpointData2NV-queue-parameter# @queue@ /must/ be+-- a valid 'Vulkan.Core10.Handles.Queue' handle+--+-- - #VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter#+-- @pCheckpointDataCount@ /must/ be a valid pointer to a @uint32_t@+-- value+--+-- - #VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter# If the+-- value referenced by @pCheckpointDataCount@ is not @0@, and+-- @pCheckpointData@ is not @NULL@, @pCheckpointData@ /must/ be a valid+-- pointer to an array of @pCheckpointDataCount@ 'CheckpointData2NV'+-- structures+--+-- = 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_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,+-- 'CheckpointData2NV', 'Vulkan.Core10.Handles.Queue'+getQueueCheckpointData2NV :: forall io+ . (MonadIO io)+ => -- | @queue@ is the 'Vulkan.Core10.Handles.Queue' object the caller would+ -- like to retrieve checkpoint data for+ Queue+ -> io (("checkpointData" ::: Vector CheckpointData2NV))+getQueueCheckpointData2NV queue = liftIO . evalContT $ do+ let vkGetQueueCheckpointData2NVPtr = pVkGetQueueCheckpointData2NV (case queue of Queue{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetQueueCheckpointData2NVPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueueCheckpointData2NV is null" Nothing Nothing+ let vkGetQueueCheckpointData2NV' = mkVkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NVPtr+ let queue' = queueHandle (queue)+ pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free+ lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) (nullPtr))+ pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount+ pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointData2NV ((fromIntegral (pCheckpointDataCount)) * 32)) free+ _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointData2NV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]+ lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) ((pPCheckpointData)))+ pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount+ pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointData2NV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointData2NV)))+ pure $ (pCheckpointData')+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR"+pattern STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_MEMORY_BARRIER_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR"+pattern STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = STRUCTURE_TYPE_DEPENDENCY_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR"+pattern STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = STRUCTURE_TYPE_SUBMIT_INFO_2+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR"+pattern STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES+++-- No documentation found for TopLevel "VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"+pattern EVENT_CREATE_DEVICE_ONLY_BIT_KHR = EVENT_CREATE_DEVICE_ONLY_BIT+++-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR"+pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = IMAGE_LAYOUT_READ_ONLY_OPTIMAL+++-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR"+pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = IMAGE_LAYOUT_ATTACHMENT_OPTIMAL+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_NONE_KHR"+pattern PIPELINE_STAGE_NONE_KHR = PIPELINE_STAGE_NONE+++-- No documentation found for TopLevel "VK_ACCESS_NONE_KHR"+pattern ACCESS_NONE_KHR = ACCESS_NONE+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV"+pattern PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+++-- No documentation found for TopLevel "VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV"+pattern ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV"+pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV"+pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR+++-- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV"+pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR+++-- 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 "vkCmdSetEvent2KHR"+cmdSetEvent2KHR = cmdSetEvent2+++-- No documentation found for TopLevel "vkCmdResetEvent2KHR"+cmdResetEvent2KHR = cmdResetEvent2+++-- No documentation found for TopLevel "vkCmdWaitEvents2KHR"+cmdWaitEvents2KHR = cmdWaitEvents2+++-- No documentation found for TopLevel "vkCmdPipelineBarrier2KHR"+cmdPipelineBarrier2KHR = cmdPipelineBarrier2+++-- No documentation found for TopLevel "vkQueueSubmit2KHR"+queueSubmit2KHR = queueSubmit2+++-- No documentation found for TopLevel "vkCmdWriteTimestamp2KHR"+cmdWriteTimestamp2KHR = cmdWriteTimestamp2+++-- | VkQueueFamilyCheckpointProperties2NV - Return structure for queue family+-- checkpoint information query+--+-- = Description+--+-- Additional queue family information can be queried by setting+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2'::@pNext@+-- to point to a 'QueueFamilyCheckpointProperties2NV' structure.+--+-- == Valid Usage (Implicit)+--+-- = 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_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data QueueFamilyCheckpointProperties2NV = QueueFamilyCheckpointProperties2NV+ { -- | @checkpointExecutionStageMask@ is a mask indicating which pipeline+ -- stages the implementation can execute checkpoint markers in.+ checkpointExecutionStageMask :: PipelineStageFlags2 }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (QueueFamilyCheckpointProperties2NV)+#endif+deriving instance Show QueueFamilyCheckpointProperties2NV++instance ToCStruct QueueFamilyCheckpointProperties2NV where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p QueueFamilyCheckpointProperties2NV{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (checkpointExecutionStageMask)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)+ f++instance FromCStruct QueueFamilyCheckpointProperties2NV where+ peekCStruct p = do+ checkpointExecutionStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+ pure $ QueueFamilyCheckpointProperties2NV+ checkpointExecutionStageMask++instance Storable QueueFamilyCheckpointProperties2NV where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero QueueFamilyCheckpointProperties2NV where+ zero = QueueFamilyCheckpointProperties2NV+ zero+++-- | VkCheckpointData2NV - Return structure for command buffer checkpoint+-- data+--+-- == Valid Usage (Implicit)+--+-- The stages at which a checkpoint marker /can/ be executed are+-- implementation-defined and /can/ be queried by calling+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2'.+--+-- = 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_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>,+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getQueueCheckpointData2NV'+data CheckpointData2NV = CheckpointData2NV+ { -- | @stage@ indicates a single pipeline stage which the checkpoint marker+ -- data refers to.+ stage :: PipelineStageFlags2+ , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker+ -- executed in the stage that @stage@ refers to.+ checkpointMarker :: Ptr ()+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CheckpointData2NV)+#endif+deriving instance Show CheckpointData2NV++instance ToCStruct CheckpointData2NV where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CheckpointData2NV{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (stage)+ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (checkpointMarker)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (zero)+ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+ f++instance FromCStruct CheckpointData2NV where+ peekCStruct p = do+ stage <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2))+ pCheckpointMarker <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+ pure $ CheckpointData2NV+ stage pCheckpointMarker++instance Storable CheckpointData2NV where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CheckpointData2NV where+ zero = CheckpointData2NV+ zero+ zero+++-- No documentation found for TopLevel "VkAccessFlags2KHR"+type AccessFlags2KHR = AccessFlags2+++-- No documentation found for TopLevel "VkPipelineStageFlags2KHR"+type PipelineStageFlags2KHR = PipelineStageFlags2+++-- No documentation found for TopLevel "VkSubmitFlagsKHR"+type SubmitFlagsKHR = SubmitFlags+++-- No documentation found for TopLevel "VkAccessFlagBits2KHR"+type AccessFlagBits2KHR = AccessFlagBits2+++-- No documentation found for TopLevel "VkPipelineStageFlagBits2KHR"+type PipelineStageFlagBits2KHR = PipelineStageFlagBits2+++-- No documentation found for TopLevel "VkSubmitFlagBitsKHR"+type SubmitFlagBitsKHR = SubmitFlagBits+++-- No documentation found for TopLevel "VkMemoryBarrier2KHR"+type MemoryBarrier2KHR = MemoryBarrier2+++-- No documentation found for TopLevel "VkImageMemoryBarrier2KHR"+type ImageMemoryBarrier2KHR = ImageMemoryBarrier2+++-- No documentation found for TopLevel "VkBufferMemoryBarrier2KHR"+type BufferMemoryBarrier2KHR = BufferMemoryBarrier2+++-- No documentation found for TopLevel "VkDependencyInfoKHR"+type DependencyInfoKHR = DependencyInfo+++-- No documentation found for TopLevel "VkSemaphoreSubmitInfoKHR"+type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo+++-- No documentation found for TopLevel "VkCommandBufferSubmitInfoKHR"+type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo+++-- No documentation found for TopLevel "VkSubmitInfo2KHR"+type SubmitInfo2KHR = SubmitInfo2+++-- No documentation found for TopLevel "VkPhysicalDeviceSynchronization2FeaturesKHR"+type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features type KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot view
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Tobias Hector@@ -35,6 +40,8 @@ -- -- [__Interactions and External Dependencies__] --+-- - Promoted to Vulkan 1.3 Core+-- -- - Interacts with @VK_KHR_create_renderpass2@ -- -- [__Contributors__]@@ -60,16 +67,12 @@ -- -- Layout transitions have been simplified as well; rather than requiring a -- different set of layouts for depth\/stencil\/color attachments, there--- are generic--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'--- and 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- layouts which are contextually applied based on the image format. For--- example, for a depth format image,--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is--- equivalent to+-- are generic 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' and+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' layouts which are contextually+-- applied based on the image format. For example, for a depth format+-- image, 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' is equivalent to -- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'.--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'--- also functionally replaces+-- 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' also functionally replaces -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'. -- -- Events are now more efficient, because they include memory dependency@@ -115,9 +118,9 @@ -- future changes. -- -- - Relevant pipeline stage masks can now be specified as empty with the--- new--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'--- and 'PIPELINE_STAGE_2_NONE_KHR' values.+-- new 'PIPELINE_STAGE_NONE_KHR' and+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_NONE_KHR'+-- values. -- -- - 'MemoryBarrier2KHR' can be chained to -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDependency2',@@ -213,123 +216,129 @@ -- -- - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': ----- - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_NONE_KHR'+-- - 'ACCESS_NONE_KHR' -- -- - Extending -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits': ----- - 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT_KHR'+-- - 'EVENT_CREATE_DEVICE_ONLY_BIT_KHR' -- -- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': ----- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- - 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' ----- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+-- - 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' -- -- - Extending -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE_KHR'+-- - 'PIPELINE_STAGE_NONE_KHR' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR'+-- - 'STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR'+-- - 'STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPENDENCY_INFO_KHR'+-- - 'STRUCTURE_TYPE_DEPENDENCY_INFO_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR'+-- - 'STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'+-- - 'STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR'+-- - 'STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR' ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBMIT_INFO_2_KHR'+-- - 'STRUCTURE_TYPE_SUBMIT_INFO_2_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_rendering VK_EXT_conditional_rendering> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map VK_EXT_fragment_density_map> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+-- - '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_transform_feedback VK_EXT_transform_feedback> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' ----- - 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' ----- - 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' ----- - 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate VK_KHR_fragment_shading_rate> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- 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: ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints VK_NV_device_diagnostic_checkpoints>@@ -345,37 +354,40 @@ -- <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 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': ----- - 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' ----- - 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV'+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader> -- is supported: ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' ----- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.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> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -- -- - 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV' -- -- - 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -- -- - 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV' --@@ -385,14 +397,21 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image VK_NV_shading_rate_image> -- is supported: ----- - Extending 'AccessFlagBits2KHR':+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -- -- - 'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV' ----- - Extending 'PipelineStageFlagBits2KHR':+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -- -- - 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Examples -- -- See@@ -419,39 +438,18 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_KHR_synchronization2 ( BufferMemoryBarrier2KHR- , CheckpointData2NV- , CommandBufferSubmitInfoKHR- , DependencyInfoKHR- , ImageMemoryBarrier2KHR- , MemoryBarrier2KHR- , PhysicalDeviceSynchronization2FeaturesKHR+module Vulkan.Extensions.VK_KHR_synchronization2 ( CheckpointData2NV , QueueFamilyCheckpointProperties2NV- , SemaphoreSubmitInfoKHR- , SubmitInfo2KHR- , PipelineStageFlags2KHR- , PipelineStageFlagBits2KHR ) 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 BufferMemoryBarrier2KHR -instance ToCStruct BufferMemoryBarrier2KHR-instance Show BufferMemoryBarrier2KHR--instance FromCStruct BufferMemoryBarrier2KHR-- data CheckpointData2NV instance ToCStruct CheckpointData2NV@@ -460,73 +458,10 @@ instance FromCStruct CheckpointData2NV -data CommandBufferSubmitInfoKHR--instance ToCStruct CommandBufferSubmitInfoKHR-instance Show CommandBufferSubmitInfoKHR--instance FromCStruct CommandBufferSubmitInfoKHR---data DependencyInfoKHR--instance ToCStruct DependencyInfoKHR-instance Show DependencyInfoKHR--instance FromCStruct DependencyInfoKHR---type role ImageMemoryBarrier2KHR nominal-data ImageMemoryBarrier2KHR (es :: [Type])--instance (Extendss ImageMemoryBarrier2KHR es, PokeChain es) => ToCStruct (ImageMemoryBarrier2KHR es)-instance Show (Chain es) => Show (ImageMemoryBarrier2KHR es)--instance (Extendss ImageMemoryBarrier2KHR es, PeekChain es) => FromCStruct (ImageMemoryBarrier2KHR es)---data MemoryBarrier2KHR--instance ToCStruct MemoryBarrier2KHR-instance Show MemoryBarrier2KHR--instance FromCStruct MemoryBarrier2KHR---data PhysicalDeviceSynchronization2FeaturesKHR--instance ToCStruct PhysicalDeviceSynchronization2FeaturesKHR-instance Show PhysicalDeviceSynchronization2FeaturesKHR--instance FromCStruct PhysicalDeviceSynchronization2FeaturesKHR-- data QueueFamilyCheckpointProperties2NV instance ToCStruct QueueFamilyCheckpointProperties2NV instance Show QueueFamilyCheckpointProperties2NV instance FromCStruct QueueFamilyCheckpointProperties2NV---data SemaphoreSubmitInfoKHR--instance ToCStruct SemaphoreSubmitInfoKHR-instance Show SemaphoreSubmitInfoKHR--instance FromCStruct SemaphoreSubmitInfoKHR---type role SubmitInfo2KHR nominal-data SubmitInfo2KHR (es :: [Type])--instance (Extendss SubmitInfo2KHR es, PokeChain es) => ToCStruct (SubmitInfo2KHR es)-instance Show (Chain es) => Show (SubmitInfo2KHR es)--instance (Extendss SubmitInfo2KHR es, PeekChain es) => FromCStruct (SubmitInfo2KHR es)---type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR--data PipelineStageFlagBits2KHR
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -283,7 +283,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphore Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -102,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_uniform_buffer_standard_layout Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -87,7 +87,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.2-extensions/html/vkspec.html#features-variablePointersStorageBuffer variablePointersStorageBuffer>+-- <https://www.khronos.org/registry/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 +115,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-VariablePointers VariablePointers> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointersStorageBuffer VariablePointersStorageBuffer>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointersStorageBuffer VariablePointersStorageBuffer> -- -- == Issues --@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_variable_pointers Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -63,7 +63,7 @@ -- == Description -- -- The @VK_KHR_vulkan_memory_model@ extension allows use of the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-model Vulkan Memory Model>,+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VulkanMemoryModel VulkanMemoryModelKHR>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_KHR_vulkan_memory_model Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -56,7 +56,7 @@ -- == New Structures -- -- - Extending 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- -- - 'Win32KeyedMutexAcquireReleaseInfoKHR' --@@ -83,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -56,7 +56,7 @@ -- == New Structures -- -- - Extending 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- -- - 'Win32KeyedMutexAcquireReleaseInfoKHR' --@@ -83,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -208,7 +208,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -208,7 +208,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -94,11 +94,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR> -- -- == Version History --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -94,11 +94,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR> -- -- == Version History --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -23,6 +23,11 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ --+-- [__Deprecation state__]+--+-- - /Promoted/ to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3>+-- -- [__Contact__] -- -- - Alan Baker@@ -33,12 +38,13 @@ -- [__Last Modified Date__] -- 2020-11-18 --+-- [__Interactions and External Dependencies__]+--+-- - Promoted to Vulkan 1.3 Core+-- -- [__IP Status__] -- No known IP claims. ----- [__Interactions and External Dependencies__]--- None--- -- [__Contributors__] -- -- - Alan Baker, Google@@ -71,8 +77,14 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR' --+-- == Promotion to Vulkan 1.3+--+-- Functionality in this extension is included in core Vulkan 1.3, with the+-- KHR suffix omitted. The original type, enum and command names are still+-- available as aliases of the core functionality.+-- -- == Version History -- -- - Revision 1, 2020-11-18 (Alan Baker)@@ -86,109 +98,27 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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.-module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory ( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(..)+module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR+ , PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_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_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR))--- | VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR - Structure--- describing support for zero initialization of workgroup memory by an--- implementation------ = Members------ This structure describes the following feature:------ = Description------ If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'--- 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. 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'--- /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_zero_initialize_workgroup_memory VK_KHR_zero_initialize_workgroup_memory>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR- { -- | #features-shaderZeroInitializeWorkgroupMemory#- -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the- -- implementation supports initializing a variable in Workgroup storage- -- class.- shaderZeroInitializeWorkgroupMemory :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)-#endif-deriving instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+import Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES -instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where- peekCStruct p = do- shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR- (bool32ToBool shaderZeroInitializeWorkgroupMemory)--instance Storable PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where- zero = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR- zero+-- No documentation found for TopLevel "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR"+type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures type KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot
@@ -1,105 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_KHR_zero_initialize_workgroup_memory - device extension------ == VK_KHR_zero_initialize_workgroup_memory------ [__Name String__]--- @VK_KHR_zero_initialize_workgroup_memory@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 326------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Alan Baker--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_zero_initialize_workgroup_memory] @alan-baker%0A<<Here describe the issue or question you have about the VK_KHR_zero_initialize_workgroup_memory extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-11-18------ [__IP Status__]--- No known IP claims.------ [__Interactions and External Dependencies__]--- None------ [__Contributors__]------ - Alan Baker, Google------ - Jeff Bolz, Nvidia------ - Jason Ekstrand, Intel------ == Description------ This extension allows the use of a null constant initializer on shader--- Workgroup memory variables, allowing implementations to expose any--- special hardware or instructions they may have. Zero initialization is--- commonly used by applications running untrusted content (e.g. web--- browsers) as way of defeating memory-scraping attacks.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'------ == New Enum Constants------ - 'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME'------ - 'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'------ == Version History------ - Revision 1, 2020-11-18 (Alan Baker)------ - Internal draft version------ == See Also------ 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-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.-module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR--instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR-instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR--instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR-
src/Vulkan/Extensions/VK_MVK_ios_surface.hs view
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+-- <https://www.khronos.org/registry/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
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+-- <https://www.khronos.org/registry/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
@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -105,7 +105,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -105,7 +105,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -400,7 +400,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+-- <https://www.khronos.org/registry/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_binary_import.hs-boot view
@@ -400,7 +400,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -57,14 +57,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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- <https://www.khronos.org/registry/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 +113,13 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-positionperview PositionPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV> -- -- == Examples --@@ -153,7 +153,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -57,14 +57,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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- <https://www.khronos.org/registry/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 +113,13 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-positionperview PositionPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV> -- -- == Examples --@@ -153,7 +153,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_acquire_winrt_display Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification>+-- <https://www.khronos.org/registry/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_clip_space_w_scaling.hs-boot view
@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -84,9 +84,9 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV> -- -- == Issues --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification>+-- <https://www.khronos.org/registry/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 +157,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope>+-- <https://www.khronos.org/registry/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
@@ -84,9 +84,9 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV> -- -- == Issues --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -107,7 +107,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV> -- -- == Issues --@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -107,7 +107,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV> -- -- == Issues --@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -48,24 +48,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.2-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://www.khronos.org/registry/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.@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification>+-- <https://www.khronos.org/registry/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 +213,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.2-extensions/html/vkspec.html#resources-images-corner-sampled Corner-Sampled Images>.+ -- <https://www.khronos.org/registry/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
@@ -48,24 +48,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.2-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://www.khronos.org/registry/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.@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification>+-- <https://www.khronos.org/registry/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 +326,7 @@ data PhysicalDeviceCoverageReductionModeFeaturesNV = PhysicalDeviceCoverageReductionModeFeaturesNV { -- | #features-coverageReductionMode# @coverageReductionMode@ indicates -- whether the implementation supports coverage reduction modes. See- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-coverage-reduction Coverage Reduction>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reduction Coverage Reduction>. coverageReductionMode :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -591,7 +591,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.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://www.khronos.org/registry/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
@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -171,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -171,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification>+-- <https://www.khronos.org/registry/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_diagnostic_checkpoints.hs-boot view
@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -288,7 +288,7 @@ 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.2-extensions/html/vkspec.html#device-diagnostic-checkpoints diagnostic checkpoints>+-- <https://www.khronos.org/registry/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.
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot view
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -540,7 +540,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -740,7 +740,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -796,7 +796,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -804,7 +804,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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'@@ -1007,50 +1007,50 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419# If the -- bound graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1058,11 +1058,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1070,11 +1070,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1082,11 +1082,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1094,11 +1094,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1106,11 +1106,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1118,21 +1118,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04876# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdExecuteGeneratedCommandsNV-None-04877# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -1150,14 +1150,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727# If@@ -1181,7 +1181,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1190,7 +1190,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06173# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1199,7 +1199,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06174# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1208,7 +1208,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06175# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1217,7 +1217,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06176# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1226,7 +1226,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06177# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1235,61 +1235,61 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06180# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06181# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06182# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1298,7 +1298,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06184# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1311,11 +1311,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1327,13 +1327,13 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06186# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -1341,17 +1341,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -1359,7 +1359,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1367,11 +1367,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1380,37 +1380,37 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06189# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06190# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -1434,7 +1434,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-primitiveTopology-03420# If -- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- '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@@ -1450,7 +1450,7 @@ -- graphics pipeline was created with both the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1458,7 +1458,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913# If the bound -- graphics pipeline was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- '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@@ -1486,7 +1486,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04879# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- '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@@ -1524,7 +1524,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1617,7 +1617,7 @@ -- -- - #VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1709,7 +1709,7 @@ -- -- - #VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1797,7 +1797,7 @@ -- -- - #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1855,7 +1855,7 @@ -- -- - #VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1903,7 +1903,7 @@ -- command layout. IndirectCommandsLayoutCreateInfoNV -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (IndirectCommandsLayoutNV)@@ -1963,7 +1963,7 @@ -- -- - #VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2004,7 +2004,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -2051,7 +2051,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.2-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>. deviceGeneratedCommands :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -2372,7 +2372,7 @@ -- -- - #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot view
@@ -540,7 +540,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -85,7 +85,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.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/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@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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.hs-boot view
@@ -85,7 +85,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.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/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@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -166,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -85,7 +85,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.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/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@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -85,7 +85,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.2-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://www.khronos.org/registry/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@@ -271,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -68,7 +68,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fill_rectangle Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>+-- <https://www.khronos.org/registry/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
@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -104,17 +104,17 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-barycoordnv BaryCoordNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV>+-- - <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.2-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV>+-- - <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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV> -- -- == Issues --@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification>+-- <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.@@ -220,7 +220,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-barycentric Barycentric Interpolation>+-- <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
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot view
@@ -104,17 +104,17 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-barycoordnv BaryCoordNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV>+-- - <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.2-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV>+-- - <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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV> -- -- == Issues --@@ -176,7 +176,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification>+-- <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.
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -170,7 +170,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification>+-- <https://www.khronos.org/registry/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 +293,13 @@ -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>+-- <https://www.khronos.org/registry/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 +308,37 @@ -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums> -- /must/ be enabled -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580# -- One of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,+-- <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>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- /must/ be enabled -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps>+-- <https://www.khronos.org/registry/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@@ -401,12 +401,12 @@ -> -- | @combinerOps@ specifies a -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR' -- determining how the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <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>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://www.khronos.org/registry/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 +528,7 @@ -- property. -- -- These properties are related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>. -- -- == Valid Usage (Implicit) --@@ -641,12 +641,12 @@ , -- | @combinerOps@ specifies -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR' -- values determining how the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <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>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://www.khronos.org/registry/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
@@ -170,7 +170,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fragops-coverage-reduction coverage reduction mode>+-- <https://www.khronos.org/registry/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
@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -84,13 +84,13 @@ -- -- == New Variable Decoration ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-passthrough-passthrough PassthroughNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-passthrough PassthroughNV> -- in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-passthrough Geometry Shader Passthrough>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-GeometryShaderPassthroughNV GeometryShaderPassthroughNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-GeometryShaderPassthroughNV GeometryShaderPassthroughNV> -- -- == Issues --@@ -117,7 +117,7 @@ -- 2) How does interface matching work with passthrough geometry shaders? -- -- __RESOLVED__: This is described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-passthrough-interface Passthrough Interface Matching>.+-- <https://www.khronos.org/registry/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@@ -201,7 +201,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_geometry_shader_passthrough Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_glsl_shader Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -217,8 +217,8 @@ { -- | #features-inheritedViewportScissor2D# @inheritedViewportScissor2D@ -- indicates whether secondary command buffers can inherit most of the -- dynamic state affected by- -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT',- -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT',+ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',+ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT', -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT', -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR', from a primary@@ -275,7 +275,7 @@ -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT' --@@ -284,7 +284,7 @@ -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' ----- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- -- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.FALSE', then -- the command buffer does not inherit the listed dynamic state, and@@ -349,13 +349,13 @@ -- -- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedViewportScissor2D inherited viewport scissor>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedViewportScissor2D inherited viewport scissor> -- 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.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> -- 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
@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -51,20 +51,20 @@ -- attachments when all the color attachments in the render pass instance -- have 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling. This -- extension adds a new flag bit--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- that extends the existing--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatFeatureFlagBits2KHR' -- bits. This flag /can/ be set for renderable color formats in the -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- format properties structure member. Formats with the--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- flag /may/ be used as color attachments as long as all the color -- attachments in the render pass instance have -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling, and the -- formats their images views are created with have -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- which include--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'.+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'. -- This extension supports both dynamic rendering and traditional render -- passes. --@@ -91,9 +91,9 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- == Version History --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -117,9 +117,6 @@ , pattern NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION , NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME , pattern NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME- , FormatFeatureFlagBits2KHR(..)- , FormatFeatureFlags2KHR- , Flags64 ) where import Foreign.Marshal.Alloc (allocaBytes)@@ -144,9 +141,6 @@ import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV))-import Vulkan.Core10.FundamentalTypes (Flags64)-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))-import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR) -- | VkPhysicalDeviceLinearColorAttachmentFeaturesNV - Structure describing -- whether -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>@@ -178,7 +172,7 @@ data PhysicalDeviceLinearColorAttachmentFeaturesNV = PhysicalDeviceLinearColorAttachmentFeaturesNV { -- | #features-linearColorAttachment# @linearColorAttachment@ indicates -- whether the implementation supports renderable- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>+ -- <https://www.khronos.org/registry/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
@@ -51,20 +51,20 @@ -- attachments when all the color attachments in the render pass instance -- have 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling. This -- extension adds a new flag bit--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- that extends the existing--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatFeatureFlagBits2KHR' -- bits. This flag /can/ be set for renderable color formats in the -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- format properties structure member. Formats with the--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- flag /may/ be used as color attachments as long as all the color -- attachments in the render pass instance have -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling, and the -- formats their images views are created with have -- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@ -- which include--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'.+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'. -- This extension supports both dynamic rendering and traditional render -- passes. --@@ -91,9 +91,9 @@ -- is supported: -- -- - Extending--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': ----- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- == Version History --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -65,7 +65,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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- <https://www.khronos.org/registry/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. --@@ -125,21 +125,21 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-taskcount TaskCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-primitivecount PrimitiveCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-primitiveindices PrimitiveIndicesNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-clipdistancepv ClipDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-culldistancepv CullDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-layerpv LayerPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-meshviewcount MeshViewCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV> -- -- - (modified)@Position@ --@@ -175,7 +175,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV> -- -- == Issues --@@ -252,7 +252,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -357,7 +357,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawMeshTasksNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -413,7 +413,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -421,7 +421,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -622,50 +622,50 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-viewportCount-03417# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMeshTasksNV-scissorCount-03418# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMeshTasksNV-viewportCount-03419# If the bound -- graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawMeshTasksNV-viewportCount-04137# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -673,11 +673,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksNV-viewportCount-04138# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -685,11 +685,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksNV-viewportCount-04139# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -697,11 +697,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksNV-viewportCount-04140# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -709,11 +709,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -721,11 +721,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -733,21 +733,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksNV-None-04876# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawMeshTasksNV-None-04877# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -765,14 +765,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawMeshTasksNV-blendEnable-04727# If rasterization is@@ -795,7 +795,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06172# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -804,7 +804,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06173# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -813,7 +813,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06174# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -822,7 +822,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06175# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -831,7 +831,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06176# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -840,7 +840,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06177# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -849,61 +849,61 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-viewMask-06178# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06183# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -912,7 +912,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06184# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -925,11 +925,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -941,13 +941,13 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -955,17 +955,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -973,7 +973,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188# If the -- currently bound pipeline was created without a@@ -981,11 +981,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -994,37 +994,37 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksNV-renderPass-06198# If the current render -- pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -1151,7 +1151,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1207,7 +1207,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -1215,7 +1215,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -1418,50 +1418,50 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419# If the bound -- graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1469,11 +1469,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1481,11 +1481,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1493,11 +1493,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1505,11 +1505,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1517,11 +1517,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -1529,21 +1529,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-04876# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawMeshTasksIndirectNV-None-04877# If the bound graphics -- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -1561,14 +1561,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727# If@@ -1592,7 +1592,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1601,7 +1601,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1610,7 +1610,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06174# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1619,7 +1619,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06175# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1628,7 +1628,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06176# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1637,7 +1637,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06177# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -1646,61 +1646,61 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1709,7 +1709,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -1722,11 +1722,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1738,13 +1738,13 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -1752,17 +1752,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -1770,7 +1770,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1778,11 +1778,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -1791,37 +1791,37 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198# If the current -- render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -1992,7 +1992,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -2048,7 +2048,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -2056,7 +2056,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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'@@ -2259,50 +2259,50 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ -- of the pipeline -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419# If the -- bound graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' -- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic states enabled then both--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -2310,11 +2310,11 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -2322,11 +2322,11 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -2334,11 +2334,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140# If the -- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -2346,11 +2346,11 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- /must/ be greater than or equal to the @viewportCount@ parameter in -- the last call to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -2358,11 +2358,11 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142# -- If the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+-- '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@@ -2370,21 +2370,21 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- '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-vkCmdDrawMeshTasksIndirectCountNV-None-04877# If the bound -- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE' -- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command --@@ -2402,14 +2402,14 @@ -- <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_EXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- /must/ be @1@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727# If@@ -2433,7 +2433,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -2442,7 +2442,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -2451,7 +2451,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06174# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -2460,7 +2460,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06175# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -2469,7 +2469,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06176# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -2478,7 +2478,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06177# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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@@ -2487,61 +2487,61 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@viewMask@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179# -- If the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', -- the currently bound graphics pipeline /must/ have been created with -- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ -- equal to--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180# -- If the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@pColorAttachmentFormats@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@depthAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PipelineRenderingCreateInfoKHR'::@stencilAttachmentFormat@+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -2550,7 +2550,7 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- '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@@ -2563,11 +2563,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -2579,13 +2579,13 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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'@@ -2593,17 +2593,17 @@ -- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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'@@ -2611,7 +2611,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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188# -- If the currently bound pipeline was created without a@@ -2619,11 +2619,11 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@colorAttachmentCount@+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- parameter greater than @0@, then each element of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pColorAttachments@+-- '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@@ -2632,37 +2632,37 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190# If -- the current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- '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.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198# If the -- current render pass instance was begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- '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'@@ -2919,7 +2919,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.2-extensions/html/vkspec.html#drawing-mesh-shading>.+ -- <https://www.khronos.org/registry/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
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -65,7 +65,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.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- <https://www.khronos.org/registry/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. --@@ -125,21 +125,21 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-taskcount TaskCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-primitivecount PrimitiveCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-primitiveindices PrimitiveIndicesNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-clipdistancepv ClipDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-culldistancepv CullDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-layerpv LayerPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-meshviewcount MeshViewCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV> -- -- - (modified)@Position@ --@@ -175,7 +175,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV> -- -- == Issues --@@ -252,7 +252,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -347,41 +347,41 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchid LaunchIdNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchsize LaunchSizeNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldrayorigin WorldRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldraydirection WorldRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectrayorigin ObjectRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectraydirection ObjectRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmin RayTminNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmax RayTmaxNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instancecustomindex InstanceCustomIndexNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objecttoworld ObjectToWorldNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldtoobject WorldToObjectNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-hitt HitTNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-hitkind HitKindNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV> -- -- == Issues --@@ -461,7 +461,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -684,7 +684,7 @@ import Vulkan.Core10.Handles (PipelineCache) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Handles (PipelineLayout) import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo) import Vulkan.CStruct.Extends (PokeChain)@@ -915,7 +915,7 @@ -- structure. AccelerationStructureCreateInfoNV -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (AccelerationStructureNV)@@ -1012,7 +1012,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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1140,12 +1140,12 @@ -- = Description -- -- Accesses to @src@ and @dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/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@@ -1270,12 +1270,12 @@ -- -- Accesses to any of the acceleration structures listed in -- @pAccelerationStructures@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. --@@ -1412,12 +1412,12 @@ -- = Description -- -- Accesses to @dst@, @src@, and @scratch@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://www.khronos.org/registry/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 +1491,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.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#acceleration-structure-inactive-prims>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#resources-memory-aliasing memory aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing memory aliasing> -- -- == Valid Usage (Implicit) --@@ -1655,7 +1655,7 @@ -- 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_KHR_acceleration_structure.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' -- -- - #VUID-vkCmdTraceRaysNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic@@ -1711,7 +1711,7 @@ -- or storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdTraceRaysNV-OpTypeImage-06424# Any -- 'Vulkan.Core10.Handles.ImageView' or@@ -1719,7 +1719,7 @@ -- storage texel buffer where the image format field of the -- @OpTypeImage@ is @Unknown@ /must/ have image format features that -- support--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- '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@@ -1886,7 +1886,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.2-extensions/html/vkspec.html#ray-tracing-recursion-depth recursion depth>+-- <https://www.khronos.org/registry/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 --@@ -2211,7 +2211,7 @@ -- -- - #VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903# If -- @pipelineCache@ was created with--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT',+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', -- host access to @pipelineCache@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized> --@@ -2251,7 +2251,7 @@ -- -- - 'Vulkan.Core10.Enums.Result.SUCCESS' ----- - 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED_EXT'+-- - '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>] --@@ -2273,7 +2273,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.2-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- <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@@ -2281,7 +2281,7 @@ -- 'RayTracingPipelineCreateInfoNV' structures. ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoNV)) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <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))@@ -2606,7 +2606,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- == Valid Usage --@@ -2661,9 +2661,9 @@ -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-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_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' -- or--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- -- - #VUID-VkRayTracingPipelineCreateInfoNV-stage-06232# The @stage@ -- member of at least one element of @pStages@ /must/ be@@ -2713,7 +2713,7 @@ -- not include both -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEFER_COMPILE_BIT_NV' -- and--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT'+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' -- at the same time -- -- == Valid Usage (Implicit)@@ -2724,7 +2724,7 @@ -- -- - #VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext# @pNext@ /must/ -- be @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT'+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo' -- -- - #VUID-VkRayTracingPipelineCreateInfoNV-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique@@ -2784,7 +2784,7 @@ -- pipeline. groups :: Vector RayTracingShaderGroupCreateInfoNV , -- | @maxRecursionDepth@ is the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>+ -- <https://www.khronos.org/registry/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@@ -2808,7 +2808,7 @@ getNext RayTracingPipelineCreateInfoNV{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoNV e => b) -> Maybe b extends _ f- | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f | otherwise = Nothing instance (Extendss RayTracingPipelineCreateInfoNV es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoNV es) where@@ -3676,7 +3676,7 @@ -- -- - #VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://www.khronos.org/registry/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
@@ -347,41 +347,41 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchid LaunchIdNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-launchsize LaunchSizeNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldrayorigin WorldRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldraydirection WorldRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectrayorigin ObjectRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objectraydirection ObjectRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmin RayTminNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-raytmax RayTmaxNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instancecustomindex InstanceCustomIndexNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-objecttoworld ObjectToWorldNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-worldtoobject WorldToObjectNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-hitt HitTNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-hitkind HitKindNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV> -- -- == Issues --@@ -461,7 +461,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -174,7 +174,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification>+-- <https://www.khronos.org/registry/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_ray_tracing_motion_blur.hs-boot view
@@ -174,7 +174,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#fragops-rep-frag-test Representative Fragment Test>.+ -- <https://www.khronos.org/registry/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
@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -77,11 +77,11 @@ -- -- == New Variable Decoration ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask OverrideCoverageNV in SampleMask>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskOverrideCoverageNV SampleMaskOverrideCoverageNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_NV_sample_mask_override_coverage Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/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 +206,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetExclusiveScissorNV-None-02031# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusive scissor>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-exclusiveScissor exclusive scissor> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034# The@@ -216,11 +216,11 @@ -- inclusive -- -- - #VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> -- feature is not enabled, @firstExclusiveScissor@ /must/ be @0@ -- -- - #VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> -- feature is not enabled, @exclusiveScissorCount@ /must/ be @1@ -- -- - #VUID-vkCmdSetExclusiveScissorNV-x-02037# The @x@ and @y@ members of@@ -316,7 +316,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-exclusive-scissor Exclusive Scissor Test>+-- <https://www.khronos.org/registry/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 +398,7 @@ -- -- - #VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> -- feature is not enabled, @exclusiveScissorCount@ /must/ be @0@ or @1@ -- -- - #VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028#
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot view
@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -127,7 +127,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV> -- -- == Issues --@@ -190,7 +190,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.2-extensions/html/vkspec.html# 32));+-- > 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 rightMask = ((0xFF [^] footprint.offset.x) * 0x0101010101010101UL); -- > uint64_t bottomMask = 0xFFFFFFFFFFFFFFFFUL >> (8 * footprint.offset.y); -- > uint64_t bottomRight = returnedMask & bottomMask & rightMask;@@ -262,7 +262,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification>+-- <https://www.khronos.org/registry/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 +306,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-footprint Texel Footprint Evaluation>+-- <https://www.khronos.org/registry/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
@@ -127,7 +127,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV> -- -- == Issues --@@ -190,7 +190,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.2-extensions/html/vkspec.html# 32));+-- > 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 rightMask = ((0xFF [^] footprint.offset.x) * 0x0101010101010101UL); -- > uint64_t bottomMask = 0xFFFFFFFFFFFFFFFFUL >> (8 * footprint.offset.y); -- > uint64_t bottomRight = returnedMask & bottomMask & rightMask;@@ -262,7 +262,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,17 +86,17 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-warpspersmnv WarpsPerSMNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-smcountnv SMCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-warpidnv WarpIDNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -86,17 +86,17 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-warpspersmnv WarpsPerSMNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-smcountnv SMCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-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-warpidnv WarpIDNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -46,9 +46,9 @@ -- == Description -- -- This extension enables support for a new class of--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- on--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroups>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_NV_shader_subgroup_partitioned Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -209,7 +209,7 @@ -- -- __RESOLVED__ We are specifying the pipeline stage to be between the -- final--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://www.khronos.org/registry/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 +270,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification>+-- <https://www.khronos.org/registry/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 +397,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdBindShadingRateImageNV-None-02058# 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.3-extensions/html/vkspec.html#features-shadingRateImage shading rate image> -- feature /must/ be enabled -- -- - #VUID-vkCmdBindShadingRateImageNV-imageView-02059# If @imageView@ is@@ -525,7 +525,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064# 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.3-extensions/html/vkspec.html#features-shadingRateImage shading rate image> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067# The@@ -535,12 +535,12 @@ -- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <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-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <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@ -- -- == Valid Usage (Implicit)@@ -795,7 +795,7 @@ -- -- - #VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports> -- feature is not enabled, @viewportCount@ /must/ be @0@ or @1@ -- -- - #VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055#@@ -879,7 +879,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image Shading Rate Image>+-- <https://www.khronos.org/registry/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 +966,7 @@ -- property. -- -- These properties are related to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> -- feature. -- -- == Valid Usage (Implicit)@@ -1122,9 +1122,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.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage index>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage index> -- /j/ in the multi-pixel fragment. -- -- == Valid Usage@@ -1464,11 +1464,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.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://www.khronos.org/registry/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
@@ -209,7 +209,7 @@ -- -- __RESOLVED__ We are specifying the pipeline stage to be between the -- final--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://www.khronos.org/registry/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 +270,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -100,22 +100,22 @@ -- == New or Modified Built-In Variables -- -- - (modified)--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer>+-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer> -- -- - (modified)--- <https://www.khronos.org/registry/vulkan/specs/1.2-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-viewportindex ViewportIndex> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmask ViewportMaskNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmask ViewportMaskNV> -- -- == New Variable Decoration ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-layer ViewportRelativeNV in Layer>+-- - <https://www.khronos.org/registry/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.2-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-ShaderViewportIndexLayerNV ShaderViewportIndexLayerNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportMaskNV ShaderViewportMaskNV>+-- - <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#VK_NV_viewport_array2 Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -259,7 +259,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#vertexpostproc-viewport-swizzle Viewport Swizzle>.+-- <https://www.khronos.org/registry/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
@@ -259,7 +259,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -58,7 +58,7 @@ -- == New Structures -- -- - Extending 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- -- - 'Win32KeyedMutexAcquireReleaseInfoNV' --@@ -226,7 +226,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -58,7 +58,7 @@ -- == New Structures -- -- - Extending 'Vulkan.Core10.Queue.SubmitInfo',--- 'Vulkan.Extensions.VK_KHR_synchronization2.SubmitInfo2KHR':+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': -- -- - 'Win32KeyedMutexAcquireReleaseInfoNV' --@@ -226,7 +226,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -104,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -245,7 +245,7 @@ data PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { -- | #limits-fragmentdensityoffsetgranularity# -- @fragmentDensityOffsetGranularity@ is the granularity for- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density offsets>.+ -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density offsets>. fragmentDensityOffsetGranularity :: Extent2D } deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -291,7 +291,7 @@ -- = Description -- -- The array elements are given per @layer@ as defined by--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>,+-- <https://www.khronos.org/registry/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 +302,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.2-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>.+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffsets>+-- <https://www.khronos.org/registry/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
@@ -104,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>+-- <https://www.khronos.org/registry/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_render_pass_shader_resolve.hs view
@@ -150,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_store_ops Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -104,9 +104,9 @@ ) where import Data.String (IsString)-import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE_KHR))+import Vulkan.Core10.Enums.AttachmentStoreOp (AttachmentStoreOp(ATTACHMENT_STORE_OP_NONE)) -- No documentation found for TopLevel "VK_ATTACHMENT_STORE_OP_NONE_QCOM"-pattern ATTACHMENT_STORE_OP_NONE_QCOM = ATTACHMENT_STORE_OP_NONE_KHR+pattern ATTACHMENT_STORE_OP_NONE_QCOM = ATTACHMENT_STORE_OP_NONE type QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs view
@@ -55,7 +55,7 @@ -- -- This extension provides a mechanism for applications to enable driver -- support for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/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.@@ -225,7 +225,7 @@ -- coordinate system. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- <https://www.khronos.org/registry/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@@ -248,7 +248,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification>+-- <https://www.khronos.org/registry/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_render_pass_transform.hs-boot view
@@ -55,7 +55,7 @@ -- -- This extension provides a mechanism for applications to enable driver -- support for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://www.khronos.org/registry/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.@@ -225,7 +225,7 @@ -- coordinate system. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- <https://www.khronos.org/registry/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@@ -248,7 +248,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -115,7 +115,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -115,7 +115,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification>+-- <https://www.khronos.org/registry/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_QNX_screen_surface.hs view
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://www.khronos.org/registry/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
@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+-- <https://www.khronos.org/registry/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_VALVE_mutable_descriptor_type.hs view
@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+-- <https://www.khronos.org/registry/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.@@ -335,7 +335,7 @@ -- -- - #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04603# -- @pDescriptorTypes@ /must/ not contain--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot view
@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+-- <https://www.khronos.org/registry/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
@@ -29,11 +29,13 @@ import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..))-import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(..))+import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)+import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures(..)) import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures(..)) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(..)) import Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV(..))-import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR(..))+import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)+import Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures(..)) import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(..)) import Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV(..)) import Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV(..))@@ -45,6 +47,7 @@ import Vulkan.Core12 (PhysicalDeviceVulkan12Features(..)) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties(..))+import Vulkan.Core13 (PhysicalDeviceVulkan13Features(..)) import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..)) import Vulkan.Extensions.VK_AMD_gcn_shader (pattern AMD_GCN_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_half_float (pattern AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME)@@ -532,17 +535,8 @@ , deviceExtensionMinVersion = 0 } ]- "SPV_EXT_demote_to_helper_invocation" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]- [ RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- ]+ "SPV_EXT_demote_to_helper_invocation" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0] "SPV_KHR_fragment_shading_rate" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -566,13 +560,8 @@ , deviceExtensionMinVersion = 0 } ]- "SPV_KHR_non_semantic_info" -> (,)- []- [ RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- ]+ "SPV_KHR_non_semantic_info" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0] "SPV_EXT_shader_image_int64" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -584,17 +573,8 @@ , deviceExtensionMinVersion = 0 } ]- "SPV_KHR_terminate_invocation" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]- [ RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- ]+ "SPV_KHR_terminate_invocation" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0] "SPV_KHR_multiview" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0] "SPV_KHR_workgroup_memory_explicit_layout" -> (,)@@ -619,13 +599,8 @@ , deviceExtensionMinVersion = 0 } ]- "SPV_KHR_subgroup_uniform_control_flow" -> (,)- []- [ RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_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" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -656,17 +631,8 @@ , deviceExtensionMinVersion = 0 } ]- "SPV_KHR_integer_dot_product" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]- [ RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- ]+ "SPV_KHR_integer_dot_product" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0] _ -> ([], []) spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -2345,18 +2311,20 @@ } ] "DemoteToHelperInvocationEXT" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+ , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0 } ] [ RequireDeviceFeature { featureName = "shaderDemoteToHelperInvocation"- , checkFeature = \PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { shaderDemoteToHelperInvocation } ->+ , checkFeature = \PhysicalDeviceVulkan13Features { shaderDemoteToHelperInvocation } -> shaderDemoteToHelperInvocation- , enableFeature = \_ ->- PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { shaderDemoteToHelperInvocation = True }+ , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+ PhysicalDeviceVulkan13Features { shaderDemoteToHelperInvocation = True, .. } }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -2457,68 +2425,76 @@ } ] "DotProductInputAllKHR" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+ , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0 } ] [ RequireDeviceFeature { featureName = "shaderIntegerDotProduct"- , checkFeature = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->- shaderIntegerDotProduct- , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+ , checkFeature = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+ , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+ PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. } }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "DotProductInput4x8BitKHR" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+ , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0 } ] [ RequireDeviceFeature { featureName = "shaderIntegerDotProduct"- , checkFeature = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->- shaderIntegerDotProduct- , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+ , checkFeature = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+ , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+ PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. } }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "DotProductInput4x8BitPackedKHR" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+ , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0 } ] [ RequireDeviceFeature { featureName = "shaderIntegerDotProduct"- , checkFeature = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->- shaderIntegerDotProduct- , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+ , checkFeature = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+ , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+ PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. } }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "DotProductKHR" -> (,)- [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 3 0+ , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0 } ] [ RequireDeviceFeature { featureName = "shaderIntegerDotProduct"- , checkFeature = \PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct } ->- shaderIntegerDotProduct- , enableFeature = \_ -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR { shaderIntegerDotProduct = True }+ , checkFeature = \PhysicalDeviceVulkan13Features { shaderIntegerDotProduct } -> shaderIntegerDotProduct+ , enableFeature = \PhysicalDeviceVulkan13Features {..} ->+ PhysicalDeviceVulkan13Features { shaderIntegerDotProduct = True, .. } }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME , deviceExtensionMinVersion = 0
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 203+pattern HEADER_VERSION = 204 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 203+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 204 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.15+version: 3.16 synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics@@ -247,6 +247,37 @@ Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model+ Vulkan.Core13+ Vulkan.Core13.Enums+ Vulkan.Core13.Enums.AccessFlags2+ Vulkan.Core13.Enums.FormatFeatureFlags2+ Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits+ Vulkan.Core13.Enums.PipelineStageFlags2+ Vulkan.Core13.Enums.PrivateDataSlotCreateFlagBits+ Vulkan.Core13.Enums.RenderingFlagBits+ Vulkan.Core13.Enums.SubmitFlagBits+ Vulkan.Core13.Enums.ToolPurposeFlagBits+ Vulkan.Core13.Handles+ Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state+ Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2+ Vulkan.Core13.Promoted_From_VK_EXT_image_robustness+ Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block+ Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control+ Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback+ Vulkan.Core13.Promoted_From_VK_EXT_private_data+ Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation+ Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control+ Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment+ Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr+ Vulkan.Core13.Promoted_From_VK_EXT_tooling_info+ Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2+ Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering+ Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2+ Vulkan.Core13.Promoted_From_VK_KHR_maintenance4+ Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product+ Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation+ Vulkan.Core13.Promoted_From_VK_KHR_synchronization2+ Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory Vulkan.CStruct.Extends Vulkan.CStruct.Utils Vulkan.Dynamic@@ -418,6 +449,7 @@ Vulkan.Extensions.VK_KHR_get_memory_requirements2 Vulkan.Extensions.VK_KHR_get_physical_device_properties2 Vulkan.Extensions.VK_KHR_get_surface_capabilities2+ Vulkan.Extensions.VK_KHR_global_priority Vulkan.Extensions.VK_KHR_image_format_list Vulkan.Extensions.VK_KHR_imageless_framebuffer Vulkan.Extensions.VK_KHR_incremental_present