vulkan 3.10.1 → 3.10.2
raw patch · 302 files changed
+10650/−4973 lines, 302 files
Files
- changelog.md +3/−0
- package.yaml +1/−1
- readme.md +1/−1
- src/Vulkan/CStruct/Extends.hs +51/−0
- src/Vulkan/Core10.hs +2/−2
- src/Vulkan/Core10/AllocationCallbacks.hs +8/−0
- src/Vulkan/Core10/Buffer.hs +6/−4
- src/Vulkan/Core10/BufferView.hs +1/−1
- src/Vulkan/Core10/CommandBuffer.hs +23/−11
- src/Vulkan/Core10/CommandBufferBuilding.hs +350/−96
- src/Vulkan/Core10/DescriptorSet.hs +83/−46
- src/Vulkan/Core10/Device.hs +41/−6
- src/Vulkan/Core10/DeviceInitialization.hs +55/−54
- src/Vulkan/Core10/Enums/AccessFlagBits.hs +106/−104
- src/Vulkan/Core10/Enums/BlendFactor.hs +1/−1
- src/Vulkan/Core10/Enums/BlendOp.hs +1/−1
- src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs +5/−0
- src/Vulkan/Core10/Enums/DependencyFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/DynamicState.hs +77/−10
- src/Vulkan/Core10/Enums/Format.hs +107/−37
- src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs +6/−6
- src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs +0/−1
- src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/ImageLayout.hs +14/−6
- src/Vulkan/Core10/Enums/ImageTiling.hs +1/−1
- src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs +28/−23
- src/Vulkan/Core10/Enums/LogicOp.hs +2/−1
- src/Vulkan/Core10/Enums/LogicOp.hs-boot +8/−0
- src/Vulkan/Core10/Enums/ObjectType.hs +10/−0
- src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs +7/−7
- src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs +14/−7
- src/Vulkan/Core10/Enums/PrimitiveTopology.hs +2/−3
- src/Vulkan/Core10/Enums/QueueFlagBits.hs +18/−28
- src/Vulkan/Core10/Enums/StructureType.hs +149/−21
- src/Vulkan/Core10/Enums/VertexInputRate.hs +2/−1
- src/Vulkan/Core10/ExtensionDiscovery.hs +7/−2
- src/Vulkan/Core10/FuncPointers.hs +4/−0
- src/Vulkan/Core10/FundamentalTypes.hs +31/−3
- src/Vulkan/Core10/FundamentalTypes.hs-boot +4/−0
- src/Vulkan/Core10/Handles.hs +30/−0
- src/Vulkan/Core10/Image.hs +27/−19
- src/Vulkan/Core10/ImageView.hs +19/−17
- src/Vulkan/Core10/LayerDiscovery.hs +4/−6
- src/Vulkan/Core10/Memory.hs +16/−15
- src/Vulkan/Core10/MemoryManagement.hs +14/−12
- src/Vulkan/Core10/OtherTypes.hs +14/−12
- src/Vulkan/Core10/Pass.hs +40/−47
- src/Vulkan/Core10/Pipeline.hs +653/−266
- src/Vulkan/Core10/PipelineCache.hs +8/−7
- src/Vulkan/Core10/PipelineLayout.hs +2/−2
- src/Vulkan/Core10/Query.hs +5/−7
- src/Vulkan/Core10/Queue.hs +7/−7
- src/Vulkan/Core10/Sampler.hs +2/−1
- src/Vulkan/Core10/SparseResourceMemoryManagement.hs +15/−14
- src/Vulkan/Core11.hs +2/−2
- src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs +1/−1
- src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs +4/−4
- src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs +1/−1
- src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs +19/−8
- src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs +6/−8
- src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs +16/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs +14/−14
- src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs +42/−67
- src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs +10/−15
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +24/−5
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs +16/−47
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs +3/−4
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs +1/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs +3/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs +8/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs +1/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +33/−16
- src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs +23/−12
- src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs +6/−8
- src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs +22/−17
- src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs +20/−5
- src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs +12/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs +14/−8
- src/Vulkan/Core12.hs +49/−20
- src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs +3/−3
- src/Vulkan/Core12/Enums/DriverId.hs +11/−1
- src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs +25/−22
- src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs +9/−8
- src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs +7/−9
- src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs +9/−8
- src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs +16/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs +10/−9
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +66/−30
- src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs +18/−12
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +122/−20
- src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs +10/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs +4/−3
- src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs +14/−11
- src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs +10/−8
- src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs +16/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs +16/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs +6/−8
- src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs +12/−10
- src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs +44/−32
- src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs +10/−8
- src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs +19/−0
- src/Vulkan/Dynamic.hs +46/−1
- src/Vulkan/Extensions.hs +14/−0
- src/Vulkan/Extensions/Dependencies.hs +27/−11
- src/Vulkan/Extensions/Handles.hs +24/−0
- src/Vulkan/Extensions/Handles.hs-boot +8/−0
- src/Vulkan/Extensions/VK_AMD_buffer_marker.hs +5/−5
- src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs +13/−2
- src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs +4/−4
- src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot +2/−2
- src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs +6/−8
- src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs +6/−8
- src/Vulkan/Extensions/VK_AMD_shader_info.hs +11/−9
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs +11/−11
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot +9/−9
- src/Vulkan/Extensions/VK_EXT_4444_formats.hs +13/−2
- src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs +9/−7
- src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs +15/−16
- src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs +9/−8
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +6/−8
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_color_write_enable.hs +444/−0
- src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot +136/−0
- src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs +16/−10
- src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs +6/−9
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs +37/−15
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot +16/−10
- src/Vulkan/Extensions/VK_EXT_debug_report.hs +14/−4
- src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +20/−2
- src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs +9/−8
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs +18/−17
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot +8/−8
- src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs +11/−8
- src/Vulkan/Extensions/VK_EXT_display_control.hs +5/−3
- src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs +3/−0
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs +33/−25
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs +670/−0
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot +127/−0
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs +32/−30
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot +19/−19
- src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs +17/−16
- src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs +17/−16
- src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs +9/−8
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs +5/−5
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot +5/−5
- src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs +8/−531
- src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot +3/−526
- src/Vulkan/Extensions/VK_EXT_image_robustness.hs +9/−5
- src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs +9/−8
- src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs +18/−19
- src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs +17/−19
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot +2/−3
- src/Vulkan/Extensions/VK_EXT_memory_priority.hs +9/−8
- src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs +12/−0
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs +11/−10
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_private_data.hs +9/−7
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs +530/−0
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot +214/−0
- src/Vulkan/Extensions/VK_EXT_robustness2.hs +29/−22
- src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot +9/−9
- src/Vulkan/Extensions/VK_EXT_sample_locations.hs +11/−13
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs +16/−0
- src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs +16/−15
- src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot +6/−6
- src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs +16/−0
- src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs +15/−16
- src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs +15/−16
- src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs +10/−8
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +112/−55
- src/Vulkan/Extensions/VK_EXT_validation_cache.hs +9/−8
- src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs +18/−14
- src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs +601/−0
- src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot +150/−0
- src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs +214/−0
- src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot +109/−0
- src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs +10/−9
- src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs +12/−6
- src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs +6/−2
- src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs +1/−1
- src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs +8/−6
- src/Vulkan/Extensions/VK_INTEL_performance_query.hs +1/−1
- src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs +12/−9
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +170/−193
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot +6/−6
- src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +24/−24
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot +6/−6
- src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs +43/−6
- src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_device_group.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_display.hs +48/−52
- src/Vulkan/Extensions/VK_KHR_display.hs-boot +22/−23
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs +12/−11
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs +6/−2
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs +9/−5
- src/Vulkan/Extensions/VK_KHR_external_memory.hs +18/−17
- src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs +18/−7
- src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs +21/−13
- src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs +6/−2
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs +11/−7
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs +82/−86
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot +4/−4
- src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs +12/−12
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs +2/−4
- src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_incremental_present.hs +39/−12
- src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot +19/−1
- src/Vulkan/Extensions/VK_KHR_maintenance2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_multiview.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_performance_query.hs +30/−13
- src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs +61/−57
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_pipeline_library.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs +21/−20
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot +6/−4
- src/Vulkan/Extensions/VK_KHR_push_descriptor.hs +9/−12
- src/Vulkan/Extensions/VK_KHR_ray_query.hs +9/−7
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +59/−49
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot +5/−4
- src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_shader_clock.hs +14/−8
- src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs +14/−10
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs +10/−8
- src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_surface.hs +24/−24
- src/Vulkan/Extensions/VK_KHR_surface.hs-boot +12/−12
- src/Vulkan/Extensions/VK_KHR_swapchain.hs +113/−140
- src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot +40/−41
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs +107/−96
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot +5/−3
- src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_wayland_surface.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs +2/−1
- src/Vulkan/Extensions/VK_KHR_win32_surface.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs +11/−10
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_xcb_surface.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_xlib_surface.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs +14/−9
- src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot +4/−0
- src/Vulkan/Extensions/VK_NN_vi_surface.hs +3/−3
- src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_NVX_binary_import.hs +602/−0
- src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot +153/−0
- src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs +6/−9
- src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs +13/−11
- src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs +20/−22
- src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs +15/−14
- src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot +6/−6
- src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs +15/−13
- src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs +10/−9
- src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs +4/−3
- src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs +9/−8
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +107/−38
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot +11/−2
- src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs +10/−8
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs +49/−46
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot +25/−24
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs +457/−0
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot +175/−0
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +208/−50
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot +13/−13
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +30/−22
- src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs +10/−8
- src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs +9/−8
- src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs +13/−7
- src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs +19/−20
- src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot +4/−4
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +54/−29
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot +5/−6
- src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs +14/−14
- src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs +46/−16
- src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot +44/−14
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs +12/−11
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot +10/−9
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs +18/−119
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot +2/−117
- src/Vulkan/SPIRVRequirements.hs +118/−111
- src/Vulkan/Version.hs +30/−8
- vulkan.cabal +8/−1
changelog.md view
@@ -2,6 +2,9 @@ ## WIP +## [3.10.2] - 2021-06-05+- Bump API version to v1.2.179+ ## [3.10.1] - 2021-03-31 - Bump API version to v1.2.174 - Fix https://github.com/expipiplus1/vulkan/issues/266
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.10.1"+version: "3.10.2" synopsis: Bindings to the Vulkan graphics API. category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
readme.md view
@@ -462,7 +462,7 @@ ## Current Status All the core Vulkan 1.0, 1.1, and 1.2 functionality is here as well as all the-extensions.+extensions (except the video ones). This is currently a 64 bit only library.
src/Vulkan/CStruct/Extends.hs view
@@ -116,6 +116,7 @@ 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_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CommandBufferSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.ImageView (ComponentMapping)@@ -132,6 +133,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR) 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)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (D3D12FenceSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT)@@ -342,6 +346,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)@@ -363,6 +368,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_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalBufferInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo)@@ -392,6 +398,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) 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.Core10.DeviceInitialization (PhysicalDeviceLimits)@@ -421,6 +428,8 @@ 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) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)@@ -470,18 +479,21 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) 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.Core10.PipelineCache (PipelineCacheCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendAttachmentState) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendStateCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PipelineColorWriteCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)@@ -505,6 +517,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PipelineRasterizationProvokingVertexStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineRasterizationStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)@@ -627,7 +640,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_features (ValidationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_flags (ValidationFlagsEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (VertexInputAttributeDescription)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputAttributeDescription2EXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (VertexInputBindingDescription)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputBindingDescription2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NN_vi_surface (ViSurfaceCreateInfoNN) import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport)@@ -770,6 +785,7 @@ Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = ()+ Extends CommandBufferInheritanceInfo CommandBufferInheritanceViewportScissorInfoNV = () Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = () Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = () Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfoEXT = ()@@ -850,6 +866,7 @@ Extends DeviceCreateInfo PhysicalDeviceCoherentMemoryFeaturesAMD = () Extends DeviceCreateInfo PhysicalDeviceCustomBorderColorFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicState2FeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = () Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = () Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()@@ -863,7 +880,12 @@ Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()+ Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceSynchronization2FeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = ()+ Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = () Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = () Extends FenceCreateInfo ExportFenceCreateInfo = () Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()@@ -985,6 +1007,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceCoherentMemoryFeaturesAMD = () Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicState2FeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()@@ -997,7 +1020,12 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2FeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = () Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()@@ -1050,9 +1078,11 @@ Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = () Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()+ Extends PipelineColorBlendStateCreateInfo PipelineColorWriteCreateInfoEXT = () Extends PipelineMultisampleStateCreateInfo PipelineCoverageToColorStateCreateInfoNV = () Extends PipelineMultisampleStateCreateInfo PipelineSampleLocationsStateCreateInfoEXT = () Extends PipelineMultisampleStateCreateInfo PipelineCoverageModulationStateCreateInfoNV = ()@@ -1062,6 +1092,7 @@ Extends PipelineRasterizationStateCreateInfo PipelineRasterizationStateStreamCreateInfoEXT = () Extends PipelineRasterizationStateCreateInfo PipelineRasterizationDepthClipStateCreateInfoEXT = () Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = ()+ Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = () Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = () Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = () Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = ()@@ -1468,6 +1499,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT -> go @PhysicalDeviceCustomBorderColorPropertiesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT -> go @PhysicalDeviceCustomBorderColorFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicStateFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicState2FeaturesEXT STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM -> go @RenderPassTransformBeginInfoQCOM STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM -> go @CopyCommandTransformInfoQCOM STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM@@ -1492,9 +1524,18 @@ STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE -> go @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -> go @MutableDescriptorTypeCreateInfoVALVE+ STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceVertexInputDynamicStateFeaturesEXT+ 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_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> go @QueueFamilyCheckpointProperties2NV STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR -> go @PhysicalDeviceSynchronization2FeaturesKHR+ 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 t -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("Unrecognized struct type: " <> show t) Nothing Nothing where go :: forall e . (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b@@ -1791,6 +1832,7 @@ {-# complete (::&) :: PhysicalDeviceCustomBorderColorPropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceCustomBorderColorFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceExtendedDynamicStateFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceExtendedDynamicState2FeaturesEXT #-} {-# complete (::&) :: RenderPassTransformBeginInfoQCOM #-} {-# complete (::&) :: CopyCommandTransformInfoQCOM #-} {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-}@@ -1815,9 +1857,18 @@ {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesVALVE #-} {-# complete (::&) :: MutableDescriptorTypeCreateInfoVALVE #-}+{-# complete (::&) :: PhysicalDeviceVertexInputDynamicStateFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceColorWriteEnableFeaturesEXT #-}+{-# complete (::&) :: PipelineColorWriteCreateInfoEXT #-} {-# complete (::&) :: MemoryBarrier2KHR #-} {-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-} {-# complete (::&) :: PhysicalDeviceSynchronization2FeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceInheritedViewportScissorFeaturesNV #-}+{-# complete (::&) :: CommandBufferInheritanceViewportScissorInfoNV #-}+{-# complete (::&) :: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceProvokingVertexFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceProvokingVertexPropertiesEXT #-}+{-# complete (::&) :: PipelineRasterizationProvokingVertexStateCreateInfoEXT #-} -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10.hs view
@@ -69,7 +69,7 @@ import Vulkan.Core10.Shader import Vulkan.Core10.SparseResourceMemoryManagement import Data.Word (Word32)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) pattern API_VERSION_1_0 :: Word32-pattern API_VERSION_1_0 = MAKE_VERSION 1 0 0+pattern API_VERSION_1_0 = MAKE_API_VERSION 1 0 0
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -58,6 +58,8 @@ -- 'Vulkan.Core10.BufferView.createBufferView', -- 'Vulkan.Core10.CommandPool.createCommandPool', -- 'Vulkan.Core10.Pipeline.createComputePipelines',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX', -- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR',@@ -101,6 +103,8 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.createValidationCacheEXT', -- 'Vulkan.Extensions.VK_NN_vi_surface.createViSurfaceNN',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionKHR vkCreateVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR>, -- 'Vulkan.Extensions.VK_KHR_wayland_surface.createWaylandSurfaceKHR', -- 'Vulkan.Extensions.VK_KHR_win32_surface.createWin32SurfaceKHR', -- 'Vulkan.Extensions.VK_KHR_xcb_surface.createXcbSurfaceKHR',@@ -110,6 +114,8 @@ -- 'Vulkan.Core10.Buffer.destroyBuffer', -- 'Vulkan.Core10.BufferView.destroyBufferView', -- 'Vulkan.Core10.CommandPool.destroyCommandPool',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuModuleNVX', -- 'Vulkan.Extensions.VK_EXT_debug_report.destroyDebugReportCallbackEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.destroyDebugUtilsMessengerEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.destroyDeferredOperationKHR',@@ -138,6 +144,8 @@ -- 'Vulkan.Extensions.VK_KHR_surface.destroySurfaceKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.destroyValidationCacheEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR>, -- 'Vulkan.Core10.Memory.freeMemory', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT'
src/Vulkan/Core10/Buffer.hs view
@@ -368,8 +368,10 @@ -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>, -- or--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- - #VUID-VkBufferCreateInfo-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -413,9 +415,9 @@ -- specifying the sharing mode of the buffer when it will be accessed by -- multiple queue families. sharingMode :: SharingMode- , -- | @pQueueFamilyIndices@ is a list of queue families that will access this- -- buffer (ignored if @sharingMode@ is not- -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT').+ , -- | @pQueueFamilyIndices@ is a pointer to an array of queue families that+ -- will access this buffer. It is ignored if @sharingMode@ is not+ -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'. queueFamilyIndices :: Vector Word32 } deriving (Typeable)
src/Vulkan/Core10/BufferView.hs view
@@ -107,7 +107,7 @@ => -- | @device@ is the logical device that creates the buffer view. Device -> -- | @pCreateInfo@ is a pointer to a 'BufferViewCreateInfo' structure- -- containing parameters to be used to create the buffer.+ -- 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>
src/Vulkan/Core10/CommandBuffer.hs view
@@ -75,6 +75,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_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV) import Vulkan.Core10.Enums.CommandBufferLevel (CommandBufferLevel) import Vulkan.Core10.Enums.CommandBufferResetFlagBits (CommandBufferResetFlagBits(..)) import Vulkan.Core10.Enums.CommandBufferResetFlagBits (CommandBufferResetFlags)@@ -131,12 +132,18 @@ -- -- = Description ----- 'allocateCommandBuffers' /can/ be used to create multiple command--- buffers. If the creation of any of those command buffers fails, the--- implementation /must/ destroy all successfully created command buffer+-- 'allocateCommandBuffers' /can/ be used to allocate multiple command+-- buffers. If the allocation of any of those command buffers fails, the+-- implementation /must/ free all successfully allocated command buffer -- objects from this command, set all entries of the @pCommandBuffers@ -- array to @NULL@ and return the error. --+-- Note+--+-- Filling @pCommandBuffers@ with @NULL@ values on failure is an exception+-- to the default error behavior that output parameters will have undefined+-- 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>. --@@ -324,8 +331,8 @@ -- is a secondary command buffer and either the @occlusionQueryEnable@ -- member of the @pInheritanceInfo@ member of @pBeginInfo@ is -- 'Vulkan.Core10.FundamentalTypes.FALSE', or the precise occlusion--- queries feature is not enabled, the @queryFlags@ member of the--- @pInheritanceInfo@ member @pBeginInfo@ /must/ not contain+-- queries feature is not enabled, then+-- @pBeginInfo->pInheritanceInfo->queryFlags@ /must/ not contain -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT' -- -- - #VUID-vkBeginCommandBuffer-commandBuffer-02840# If @commandBuffer@@@ -371,8 +378,9 @@ => -- | @commandBuffer@ is the handle of the command buffer which is to be put -- in the recording state. CommandBuffer- -> -- | @pBeginInfo@ points to a 'CommandBufferBeginInfo' structure defining- -- additional information about how the command buffer begins recording.+ -> -- | @pBeginInfo@ is a pointer to a 'CommandBufferBeginInfo' structure+ -- defining additional information about how the command buffer begins+ -- recording. (CommandBufferBeginInfo a) -> io () beginCommandBuffer commandBuffer beginInfo = liftIO . evalContT $ do@@ -408,7 +416,9 @@ -- If there was an error during recording, the application will be notified -- by an unsuccessful return code returned by 'endCommandBuffer'. If the -- application wishes to further use the command buffer, the command buffer--- /must/ be reset. The command buffer /must/ have been in the+-- /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>, -- and is moved to the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.@@ -638,7 +648,7 @@ -- | VkCommandBufferInheritanceInfo - Structure specifying command buffer--- inheritance info+-- inheritance information -- -- == Valid Usage --@@ -679,9 +689,10 @@ -- - #VUID-VkCommandBufferInheritanceInfo-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_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT'+-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM', -- or--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV' -- -- - #VUID-VkCommandBufferInheritanceInfo-sType-unique# The @sType@ value -- of each struct in the @pNext@ chain /must/ be unique@@ -768,6 +779,7 @@ getNext CommandBufferInheritanceInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends CommandBufferInheritanceInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @CommandBufferInheritanceViewportScissorInfoNV = Just f | Just Refl <- eqT @e @CommandBufferInheritanceRenderPassTransformInfoQCOM = Just f | Just Refl <- eqT @e @CommandBufferInheritanceConditionalRenderingInfoEXT = Just f | otherwise = Nothing
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -325,13 +325,47 @@ -- - #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If -- @pipelineBindPoint@ is -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',--- the @pipeline@ /must/ be a ray tracing pipeline+-- @pipeline@ /must/ be a ray tracing pipeline ----- - #VUID-vkCmdBindPipeline-pipeline-03382# The @pipeline@ /must/ not--- have been created with+-- - #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 renderpass instance, including+-- any pipeline already bound when beginning the renderpass instance+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@@@ -430,6 +464,11 @@ -- <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@@@ -542,6 +581,11 @@ -- @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@@@ -685,8 +729,9 @@ -- -- = Description ----- If @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE', no depth--- bias is applied and the fragment’s depth values are unchanged.+-- If @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE' at draw+-- time, no depth bias is applied and the fragment’s depth values are+-- unchanged. -- -- @depthBiasSlopeFactor@ scales the maximum depth slope of the polygon, -- and @depthBiasConstantFactor@ scales the minimum resolvable difference@@ -1245,7 +1290,7 @@ -- <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 draw or dispatch+-- 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,@@ -1424,7 +1469,7 @@ ("firstSet" ::: Word32) -> -- | @pDescriptorSets@ is a pointer to an array of handles to -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor- -- sets to write to.+ -- sets to bind to. ("descriptorSets" ::: Vector DescriptorSet) -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values -- specifying dynamic offsets.@@ -1565,7 +1610,7 @@ -- 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 draw commands. If the+-- 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@@ -1806,9 +1851,9 @@ -- - #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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited 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@@ -1970,7 +2015,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1984,7 +2029,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -2000,7 +2045,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -2083,7 +2128,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -2091,6 +2136,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #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-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-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-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -2102,7 +2188,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -2123,6 +2209,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDraw-pStrides-04884# If the bound graphics pipeline was+-- created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer, any resource written to by the -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2132,7 +2228,7 @@ -- protected command buffer, pipeline stages other than the -- framebuffer-space and compute stages in the -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point /must/ not write to any resource+-- 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@@ -2224,7 +2320,7 @@ "dynamic" mkVkCmdDrawIndexed :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO () --- | vkCmdDrawIndexed - Issue an indexed draw into a command buffer+-- | vkCmdDrawIndexed - Draw primitives with indexed vertices -- -- = Description --@@ -2351,9 +2447,9 @@ -- - #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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited 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@@ -2520,7 +2616,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -2534,7 +2630,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -2550,7 +2646,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -2633,7 +2729,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -2641,6 +2737,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #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-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-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-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -2652,7 +2789,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -2673,6 +2810,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawIndexed-pStrides-04884# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer, any resource written to by the -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2682,7 +2829,7 @@ -- protected command buffer, pipeline stages other than the -- framebuffer-space and compute stages in the -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point /must/ not write to any resource+-- 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@@ -2783,7 +2930,7 @@ "dynamic" mkVkCmdDrawIndirect :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndirect - Issue an indirect draw into a command buffer+-- | vkCmdDrawIndirect - Draw primitives with indirect parameters -- -- = Description --@@ -2895,9 +3042,9 @@ -- - #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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited 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@@ -3064,7 +3211,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -3078,7 +3225,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -3094,7 +3241,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -3177,7 +3324,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -3185,6 +3332,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #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-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-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-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -3196,7 +3384,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -3217,6 +3405,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawIndirect-pStrides-04884# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #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@@ -3352,7 +3550,8 @@ "dynamic" mkVkCmdDrawIndexedIndirect :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndexedIndirect - Perform an indexed indirect draw+-- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and+-- indexed vertices -- -- = Description --@@ -3466,9 +3665,9 @@ -- - #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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited 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@@ -3636,7 +3835,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -3650,7 +3849,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -3666,7 +3865,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -3749,7 +3948,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -3757,6 +3956,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #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-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-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-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -3768,7 +4008,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -3789,6 +4029,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawIndexedIndirect-pStrides-04884# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #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@@ -4032,9 +4282,9 @@ -- - #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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited 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@@ -4160,7 +4410,7 @@ -- protected command buffer, pipeline stages other than the -- framebuffer-space and compute stages in the -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point /must/ not write to any resource+-- 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@@ -4249,7 +4499,7 @@ "dynamic" mkVkCmdDispatchIndirect :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO () --- | vkCmdDispatchIndirect - Dispatch compute work items using indirect+-- | vkCmdDispatchIndirect - Dispatch compute work items with indirect -- parameters -- -- = Description@@ -4360,9 +4610,9 @@ -- - #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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited 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@@ -5018,12 +5268,12 @@ -- -- - #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 and+-- 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 and+-- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and -- @dstSubresource.layerCount@ /must/ be @1@ -- -- - #VUID-vkCmdCopyImage-aspectMask-00142# For each element of@@ -5551,55 +5801,55 @@ -- present in @dstImage@ -- -- - #VUID-vkCmdBlitImage-srcOffset-00243# For each element of--- @pRegions@, @srcOffset@[0].x and @srcOffset@[1].x /must/ both be+-- @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@, @srcOffset@[0].y and @srcOffset@[1].y /must/ both be+-- @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@, @srcOffset@[0].y /must/ be @0@ and @srcOffset@[1].y+-- of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y -- /must/ be @1@ -- -- - #VUID-vkCmdBlitImage-srcOffset-00246# For each element of--- @pRegions@, @srcOffset@[0].z and @srcOffset@[1].z /must/ both be+-- @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@, @srcOffset@[0].z /must/ be @0@ and @srcOffset@[1].z+-- of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z -- /must/ be @1@ -- -- - #VUID-vkCmdBlitImage-dstOffset-00248# For each element of--- @pRegions@, @dstOffset@[0].x and @dstOffset@[1].x /must/ both be+-- @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@, @dstOffset@[0].y and @dstOffset@[1].y /must/ both be+-- @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@, @dstOffset@[0].y /must/ be @0@ and @dstOffset@[1].y+-- of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y -- /must/ be @1@ -- -- - #VUID-vkCmdBlitImage-dstOffset-00251# For each element of--- @pRegions@, @dstOffset@[0].z and @dstOffset@[1].z /must/ both be+-- @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@, @dstOffset@[0].z /must/ be @0@ and @dstOffset@[1].z+-- of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z -- /must/ be @1@ -- -- == Valid Usage (Implicit)@@ -5843,7 +6093,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- -- - #VUID-vkCmdCopyBufferToImage-imageOffset-00198# For each element of--- @pRegions@, @imageOffset.y@ and (imageExtent.height ++-- @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@ where this refers to the height of the /plane/ of the@@ -5869,7 +6119,7 @@ -- @imageExtent.height@ /must/ be @1@ -- -- - #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of--- @pRegions@, @imageOffset.z@ and (imageExtent.depth ++-- @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@@@ -6182,7 +6432,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' -- -- - #VUID-vkCmdCopyImageToBuffer-imageOffset-00197# For each element of--- @pRegions@ , @imageOffset.x@ and (@imageExtent.width@ ++-- @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@ where this refers to the width of the /plane/ of the@@ -6190,7 +6440,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- -- - #VUID-vkCmdCopyImageToBuffer-imageOffset-00198# For each element of--- @pRegions@ , @imageOffset.y@ and (imageExtent.height ++-- @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@ where this refers to the height of the /plane/ of the@@ -6216,7 +6466,7 @@ -- @imageExtent.height@ /must/ be @1@ -- -- - #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of--- @pRegions@, @imageOffset.z@ and (imageExtent.depth ++-- @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@@@ -7607,7 +7857,7 @@ -- - #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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdSetEvent-stageMask-4098# Any pipeline stage included in -- @stageMask@ /must/ be supported by the capabilities of the queue@@ -7758,7 +8008,7 @@ -- - #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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdResetEvent-stageMask-4098# Any pipeline stage included in -- @stageMask@ /must/ be supported by the capabilities of the queue@@ -7927,13 +8177,13 @@ -- 'cmdWaitEvents' is largely similar to -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', but /can/ -- only wait on signal operations defined by 'cmdSetEvent'. As--- 'cmdSetEvent' doesn’t define any access scopes, 'cmdWaitEvents' defines+-- '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' doesn’t have any dependency information beyond a+-- 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@@ -7975,7 +8225,7 @@ -- -- The first -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- 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@@ -7987,7 +8237,7 @@ -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- 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@@ -8039,7 +8289,7 @@ -- - #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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdWaitEvents-srcStageMask-4098# Any pipeline stage included -- in @srcStageMask@ /must/ be supported by the capabilities of the@@ -8093,7 +8343,7 @@ -- - #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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdWaitEvents-dstStageMask-4098# Any pipeline stage included -- in @dstStageMask@ /must/ be supported by the capabilities of the@@ -8161,9 +8411,9 @@ -- -- - #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be -- the bitwise OR of the @stageMask@ parameter used in previous calls--- to 'cmdSetEvent' with any of the members of @pEvents@ and+-- to 'cmdSetEvent' with any of the elements of @pEvents@ and -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'--- if any of the members of @pEvents@ was set using+-- if any of the elements of @pEvents@ was set using -- 'Vulkan.Core10.Event.setEvent' -- -- - #VUID-vkCmdWaitEvents-pEvents-01163# If @pEvents@ includes one or@@ -8179,8 +8429,8 @@ -- - #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current -- device mask /must/ include exactly one physical device ----- - #VUID-vkCmdWaitEvents-pEvents-03847# Members of @pEvents@ /must/ not--- have been signaled by+-- - #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/+-- not have been signaled by -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR' -- -- == Valid Usage (Implicit)@@ -8330,8 +8580,8 @@ -- -- 'cmdPipelineBarrier' operates almost identically to -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',--- other than the scopes and barriers defined as direct parameters rather--- than being defined by an+-- 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@@ -8366,7 +8616,7 @@ -- -- The first -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- 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@@ -8378,7 +8628,7 @@ -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- 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@@ -8439,7 +8689,7 @@ -- - #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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdPipelineBarrier-srcStageMask-4098# Any pipeline stage -- included in @srcStageMask@ /must/ be supported by the capabilities@@ -8493,7 +8743,7 @@ -- - #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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdPipelineBarrier-dstStageMask-4098# Any pipeline stage -- included in @dstStageMask@ /must/ be supported by the capabilities@@ -9280,7 +9530,7 @@ -- - #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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have -- been created with a @queryType@ of@@ -9292,6 +9542,9 @@ -- - #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 --@@ -9355,8 +9608,8 @@ => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer- -> -- | @pipelineStage@ is one of the- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',+ -> -- | @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.@@ -9868,8 +10121,8 @@ -- have been created with a @usage@ value including -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' ----- - #VUID-vkCmdBeginRenderPass-initialLayout-00900# If any of the--- @initialLayout@ members of the+-- - #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@@ -10495,7 +10748,7 @@ -- '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 from.+ , -- | @mipLevel@ is the mipmap level to copy mipLevel :: Word32 , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of -- layers to copy.@@ -10725,7 +10978,7 @@ -- = Description -- -- For each element of the @pRegions@ array, a blit operation is performed--- the specified source and destination regions.+-- for the specified source and destination regions. -- -- == Valid Usage --@@ -11077,7 +11330,8 @@ zero --- | VkRenderPassBeginInfo - Structure specifying render pass begin info+-- | VkRenderPassBeginInfo - Structure specifying render pass begin+-- information -- -- = Description --
src/Vulkan/Core10/DescriptorSet.hs view
@@ -310,10 +310,6 @@ -- -- = Description ----- @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.--- -- The created descriptor pool is returned in @pDescriptorPool@. -- -- == Valid Usage (Implicit)@@ -593,7 +589,7 @@ -- fail due to lack of space if the call to 'allocateDescriptorSets' would -- cause the number of any given descriptor type to exceed the sum of all -- the @descriptorCount@ members of each element of--- 'DescriptorPoolCreateInfo'::@pPoolSizes@ with a @member@ equal to that+-- 'DescriptorPoolCreateInfo'::@pPoolSizes@ with a @type@ equal to that -- type. -- -- Additionally, the allocation /may/ also fail if a call to@@ -875,7 +871,8 @@ pure $ () --- | VkDescriptorBufferInfo - Structure specifying descriptor buffer info+-- | VkDescriptorBufferInfo - Structure specifying descriptor buffer+-- information -- -- = Description --@@ -986,7 +983,8 @@ zero --- | VkDescriptorImageInfo - Structure specifying descriptor image info+-- | VkDescriptorImageInfo - Structure specifying descriptor image+-- information -- -- = Description --@@ -1153,7 +1151,10 @@ -- element zero. If a binding has a @descriptorCount@ of zero, it is -- skipped. This behavior applies recursively, with the update affecting -- consecutive bindings as needed to update all @descriptorCount@--- descriptors.+-- descriptors. Consecutive bindings /must/ have identical+-- elink::VkDescriptorType, elink::VkShaderStageFlags,+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits',+-- and immutable samplers references. -- -- Note --@@ -1485,11 +1486,6 @@ -- been created with -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT' set ----- - #VUID-VkWriteDescriptorSet-descriptorCount-03048# All consecutive--- bindings updated via a single 'WriteDescriptorSet' structure, except--- those with a @descriptorCount@ of zero, /must/ have identical--- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits'--- -- - #VUID-VkWriteDescriptorSet-descriptorType-02752# If @descriptorType@ -- is 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER', -- then @dstSet@ /must/ not have been allocated with a layout that@@ -1551,17 +1547,26 @@ -- then @dstArrayElement@ specifies the starting byte offset within the -- binding. dstArrayElement :: Word32- , -- | @descriptorCount@ is the number of descriptors to update (the number of- -- elements in @pImageInfo@, @pBufferInfo@, or @pTexelBufferView@ , or a- -- value matching the @dataSize@ member of a- -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'- -- structure in the @pNext@ chain , or a value matching the- -- @accelerationStructureCount@ of a- -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR'- -- structure in the @pNext@ chain ). If the descriptor binding identified- -- by @dstSet@ and @dstBinding@ has a descriptor type of- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+ , -- | @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', -- then @descriptorCount@ specifies the number of bytes to update.+ -- Otherwise, @descriptorCount@ is one of+ --+ -- - the number of elements in @pImageInfo@+ --+ -- - the number of elements in @pBufferInfo@+ --+ -- - the number of elements in @pTexelBufferView@+ --+ -- - a value matching the @dataSize@ member of a+ -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+ -- structure in the @pNext@ chain+ --+ -- - a value matching the @accelerationStructureCount@ of a+ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR'+ -- structure in the @pNext@ chain descriptorCount :: Word32 , -- | @descriptorType@ is a -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' specifying the type@@ -1770,11 +1775,13 @@ -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- flag set ----- - #VUID-VkCopyDescriptorSet-srcSet-01919# If @srcSet@’s layout was--- created without the+-- - #VUID-VkCopyDescriptorSet-srcSet-04885# If @srcSet@’s layout was+-- created with neither -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'--- flag set, then @dstSet@’s layout /must/ also have been created--- without the+-- nor+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+-- flags set, then @dstSet@’s layout /must/ have been created without+-- the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- flag set --@@ -1786,11 +1793,13 @@ -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' -- flag set ----- - #VUID-VkCopyDescriptorSet-srcSet-01921# If the descriptor pool from--- which @srcSet@ was allocated was created without the+-- - #VUID-VkCopyDescriptorSet-srcSet-04887# If the descriptor pool from+-- which @srcSet@ was allocated was created with neither -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT'--- flag set, then the descriptor pool from which @dstSet@ was allocated--- /must/ also have been created without the+-- nor+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- flags set, then the descriptor pool from which @dstSet@ was+-- allocated /must/ have been created without the -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' -- flag set --@@ -1962,15 +1971,15 @@ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER' -- descriptor with immutable samplers does not modify the samplers (the -- image views are updated, but the sampler updates are ignored). If--- @pImmutableSamplers@ is not @NULL@, then it points to an array of--- sampler handles that will be copied into the set layout and used for--- the corresponding binding. Only the sampler handles are copied; the--- sampler objects /must/ not be destroyed before the final use of the--- set layout and any descriptor pools and sets created using it. If--- @pImmutableSamplers@ is @NULL@, then the sampler slots are dynamic--- and sampler handles /must/ be bound into descriptor sets using this--- layout. If @descriptorType@ is not one of these descriptor types,--- then @pImmutableSamplers@ is ignored.+-- @pImmutableSamplers@ is not @NULL@, then it is a pointer to an array+-- of sampler handles that will be copied into the set layout and used+-- for the corresponding binding. Only the sampler handles are copied;+-- the sampler objects /must/ not be destroyed before the final use of+-- the set layout and any descriptor pools and sets created using it.+-- If @pImmutableSamplers@ is @NULL@, then the sampler slots are+-- dynamic and sampler handles /must/ be bound into descriptor sets+-- using this layout. If @descriptorType@ is not one of these+-- descriptor types, then @pImmutableSamplers@ is ignored. -- -- The above layout definition allows the descriptor bindings to be -- specified sparsely such that not all binding numbers between 0 and the@@ -2057,10 +2066,10 @@ -- type of resource descriptors are used for this binding. descriptorType :: DescriptorType , -- | @descriptorCount@ is the number of descriptors contained in the binding,- -- accessed in a shader as an array , except if @descriptorType@ is+ -- accessed in a shader as an array, except if @descriptorType@ is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT' -- in which case @descriptorCount@ is the size in bytes of the inline- -- uniform block . If @descriptorCount@ is zero this binding entry is+ -- uniform block. If @descriptorCount@ is zero this binding entry is -- reserved and the resource /must/ not be accessed from any stage via this -- binding within any pipeline using the set layout. descriptorCount :: Word32@@ -2407,9 +2416,10 @@ -- -- = Description ----- If multiple 'DescriptorPoolSize' structures appear in the @pPoolSizes@--- array then the pool will be created with enough storage for the total--- number of descriptors of each type.+-- If multiple 'DescriptorPoolSize' structures containing the same+-- descriptor type appear in the @pPoolSizes@ array then the pool will be+-- created with enough storage for the total number of descriptors of each+-- type. -- -- Fragmentation of a descriptor pool is possible and /may/ lead to -- descriptor set allocation failures. A failure due to fragmentation is@@ -2464,8 +2474,27 @@ -- descriptor. A mutable descriptor /can/ be allocated from a pool entry if -- the type list in 'DescriptorSetLayoutCreateInfo' is a subset of the type -- list declared in the descriptor pool, or if the pool entry is created--- without a descriptor type list.+-- without a descriptor type list. Multiple @pPoolSizes@ entries with+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE' /can/+-- be declared. When multiple such pool entries are present in+-- @pPoolSizes@, they specify sets of supported descriptor types which+-- either fully overlap, partially overlap, or are disjoint. Two sets fully+-- overlap if the sets of supported descriptor types are equal. If the sets+-- are not disjoint they partially overlap. A pool entry without a+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeListVALVE'+-- assigned to it is considered to partially overlap any other pool entry+-- which has a+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeListVALVE'+-- assigned to it. The application /must/ ensure that partial overlap does+-- not exist in @pPoolSizes@. --+-- Note+--+-- The requirement of no partial overlap is intended to resolve ambiguity+-- for validation as there is no confusion which @pPoolSizes@ entries will+-- be allocated from. An implementation is not expected to depend on this+-- requirement.+-- -- == Valid Usage -- -- - #VUID-VkDescriptorPoolCreateInfo-maxSets-00301# @maxSets@ /must/ be@@ -2488,6 +2517,14 @@ -- bit set, -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'::@mutableDescriptorType@ -- /must/ be enabled+--+-- - #VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787# If @pPoolSizes@+-- contains a @descriptorType@ of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- any other+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- element in @pPoolSizes@ /must/ not have sets of supported descriptor+-- types which partially overlap -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Device.hs view
@@ -96,6 +96,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV)@@ -109,6 +110,7 @@ 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_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)@@ -122,6 +124,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT) 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_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT)@@ -134,6 +137,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) 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_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)@@ -163,10 +167,12 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) 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 Vulkan.Core10.Handles (PhysicalDevice_T)@@ -213,9 +219,8 @@ -- -- Multiple logical devices /can/ be created from the same physical device. -- Logical device creation /may/ fail due to lack of device-specific--- resources (in addition to the other errors). If that occurs,--- 'createDevice' will return--- 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'.+-- resources (in addition to other errors). If that occurs, 'createDevice'+-- will return 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'. -- -- == Valid Usage --@@ -454,9 +459,9 @@ , -- | @flags@ is a bitmask indicating behavior of the queue. flags :: DeviceQueueCreateFlags , -- | @queueFamilyIndex@ is an unsigned integer indicating the index of the- -- queue family to create on this device. This index corresponds to the- -- index of an element of the @pQueueFamilyProperties@ array that was- -- returned by+ -- queue family in which to create the queue on this device. This index+ -- corresponds to the index of an element of the @pQueueFamilyProperties@+ -- array that was returned by -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'. queueFamilyIndex :: Word32 , -- | @pQueuePriorities@ is a pointer to an array of @queueCount@ normalized@@ -674,6 +679,24 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-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>+-- is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>+-- is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>+-- is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd>+-- /must/ be enabled+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkDeviceCreateInfo-sType-sType# @sType@ /must/ be@@ -696,6 +719,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',@@ -709,6 +733,7 @@ -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',@@ -721,6 +746,7 @@ -- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT', -- '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_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',@@ -733,6 +759,7 @@ -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',@@ -762,10 +789,12 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- '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'@@ -848,7 +877,12 @@ getNext DeviceCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b extends _ 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 @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f@@ -862,6 +896,7 @@ | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = 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 @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -34,7 +34,6 @@ , SystemAllocationScope(..) , PhysicalDeviceType(..) , Format(..)- , StructureType(..) , QueueFlagBits(..) , QueueFlags , MemoryPropertyFlagBits(..)@@ -237,7 +236,6 @@ import Vulkan.Core10.Enums.QueueFlagBits (QueueFlags) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(..)) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags)-import Vulkan.Core10.Enums.StructureType (StructureType(..)) import Vulkan.Core10.Enums.SystemAllocationScope (SystemAllocationScope(..)) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -432,9 +430,8 @@ -- variable is overwritten with the number of handles actually written to -- @pPhysicalDevices@. If @pPhysicalDeviceCount@ is less than the number of -- physical devices available, at most @pPhysicalDeviceCount@ structures--- will be written. If @pPhysicalDeviceCount@ is smaller than the number of--- physical devices available, 'Vulkan.Core10.Enums.Result.INCOMPLETE' will--- be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate+-- will be written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate -- that not all the available physical devices were returned. -- -- == Valid Usage (Implicit)@@ -1051,6 +1048,13 @@ -- associated with a 'Vulkan.Core10.Handles.PhysicalDevice' and its -- children. --+-- Note+--+-- The encoding of @driverVersion@ is implementation-defined. It /may/ not+-- use the same encoding as @apiVersion@. Applications should follow+-- information from the /vendor/ on how to extract the version information+-- from @driverVersion@.+-- -- The @vendorID@ and @deviceID@ fields are provided to allow applications -- to adapt to device characteristics that are not adequately exposed by -- other Vulkan queries.@@ -1209,7 +1213,7 @@ zero --- | VkApplicationInfo - Structure specifying application info+-- | VkApplicationInfo - Structure specifying application information -- -- = Description --@@ -1270,12 +1274,12 @@ -- -- Providing a @NULL@ 'InstanceCreateInfo'::@pApplicationInfo@ or providing -- an @apiVersion@ of 0 is equivalent to providing an @apiVersion@ of--- @VK_MAKE_VERSION(1,0,0)@.+-- @VK_MAKE_API_VERSION(0,1,0,0)@. -- -- == Valid Usage -- -- - #VUID-VkApplicationInfo-apiVersion-04010# If @apiVersion@ is not--- @0@, then it /must/ be greater or equal to+-- @0@, then it /must/ be greater than or equal to -- 'Vulkan.Core10.API_VERSION_1_0' -- -- == Valid Usage (Implicit)@@ -1524,10 +1528,10 @@ -- -- Possible values of @minImageTransferGranularity@ are: ----- - (0,0,0) which indicates that only whole mip levels /must/ be--- transferred using the image transfer operations on the corresponding--- queues. In this case, the following restrictions apply to all offset--- and extent parameters of image transfer operations:+-- - (0,0,0) specifies that only whole mip levels /must/ be transferred+-- using the image transfer operations on the corresponding queues. In+-- this case, the following restrictions apply to all offset and extent+-- parameters of image transfer operations: -- -- - The @x@, @y@, and @z@ members of a -- 'Vulkan.Core10.FundamentalTypes.Offset3D' parameter /must/@@ -2326,8 +2330,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFeatures' structure describe the--- following features:+-- This structure describes the following features: -- -- = See Also --@@ -2594,7 +2597,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>. multiDrawIndirect :: Bool , -- | #features-drawIndirectFirstInstance# @drawIndirectFirstInstance@- -- specifies whether indirect draw calls support the @firstInstance@+ -- specifies whether indirect drawing calls support the @firstInstance@ -- parameter. If this feature is not enabled, the @firstInstance@ member of -- all 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' and -- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures that@@ -2882,14 +2885,14 @@ -- @vertexPipelineStoresAndAtomics@ specifies whether storage buffers and -- images support stores and atomic operations in the vertex, tessellation, -- and geometry shader stages. If this feature is not enabled, all storage- -- image, storage texel buffers, and storage buffer variables used by these+ -- image, storage texel buffer, and storage buffer variables used by these -- stages in shader modules /must/ be decorated with the @NonWritable@ -- decoration (or the @readonly@ memory qualifier in GLSL). vertexPipelineStoresAndAtomics :: Bool , -- | #features-fragmentStoresAndAtomics# @fragmentStoresAndAtomics@ specifies -- whether storage buffers and images support stores and atomic operations -- in the fragment shader stage. If this feature is not enabled, all- -- storage image, storage texel buffers, and storage buffer variables used+ -- storage image, storage texel buffer, and storage buffer variables used -- by the fragment stage in shader modules /must/ be decorated with the -- @NonWritable@ decoration (or the @readonly@ memory qualifier in GLSL). fragmentStoresAndAtomics :: Bool@@ -2913,7 +2916,7 @@ , -- | #features-shaderImageGatherExtended# @shaderImageGatherExtended@ -- specifies whether the extended set of image gather instructions are -- available in shader code. If this feature is not enabled, the- -- @OpImage@*@Gather@ instructions do not support the @Offset@ and+ -- @OpImage*Gather@ instructions do not support the @Offset@ and -- @ConstOffsets@ operands. This also specifies whether shader modules -- /can/ declare the @ImageGatherExtended@ capability. shaderImageGatherExtended :: Bool@@ -3103,7 +3106,7 @@ , -- | #features-shaderResourceResidency# @shaderResourceResidency@ specifies -- whether image operations that return resource residency information are -- supported in shader code. If this feature is not enabled, the- -- @OpImageSparse@* instructions /must/ not be used in shader code. This+ -- @OpImageSparse*@ instructions /must/ not be used in shader code. This -- also specifies whether shader modules /can/ declare the -- @SparseResidency@ capability. The feature requires at least one of the -- @sparseResidency*@ features to be supported.@@ -3532,7 +3535,7 @@ , -- | @residencyNonResidentStrict@ specifies whether the physical device /can/ -- consistently access non-resident regions of a resource. If this property -- is 'Vulkan.Core10.FundamentalTypes.TRUE', access to non-resident regions- -- of resources will be guaranteed to return values as if the resource were+ -- of resources will be guaranteed to return values as if the resource was -- populated with 0; writes to non-resident regions will be discarded. residencyNonResidentStrict :: Bool }@@ -3595,17 +3598,6 @@ -- are available in the @limits@ member of the 'PhysicalDeviceProperties' -- structure which is returned from 'getPhysicalDeviceProperties'. ----- = Description------ [1]--- For all bitmasks of--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits', the--- sample count limits defined above represent the minimum supported--- 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>.--- -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Bool32',@@ -3659,19 +3651,19 @@ -- structure. maxTexelBufferElements :: Word32 , -- | #limits-maxUniformBufferRange# @maxUniformBufferRange@ is the maximum- -- value that /can/ be specified in the @range@ member of any- -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structures passed to- -- a call to 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for- -- descriptors of type- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or+ -- value that /can/ be specified in the @range@ member of a+ -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to+ -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of+ -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'+ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'. maxUniformBufferRange :: Word32 , -- | #limits-maxStorageBufferRange# @maxStorageBufferRange@ is the maximum- -- value that /can/ be specified in the @range@ member of any- -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structures passed to- -- a call to 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for- -- descriptors of type- -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or+ -- value that /can/ be specified in the @range@ member of a+ -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to+ -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of+ -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'+ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'. maxStorageBufferRange :: Word32 , -- | #limits-maxPushConstantsSize# @maxPushConstantsSize@ is the maximum@@ -3698,7 +3690,7 @@ bufferImageGranularity :: DeviceSize , -- | #limits-sparseAddressSpaceSize# @sparseAddressSpaceSize@ is the total -- amount of address space available, in bytes, for sparse memory- -- resources. This is an upper bound on the sum of the size of all sparse+ -- resources. This is an upper bound on the sum of the sizes of all sparse -- resources, regardless of whether any memory is bound to them. sparseAddressSpaceSize :: DeviceSize , -- | #limits-maxBoundDescriptorSets# @maxBoundDescriptorSets@ is the maximum@@ -4036,8 +4028,8 @@ maxGeometryOutputVertices :: Word32 , -- | #limits-maxGeometryTotalOutputComponents# -- @maxGeometryTotalOutputComponents@ is the maximum total number of- -- components of output, across all emitted vertices, which /can/ be output- -- from the geometry shader stage.+ -- components of output variables, across all emitted vertices, which /can/+ -- be output from the geometry shader stage. maxGeometryTotalOutputComponents :: Word32 , -- | #limits-maxFragmentInputComponents# @maxFragmentInputComponents@ is the -- maximum number of components of input variables which /can/ be provided@@ -4081,10 +4073,10 @@ maxComputeSharedMemorySize :: Word32 , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the -- maximum number of local workgroups that /can/ be dispatched by a single- -- dispatch command. These three values represent the maximum number of+ -- dispatching command. These three values represent the maximum number of -- local workgroups for the X, Y, and Z dimensions, respectively. The- -- workgroup count parameters to the dispatch commands /must/ be less than- -- or equal to the corresponding limit. See+ -- 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>. maxComputeWorkGroupCount :: (Word32, Word32, Word32) , -- | #limits-maxComputeWorkGroupInvocations# @maxComputeWorkGroupInvocations@@@ -4232,20 +4224,20 @@ -- this limit. minStorageBufferOffsetAlignment :: DeviceSize , -- | #limits-minTexelOffset# @minTexelOffset@ is the minimum offset value for- -- the @ConstOffset@ image operand of any of the @OpImageSample@* or- -- @OpImageFetch@* image instructions.+ -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or+ -- @OpImageFetch*@ image instructions. minTexelOffset :: Int32 , -- | #limits-maxTexelOffset# @maxTexelOffset@ is the maximum offset value for- -- the @ConstOffset@ image operand of any of the @OpImageSample@* or- -- @OpImageFetch@* image instructions.+ -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or+ -- @OpImageFetch*@ image instructions. maxTexelOffset :: Word32 , -- | #limits-minTexelGatherOffset# @minTexelGatherOffset@ is the minimum -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image- -- operands of any of the @OpImage@*@Gather@ image instructions.+ -- operands of any of the @OpImage*Gather@ image instructions. minTexelGatherOffset :: Int32 , -- | #limits-maxTexelGatherOffset# @maxTexelGatherOffset@ is the maximum -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image- -- operands of any of the @OpImage@*@Gather@ image instructions.+ -- operands of any of the @OpImage*Gather@ image instructions. maxTexelGatherOffset :: Word32 , -- | #limits-minInterpolationOffset# @minInterpolationOffset@ is the base -- minimum (inclusive) negative offset value for the @Offset@ operand of@@ -4338,7 +4330,7 @@ , -- | #limits-sampledImageStencilSampleCounts# -- @sampledImageStencilSampleCounts@ is a bitmask1 of -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating- -- the sample supported for all 2D images created with+ -- the sample counts supported for all 2D images created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@ -- containing -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a@@ -4459,6 +4451,15 @@ , -- | #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>.+ --+ -- [1]+ -- For all bitmasks of+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits', the+ -- sample count limits defined above represent the minimum supported+ -- 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>. nonCoherentAtomSize :: DeviceSize } deriving (Typeable, Eq)
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -21,8 +21,8 @@ , ACCESS_NONE_KHR , ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV , ACCESS_COMMAND_PREPROCESS_READ_BIT_NV+ , ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR , ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT- , ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV , ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR , ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR , ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT@@ -66,105 +66,105 @@ -- 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.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' |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | '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.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' |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | '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 --@@ -176,7 +176,7 @@ -- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' specifies read access to indirect -- command data read as part of an indirect build, trace, drawing or--- dispatch command.+-- dispatching command. 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@@ -279,13 +279,15 @@ -- 'Vulkan.Core10.Handles.Buffer' inputs to -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'. 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 or shading rate image+-- during rasterization.+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> -- during dynamic -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations> pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits 0x01000000--- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"-pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = AccessFlagBits 0x00800000 -- | '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>@@ -346,8 +348,8 @@ , (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_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_SHADING_RATE_IMAGE_READ_BIT_NV , "SHADING_RATE_IMAGE_READ_BIT_NV") , (ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, "ACCELERATION_STRUCTURE_WRITE_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")
src/Vulkan/Core10/Enums/BlendFactor.hs view
@@ -35,7 +35,7 @@ -- -- = Description ----- The semantics of each enum value is described in the table below:+-- The semantics of the enum values are described in the table below: -- -- +-----------------------------------------+---------------------+--------+ -- | 'BlendFactor' | RGB Blend Factors | Alpha |
src/Vulkan/Core10/Enums/BlendOp.hs view
@@ -67,7 +67,7 @@ -- -- = Description ----- The semantics of each basic blend operations is described in the table+-- The semantics of the basic blend operations are described in the table -- below: -- -- +-------------------------------+--------------------+-----------------+
src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs view
@@ -30,6 +30,11 @@ -- The color write mask operation is applied regardless of whether blending -- 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>+-- is enabled for the respective attachment. Otherwise the color write mask+-- is ignored and writes to all components of the attachment are disabled.+-- -- = See Also -- -- 'ColorComponentFlags'
src/Vulkan/Core10/Enums/DependencyFlagBits.hs view
@@ -37,7 +37,7 @@ -- <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>. 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 dependency>.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>. pattern DEPENDENCY_DEVICE_GROUP_BIT = DependencyFlagBits 0x00000004 conNameDependencyFlagBits :: String
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -9,6 +9,13 @@ , DYNAMIC_STATE_STENCIL_COMPARE_MASK , 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@@ -54,7 +61,7 @@ -- | 'DYNAMIC_STATE_VIEWPORT' specifies that the @pViewports@ state in -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored -- and /must/ be set dynamically with--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' before any draw+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' before any drawing -- commands. The number of viewports used by a pipeline is still specified -- by the @viewportCount@ member of -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'.@@ -62,7 +69,7 @@ -- | 'DYNAMIC_STATE_SCISSOR' specifies that the @pScissors@ state in -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored -- and /must/ be set dynamically with--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' before any draw+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' before any drawing -- commands. The number of scissor rectangles used by a pipeline is still -- specified by the @scissorCount@ member of -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'.@@ -70,7 +77,7 @@ -- | 'DYNAMIC_STATE_LINE_WIDTH' specifies that the @lineWidth@ state in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be -- ignored and /must/ be set dynamically with--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' before any draw+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' before any drawing -- commands that generate line primitives for the rasterizer. pattern DYNAMIC_STATE_LINE_WIDTH = DynamicState 2 -- | 'DYNAMIC_STATE_DEPTH_BIAS' specifies that the @depthBiasConstantFactor@,@@ -125,6 +132,52 @@ -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE' pattern DYNAMIC_STATE_STENCIL_REFERENCE = DynamicState 8+-- | 'DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' specifies that the+-- @pColorWriteEnables@ state in+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- '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+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+-- before any drawing commands.+pattern DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = DynamicState 1000377000+-- | 'DYNAMIC_STATE_VERTEX_INPUT_EXT' specifies that the @pVertexInputState@+-- states will be ignored and /must/ be set dynamically with+-- '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@@ -195,19 +248,19 @@ -- and the specific topology order and adjacency /must/ be set dynamically -- with -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- before any draw commands.+-- 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 draw commands.+-- 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 draw commands.+-- 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@@ -227,14 +280,14 @@ -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' -- or -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.cmdSetFragmentShadingRateEnumNV'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = DynamicState 1000226000 -- | 'DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV' specifies that the -- @pExclusiveScissors@ state in -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'--- before any draw commands. The number of exclusive scissor rectangles+-- before any drawing commands. The number of exclusive scissor rectangles -- used by a pipeline is still specified by the @exclusiveScissorCount@ -- member of -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'.@@ -244,14 +297,14 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = DynamicState 1000164006 -- | 'DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' specifies that the -- @pShadingRatePalettes@ state in -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = DynamicState 1000164004 -- | 'DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR' specifies that the -- default stack size computation for the pipeline will be ignored and@@ -298,6 +351,13 @@ DYNAMIC_STATE_STENCIL_COMPARE_MASK, 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,@@ -337,6 +397,13 @@ , (DYNAMIC_STATE_STENCIL_COMPARE_MASK , "STENCIL_COMPARE_MASK") , (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")
src/Vulkan/Core10/Enums/Format.hs view
@@ -187,6 +187,10 @@ , 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@@ -277,6 +281,9 @@ -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>, -- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.getPhysicalDeviceExternalImageFormatPropertiesNV', -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2',@@ -840,10 +847,10 @@ -- optionally:, 8 bits that are unused. pattern FORMAT_X8_D24_UNORM_PACK32 = Format 125 -- | 'FORMAT_D32_SFLOAT' specifies a one-component, 32-bit signed--- floating-point format that has 32-bits in the depth component.+-- floating-point format that has 32 bits in the depth component. pattern FORMAT_D32_SFLOAT = Format 126 -- | 'FORMAT_S8_UINT' specifies a one-component, 8-bit unsigned integer--- format that has 8-bits in the stencil component.+-- format that has 8 bits in the stencil component. pattern FORMAT_S8_UINT = Format 127 -- | 'FORMAT_D16_UNORM_S8_UINT' specifies a two-component, 24-bit format that -- has 16 unsigned normalized bits in the depth component and 8 unsigned@@ -855,7 +862,7 @@ pattern FORMAT_D24_UNORM_S8_UINT = Format 129 -- | 'FORMAT_D32_SFLOAT_S8_UINT' specifies a two-component format that has 32 -- signed float bits in the depth component and 8 unsigned integer bits in--- the stencil component. There are optionally: 24-bits that are unused.+-- the stencil component. There are optionally: 24 bits that are unused. pattern FORMAT_D32_SFLOAT_S8_UINT = Format 130 -- | 'FORMAT_BC1_RGB_UNORM_BLOCK' specifies a three-component, -- block-compressed format where each 64-bit compressed texel block encodes@@ -1119,6 +1126,61 @@ -- 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.@@ -1229,14 +1291,14 @@ -- /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. The horizontal dimensions of the BR plane is+-- in the word in bytes 2..3. The horizontal dimension of the BR plane is -- halved relative to the image dimensions, and each R and B value is -- shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a -- multiple of two.@@ -1263,7 +1325,7 @@ -- 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. The horizontal and vertical dimensions of the--- BR plane is halved relative to the image dimensions, and each R and B+-- BR plane are halved relative to the image dimensions, and each R and B -- value is shared with the G components for which -- \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5@@ -1344,14 +1406,14 @@ -- 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. The--- horizontal dimensions of the BR plane is halved relative to the image+-- word in bytes 2..3, with the bottom 4 bits of each word unused. The+-- horizontal dimension of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for--- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a -- multiple of two.@@ -1380,9 +1442,9 @@ -- 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. The--- horizontal and vertical dimensions of the BR plane is halved relative to--- the image dimensions, and each R and B value is shared with the G+-- word in bytes 2..3, with the bottom 4 bits of each word unused. The+-- horizontal and vertical dimensions of the BR plane are halved relative+-- to the image dimensions, and each R and B value is shared with the G -- components for which \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5 -- \right\rfloor = j_B = j_R\). The location of each plane when this image@@ -1486,14 +1548,14 @@ -- 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. The--- horizontal dimensions of the BR plane is halved relative to the image+-- word in bytes 2..3, with the bottom 6 bits of each word unused. The+-- horizontal dimension of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for--- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a -- multiple of two.@@ -1522,9 +1584,9 @@ -- 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. The--- horizontal and vertical dimensions of the BR plane is halved relative to--- the image dimensions, and each R and B value is shared with the G+-- word in bytes 2..3, with the bottom 6 bits of each word unused. The+-- horizontal and vertical dimensions of the BR plane are halved relative+-- to the image dimensions, and each R and B value is shared with the G -- components for which \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5 -- \right\rfloor = j_B = j_R\). The location of each plane when this image@@ -1624,14 +1686,14 @@ -- | 'FORMAT_G8_B8R8_2PLANE_422_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. The horizontal dimensions of+-- byte 0 and an 8-bit R component in byte 1. The horizontal dimension of -- the BR plane is halved relative to the image dimensions, and each R and -- B value is shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a -- multiple of two.@@ -1656,7 +1718,7 @@ -- /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. The horizontal and vertical--- dimensions of the BR plane is halved relative to the image dimensions,+-- dimensions of the BR plane are halved relative to the image dimensions, -- and each R and B value is shared with the G components for which -- \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5@@ -1900,6 +1962,10 @@ 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,@@ -2152,6 +2218,10 @@ , (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")
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -65,7 +65,7 @@ -- -- - '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 images>.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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.@@ -214,13 +214,13 @@ -- - '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>.--- An implementation /must/ not set this feature for formats that with+-- An implementation /must/ not set this feature for formats with -- numeric type other than @*UINT@, or set it as a buffer feature. -- -- 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.Core10.DeviceInitialization.getPhysicalDeviceProperties'::@format@:+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'::@format@: -- -- - 'FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT' specifies that the format -- /can/ be used to create a buffer view that /can/ be bound to a@@ -262,7 +262,7 @@ 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 images>.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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.@@ -334,8 +334,8 @@ -- | '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>.--- An implementation /must/ not set this feature for formats that with--- numeric type other than @*UINT@, or set it as a buffer feature.+-- 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
src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs view
@@ -47,7 +47,6 @@ -- | '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--- sparse -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory sparse resource> -- operations. pattern IMAGE_ASPECT_METADATA_BIT = ImageAspectFlagBits 0x00000008
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -62,7 +62,7 @@ -- backed using sparse memory binding with memory ranges that might also -- simultaneously be backing another image (or another portion of the same -- image). Images created with this flag /must/ also be created with the--- 'IMAGE_CREATE_SPARSE_BINDING_BIT' flag+-- 'IMAGE_CREATE_SPARSE_BINDING_BIT' flag. pattern IMAGE_CREATE_SPARSE_ALIASED_BIT = ImageCreateFlagBits 0x00000004 -- | 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that the image /can/ be used -- to create a 'Vulkan.Core10.Handles.ImageView' with a different format
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -11,8 +11,8 @@ , 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_SHADING_RATE_OPTIMAL_NV , IMAGE_LAYOUT_SHARED_PRESENT_KHR , IMAGE_LAYOUT_PRESENT_SRC_KHR , IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL@@ -118,7 +118,7 @@ -- subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'--- usage bit enabled.+-- usage bits enabled. 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@@ -154,6 +154,16 @@ -- 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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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'+-- usage bit enabled.+pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = ImageLayout 1000164003 -- | 'IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT' /must/ only be used as a -- fragment density map attachment in a 'Vulkan.Core10.Handles.RenderPass'. -- This layout is valid only for image subresources of images created with@@ -161,8 +171,6 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' -- usage bit enabled. pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = ImageLayout 1000218000--- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV"-pattern IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = ImageLayout 1000164003 -- | 'IMAGE_LAYOUT_SHARED_PRESENT_KHR' is valid only for shared presentable -- images, and /must/ be used for any usage the image supports. pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR = ImageLayout 1000111000@@ -218,8 +226,8 @@ 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_SHADING_RATE_OPTIMAL_NV, IMAGE_LAYOUT_SHARED_PRESENT_KHR, IMAGE_LAYOUT_PRESENT_SRC_KHR, IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,@@ -248,8 +256,8 @@ , (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_SHADING_RATE_OPTIMAL_NV , "SHADING_RATE_OPTIMAL_NV") , (IMAGE_LAYOUT_SHARED_PRESENT_KHR , "SHARED_PRESENT_KHR") , (IMAGE_LAYOUT_PRESENT_SRC_KHR , "PRESENT_SRC_KHR") , (IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL , "STENCIL_READ_ONLY_OPTIMAL")
src/Vulkan/Core10/Enums/ImageTiling.hs view
@@ -29,7 +29,7 @@ deriving newtype (Eq, Ord, Storable, Zero) -- | 'IMAGE_TILING_OPTIMAL' specifies optimal tiling (texels are laid out in--- an implementation-dependent arrangement, for more optimal memory+-- an implementation-dependent arrangement, for more efficient memory -- access). pattern IMAGE_TILING_OPTIMAL = ImageTiling 0 -- | 'IMAGE_TILING_LINEAR' specifies linear tiling (texels are laid out in
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -9,8 +9,8 @@ , IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT , IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT , IMAGE_USAGE_INPUT_ATTACHMENT_BIT+ , IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT- , IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV , .. ) ) where@@ -38,54 +38,59 @@ -- | 'IMAGE_USAGE_TRANSFER_SRC_BIT' specifies that the image /can/ be used as -- the source of a transfer command.-pattern IMAGE_USAGE_TRANSFER_SRC_BIT = ImageUsageFlagBits 0x00000001+pattern IMAGE_USAGE_TRANSFER_SRC_BIT = ImageUsageFlagBits 0x00000001 -- | 'IMAGE_USAGE_TRANSFER_DST_BIT' specifies that the image /can/ be used as -- the destination of a transfer command.-pattern IMAGE_USAGE_TRANSFER_DST_BIT = ImageUsageFlagBits 0x00000002+pattern IMAGE_USAGE_TRANSFER_DST_BIT = ImageUsageFlagBits 0x00000002 -- | 'IMAGE_USAGE_SAMPLED_BIT' specifies that the image /can/ be used to -- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a -- 'Vulkan.Core10.Handles.DescriptorSet' slot either of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE' or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER', -- and be sampled by a shader.-pattern IMAGE_USAGE_SAMPLED_BIT = ImageUsageFlagBits 0x00000004+pattern IMAGE_USAGE_SAMPLED_BIT = ImageUsageFlagBits 0x00000004 -- | 'IMAGE_USAGE_STORAGE_BIT' specifies that the image /can/ be used to -- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a -- 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'.-pattern IMAGE_USAGE_STORAGE_BIT = ImageUsageFlagBits 0x00000008+pattern IMAGE_USAGE_STORAGE_BIT = ImageUsageFlagBits 0x00000008 -- | 'IMAGE_USAGE_COLOR_ATTACHMENT_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for use as a -- color or resolve attachment in a 'Vulkan.Core10.Handles.Framebuffer'.-pattern IMAGE_USAGE_COLOR_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000010+pattern IMAGE_USAGE_COLOR_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000010 -- | 'IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that the image -- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- use as a depth\/stencil or depth\/stencil resolve attachment in a -- 'Vulkan.Core10.Handles.Framebuffer'.-pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000020+pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000020 -- | 'IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT' specifies that the memory bound--- to this image will have been allocated with the+-- to this image will be allocated with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT' -- (see -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory> -- for more detail). This bit /can/ be set for any image that /can/ be used -- to create a 'Vulkan.Core10.Handles.ImageView' suitable for use as a -- color, resolve, depth\/stencil, or input attachment.-pattern IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000040+pattern IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000040 -- | 'IMAGE_USAGE_INPUT_ATTACHMENT_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- occupying 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'; -- be read from a shader as an input attachment; and be used as an input -- attachment in a framebuffer.-pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000080+pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000080+-- | '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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>.-pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = ImageUsageFlagBits 0x00000200--- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"-pattern IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = ImageUsageFlagBits 0x00000100+pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = ImageUsageFlagBits 0x00000200 conNameImageUsageFlagBits :: String conNameImageUsageFlagBits = "ImageUsageFlagBits"@@ -95,16 +100,16 @@ showTableImageUsageFlagBits :: [(ImageUsageFlagBits, String)] showTableImageUsageFlagBits =- [ (IMAGE_USAGE_TRANSFER_SRC_BIT , "TRANSFER_SRC_BIT")- , (IMAGE_USAGE_TRANSFER_DST_BIT , "TRANSFER_DST_BIT")- , (IMAGE_USAGE_SAMPLED_BIT , "SAMPLED_BIT")- , (IMAGE_USAGE_STORAGE_BIT , "STORAGE_BIT")- , (IMAGE_USAGE_COLOR_ATTACHMENT_BIT , "COLOR_ATTACHMENT_BIT")- , (IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, "DEPTH_STENCIL_ATTACHMENT_BIT")- , (IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT , "TRANSIENT_ATTACHMENT_BIT")- , (IMAGE_USAGE_INPUT_ATTACHMENT_BIT , "INPUT_ATTACHMENT_BIT")- , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, "FRAGMENT_DENSITY_MAP_BIT_EXT")- , (IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV , "SHADING_RATE_IMAGE_BIT_NV")+ [ (IMAGE_USAGE_TRANSFER_SRC_BIT , "TRANSFER_SRC_BIT")+ , (IMAGE_USAGE_TRANSFER_DST_BIT , "TRANSFER_DST_BIT")+ , (IMAGE_USAGE_SAMPLED_BIT , "SAMPLED_BIT")+ , (IMAGE_USAGE_STORAGE_BIT , "STORAGE_BIT")+ , (IMAGE_USAGE_COLOR_ATTACHMENT_BIT , "COLOR_ATTACHMENT_BIT")+ , (IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT , "DEPTH_STENCIL_ATTACHMENT_BIT")+ , (IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT , "TRANSIENT_ATTACHMENT_BIT")+ , (IMAGE_USAGE_INPUT_ATTACHMENT_BIT , "INPUT_ATTACHMENT_BIT")+ , (IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")+ , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT , "FRAGMENT_DENSITY_MAP_BIT_EXT") ] instance Show ImageUsageFlagBits where
src/Vulkan/Core10/Enums/LogicOp.hs view
@@ -93,7 +93,8 @@ -- -- = See Also ----- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT' newtype LogicOp = LogicOp Int32 deriving newtype (Eq, Ord, Storable, Zero)
+ src/Vulkan/Core10/Enums/LogicOp.hs-boot view
@@ -0,0 +1,8 @@+{-# language CPP #-}+-- No documentation found for Chapter "LogicOp"+module Vulkan.Core10.Enums.LogicOp (LogicOp) where++++data LogicOp+
src/Vulkan/Core10/Enums/ObjectType.hs view
@@ -34,6 +34,8 @@ , OBJECT_TYPE_VALIDATION_CACHE_EXT , OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR , OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT+ , OBJECT_TYPE_CU_FUNCTION_NVX+ , OBJECT_TYPE_CU_MODULE_NVX , OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT , OBJECT_TYPE_DISPLAY_MODE_KHR , OBJECT_TYPE_DISPLAY_KHR@@ -225,6 +227,10 @@ pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = ObjectType 1000150000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT" pattern OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = ObjectType 1000128000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CU_FUNCTION_NVX"+pattern OBJECT_TYPE_CU_FUNCTION_NVX = ObjectType 1000029001+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CU_MODULE_NVX"+pattern OBJECT_TYPE_CU_MODULE_NVX = ObjectType 1000029000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT" pattern OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = ObjectType 1000011000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DISPLAY_MODE_KHR"@@ -273,6 +279,8 @@ OBJECT_TYPE_VALIDATION_CACHE_EXT, OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR, OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,+ OBJECT_TYPE_CU_FUNCTION_NVX,+ OBJECT_TYPE_CU_MODULE_NVX, OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT, OBJECT_TYPE_DISPLAY_MODE_KHR, OBJECT_TYPE_DISPLAY_KHR,@@ -323,6 +331,8 @@ , (OBJECT_TYPE_VALIDATION_CACHE_EXT , "VALIDATION_CACHE_EXT") , (OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR , "ACCELERATION_STRUCTURE_KHR") , (OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT , "DEBUG_UTILS_MESSENGER_EXT")+ , (OBJECT_TYPE_CU_FUNCTION_NVX , "CU_FUNCTION_NVX")+ , (OBJECT_TYPE_CU_MODULE_NVX , "CU_MODULE_NVX") , (OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT , "DEBUG_REPORT_CALLBACK_EXT") , (OBJECT_TYPE_DISPLAY_MODE_KHR , "DISPLAY_MODE_KHR") , (OBJECT_TYPE_DISPLAY_KHR , "DISPLAY_KHR")
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -68,9 +68,9 @@ -- on each shader in the pipeline before using the pipeline. -- -- - 'PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR' specifies that the--- shader compiler should capture statistics for the executables--- produced by the compile process which /can/ later be retrieved by--- calling+-- shader compiler should capture statistics for the pipeline+-- executables produced by the compile process which /can/ later be+-- retrieved by calling -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR'. -- Enabling this flag /must/ not affect the final compiled pipeline but -- /may/ disable pipeline caching or otherwise affect pipeline creation@@ -78,8 +78,8 @@ -- -- - 'PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' specifies -- that the shader compiler should capture the internal representations--- of executables produced by the compile process which /can/ later be--- retrieved by calling+-- of pipeline executables produced by the compile process which /can/+-- later be retrieved by calling -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR'. -- Enabling this flag /must/ not affect the final compiled pipeline but -- /may/ disable pipeline caching or otherwise affect pipeline creation@@ -109,10 +109,10 @@ -- -- - 'PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies that -- triangle primitives will be skipped during traversal using--- @OpTraceKHR@.+-- @OpTraceRayKHR@. -- -- - 'PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that AABB--- primitives will be skipped during traversal using @OpTraceKHR@.+-- primitives will be skipped during traversal using @OpTraceRayKHR@. -- -- - 'PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' -- specifies that the shader group handles /can/ be saved and reused on
src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs view
@@ -20,10 +20,10 @@ , 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 , PIPELINE_STAGE_MESH_SHADER_BIT_NV , PIPELINE_STAGE_TASK_SHADER_BIT_NV- , PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV , PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR , PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR , PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT@@ -69,8 +69,9 @@ -- execution when specified in the first scope. pattern PIPELINE_STAGE_TOP_OF_PIPE_BIT = PipelineStageFlagBits 0x00000001 -- | 'PIPELINE_STAGE_DRAW_INDIRECT_BIT' specifies the stage of the pipeline--- where Draw\/DispatchIndirect\/TraceRaysIndirect data structures are--- consumed. This stage also includes reading commands written by+-- 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 -- | 'PIPELINE_STAGE_VERTEX_INPUT_BIT' specifies the stage of the pipeline@@ -172,7 +173,7 @@ -- -- - 'PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' ----- - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - 'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT = PipelineStageFlagBits 0x00008000@@ -186,6 +187,14 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV' -- is handled. 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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-attachment 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>.@@ -194,8 +203,6 @@ 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--- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"-pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = PipelineStageFlagBits 0x00400000 -- | 'PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of -- the ray tracing shader stages, via -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV' ,@@ -251,10 +258,10 @@ , (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_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_SHADING_RATE_IMAGE_BIT_NV , "SHADING_RATE_IMAGE_BIT_NV") , (PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR , "RAY_TRACING_SHADER_BIT_KHR") , (PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, "ACCELERATION_STRUCTURE_BUILD_BIT_KHR") , (PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT , "CONDITIONAL_RENDERING_BIT_EXT")
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -37,9 +37,8 @@ -- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS41NzgxMjUiCiAgIGhlaWdodD0iMTMuODc1IgogICB2aWV3Qm94PSIwIDAgOS41NzgxMjUxIDEzLjg3NSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXhfbnVtYmVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuODI4NDI3MSIKICAgICBpbmtzY2FwZTpjeD0iNzguNTg2NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii02OS41NjgzODgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgZml0LW1hcmdpbi10b3A9IjEiCiAgICAgZml0LW1hcmdpbi1sZWZ0PSIxIgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEiCiAgICAgaW5rc2NhcGU6c25hcC1ncmlkcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLXRleHQtYmFzZWxpbmU9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1vYmplY3QtbWlkcG9pbnRzPSJ0cnVlIgogICAgIHVuaXRzPSJweCIKICAgICBib3JkZXJsYXllcj0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkOTYyNiIKICAgICAgIG9yaWdpbng9Ii05MC4zNjcxOTEiCiAgICAgICBvcmlnaW55PSItNjE4Ljc1Nzg0IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTg2NTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDIuOTAxNTgsMjEwLjY2Nzg2KSI+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCIKICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgIHk9Ii0xOTguMDM1MDUiCiAgICAgICBpZD0idGV4dDUwNzAtMi0yLTktOS00MS05Ij48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNTA2OC0wLTMtMzYtOS0xLTUiCiAgICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgICAgeT0iLTE5OC4wMzUwNSIKICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjE2cHg7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCI+NTwvdHNwYW4+PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg== primitive topology key vertex number>> | Vertex | Sequence position of a vertex within the provided vertex data. | -- | | Number | | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNTcuNDYxNTcxIgogICBoZWlnaHQ9IjguOTgxNzg2NyIKICAgdmlld0JveD0iMCAwIDU3LjQ2MTU3MSA4Ljk4MTc4NyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV9wcm92b2tpbmdfdmVydGV4LnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciPgogICAgPG1hcmtlcgogICAgICAgaW5rc2NhcGU6c3RvY2tpZD0iQXJyb3cxTXN0YXJ0IgogICAgICAgb3JpZW50PSJhdXRvIgogICAgICAgcmVmWT0iMCIKICAgICAgIHJlZlg9IjAiCiAgICAgICBpZD0ibWFya2VyNjc0NC04LTItMiIKICAgICAgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaW5rc2NhcGU6aXNzdG9jaz0idHJ1ZSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoNjc0Mi05LTY3LTUiCiAgICAgICAgIGQ9Ik0gMCwwIDUsLTUgLTEyLjUsMCA1LDUgWiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZiMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZiMDAwMDtzdHJva2Utd2lkdGg6MS4wMDAwMDAwM3B0O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuNCwwLDAsMC40LDQsMCkiIC8+CiAgICA8L21hcmtlcj4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuODI4NDI3MSIKICAgICBpbmtzY2FwZTpjeD0iLTEzOC43MDg0NCIKICAgICBpbmtzY2FwZTpjeT0iLTU1Ljg2NTYyOCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU5NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxNDk1IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI0ODEiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjE5MSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItOTAuNTA5MTEiCiAgICAgICBvcmlnaW55PSItNTk1LjUwOTE2IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTg2NTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDMuMDQzNSwxODIuNTI1OTUpIj4KICAgIDxnCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTMwLDM1LjAwMDA1NykiCiAgICAgICBpZD0iZzExOTEzLTAiPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDE4NzItMi0zLTEtMS01IgogICAgICAgICBkPSJtIDI4Ny41MzQzOSwtMjEzLjAzNTExIGggLTUwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmIwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItc3RhcnQ6dXJsKCNtYXJrZXI2NzQ0LTgtMi0yKSIgLz4KICAgICAgPGNpcmNsZQogICAgICAgICByPSIzLjQ5MDg5MzEiCiAgICAgICAgIGN5PSItMjEzLjAzNTExIgogICAgICAgICBjeD0iMjM3LjUzNDM5IgogICAgICAgICBpZD0icGF0aDQ1MTctMC04LTUtOTEtMC0zLTgiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZjAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key provoking vertex>> | Provoking | Provoking vertex within the main primitive. The arrow points along an edge of the relevant primitive, following winding order. |--- | | Vertex | Used in |--- | | | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>. |+-- | <<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>. | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ -- | <<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 | |
src/Vulkan/Core10/Enums/QueueFlagBits.hs view
@@ -28,29 +28,6 @@ -- -- = Description ----- - 'QUEUE_GRAPHICS_BIT' specifies that queues in this queue family--- support graphics operations.------ - 'QUEUE_COMPUTE_BIT' specifies that queues in this queue family--- support compute operations.------ - 'QUEUE_TRANSFER_BIT' specifies that queues in this queue family--- support transfer operations.------ - '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>).--- If any of the sparse resource features are enabled, then at least--- one queue family /must/ support this bit.------ - if 'QUEUE_PROTECTED_BIT' is set, then the queues in this queue--- family support 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>).--- If the physical device supports the @protectedMemory@ feature, at--- least one of its queue families /must/ support this bit.--- -- If an implementation exposes any queue family that supports graphics -- operations, at least one queue family of at least one physical device -- exposed by the implementation /must/ support both graphics and compute@@ -79,15 +56,28 @@ newtype QueueFlagBits = QueueFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_GRAPHICS_BIT"+-- | 'QUEUE_GRAPHICS_BIT' specifies that queues in this queue family support+-- graphics operations. pattern QUEUE_GRAPHICS_BIT = QueueFlagBits 0x00000001--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_COMPUTE_BIT"+-- | 'QUEUE_COMPUTE_BIT' specifies that queues in this queue family support+-- compute operations. pattern QUEUE_COMPUTE_BIT = QueueFlagBits 0x00000002--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_TRANSFER_BIT"+-- | 'QUEUE_TRANSFER_BIT' specifies that queues in this queue family support+-- transfer operations. pattern QUEUE_TRANSFER_BIT = QueueFlagBits 0x00000004--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_SPARSE_BINDING_BIT"+-- | '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>).+-- 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--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_PROTECTED_BIT"+-- | 'QUEUE_PROTECTED_BIT' specifies that queues in this queue family support+-- 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>).+-- 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 conNameQueueFlagBits :: String
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -49,12 +49,18 @@ , STRUCTURE_TYPE_MEMORY_BARRIER , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+ , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA , 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_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT+ , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT@@ -75,6 +81,7 @@ , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT , STRUCTURE_TYPE_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@@ -108,6 +115,8 @@ , 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_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 , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV@@ -133,6 +142,9 @@ , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT+ , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV@@ -355,6 +367,9 @@ , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX+ , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX+ , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX+ , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT@@ -505,23 +520,6 @@ -- | VkStructureType - Vulkan structure types (@sType@) ----- = Description------ Each value corresponds to a particular structure with a @sType@ member--- with a matching name. As a general rule, the name of each--- 'StructureType' value is obtained by taking the name of the structure,--- stripping the leading @Vk@, prefixing each capital letter with @_@,--- converting the entire resulting string to upper case, and prefixing it--- with @VK_STRUCTURE_TYPE_@. For example, structures of type--- 'Vulkan.Core10.Image.ImageCreateInfo' correspond to a 'StructureType' of--- 'STRUCTURE_TYPE_IMAGE_CREATE_INFO', and thus its @sType@ member /must/--- equal that when it is passed to the API.------ The values 'STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO' and--- 'STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO' are reserved for internal use--- by the loader, and do not have corresponding Vulkan structures in this--- Specification.--- -- = See Also -- -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',@@ -576,6 +574,7 @@ -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- 'Vulkan.Extensions.VK_KHR_synchronization2.CommandBufferSubmitInfoKHR', -- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo', -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',@@ -590,6 +589,9 @@ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyMemoryToAccelerationStructureInfoKHR',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleCreateInfoNVX', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR', -- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerMarkerInfoEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectNameInfoEXT',@@ -760,6 +762,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',@@ -781,6 +784,7 @@ -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo',@@ -809,6 +813,7 @@ -- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT', -- '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.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',@@ -835,6 +840,8 @@ -- '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',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',@@ -883,17 +890,21 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>, -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- '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.Core10.PipelineCache.PipelineCacheCreateInfo', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT', -- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD', -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV',@@ -916,6 +927,7 @@ -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo', -- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',@@ -1004,7 +1016,51 @@ -- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT', -- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateInfoNN',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHR VkVideoBeginCodingInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodingControlInfoKHR VkVideoCodingControlInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoEXT VkVideoDecodeH264DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264MvcEXT VkVideoDecodeH264MvcEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoEXT VkVideoDecodeH264PictureInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionCreateInfoEXT VkVideoDecodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoEXT VkVideoDecodeH264SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoEXT VkVideoDecodeH264SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesEXT VkVideoDecodeH265CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoEXT VkVideoDecodeH265DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoEXT VkVideoDecodeH265PictureInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionCreateInfoEXT VkVideoDecodeH265SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoEXT VkVideoDecodeH265SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoEXT VkVideoDecodeH265SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoEXT VkVideoEncodeH264DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersEXT VkVideoEncodeH264EmitPictureParametersEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceEXT VkVideoEncodeH264NaluSliceEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoEXT VkVideoEncodeH264SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoEXT VkVideoEncodeH264SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264VclFrameInfoEXT VkVideoEncodeH264VclFrameInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlInfoKHR VkVideoEncodeRateControlInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingInfoKHR VkVideoEndCodingInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoGetMemoryPropertiesKHR VkVideoGetMemoryPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotKHR VkVideoReferenceSlotKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR VkVideoSessionParametersCreateInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR VkVideoSessionParametersUpdateInfoKHR>, -- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR', -- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV',@@ -1116,8 +1172,14 @@ pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = StructureType 47 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = StructureType 48+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = StructureType 1000381000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX" pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = StructureType 1000378000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"@@ -1128,6 +1190,12 @@ 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_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"+pattern STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = StructureType 1000352002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"+pattern STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = StructureType 1000352001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000352000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE" pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = StructureType 1000351002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"@@ -1168,6 +1236,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = StructureType 1000330000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV" pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = StructureType 1000326002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"@@ -1234,6 +1304,10 @@ 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_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = StructureType 1000278000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = StructureType 1000277007 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"@@ -1284,6 +1358,12 @@ pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = StructureType 1000255002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT" pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = StructureType 1000255000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = StructureType 1000254002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = StructureType 1000254001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = StructureType 1000254000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = StructureType 1000252000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"@@ -1728,6 +1808,12 @@ pattern STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = StructureType 1000030001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX" pattern STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = StructureType 1000030000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"+pattern STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = StructureType 1000029002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"+pattern STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = StructureType 1000029001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"+pattern STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = StructureType 1000029000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = StructureType 1000028002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"@@ -2049,12 +2135,18 @@ STRUCTURE_TYPE_MEMORY_BARRIER, STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,+ STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA, STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA, 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_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,+ STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE, STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,@@ -2075,6 +2167,7 @@ STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT, STRUCTURE_TYPE_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,@@ -2108,6 +2201,8 @@ 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_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, STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV, STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,@@ -2133,6 +2228,9 @@ STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT, STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT, STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,+ STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,@@ -2355,6 +2453,9 @@ STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD, STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX, STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,+ STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,+ STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,+ STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX, STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,@@ -2549,12 +2650,22 @@ , (STRUCTURE_TYPE_MEMORY_BARRIER , "MEMORY_BARRIER") , (STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , "LOADER_INSTANCE_CREATE_INFO") , (STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO , "LOADER_DEVICE_CREATE_INFO")+ , (STRUCTURE_TYPE_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")- , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT+ , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"+ )+ , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA") , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA, "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA")- , (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_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_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT")+ , (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT+ , "PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"+ ) , (STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE, "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"@@ -2583,6 +2694,9 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT" )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT+ , "PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"+ ) , ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV , "PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV" )@@ -2638,6 +2752,12 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" )+ , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV+ , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV+ , "PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"+ ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV" )@@ -2679,6 +2799,11 @@ , (STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT , "SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT") , (STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT , "SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT") , (STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT , "SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, "PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT")+ , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT+ , "PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"+ )+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT , "PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, "PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT , "PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"@@ -3029,6 +3154,9 @@ , (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" )
src/Vulkan/Core10/Enums/VertexInputRate.hs view
@@ -19,7 +19,8 @@ -- -- = See Also ----- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'+-- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT' newtype VertexInputRate = VertexInputRate Int32 deriving newtype (Eq, Ord, Storable, Zero)
src/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -85,8 +85,7 @@ -- the @pProperties@ array, and on return the variable is overwritten with -- the number of structures actually written to @pProperties@. If -- @pPropertyCount@ is less than the number of extension properties--- available, at most @pPropertyCount@ structures will be written. If--- @pPropertyCount@ is smaller than the number of extensions available,+-- available, at most @pPropertyCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the -- available properties were returned.@@ -254,6 +253,12 @@ -- -- = See Also --+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionCreateInfoEXT VkVideoDecodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesEXT VkVideoDecodeH265CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionCreateInfoEXT VkVideoDecodeH265SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>, -- 'enumerateDeviceExtensionProperties', -- 'enumerateInstanceExtensionProperties' data ExtensionProperties = ExtensionProperties
src/Vulkan/Core10/FuncPointers.hs view
@@ -38,6 +38,10 @@ -- | PFN_vkInternalFreeNotification - Application-defined memory free -- notification function --+-- = Description+--+-- > described link:https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-host-allocation-scope[here^].+-- -- = See Also -- -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -61,7 +61,10 @@ -- = See Also -- -- 'Vulkan.Extensions.VK_KHR_display.DisplayPlaneCapabilitiesKHR',--- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR'+-- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR> data Offset2D = Offset2D { -- | @x@ is the x offset. x :: Int32@@ -190,6 +193,13 @@ -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>, -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR', -- 'Vulkan.Core10.Pass.getRenderAreaGranularity' data Extent2D = Extent2D@@ -368,8 +378,8 @@ -- -- = Description ----- 'TRUE' represents a boolean __True__ (integer 1) value, and 'FALSE' a--- boolean __False__ (integer 0) value.+-- 'TRUE' represents a boolean __True__ (unsigned integer 1) value, and+-- 'FALSE' a boolean __False__ (unsigned integer 0) value. -- -- All values returned from a Vulkan implementation in a 'Bool32' will be -- either 'TRUE' or 'FALSE'.@@ -382,6 +392,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryInstancesDataKHR', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport',@@ -403,6 +414,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',@@ -419,6 +431,7 @@ -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',@@ -437,6 +450,7 @@ -- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT', -- '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.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',@@ -453,6 +467,8 @@ -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- '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',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',@@ -488,17 +504,20 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- '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.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV', -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo',@@ -521,11 +540,16 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersEXT VkVideoEncodeH264EmitPictureParametersEXT>, -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',@@ -660,6 +684,10 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Core10.Image.SubresourceLayout',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>, -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory', -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -122,6 +122,10 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Core10.Image.SubresourceLayout',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>, -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory', -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
src/Vulkan/Core10/Handles.hs view
@@ -187,6 +187,8 @@ -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- '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>, -- 'Vulkan.Extensions.VK_KHR_wayland_surface.getPhysicalDeviceWaylandPresentationSupportKHR', -- 'Vulkan.Extensions.VK_KHR_win32_surface.getPhysicalDeviceWin32PresentationSupportKHR', -- 'Vulkan.Extensions.VK_KHR_xcb_surface.getPhysicalDeviceXcbPresentationSupportKHR',@@ -227,6 +229,7 @@ -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindImageMemory2', -- 'Vulkan.Extensions.VK_KHR_bind_memory2.bindImageMemory2KHR',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.buildAccelerationStructuresKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureKHR',@@ -238,6 +241,8 @@ -- 'Vulkan.Core10.BufferView.createBufferView', -- 'Vulkan.Core10.CommandPool.createCommandPool', -- 'Vulkan.Core10.Pipeline.createComputePipelines',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR', -- 'Vulkan.Core10.DescriptorSet.createDescriptorPool', -- 'Vulkan.Core10.DescriptorSet.createDescriptorSetLayout',@@ -267,6 +272,8 @@ -- 'Vulkan.Extensions.VK_KHR_display_swapchain.createSharedSwapchainsKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.createValidationCacheEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionKHR vkCreateVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR>, -- 'Vulkan.Extensions.VK_EXT_debug_marker.debugMarkerSetObjectNameEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.debugMarkerSetObjectTagEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.deferredOperationJoinKHR',@@ -275,6 +282,8 @@ -- 'Vulkan.Core10.Buffer.destroyBuffer', -- 'Vulkan.Core10.BufferView.destroyBufferView', -- 'Vulkan.Core10.CommandPool.destroyCommandPool',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuModuleNVX', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.destroyDeferredOperationKHR', -- 'Vulkan.Core10.DescriptorSet.destroyDescriptorPool', -- 'Vulkan.Core10.DescriptorSet.destroyDescriptorSetLayout',@@ -299,6 +308,8 @@ -- 'Vulkan.Core10.Shader.destroyShaderModule', -- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.destroyValidationCacheEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR>, -- 'Vulkan.Core10.Queue.deviceWaitIdle', -- 'Vulkan.Extensions.VK_EXT_display_control.displayPowerControlEXT', -- 'Vulkan.Core10.Memory.flushMappedMemoryRanges',@@ -383,6 +394,7 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR', -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.getValidationCacheDataEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR>, -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.importFenceFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.importFenceWin32HandleKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.importSemaphoreFdKHR',@@ -418,6 +430,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplate', -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplateKHR', -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR>, -- 'Vulkan.Core10.Fence.waitForFences', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.waitSemaphores', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.waitSemaphoresKHR',@@ -483,6 +496,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',@@ -499,6 +513,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdCopyAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureToMemoryKHR',@@ -512,9 +527,11 @@ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyMemoryToAccelerationStructureKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',+-- 'Vulkan.Extensions.VK_NVX_binary_import.cmdCuLaunchKernelNVX', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerBeginEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerEndEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerInsertEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatch', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdDispatchBase', -- 'Vulkan.Extensions.VK_KHR_device_group.cmdDispatchBaseKHR',@@ -533,6 +550,7 @@ -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksNV',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR>, -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdEndConditionalRenderingEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdEndDebugUtilsLabelEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',@@ -541,6 +559,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdEndRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdEndRenderPass2KHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',@@ -562,8 +581,10 @@ -- '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.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',@@ -580,10 +601,14 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceMarkerINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceOverrideINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceStreamMarkerINTEL',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT',+-- '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',@@ -593,6 +618,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference', -- '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',@@ -639,6 +665,7 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>, -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR', -- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV', -- 'Vulkan.Core10.Memory.allocateMemory',@@ -700,6 +727,8 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseBufferMemoryBindInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>, -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',@@ -807,6 +836,7 @@ -- 'Vulkan.Core10.Pass.FramebufferCreateInfo', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>, -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.ImageView.createImageView', -- 'Vulkan.Core10.ImageView.destroyImageView',
src/Vulkan/Core10/Image.hs view
@@ -215,6 +215,10 @@ -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were -- provided when @image@ was created, @pAllocator@ /must/ be @NULL@ --+-- - #VUID-vkDestroyImage-image-04882# @image@ /must/ not have been+-- acquired from+-- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR'+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkDestroyImage-device-parameter# @device@ /must/ be a valid@@ -498,6 +502,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views Image Views> -- for more detail). --+-- == Image Creation Limits+-- -- Valid values for some image creation parameters are limited by a -- numerical upper bound or by inclusion in a bitset. For example, -- 'ImageCreateInfo'::@arrayLayers@ is limited by@@ -562,7 +568,7 @@ -- the @pNext@ chain includes no -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' -- structure with non-zero @externalFormat@, then--- @imageCreateFormatFeatures@ is value of+-- @imageCreateFormatFeatures@ is the value of -- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@ -- found by calling -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'@@ -689,12 +695,12 @@ -- -- - 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@maxArrayLayers@ -- is--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::maxImageArrayLayers.+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxImageArrayLayers@. -- -- - Each component of -- 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@maxExtent@ -- is--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::maxImageDimension2D.+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxImageDimension2D@. -- -- - 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@sampleCounts@ -- contains exactly@@ -722,12 +728,12 @@ -- in @imageCreateImageFormatPropertiesList@. The value is undefined if -- @imageCreateImageFormatPropertiesList@ is empty. ----- = Valid Usage+-- == Valid Usage -- -- - #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>)--- /must/ not be undefined @imageCreateMaxMipLevels@,+-- /must/ not be undefined : @imageCreateMaxMipLevels@, -- @imageCreateMaxArrayLayers@, @imageCreateMaxExtent@, and -- @imageCreateSampleCounts@ --@@ -1257,16 +1263,16 @@ -- greater than @1@ -- -- - #VUID-VkImageCreateInfo-imageType-02082# If @usage@ includes--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' -- -- - #VUID-VkImageCreateInfo-samples-02083# If @usage@ includes--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- @samples@ /must/ be -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- -- - #VUID-VkImageCreateInfo-tiling-02084# If @usage@ includes--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV', -- @tiling@ /must/ be -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' --@@ -1306,20 +1312,20 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' -- structure was included in the @pNext@ chain and -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@--- is not zero then all of the formats in+-- is not zero, then 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> -- -- - #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'--- and the @pNext@ chain include a+-- and the @pNext@ chain includes a -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'--- structure then+-- structure, then -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@ -- /must/ be @0@ or @1@ ----- = Valid Usage (Implicit)+-- == Valid Usage (Implicit) -- -- - #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_CREATE_INFO'@@ -1335,7 +1341,10 @@ -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo',--- or 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR'+-- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- - #VUID-VkImageCreateInfo-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -1371,7 +1380,6 @@ -- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' -- value ----- \<\/section> -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Extent3D',@@ -1407,8 +1415,8 @@ , -- | @arrayLayers@ is the number of layers in the image. arrayLayers :: Word32 , -- | @samples@ is a- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying- -- the number of+ -- '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>. samples :: SampleCountFlagBits , -- | @tiling@ is a 'Vulkan.Core10.Enums.ImageTiling.ImageTiling' value@@ -1422,9 +1430,9 @@ -- specifying the sharing mode of the image when it will be accessed by -- multiple queue families. sharingMode :: SharingMode- , -- | @pQueueFamilyIndices@ is a list of queue families that will access this- -- image (ignored if @sharingMode@ is not- -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT').+ , -- | @pQueueFamilyIndices@ is a pointer to an array of queue families that+ -- will access this image. It is ignored if @sharingMode@ is not+ -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'. queueFamilyIndices :: Vector Word32 , -- | @initialLayout@ is a 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value -- specifying the initial 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' of
src/Vulkan/Core10/ImageView.hs view
@@ -377,7 +377,7 @@ -- -- When using an image view of a depth\/stencil image to populate a -- descriptor set (e.g. for sampling in the shader, or for use as an input--- attachment), the @aspectMask@ /must/ only include one bit and selects+-- attachment), the @aspectMask@ /must/ only include one bit, which selects -- whether the image view is used for depth reads (i.e. using a -- floating-point sampler or input attachment in the shader) or stencil -- reads (i.e. using an unsigned integer sampler or input attachment in the@@ -521,8 +521,8 @@ -- implicit @usage@ /can/ be overriden by adding a -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo' -- structure to the @pNext@ chain, but the view usage /must/ be a subset of--- the image usage. If the image was has a depth-stencil format and was--- created with a+-- the image usage. If @image@ has a depth-stencil format and was created+-- with a -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo' -- structure included in the @pNext@ chain of -- 'Vulkan.Core10.Image.ImageCreateInfo', the usage is calculated based on@@ -573,8 +573,8 @@ -- 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>--- In this case the resulting image view’s texel dimensions equal the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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. --@@ -601,9 +601,9 @@ -- 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@ and @subresourceRange.aspectMask@ is--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',--- @format@ /must/ be identical to the image @format@, and the sampler to--- be used with the image view /must/ enable+-- '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>. -- -- If @image@ was created with the@@ -998,7 +998,7 @@ -- -- - #VUID-VkImageViewCreateInfo-image-02086# If @image@ was created with -- @usage@ containing--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- @viewType@ /must/ be -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'@@ -1006,13 +1006,13 @@ -- - #VUID-VkImageViewCreateInfo-image-02087# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage feature> -- is enabled, and If @image@ was created with @usage@ containing--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',+-- '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> -- is enabled, and the @usage@ for the image view includes--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+-- '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> -- /must/ contain@@ -1021,7 +1021,7 @@ -- - #VUID-VkImageViewCreateInfo-usage-04551# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> -- is enabled, the @usage@ for the image view includes--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+-- '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> -- is 'Vulkan.Core10.FundamentalTypes.FALSE',@@ -1153,8 +1153,10 @@ -- @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>, -- or--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- - #VUID-VkImageViewCreateInfo-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -1203,12 +1205,12 @@ , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' describing the format -- and type used to interpret texel blocks in the image. format :: Format- , -- | @components@ is a 'ComponentMapping' specifies a remapping of color- -- components (or of depth or stencil components after they have been+ , -- | @components@ is a 'ComponentMapping' structure specifying a remapping of+ -- color components (or of depth or stencil components after they have been -- converted into color components). components :: ComponentMapping- , -- | @subresourceRange@ is a 'ImageSubresourceRange' selecting the set of- -- mipmap levels and array layers to be accessible to the view.+ , -- | @subresourceRange@ is a 'ImageSubresourceRange' structure selecting the+ -- set of mipmap levels and array layers to be accessible to the view. subresourceRange :: ImageSubresourceRange } deriving (Typeable)
src/Vulkan/Core10/LayerDiscovery.hs view
@@ -79,11 +79,10 @@ -- the @pProperties@ array, and on return the variable is overwritten with -- the number of structures actually written to @pProperties@. If -- @pPropertyCount@ is less than the number of layer properties available,--- at most @pPropertyCount@ structures will be written. If @pPropertyCount@--- is smaller than the number of layers available,+-- at most @pPropertyCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the--- available layer properties were returned.+-- available properties were returned. -- -- The list of available layers may change at any time due to actions -- outside of the Vulkan implementation, so two calls to@@ -160,11 +159,10 @@ -- the @pProperties@ array, and on return the variable is overwritten with -- the number of structures actually written to @pProperties@. If -- @pPropertyCount@ is less than the number of layer properties available,--- at most @pPropertyCount@ structures will be written. If @pPropertyCount@--- is smaller than the number of layers available,+-- at most @pPropertyCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the--- available layer properties were returned.+-- available properties were returned. -- -- The list of layers enumerated by 'enumerateDeviceLayerProperties' /must/ -- be exactly the sequence of layers enabled for the instance. The members
src/Vulkan/Core10/Memory.hs view
@@ -125,9 +125,9 @@ -- When memory is allocated, its contents are undefined with the following -- constraint: ----- - The contents of unprotected memory /must/ not be a function of data--- protected memory objects, even if those memory objects were--- previously freed.+-- - The contents of unprotected memory /must/ not be a function of the+-- contents of data protected memory objects, even if those memory+-- objects were previously freed. -- -- Note --@@ -169,13 +169,13 @@ -- -- - #VUID-vkAllocateMemory-pAllocateInfo-01713# -- @pAllocateInfo->allocationSize@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryHeaps@[memindex].size+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryHeaps@[@memindex@].@size@ -- where @memindex@ =--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryTypes@[pAllocateInfo->memoryTypeIndex].heapIndex+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryTypes@[@pAllocateInfo->memoryTypeIndex@].@heapIndex@ -- as returned by -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceMemoryProperties' -- for the 'Vulkan.Core10.Handles.PhysicalDevice' that @device@ was--- created from+-- created from. -- -- - #VUID-vkAllocateMemory-pAllocateInfo-01714# -- @pAllocateInfo->memoryTypeIndex@ /must/ be less than@@ -183,13 +183,13 @@ -- as returned by -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceMemoryProperties' -- for the 'Vulkan.Core10.Handles.PhysicalDevice' that @device@ was--- created from+-- created from. -- -- - #VUID-vkAllocateMemory-deviceCoherentMemory-02790# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-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'+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'. -- -- - #VUID-vkAllocateMemory-maxMemoryAllocationCount-04101# There /must/ -- be less than@@ -237,7 +237,7 @@ => -- | @device@ is the logical device that owns the memory. Device -> -- | @pAllocateInfo@ is a pointer to a 'MemoryAllocateInfo' structure- -- describing parameters of the allocation. A successful returned+ -- describing parameters of the allocation. A successfully returned -- allocation /must/ use the requested parameters — no substitution is -- permitted by the implementation. (MemoryAllocateInfo a)@@ -841,11 +841,12 @@ -- possible. -- -- Importing memory /must/ not increase overall heap usage within a system.--- However, they /must/ affect the following per-process values: *--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties'::@maxMemoryAllocationCount@--- *--- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT'::@heapUsage@+-- However, it /must/ affect the following per-process values: --+-- - 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties'::@maxMemoryAllocationCount@+--+-- - 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT'::@heapUsage@+-- -- When performing a memory import operation, it is the responsibility of -- the application to ensure the external handles and their associated -- payloads meet all valid usage requirements. However, implementations@@ -1165,12 +1166,12 @@ data MemoryAllocateInfo (es :: [Type]) = MemoryAllocateInfo { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es- , -- | @allocationSize@ is the size of the allocation in bytes+ , -- | @allocationSize@ is the size of the allocation in bytes. allocationSize :: DeviceSize , -- | @memoryTypeIndex@ is an index identifying a memory type from the -- @memoryTypes@ array of the -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'- -- structure+ -- structure. memoryTypeIndex :: Word32 } deriving (Typeable)
src/Vulkan/Core10/MemoryManagement.hs view
@@ -142,11 +142,11 @@ -- equal to the size of @memory@ minus @memoryOffset@ -- -- - #VUID-vkBindBufferMemory-buffer-01444# If @buffer@ requires a--- dedicated allocation(as reported by+-- dedicated allocation (as reported by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2' -- in--- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation--- for @buffer@), @memory@ /must/ have been created with+-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@+-- for @buffer@), @memory@ /must/ have been allocated with -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@ -- equal to @buffer@ --@@ -161,22 +161,24 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@, -- and @memoryOffset@ /must/ be zero ----- - #VUID-vkBindBufferMemory-None-01898# If buffer was created with the+-- - #VUID-vkBindBufferMemory-None-01898# If @buffer@ was created with+-- the -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' -- bit set, the buffer /must/ be bound to a memory object allocated -- with a memory type that reports -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' ----- - #VUID-vkBindBufferMemory-None-01899# If buffer was created with the+-- - #VUID-vkBindBufferMemory-None-01899# If @buffer@ was created with+-- the -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' -- bit not set, the buffer /must/ not be bound to a memory object--- created with a memory type that reports+-- allocated with a memory type that reports -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' -- -- - #VUID-vkBindBufferMemory-buffer-01038# If @buffer@ was created with -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV'::@dedicatedAllocation@ -- equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @memory@ /must/ have--- been created with+-- been allocated with -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV'::@buffer@ -- equal to a buffer handle created with identical creation parameters -- to @buffer@ and @memoryOffset@ /must/ be zero@@ -188,16 +190,16 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ -- when @buffer@ was created ----- - #VUID-vkBindBufferMemory-memory-02985# If @memory@ was created by a--- memory import operation, that is not+-- - #VUID-vkBindBufferMemory-memory-02985# If @memory@ was allocated by+-- a memory import operation, that is not -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' -- with a non-@NULL@ @buffer@ value, the external handle type of the -- imported memory /must/ also have been set in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ -- when @buffer@ was created ----- - #VUID-vkBindBufferMemory-memory-02986# If @memory@ was created with--- the+-- - #VUID-vkBindBufferMemory-memory-02986# If @memory@ was allocated+-- with the -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' -- memory import operation with a non-@NULL@ @buffer@ value, -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'@@ -366,7 +368,7 @@ -- allocation (as reported by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2' -- in--- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation+-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@ -- for @image@), @memory@ /must/ have been created with -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@image@ -- equal to @image@
src/Vulkan/Core10/OtherTypes.hs view
@@ -207,9 +207,10 @@ -- 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 a special--- queue family values reserved for external memory transfers, the--- other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+-- 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-VkBufferMemoryBarrier-buffer-04089# If @buffer@ was created -- with a sharing mode of@@ -603,9 +604,9 @@ -- 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.Extensions.VK_KHR_fragment_shading_rate.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- then @image@ /must/ have been created with--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- set -- -- - #VUID-VkImageMemoryBarrier-image-01671# If @image@ has a@@ -655,9 +656,10 @@ -- a sharing mode of -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and--- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is a special--- queue family values reserved for external memory transfers, the--- other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+-- 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-VkImageMemoryBarrier-image-04072# If @image@ was created with -- a sharing mode of@@ -813,7 +815,7 @@ zero --- | VkDrawIndirectCommand - Structure specifying a draw indirect command+-- | VkDrawIndirectCommand - Structure specifying a indirect drawing command -- -- = Description --@@ -891,8 +893,8 @@ zero --- | VkDrawIndexedIndirectCommand - Structure specifying a draw indexed--- indirect command+-- | VkDrawIndexedIndirectCommand - Structure specifying a indexed indirect+-- drawing command -- -- = Description --@@ -985,7 +987,7 @@ zero --- | VkDispatchIndirectCommand - Structure specifying a dispatch indirect+-- | VkDispatchIndirectCommand - Structure specifying a indirect dispatching -- command -- -- = Description
src/Vulkan/Core10/Pass.hs view
@@ -479,8 +479,8 @@ -- (the horizontal granularity). -- -- - the @offset.y@ member in @renderArea@ is a multiple of the @height@--- of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D' (the--- vertical granularity).+-- member of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D'+-- (the vertical granularity). -- -- - either the @offset.width@ member in @renderArea@ is a multiple of -- the horizontal granularity or @offset.x@+@offset.width@ is equal to@@ -831,8 +831,9 @@ , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' value specifying the -- format of the image view that will be used for the attachment. format :: Format- , -- | @samples@ is the number of samples of the image as defined in- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+ , -- | @samples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the number of samples of the image. samples :: SampleCountFlagBits , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp' -- value specifying how the contents of color and depth components of the@@ -1021,8 +1022,10 @@ -- decorated with a @Location@ value of __X__, then it uses the attachment -- provided in @pColorAttachments@[__X__]. If the @attachment@ member of -- any element of @pColorAttachments@ is--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', writes to the--- corresponding location by a fragment are discarded.+-- '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>+-- has been disabled for the corresponding attachment index, then writes to+-- the corresponding location by a fragment shader are discarded. -- -- If @flags@ does not include -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',@@ -1201,8 +1204,8 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', they /must/ have the -- same sample count ----- - #VUID-VkSubpassDescription-attachment-00853# The @attachment@ member--- of each element of @pPreserveAttachments@ /must/ not be+-- - #VUID-VkSubpassDescription-attachment-00853# Each element of+-- @pPreserveAttachments@ /must/ not be -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- - #VUID-VkSubpassDescription-pPreserveAttachments-00854# Each element@@ -1239,16 +1242,6 @@ -- then the subpass /must/ be the last subpass in a subpass dependency -- chain ----- - #VUID-VkSubpassDescription-flags-03344# If @flags@ includes--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',--- then the sample count of the input attachments /must/ equal--- @rasterizationSamples@------ - #VUID-VkSubpassDescription-flags-03345# If @flags@ includes--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',--- and if @sampleShadingEnable@ is enabled (explicitly or implicitly)--- then @minSampleShading@ /must/ equal 0.0--- -- - #VUID-VkSubpassDescription-pInputAttachments-02868# If the render -- pass is created with -- 'Vulkan.Core10.Enums.RenderPassCreateFlagBits.RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM'@@ -1313,17 +1306,17 @@ -- structures defining the input attachments for this subpass and their -- layouts. inputAttachments :: Vector AttachmentReference- , -- | @pColorAttachments@ is a pointer to an array of 'AttachmentReference'- -- structures defining the color attachments for this subpass and their- -- layouts.+ , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@+ -- 'AttachmentReference' structures defining the color attachments for this+ -- subpass and their layouts. colorAttachments :: Vector AttachmentReference- , -- | @pResolveAttachments@ is an optional array of @colorAttachmentCount@- -- 'AttachmentReference' structures defining the resolve attachments for- -- this subpass and their layouts.+ , -- | @pResolveAttachments@ is @NULL@ or a pointer to an array of+ -- @colorAttachmentCount@ 'AttachmentReference' structures defining the+ -- resolve attachments for this subpass and their layouts. resolveAttachments :: Vector AttachmentReference- , -- | @pDepthStencilAttachment@ is a pointer to a 'AttachmentReference'- -- structure specifying the depth\/stencil attachment for this subpass and- -- its layout.+ , -- | @pDepthStencilAttachment@ is a pointer to an array of+ -- 'AttachmentReference' structures specifying the depth\/stencil+ -- attachment for this subpass and its layout. depthStencilAttachment :: Maybe AttachmentReference , -- | @pPreserveAttachments@ is a pointer to an array of -- @preserveAttachmentCount@ render pass attachment indices identifying@@ -1453,7 +1446,7 @@ -- -- The first -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- 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@. 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>@@ -1461,7 +1454,7 @@ -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- 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@. 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>@@ -1767,7 +1760,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo' -- structure, the @inputAttachmentIndex@ member of each element of its -- @pAspectReferences@ member /must/ be less than the value of--- @inputAttachmentCount@ in the member of @pSubpasses@ identified by+-- @inputAttachmentCount@ in the element of @pSubpasses@ identified by -- its @subpass@ member -- -- - #VUID-VkRenderPassCreateInfo-pNext-01963# If the @pNext@ chain@@ -2007,7 +2000,7 @@ -- as attachment and non-attachment if both accesses are read-only. -- -- - For depth\/stencil attachments, each aspect /can/ be used separately--- as attachments and non-attachments as long as the non-attachment+-- as attachment and non-attachment as long as the non-attachment -- accesses are also via an image subresource in either the -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL' -- layout or the@@ -2122,16 +2115,16 @@ -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- each element of @pAttachments@ that is used as an input, color, -- resolve, or depth\/stencil attachment by @renderPass@ /must/ have--- been created with a VkImageCreateInfo::@width@ greater than or equal--- to @width@+-- been created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@width@+-- greater than or equal to @width@ -- -- - #VUID-VkFramebufferCreateInfo-flags-04534# If @flags@ does not -- include -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- each element of @pAttachments@ that is used as an input, color, -- resolve, or depth\/stencil attachment by @renderPass@ /must/ have--- been created with a VkImageCreateInfo::@height@ greater than or--- equal to @height@+-- been created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@height@+-- greater than or equal to @height@ -- -- - #VUID-VkFramebufferCreateInfo-flags-04535# If @flags@ does not -- include@@ -2139,8 +2132,8 @@ -- each element of @pAttachments@ that is used as an input, color, -- resolve, or depth\/stencil attachment by @renderPass@ /must/ have -- been created with a--- VkImageViewCreateInfo::@subresourceRange.layerCount@ greater than or--- equal to @layers@+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@+-- greater than or equal to @layers@ -- -- - #VUID-VkFramebufferCreateInfo-renderPass-04536# If @renderPass@ was -- specified with non-zero view masks, each element of @pAttachments@@@ -2199,7 +2192,7 @@ -- '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>--- /must/ have a width at least as large as ⌈@width@ \\ @texelWidth@⌉,+-- /must/ have a width at least as large as ⌈@width@ \/ @texelWidth@⌉, -- where @texelWidth@ is the largest value of -- @shadingRateAttachmentTexelSize.width@ in a -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2210,7 +2203,7 @@ -- '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>--- /must/ have a height at least as large as ⌈@height@ \\+-- /must/ have a height at least as large as ⌈@height@ \/ -- @texelHeight@⌉, where @texelHeight@ is the largest value of -- @shadingRateAttachmentTexelSize.height@ in a -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2281,7 +2274,7 @@ -- member of an instance of -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- in the @pNext@ chain that is used as an input, color, resolve or--- depth\/stencil attachment in @pRenderPass@ /must/ be greater than or+-- depth\/stencil attachment in @renderPass@ /must/ be greater than or -- equal to @width@ -- -- - #VUID-VkFramebufferCreateInfo-flags-04542# If @flags@ includes@@ -2290,7 +2283,7 @@ -- member of an instance of -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- in the @pNext@ chain that is used as an input, color, resolve or--- depth\/stencil attachment in @pRenderPass@ /must/ be greater than or+-- depth\/stencil attachment in @renderPass@ /must/ be greater than or -- equal to @height@ -- -- - #VUID-VkFramebufferCreateInfo-flags-03196# If @flags@ includes@@ -2320,7 +2313,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- 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>--- /must/ be greater than or equal to ⌈@width@ \\ @texelWidth@⌉, where+-- /must/ be greater than or equal to ⌈@width@ \/ @texelWidth@⌉, where -- @texelWidth@ is the largest value of -- @shadingRateAttachmentTexelSize.width@ in a -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2333,7 +2326,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- 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>--- /must/ be greater than or equal to ⌈@height@ \\ @texelHeight@⌉,+-- /must/ be greater than or equal to ⌈@height@ \/ @texelHeight@⌉, -- where @texelHeight@ is the largest value of -- @shadingRateAttachmentTexelSize.height@ in a -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2364,7 +2357,7 @@ -- @pAttachmentImageInfos@ member of a -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- structure included in the @pNext@ chain used as an input, color,--- resolve, or depth\/stencil attachment in @pRenderPass@ /must/ be+-- resolve, or depth\/stencil attachment in @renderPass@ /must/ be -- greater than the maximum bit index set in the view mask in the -- subpasses in which it is used in @renderPass@ --@@ -2375,7 +2368,7 @@ -- @pAttachmentImageInfos@ member of a -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- structure included in the @pNext@ chain used as an input, color,--- resolve, or depth\/stencil attachment in @pRenderPass@ /must/ be+-- resolve, or depth\/stencil attachment in @renderPass@ /must/ be -- greater than or equal to @layers@ -- -- - #VUID-VkFramebufferCreateInfo-flags-03201# If @flags@ includes@@ -2438,7 +2431,7 @@ -- each element of @pAttachments@ that is used as a fragment shading -- rate attachment by @renderPass@ /must/ have been created with a -- @usage@ value including--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - #VUID-VkFramebufferCreateInfo-flags-04549# If @flags@ includes -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',@@ -2448,7 +2441,7 @@ -- structure included in the @pNext@ chain that refers to an attachment -- used as a fragment shading rate attachment by @renderPass@ /must/ -- include--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Pipeline.hs view
@@ -155,6 +155,7 @@ import Vulkan.Core10.Handles (PipelineCache(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlags (PipelineColorBlendStateCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PipelineColorWriteCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)@@ -172,6 +173,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PipelineRasterizationProvokingVertexStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)@@ -264,10 +266,10 @@ -- -- = Description ----- The 'GraphicsPipelineCreateInfo' structure includes an array of shader--- create info structures containing all the desired active shader stages,--- as well as creation info to define all relevant fixed-function stages,--- and a pipeline layout.+-- The 'GraphicsPipelineCreateInfo' structure includes an array of+-- 'PipelineShaderStageCreateInfo' structures for each of the desired+-- active shader stages, as well as creation information for all relevant+-- fixed-function stages, and a pipeline layout. -- -- == Valid Usage --@@ -692,6 +694,7 @@ -- -- = See Also --+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- 'PipelineViewportStateCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'@@ -834,11 +837,7 @@ zero --- | VkSpecializationInfo - Structure specifying specialization info------ = Description------ @pMapEntries@ is a pointer to a 'SpecializationMapEntry' structure.+-- | VkSpecializationInfo - Structure specifying specialization information -- -- == Valid Usage --@@ -1589,7 +1588,7 @@ -- 'Vulkan.Core10.Enums.Format.Format', -- 'PipelineVertexInputStateCreateInfo' data VertexInputAttributeDescription = VertexInputAttributeDescription- { -- | @location@ is the shader binding location number for this attribute.+ { -- | @location@ is the shader input location number for this attribute. location :: Word32 , -- | @binding@ is the binding number which this attribute takes its data -- from.@@ -1952,7 +1951,7 @@ next :: Chain es , -- | @flags@ is reserved for future use. flags :: PipelineTessellationStateCreateFlags- , -- | @patchControlPoints@ number of control points per patch.+ , -- | @patchControlPoints@ is the number of control points per patch. patchControlPoints :: Word32 } deriving (Typeable)@@ -2261,6 +2260,7 @@ -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD', -- or -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'@@ -2344,6 +2344,7 @@ getNext PipelineRasterizationStateCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PipelineRasterizationProvokingVertexStateCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineRasterizationLineStateCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineRasterizationDepthClipStateCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineRasterizationStateStreamCreateInfoEXT = Just f@@ -2504,8 +2505,8 @@ , -- | @flags@ is reserved for future use. flags :: PipelineMultisampleStateCreateFlags , -- | @rasterizationSamples@ is a- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying- -- the number of samples used in rasterization.+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the number of samples used in rasterization. rasterizationSamples :: SampleCountFlagBits , -- | @sampleShadingEnable@ /can/ be used to enable -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.@@ -2513,8 +2514,8 @@ , -- | @minSampleShading@ specifies a minimum fraction of sample shading if -- @sampleShadingEnable@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE'. minSampleShading :: Float- , -- | @pSampleMask@ is an array of 'Vulkan.Core10.FundamentalTypes.SampleMask'- -- values used in the+ , -- | @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>. sampleMask :: Vector SampleMask , -- | @alphaToCoverageEnable@ controls whether a temporary coverage value is@@ -2715,7 +2716,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendMaxColorAttachments@ -- -- - #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454# -- If the @VK_KHR_portability_subset@ extension is enabled, and@@ -2905,9 +2906,12 @@ -- /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO' ----- - #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# @pNext@--- /must/ be @NULL@ or a pointer to a valid instance of+-- - #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# Each @pNext@+-- member of any structure (including this one) in the @pNext@ chain+-- /must/ be either @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT' -- -- - #VUID-VkPipelineColorBlendStateCreateInfo-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique@@ -2937,8 +2941,7 @@ logicOpEnable :: Bool , -- | @logicOp@ selects which logical operation to apply. logicOp :: LogicOp- , -- | @pAttachments@: is a pointer to an array of per target attachment- -- states.+ , -- | @pAttachments@ is a pointer to an array of per target attachment states. attachments :: Vector PipelineColorBlendAttachmentState , -- | @blendConstants@ is a pointer to an array of four values used as the R, -- G, B, and A components of the blend constant that are used in blending,@@ -2958,6 +2961,7 @@ getNext PipelineColorBlendStateCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineColorBlendStateCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PipelineColorWriteCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineColorBlendAdvancedStateCreateInfoEXT = Just f | otherwise = Nothing @@ -3065,7 +3069,7 @@ , -- | @pDynamicStates@ is a pointer to an array of -- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values specifying which -- pieces of pipeline state will use the values from dynamic state commands- -- rather than from pipeline state creation info.+ -- rather than from pipeline state creation information. dynamicStates :: Vector DynamicState } deriving (Typeable)@@ -3383,6 +3387,87 @@ -- 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>,+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output state>.+--+-- Vertex input state is defined by:+--+-- - 'PipelineVertexInputStateCreateInfo'+--+-- - 'PipelineInputAssemblyStateCreateInfo'+--+-- Pre-rasterization shader state is defined by:+--+-- - 'PipelineShaderStageCreateInfo' entries for each vertex processing+-- shader stage used+--+-- - Within the 'Vulkan.Core10.Handles.PipelineLayout', all bindings that+-- affect the specified shader stages+--+-- - 'PipelineViewportStateCreateInfo'+--+-- - 'PipelineRasterizationStateCreateInfo'+--+-- - 'PipelineTessellationStateCreateInfo' if tessellation stages are+-- included.+--+-- - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- - 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'+--+-- - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+--+-- - 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'+--+-- Fragment shader state is defined by:+--+-- - A 'PipelineShaderStageCreateInfo' entry for the fragment shader+--+-- - Within the 'Vulkan.Core10.Handles.PipelineLayout', all bindings that+-- affect the fragment shader+--+-- - 'PipelineMultisampleStateCreateInfo'+--+-- - 'PipelineDepthStencilStateCreateInfo'+--+-- - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+--+-- - 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'+--+-- Fragment output state is defined by:+--+-- - 'PipelineColorBlendStateCreateInfo'+--+-- - The @alphaToCoverageEnable@ and @alphaToOneEnable@ members of+-- 'PipelineMultisampleStateCreateInfo'.+--+-- - '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>,+-- 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>+-- 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>+-- 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>+-- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- 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>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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.+-- -- == Valid Usage -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-00722# If @flags@ contains@@ -3414,9 +3499,11 @@ -- - #VUID-VkGraphicsPipelineCreateInfo-stage-00726# The @stage@ member -- of each element of @pStages@ /must/ be unique ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# The geometric--- shader stages provided in @pStages@ /must/ be either from the mesh--- shading pipeline (@stage@ is+-- - #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>+-- the geometric shader stages provided in @pStages@ /must/ be either+-- from the mesh shading pipeline (@stage@ is -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV' -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV')@@ -3427,8 +3514,10 @@ -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT') ----- - #VUID-VkGraphicsPipelineCreateInfo-stage-02096# The @stage@ member--- of one element of @pStages@ /must/ be either+-- - #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>+-- 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' --@@ -3436,110 +3525,153 @@ -- of each element of @pStages@ /must/ not be -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If @pStages@--- includes a tessellation control shader stage, it /must/ include a--- tessellation evaluation shader stage+-- - #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>+-- and @pStages@ includes a tessellation control shader stage, it+-- /must/ include a tessellation evaluation shader stage ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If @pStages@--- includes a tessellation evaluation shader stage, it /must/ include a--- tessellation control 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>+-- and @pStages@ includes a tessellation evaluation shader stage, it+-- /must/ include a tessellation control shader stage ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If @pStages@--- includes a tessellation control shader stage and a tessellation--- evaluation shader stage, @pTessellationState@ /must/ be a valid--- pointer to a valid 'PipelineTessellationStateCreateInfo' structure+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-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>+-- and @pStages@ includes a tessellation control shader stage and a+-- tessellation evaluation shader stage, @pTessellationState@ /must/ be+-- a valid pointer to a valid 'PipelineTessellationStateCreateInfo'+-- structure ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If @pStages@--- includes tessellation shader stages, the shader code of at least one--- stage /must/ contain an @OpExecutionMode@ instruction that specifies--- the type of subdivision in the pipeline+-- - #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>+-- and @pStages@ includes tessellation shader stages, the shader code+-- of at least one stage /must/ contain an @OpExecutionMode@+-- instruction that specifies the type of subdivision in the pipeline ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If @pStages@--- includes tessellation shader stages, and the shader code of both--- stages contain an @OpExecutionMode@ instruction that specifies the--- type of subdivision in the pipeline, they /must/ both specify the--- same subdivision mode+-- - #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>+-- and @pStages@ includes tessellation shader stages, and the shader+-- code of both stages contain an @OpExecutionMode@ instruction that+-- specifies the type of subdivision in the pipeline, they /must/ both+-- specify the same subdivision mode ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If @pStages@--- includes tessellation shader stages, the shader code of at least one--- stage /must/ contain an @OpExecutionMode@ instruction that specifies--- the output patch size in the pipeline+-- - #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>+-- and @pStages@ includes tessellation shader stages, the shader code+-- of at least one stage /must/ contain an @OpExecutionMode@+-- instruction that specifies the output patch size in the pipeline ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If @pStages@--- includes tessellation shader stages, and the shader code of both--- contain an @OpExecutionMode@ instruction that specifies the out--- patch size in the pipeline, they /must/ both specify the same patch--- size+-- - #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>+-- and @pStages@ includes tessellation shader stages, and the shader+-- code of both contain an @OpExecutionMode@ instruction that specifies+-- the out patch size in the pipeline, they /must/ both specify the+-- same patch size ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If @pStages@--- includes tessellation shader stages, the @topology@ member of--- @pInputAssembly@ /must/ be+-- - #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>+-- 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 @topology@--- member of @pInputAssembly@ is+-- - #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>+-- 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 @pStages@--- includes a geometry shader stage, and does not include any--- tessellation shader stages, its shader code /must/ contain an+-- - #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>+-- and @pStages@ includes a geometry shader stage, and does not include+-- any tessellation shader stages, its shader code /must/ contain an -- @OpExecutionMode@ instruction that specifies an input primitive type -- that is -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution compatible> -- with the primitive topology specified in @pInputAssembly@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If @pStages@--- includes a geometry shader stage, and also includes tessellation--- shader stages, its shader code /must/ contain an @OpExecutionMode@--- instruction that specifies an input primitive type that is+-- - #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>+-- and @pStages@ includes a geometry shader stage, and also includes+-- tessellation shader stages, its shader code /must/ contain an+-- @OpExecutionMode@ instruction that specifies an input primitive type+-- that is -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution compatible> -- with the primitive topology that is output by the tessellation -- stages ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If @pStages@--- includes a fragment shader stage and a geometry shader stage, and--- the fragment shader code reads from an input variable that is--- decorated with @PrimitiveID@, then the geometry shader code /must/--- write to a matching output variable, decorated with @PrimitiveID@,--- in all execution paths+-- - #VUID-VkGraphicsPipelineCreateInfo-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>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- it includes both a fragment shader and a geometry shader, and the+-- fragment shader code reads from an input variable that is decorated+-- with @PrimitiveID@, then the geometry shader code /must/ write to a+-- matching output variable, decorated with @PrimitiveID@, in all+-- execution paths ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00741# If @pStages@--- includes a fragment shader stage, its shader code /must/ not read--- from any input attachment that is defined as--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in @subpass@+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00741# 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>+-- 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# The shader code--- for the entry points identified by @pStages@, and the rest of the--- state identified by this structure /must/ adhere to the pipeline--- linking rules described in the+-- - #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>+-- 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> -- chapter ----- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01756# If rasterization--- is not disabled and @subpass@ uses a depth\/stencil attachment in--- @renderPass@ that has a layout of--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'--- in the 'Vulkan.Core10.Pass.AttachmentReference' defined by--- @subpass@, the @depthWriteEnable@ member of @pDepthStencilState@--- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'+-- - #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>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- the fragment shader and last vertex processing 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>+-- chapter ----- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01757# If rasterization--- is not disabled and @subpass@ uses a depth\/stencil attachment in--- @renderPass@ that has a layout of--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'--- in the 'Vulkan.Core10.Pass.AttachmentReference' defined by--- @subpass@, the @failOp@, @passOp@ and @depthFailOp@ members of each--- of the @front@ and @back@ members of @pDepthStencilState@ /must/ be+-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-04890# 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>,+-- and @subpass@ uses a depth\/stencil attachment in @renderPass@ with+-- a read-only layout for the depth aspect in the+-- 'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the+-- @depthWriteEnable@ member of @pDepthStencilState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-04891# 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>,+-- and @subpass@ uses a depth\/stencil attachment in @renderPass@ with+-- a read-only layout for the stencil aspect in the+-- 'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the+-- @failOp@, @passOp@ and @depthFailOp@ members of each of the @front@+-- and @back@ members of @pDepthStencilState@ /must/ be -- 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' ----- - #VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717# If--- rasterization is not disabled, then for each color attachment in the--- subpass, if the+-- - #VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717# 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>,+-- 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> -- of the format of the corresponding attachment description do not -- contain@@ -3548,67 +3680,88 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' ----- - #VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746# If--- rasterization is not disabled and the subpass uses color--- attachments, the @attachmentCount@ member of @pColorBlendState@--- /must/ be equal to the @colorAttachmentCount@ used to create--- @subpass@+-- - #VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746# 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>,+-- 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 no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- 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', -- the @pViewports@ member of @pViewportState@ /must/ be a valid -- pointer to an array of @pViewportState->viewportCount@ valid -- 'Viewport' structures ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- 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', -- 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 wide--- lines feature is not enabled, and no element of the @pDynamicStates@--- member of @pDynamicState@ is+-- - #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>,+-- and the wide lines feature is not enabled, and no element of the+-- @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the -- @lineWidth@ member of @pRasterizationState@ /must/ be @1.0@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If--- the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+-- 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>,+-- 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>,+-- and the graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- dynamic state enabled, @pViewportState@ /must/ be a valid pointer to+-- a valid 'PipelineViewportStateCreateInfo' structure+-- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751# If--- the @rasterizerDiscardEnable@ member of @pRasterizationState@ is--- 'Vulkan.Core10.FundamentalTypes.FALSE', @pMultisampleState@ /must/--- be a valid pointer to a valid 'PipelineMultisampleStateCreateInfo'--- structure+-- 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>,+-- @pMultisampleState@ /must/ be a valid pointer to a valid+-- 'PipelineMultisampleStateCreateInfo' structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00752# If--- the @rasterizerDiscardEnable@ member of @pRasterizationState@ is--- 'Vulkan.Core10.FundamentalTypes.FALSE', and @subpass@ uses a--- depth\/stencil attachment, @pDepthStencilState@ /must/ be a valid--- pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure+-- 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>,+-- and @subpass@ uses a depth\/stencil attachment, @pDepthStencilState@+-- /must/ be a valid pointer to a valid+-- 'PipelineDepthStencilStateCreateInfo' structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00753# If--- the @rasterizerDiscardEnable@ member of @pRasterizationState@ is--- 'Vulkan.Core10.FundamentalTypes.FALSE', and @subpass@ uses color--- attachments, @pColorBlendState@ /must/ be a valid pointer to a valid--- 'PipelineColorBlendStateCreateInfo' structure+-- 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>,+-- and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a+-- valid pointer to a valid 'PipelineColorBlendStateCreateInfo'+-- structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-04493# If--- the @rasterizerDiscardEnable@ member of @pRasterizationState@ is--- 'Vulkan.Core10.FundamentalTypes.FALSE',+-- 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>, -- @pColorBlendState->attachmentCount@ /must/ be greater than the index -- of all color attachments that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' for the @subpass@ -- index in @renderPass@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the--- depth bias clamping feature is not enabled, no element of 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>,+-- the depth bias clamping feature is not enabled, no element of the -- @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the -- @depthBiasEnable@ member of @pRasterizationState@ is@@ -3616,16 +3769,20 @@ -- of @pRasterizationState@ /must/ be @0.0@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the--- @VK_EXT_depth_range_unrestricted@ extension is not enabled and no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- 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>,+-- and the @VK_EXT_depth_range_unrestricted@ extension is not enabled+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS', and -- the @depthBoundsTestEnable@ member of @pDepthStencilState@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', the @minDepthBounds@ and -- @maxDepthBounds@ members of @pDepthStencilState@ /must/ be between -- @0.0@ and @1.0@, inclusive ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', -- and the @sampleLocationsEnable@ member of a -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'@@ -3638,8 +3795,10 @@ -- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' -- with a @samples@ parameter equaling @rasterizationSamples@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', -- and the @sampleLocationsEnable@ member of a -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'@@ -3652,8 +3811,10 @@ -- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' -- with a @samples@ parameter equaling @rasterizationSamples@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', -- and the @sampleLocationsEnable@ member of a -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'@@ -3663,7 +3824,9 @@ -- @rasterizationSamples@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If--- the @sampleLocationsEnable@ member of a+-- 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>,+-- and the @sampleLocationsEnable@ member of a -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT' -- structure included in the @pNext@ chain of @pMultisampleState@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', the fragment shader code@@ -3674,34 +3837,45 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent> -- with all shaders specified in @pStages@ ----- - #VUID-VkGraphicsPipelineCreateInfo-subpass-00757# If neither the--- @VK_AMD_mixed_attachment_samples@ nor the+-- - #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>,+-- and neither the @VK_AMD_mixed_attachment_samples@ nor the -- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, and if -- @subpass@ uses color and\/or depth\/stencil attachments, then the -- @rasterizationSamples@ member of @pMultisampleState@ /must/ be the -- same as the sample count for those subpass attachments ----- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the--- @VK_AMD_mixed_attachment_samples@ extension is enabled, and if--- @subpass@ uses color and\/or depth\/stencil attachments, then the+-- - #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>,+-- and the @VK_AMD_mixed_attachment_samples@ extension is enabled, and+-- if @subpass@ uses color and\/or depth\/stencil attachments, then the -- @rasterizationSamples@ member of @pMultisampleState@ /must/ equal -- the maximum of the sample counts of those subpass attachments ----- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the--- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if--- @subpass@ has a depth\/stencil attachment and depth test, stencil+-- - #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>,+-- and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+-- if @subpass@ has a depth\/stencil attachment and depth test, stencil -- test, or depth bounds test are enabled, then the -- @rasterizationSamples@ member of @pMultisampleState@ /must/ be the -- same as the sample count of the depth\/stencil attachment ----- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the--- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if--- @subpass@ has any color attachments, then the @rasterizationSamples@--- member of @pMultisampleState@ /must/ be greater than or equal to the--- sample count for those subpass attachments+-- - #VUID-VkGraphicsPipelineCreateInfo-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>,+-- and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+-- if @subpass@ has any color attachments, then the+-- @rasterizationSamples@ member of @pMultisampleState@ /must/ be+-- greater than or equal to the sample count for those subpass+-- attachments -- -- - #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If--- the @VK_NV_coverage_reduction_mode@ extension is enabled, the+-- 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>,+-- and the @VK_NV_coverage_reduction_mode@ extension is enabled, the -- coverage reduction mode specified by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@, -- the @rasterizationSamples@ member of @pMultisampleState@ and the@@ -3709,53 +3883,67 @@ -- subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' ----- - #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If @subpass@ does--- not use any color and\/or depth\/stencil attachments, then the--- @rasterizationSamples@ member of @pMultisampleState@ /must/ follow--- the rules for a+-- - #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>+-- 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> -- -- - #VUID-VkGraphicsPipelineCreateInfo-subpass-00759# @subpass@ /must/ -- be a valid subpass within @renderPass@ ----- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-00760# If the--- @renderPass@ has multiview enabled and @subpass@ has more than one--- bit set in the view mask and @multiviewTessellationShader@ is not--- enabled, then @pStages@ /must/ not include tessellation shaders+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-00760# 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>,+-- and the @renderPass@ has multiview enabled and @subpass@ has more+-- than one bit set in the view mask and @multiviewTessellationShader@+-- is not enabled, then @pStages@ /must/ not include tessellation+-- shaders ----- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-00761# If 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-00761# 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>,+-- 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-00762# If 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-00762# 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>,+-- 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-00763# If the--- @renderPass@ has multiview enabled, then all shaders /must/ not--- include variables decorated with the @Layer@ built-in decoration in--- their interfaces+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-00763# 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>,+-- and the @renderPass@ has multiview enabled, then all shaders /must/+-- not include variables decorated with the @Layer@ built-in decoration+-- in their interfaces -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-00764# @flags@ /must/ not -- contain the -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.PIPELINE_CREATE_DISPATCH_BASE' -- flag ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If @pStages@--- includes a fragment shader stage and an input attachment was--- referenced by an @aspectMask@ at @renderPass@ creation time, its--- shader code /must/ only read from the aspects that were specified--- for that input attachment+-- - #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>+-- and an input attachment was referenced by an @aspectMask@ at+-- @renderPass@ creation time, the fragment shader /must/ only read+-- from the aspects that were specified for that input attachment -- -- - #VUID-VkGraphicsPipelineCreateInfo-layout-01688# The number of -- resources in @layout@ accessible to each shader stage that is used -- by the pipeline /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV', -- and the @viewportWScalingEnable@ member of a -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'@@ -3769,8 +3957,10 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.ViewportWScalingNV' -- structures ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV', -- and if @pViewportState->pNext@ chain includes a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'@@ -3779,8 +3969,10 @@ -- array of @exclusiveScissorCount@ -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV', -- and if @pViewportState->pNext@ chain includes a -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'@@ -3789,8 +3981,10 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.ShadingRatePaletteNV' -- structures ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If no--- element of the @pDynamicStates@ member of @pDynamicState@ is+-- - #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>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT', -- and if @pNext@ chain includes a -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'@@ -3799,25 +3993,34 @@ -- array of @discardRectangleCount@ -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02097# If @pStages@--- includes a vertex shader stage, @pVertexInputState@ /must/ be a--- valid pointer to a valid 'PipelineVertexInputStateCreateInfo'--- structure+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02097# 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>,+-- @pVertexInputState@ /must/ be a valid pointer to a valid+-- 'PipelineVertexInputStateCreateInfo' structure ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If @pStages@--- includes a vertex shader stage, @pInputAssemblyState@ /must/ be a--- valid pointer to a valid 'PipelineInputAssemblyStateCreateInfo'--- structure+-- - #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>,+-- @pInputAssemblyState@ /must/ be a valid pointer to a valid+-- 'PipelineInputAssemblyStateCreateInfo' structure ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# The @Xfb@--- execution mode /can/ be specified by only one shader stage in--- @pStages@+-- - #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>,+-- the @Xfb@ execution mode /can/ be specified by no more than one+-- shader stage in @pStages@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If any shader--- stage in @pStages@ specifies @Xfb@ execution mode it /must/ be the--- last vertex processing stage+-- - #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>,+-- and any shader stage in @pStages@ specifies @Xfb@ execution mode it+-- /must/ be the last vertex processing stage ----- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If a+-- - #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>,+-- and a -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ -- value other than zero is specified, all variables in the output -- interface of the entry point being compiled decorated with@@ -3825,7 +4028,10 @@ -- decorated with identical @Stream@ values that match the -- @rasterizationStream@ ----- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If+-- - #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>,+-- and -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ -- is zero, or not specified, all variables in the output interface of -- the entry point being compiled decorated with @Position@,@@ -3834,31 +4040,42 @@ -- decoration -- -- - #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the--- last vertex processing stage is a geometry shader, and that geometry--- shader uses the @GeometryStreams@ capability, then+-- 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>,+-- and the last vertex processing stage is a geometry shader, and that+-- geometry shader uses the @GeometryStreams@ capability, then -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@ -- feature /must/ be enabled ----- - #VUID-VkGraphicsPipelineCreateInfo-None-02322# If 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-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>,+-- 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>+-- 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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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 -- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT' -- or--- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT'--- and if rasterization is enabled, then the @alphaToCoverageEnable@,--- @alphaToOneEnable@, and @sampleShadingEnable@ members of--- @pMultisampleState@ /must/ all be+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+-- then the @alphaToCoverageEnable@, @alphaToOneEnable@, and+-- @sampleShadingEnable@ members of @pMultisampleState@ /must/ all be -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the--- @stippledLineEnable@ member of+-- 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>,+-- the @stippledLineEnable@ member of -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'--- is 'Vulkan.Core10.FundamentalTypes.TRUE' and no element of the+-- is 'Vulkan.Core10.FundamentalTypes.TRUE', and no element of the -- @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT', -- then the @lineStippleFactor@ member of@@ -3914,35 +4131,71 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT', -- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT' ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If+-- - #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>,+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' -- is included in the @pDynamicStates@ array then @viewportCount@ -- /must/ be zero ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If+-- - #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>,+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' -- is included in the @pDynamicStates@ array then @scissorCount@ /must/ -- be zero ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If+-- - #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>,+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' -- is included in the @pDynamicStates@ array then -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' /must/ not -- be present ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If+-- - #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>,+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' -- 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>+-- 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',+-- or+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>+-- feature is not enabled, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-02877# If @flags@ includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', -- then the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled ----- - #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If @flags@ includes+-- - #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>+-- and @flags@ includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', -- then all stages /must/ not specify @Xfb@ execution mode --@@ -3954,64 +4207,109 @@ -- or -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ -- /must/ be greater than or equal to @1@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ -- /must/ be greater than or equal to @1@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ -- /must/ be a power-of-two value ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ -- /must/ be a power-of-two value ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ -- /must/ be less than or equal to @4@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ -- /must/ be less than or equal to @4@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- 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> -- is not enabled,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ -- and--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ -- /must/ both be equal to @1@ ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- is not included in @pDynamicState->pDynamicStates@, and the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> -- is not enabled, -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0] -- /must/ be -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- is not included in @pDynamicState->pDynamicStates@, and the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> -- is not enabled, -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]@@ -4019,71 +4317,101 @@ -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503#--- If the+-- 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>+-- and the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> -- limit is not supported, -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'--- is not included in @pDynamicState@->@pDynamicStates@, and+-- is not included in @pDynamicState->pDynamicStates@, and -- 'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than -- @1@, entry points specified in @pStages@ /must/ not write to the -- @PrimitiveShadingRateKHR@ built-in -- -- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504#--- If the+-- 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>+-- and the -- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- 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>+-- and the -- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- 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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>--- limit is not supported and+-- limit is not supported, and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@, elements of+-- is not included in @pDynamicState->pDynamicStates@, elements of -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@ -- /must/ be -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- or -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- 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> -- is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRateType+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@ -- /must/ be equal to -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV'. ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- 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> -- is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRate+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ -- /must/ be equal to -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV'. ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- is not included in @pDynamicState->pDynamicStates@, and the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> -- is not enabled, -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0] -- /must/ be -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' ----- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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+-- is not included in @pDynamicState->pDynamicStates@, and the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> -- is not enabled, -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]@@ -4091,21 +4419,30 @@ -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573#--- If the+-- 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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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> -- limit is not supported and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState@->@pDynamicStates@, elements of+-- is not included in @pDynamicState->pDynamicStates@, elements of -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@ -- /must/ be -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- or -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' ----- - #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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-supersampleFragmentShadingRates supersampleFragmentShadingRates feature> -- is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRate+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ -- /must/ not be equal to -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',@@ -4113,10 +4450,15 @@ -- or -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'. ----- - #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the+-- - #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>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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-noInvocationFragmentShadingRates noInvocationFragmentShadingRates feature> -- is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRate+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ -- /must/ not be equal to -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV'. --@@ -4124,6 +4466,51 @@ -- elements of the @pDynamicStates@ member of @pDynamicState@ /must/ -- not be -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the+-- pipeline is being created with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>+-- 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>+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- feature is not enabled, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899# If+-- the pipeline is being created with fragment shader state, and the+-- VK_QCOM_render_pass_shader_resolve extension is enabled, and if+-- subpass has any input attachments, and if the subpass description+-- contains+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+-- then the sample count of the input attachments /must/ equal+-- @rasterizationSamples@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900# If the+-- pipeline is being created with fragment shader state, and the+-- VK_QCOM_render_pass_shader_resolve extension is enabled, and if the+-- subpass description contains+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+-- then @sampleShadingEnable@ /must/ be false+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-04901# If @flags@ includes+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+-- then the subpass /must/ be the last subpass in a subpass dependency+-- chain+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-04902# If @flags@ includes+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+-- and if @pResolveAttachments@ is not @NULL@, then each resolve+-- attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/PipelineCache.hs view
@@ -283,14 +283,15 @@ -- Otherwise, @pDataSize@ /must/ point to a variable set by the user to the -- size of the buffer, in bytes, pointed to by @pData@, and on return the -- variable is overwritten with the amount of data actually written to--- @pData@.+-- @pData@. If @pDataSize@ is less than the maximum size that /can/ be+-- retrieved by the pipeline cache, at most @pDataSize@ bytes will be+-- written to @pData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate+-- that not all of the pipeline cache was returned. ----- If @pDataSize@ is less than the maximum size that /can/ be retrieved by--- the pipeline cache, at most @pDataSize@ bytes will be written to--- @pData@, and 'getPipelineCacheData' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'. Any data written to @pData@ is--- valid and /can/ be provided as the @pInitialData@ member of the--- 'PipelineCacheCreateInfo' structure passed to 'createPipelineCache'.+-- Any data written to @pData@ is valid and /can/ be provided as the+-- @pInitialData@ member of the 'PipelineCacheCreateInfo' structure passed+-- to 'createPipelineCache'. -- -- Two calls to 'getPipelineCacheData' with the same parameters /must/ -- retrieve the same data unless a command that modifies the contents of
src/Vulkan/Core10/PipelineLayout.hs view
@@ -629,8 +629,8 @@ -- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-03572# The total -- number of bindings with a @descriptorType@ of -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'--- to any given shader stage across all elements of @pSetLayouts@--- /must/ be less than or equal to+-- accessible to any given shader stage across all elements of+-- @pSetLayouts@ /must/ be less than or equal to -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR'::@maxPerStageDescriptorUpdateAfterBindAccelerationStructures@ -- -- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-03573# The total
src/Vulkan/Core10/Query.hs view
@@ -356,10 +356,6 @@ -- - #VUID-vkGetQueryPoolResults-firstQuery-00813# @firstQuery@ /must/ be -- less than the number of queries in @queryPool@ ----- - #VUID-vkGetQueryPoolResults-flags-02827# If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not--- set in @flags@, then @pData@ and @stride@ /must/ be multiples of @4@--- -- - #VUID-vkGetQueryPoolResults-flags-02828# If -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not -- set in @flags@ and the @queryType@ used to create @queryPool@ was@@ -514,8 +510,9 @@ -- -- - #VUID-VkQueryPoolCreateInfo-queryType-03222# If @queryType@ is -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- the @pNext@ chain /must/ include a structure of type+-- the @pNext@ chain /must/ include a -- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'+-- structure -- -- - #VUID-VkQueryPoolCreateInfo-queryCount-02763# @queryCount@ /must/ be -- greater than 0@@ -528,9 +525,10 @@ -- - #VUID-VkQueryPoolCreateInfo-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.QueryPoolPerformanceCreateInfoKHR'+-- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR',+-- 'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL', -- or--- 'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL'+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR> -- -- - #VUID-VkQueryPoolCreateInfo-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique
src/Vulkan/Core10/Queue.hs view
@@ -256,10 +256,10 @@ -- 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> ----- - #VUID-vkQueueSubmit-pSignalSemaphores-00067# Each element of the--- @pSignalSemaphores@ member of any element of @pSubmits@ /must/ be--- unsignaled when the semaphore signal operation it defines is--- executed on the device+-- - #VUID-vkQueueSubmit-pSignalSemaphores-00067# Each binary semaphore+-- element of the @pSignalSemaphores@ member of any element of+-- @pSubmits@ /must/ be unsignaled when the semaphore signal operation+-- it defines is executed on the device -- -- - #VUID-vkQueueSubmit-pWaitSemaphores-00068# When a semaphore wait -- operation referring to a binary semaphore defined by any element of@@ -644,7 +644,7 @@ -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the -- corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+-- '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>@@ -655,7 +655,7 @@ -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the -- corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pWaitSemaphoreValues+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pWaitSemaphoreValues@ -- /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@@ -666,7 +666,7 @@ -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the -- corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ -- /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
src/Vulkan/Core10/Sampler.hs view
@@ -108,7 +108,8 @@ -- - #VUID-vkCreateSampler-maxSamplerAllocationCount-04110# There /must/ -- be less than -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSamplerAllocationCount@--- VkSampler objects currently created on the device.+-- 'Vulkan.Core10.Handles.Sampler' objects currently created on the+-- device. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -307,14 +307,15 @@ getPhysicalDeviceSparseImageFormatProperties :: forall io . (MonadIO io) => -- | @physicalDevice@ is the physical device from which to query the sparse- -- image capabilities.+ -- image format properties. PhysicalDevice -> -- | @format@ is the image format. Format -> -- | @type@ is the dimensionality of image. ImageType- -> -- | @samples@ is the number of samples per texel as defined in- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+ -> -- | @samples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the number of samples per texel. ("samples" ::: SampleCountFlagBits) -> -- | @usage@ is a bitmask describing the intended usage of the image. ImageUsageFlags@@ -393,9 +394,9 @@ -- semaphore -- -- - #VUID-vkQueueBindSparse-pWaitSemaphores-01117# All elements of the--- @pWaitSemaphores@ member of all elements of @pBindInfo@ member--- referring to a binary semaphore /must/ be semaphores that are--- signaled, or have+-- @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> -- previously submitted for execution --@@ -650,8 +651,8 @@ -- 'SparseImageMemoryBind', 'Vulkan.Core10.Image.getImageSubresourceLayout' data ImageSubresource = ImageSubresource { -- | @aspectMask@ is a- -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags' selecting the- -- image /aspect/.+ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags' value+ -- selecting the image /aspect/. -- -- #VUID-VkImageSubresource-aspectMask-parameter# @aspectMask@ /must/ be a -- valid combination of@@ -1040,7 +1041,7 @@ -- #VUID-VkSparseBufferMemoryBindInfo-buffer-parameter# @buffer@ /must/ be -- a valid 'Vulkan.Core10.Handles.Buffer' handle buffer :: Buffer- , -- | @pBinds@ is a pointer to array of 'SparseMemoryBind' structures.+ , -- | @pBinds@ is a pointer to an array of 'SparseMemoryBind' structures. -- -- #VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter# @pBinds@ /must/ be -- a valid pointer to an array of @bindCount@ valid 'SparseMemoryBind'@@ -1084,7 +1085,7 @@ -- | VkSparseImageOpaqueMemoryBindInfo - Structure specifying sparse image--- opaque memory bind info+-- opaque memory bind information -- -- == Valid Usage --@@ -1152,7 +1153,7 @@ -- | VkSparseImageMemoryBindInfo - Structure specifying sparse image memory--- bind info+-- bind information -- -- == Valid Usage --@@ -1262,7 +1263,7 @@ -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the -- corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+-- '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>@@ -1273,7 +1274,7 @@ -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the -- corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pWaitSemaphoreValues+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pWaitSemaphoreValues@ -- /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@@ -1284,7 +1285,7 @@ -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the -- corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ -- /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
src/Vulkan/Core11.hs view
@@ -57,7 +57,7 @@ import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters import Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers import Data.Word (Word32)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) pattern API_VERSION_1_1 :: Word32-pattern API_VERSION_1_1 = MAKE_VERSION 1 1 0+pattern API_VERSION_1_1 = MAKE_API_VERSION 1 1 0
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -128,7 +128,7 @@ -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It -- does not own a reference to the underlying memory resource represented--- its Vulkan memory object, and will therefore become invalid when all+-- by its Vulkan memory object, and will therefore become invalid when all -- Vulkan memory objects associated with it are destroyed. pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalMemoryHandleTypeFlagBits 0x00000004 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT' specifies an NT handle
src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs view
@@ -98,15 +98,15 @@ -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It -- does not own a reference to the underlying synchronization primitive--- represented its Vulkan semaphore object, and will therefore become+-- represented by its Vulkan semaphore object, and will therefore become -- invalid when all Vulkan semaphore objects associated with it are -- destroyed. pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000004 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' specifies an NT handle -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D--- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence' by a--- Direct3D 11 fence. It owns a reference to the underlying synchronization--- primitive associated with the Direct3D fence.+-- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence'+-- referring to a Direct3D 11 fence. It owns a reference to the underlying+-- synchronization primitive associated with the Direct3D fence. pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000008 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' specifies a POSIX file -- descriptor handle to a Linux Sync File or Android Fence object. It can
src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs view
@@ -27,7 +27,7 @@ import Vulkan.Core10.FundamentalTypes (Flags) type SubgroupFeatureFlags = SubgroupFeatureFlagBits --- | VkSubgroupFeatureFlagBits - Enum describing what group operations are+-- | VkSubgroupFeatureFlagBits - Bitmask describing what group operations are -- supported with subgroup scope -- -- = See Also
src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs view
@@ -104,7 +104,7 @@ -- 'Vulkan.Core10.Handles.Device' handle Device -> -- | @pQueueInfo@ is a pointer to a 'DeviceQueueInfo2' structure, describing- -- the parameters used to create the device queue.+ -- parameters of the device queue to be retrieved. -- -- #VUID-vkGetDeviceQueue2-pQueueInfo-parameter# @pQueueInfo@ /must/ be a -- valid pointer to a valid 'DeviceQueueInfo2' structure@@ -190,12 +190,21 @@ -- | VkPhysicalDeviceProtectedMemoryFeatures - Structure describing protected -- memory features that can be supported by an implementation --+-- = Members+--+-- This structure describes the following feature:+-- -- = Description -- -- If the 'PhysicalDeviceProtectedMemoryFeatures' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.+-- 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. 'PhysicalDeviceProtectedMemoryFeatures' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -251,10 +260,12 @@ -- = Description -- -- If the 'PhysicalDeviceProtectedMemoryProperties' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with a value indicating the implementation-dependent--- behavior.+-- 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) --
src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs view
@@ -36,17 +36,15 @@ -- | VkPhysicalDeviceSubgroupProperties - Structure describing subgroup -- support for an implementation ----- = Members------ The members of the 'PhysicalDeviceSubgroupProperties' structure describe--- the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceSubgroupProperties' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- @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 @supportedOperations@ includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroup-quad >,
src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDevice16BitStorageFeatures - Structure describing features -- supported by VK_KHR_16bit_storage --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevice16BitStorageFeatures' 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. 'PhysicalDevice16BitStorageFeatures' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs view
@@ -151,9 +151,9 @@ -- == Valid Usage -- -- - #VUID-vkBindImageMemory2-pBindInfos-02858# If any--- 'BindImageMemoryInfo'::image was created with+-- 'BindImageMemoryInfo'::@image@ was created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'--- then all planes of 'BindImageMemoryInfo'::image /must/ be bound+-- then all planes of 'BindImageMemoryInfo'::@image@ /must/ be bound -- individually in separate @pBindInfos@ -- -- - #VUID-vkBindImageMemory2-pBindInfos-04006# @pBindInfos@ /must/ not@@ -242,11 +242,11 @@ -- @memoryOffset@ -- -- - #VUID-VkBindBufferMemoryInfo-buffer-01444# If @buffer@ requires a--- dedicated allocation(as reported by+-- dedicated allocation (as reported by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2' -- in--- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation--- for @buffer@), @memory@ /must/ have been created with+-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@+-- for @buffer@), @memory@ /must/ have been allocated with -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@ -- equal to @buffer@ --@@ -261,25 +261,25 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@, -- and @memoryOffset@ /must/ be zero ----- - #VUID-VkBindBufferMemoryInfo-None-01898# If buffer was created with--- the+-- - #VUID-VkBindBufferMemoryInfo-None-01898# If @buffer@ was created+-- with the -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' -- bit set, the buffer /must/ be bound to a memory object allocated -- with a memory type that reports -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' ----- - #VUID-VkBindBufferMemoryInfo-None-01899# If buffer was created with--- the+-- - #VUID-VkBindBufferMemoryInfo-None-01899# If @buffer@ was created+-- with the -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' -- bit not set, the buffer /must/ not be bound to a memory object--- created with a memory type that reports+-- allocated with a memory type that reports -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' -- -- - #VUID-VkBindBufferMemoryInfo-buffer-01038# If @buffer@ was created -- with -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV'::@dedicatedAllocation@ -- equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @memory@ /must/ have--- been created with+-- been allocated with -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV'::@buffer@ -- equal to a buffer handle created with identical creation parameters -- to @buffer@ and @memoryOffset@ /must/ be zero@@ -291,7 +291,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ -- when @buffer@ was created ----- - #VUID-VkBindBufferMemoryInfo-memory-02985# If @memory@ was created+-- - #VUID-VkBindBufferMemoryInfo-memory-02985# If @memory@ was allocated -- by a memory import operation, that is not -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' -- with a non-@NULL@ @buffer@ value, the external handle type of the@@ -299,7 +299,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ -- when @buffer@ was created ----- - #VUID-VkBindBufferMemoryInfo-memory-02986# If @memory@ was created+-- - #VUID-VkBindBufferMemoryInfo-memory-02986# If @memory@ was allocated -- with the -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' -- memory import operation with a non-@NULL@ @buffer@ value,@@ -438,7 +438,7 @@ -- dedicated allocation (as reported by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2' -- in--- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation+-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@ -- for @image@), @memory@ /must/ have been created with -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@image@ -- equal to @image@
src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs view
@@ -35,93 +35,68 @@ -- -- = Description ----- When the implementation sets @requiresDedicatedAllocation@ to--- 'Vulkan.Core10.FundamentalTypes.TRUE', it /must/ also set--- @prefersDedicatedAllocation@ to 'Vulkan.Core10.FundamentalTypes.TRUE'.------ If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the+-- To determine the dedicated allocation requirements of a buffer or image+-- resource, add a 'MemoryDedicatedRequirements' structure to the @pNext@+-- chain of the -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a+-- structure passed as the @pMemoryRequirements@ parameter of -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2'--- call, @requiresDedicatedAllocation@ /may/ be--- 'Vulkan.Core10.FundamentalTypes.TRUE' under one of the following--- conditions:+-- or+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2',+-- respectively. ----- - The @pNext@ chain of 'Vulkan.Core10.Buffer.BufferCreateInfo' for the--- call to 'Vulkan.Core10.Buffer.createBuffer' used to create the--- buffer being queried included a+-- Constraints on the values returned for buffer resources are:+--+-- - @requiresDedicatedAllocation@ /may/ be+-- 'Vulkan.Core10.FundamentalTypes.TRUE' if the @pNext@ chain of+-- 'Vulkan.Core10.Buffer.BufferCreateInfo' for the call to+-- 'Vulkan.Core10.Buffer.createBuffer' used to create the buffer being+-- queried included a -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo' -- structure, and any of the handle types specified in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ -- requires dedicated allocation, as reported by -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.getPhysicalDeviceExternalBufferProperties' -- in--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties'::@externalMemoryProperties.externalMemoryFeatures@,--- the @requiresDedicatedAllocation@ field will be set to--- 'Vulkan.Core10.FundamentalTypes.TRUE'.+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties'::@externalMemoryProperties.externalMemoryFeatures@.+-- Otherwise, @requiresDedicatedAllocation@ will be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. ----- In all other cases, @requiresDedicatedAllocation@ /must/ be set to--- 'Vulkan.Core10.FundamentalTypes.FALSE' by the implementation whenever a--- 'MemoryDedicatedRequirements' structure is included in the @pNext@ chain--- of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed to a call to--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2'.+-- - When the implementation sets @requiresDedicatedAllocation@ to+-- 'Vulkan.Core10.FundamentalTypes.TRUE', it /must/ also set+-- @prefersDedicatedAllocation@ to+-- 'Vulkan.Core10.FundamentalTypes.TRUE'. ----- If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2'--- call and--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT'--- was set in 'Vulkan.Core10.Buffer.BufferCreateInfo'::@flags@ when--- @buffer@ was created then the implementation /must/ set both--- @prefersDedicatedAllocation@ and @requiresDedicatedAllocation@ to--- 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- - If+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT'+-- was set in 'Vulkan.Core10.Buffer.BufferCreateInfo'::@flags@ when+-- @buffer@ was created, then both @prefersDedicatedAllocation@ and+-- @requiresDedicatedAllocation@ will be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. ----- If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2'--- call, @requiresDedicatedAllocation@ /may/ be--- 'Vulkan.Core10.FundamentalTypes.TRUE' under one of the following--- conditions:+-- Constraints on the values returned for image resources are: ----- - The @pNext@ chain of 'Vulkan.Core10.Image.ImageCreateInfo' for the--- call to 'Vulkan.Core10.Image.createImage' used to create the image--- being queried included a+-- - @requiresDedicatedAllocation@ /may/ be+-- 'Vulkan.Core10.FundamentalTypes.TRUE' if the @pNext@ chain of+-- 'Vulkan.Core10.Image.ImageCreateInfo' for the call to+-- 'Vulkan.Core10.Image.createImage' used to create the image being+-- queried included a -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo' -- structure, and any of the handle types specified in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@ -- requires dedicated allocation, as reported by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- in--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'::@externalMemoryProperties.externalMemoryFeatures@,--- the @requiresDedicatedAllocation@ field will be set to--- 'Vulkan.Core10.FundamentalTypes.TRUE'.------ In all other cases, @requiresDedicatedAllocation@ /must/ be set to--- 'Vulkan.Core10.FundamentalTypes.FALSE' by the implementation whenever a--- 'MemoryDedicatedRequirements' structure is included in the @pNext@ chain--- of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed to a call to--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2'.+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'::@externalMemoryProperties.externalMemoryFeatures@.+-- Otherwise, @requiresDedicatedAllocation@ will be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. ----- If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2'--- call and--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT'--- was set in 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ when @image@--- was created then the implementation /must/ set both--- @prefersDedicatedAllocation@ and @requiresDedicatedAllocation@ to--- 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- - If+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT'+-- was set in 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ when+-- @image@ was created, then both @prefersDedicatedAllocation@ and+-- @requiresDedicatedAllocation@ will be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs view
@@ -189,13 +189,13 @@ -- -- - #VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356# -- If 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were--- provided when @descriptorSetLayout@ was created, a compatible set of--- callbacks /must/ be provided here+-- provided when @descriptorUpdateTemplate@ was created, a compatible+-- set of callbacks /must/ be provided here -- -- - #VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357# -- If no 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were--- provided when @descriptorSetLayout@ was created, @pAllocator@ /must/--- be @NULL@+-- provided when @descriptorUpdateTemplate@ was created, @pAllocator@+-- /must/ be @NULL@ -- -- == Valid Usage (Implicit) --@@ -362,9 +362,7 @@ -- > &createInfo, -- > NULL, -- > &myDescriptorUpdateTemplate);--- > } -- >--- > -- > AppDataStructure appData; -- > -- > // fill appData here or cache it in your engine@@ -377,7 +375,7 @@ -- 'Vulkan.Core10.Handles.Device' updateDescriptorSetWithTemplate :: forall io . (MonadIO io)- => -- | @device@ is the logical device that updates the descriptor sets.+ => -- | @device@ is the logical device that updates the descriptor set. Device -> -- | @descriptorSet@ is the descriptor set to update DescriptorSet@@ -631,15 +629,12 @@ -- it /can/ only be used to push descriptor sets using the provided -- @pipelineBindPoint@, @pipelineLayout@, and @set@ number. templateType :: DescriptorUpdateTemplateType- , -- | @descriptorSetLayout@ is the descriptor set layout the parameter update- -- template will be used with. All descriptor sets which are going to be+ , -- | @descriptorSetLayout@ is the descriptor set layout used to build the+ -- descriptor update template. All descriptor sets which are going to be -- updated through the newly created descriptor update template /must/ be- -- created with this layout. @descriptorSetLayout@ is the descriptor set- -- layout used to build the descriptor update template. All descriptor sets- -- which are going to be updated through the newly created descriptor- -- update template /must/ be created with a layout that matches (is the- -- same as, or defined identically to) this layout. This parameter is- -- ignored if @templateType@ is not+ -- created with a layout that matches (is the same as, or defined+ -- identically to) this layout. This parameter is ignored if @templateType@+ -- is not -- 'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET'. descriptorSetLayout :: DescriptorSetLayout , -- | @pipelineBindPoint@ is a
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -242,7 +242,8 @@ "dynamic" mkVkCmdDispatchBase :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> IO () --- | vkCmdDispatchBase - Dispatch compute work items+-- | vkCmdDispatchBase - Dispatch compute work items with non-zero base+-- values for the workgroup IDs -- -- = Description --@@ -354,9 +355,9 @@ -- - #VUID-vkCmdDispatchBase-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdDispatchBase-None-02859# There /must/ not have been any -- calls to dynamic state setting commands for any state not specified@@ -473,11 +474,29 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command. --+-- - #VUID-vkCmdDispatchBase-commandBuffer-02712# If @commandBuffer@ is a+-- protected command buffer, 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-vkCmdDispatchBase-commandBuffer-02713# If @commandBuffer@ is a+-- protected command buffer, 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-vkCmdDispatchBase-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-vkCmdDispatchBase-baseGroupX-00421# @baseGroupX@ /must/ be -- less than -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0] ----- - #VUID-vkCmdDispatchBase-baseGroupX-00422# @baseGroupX@ /must/ be+-- - #VUID-vkCmdDispatchBase-baseGroupX-00422# @baseGroupY@ /must/ be -- less than -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1] --
src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs view
@@ -40,30 +40,17 @@ -- | VkBindBufferMemoryDeviceGroupInfo - Structure specifying device within a -- group to bind to ----- = Members+-- = Description ----- If the @pNext@ list of+-- If the @pNext@ chain of -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo' -- includes a 'BindBufferMemoryDeviceGroupInfo' structure, then that -- structure determines how memory is bound to buffers across multiple -- devices in a device group. ----- = Description------ The 'BindBufferMemoryDeviceGroupInfo' structure is defined as:------ - @sType@ is the type of this structure.------ - @pNext@ is @NULL@ or a pointer to a structure extending this--- structure.------ - @deviceIndexCount@ is the number of elements in @pDeviceIndices@.------ - @pDeviceIndices@ is a pointer to an array of device indices.--- -- If @deviceIndexCount@ is greater than zero, then on device index i the -- buffer is attached to the instance of @memory@ on the physical device--- with device index pDeviceIndices[i].+-- with device index @pDeviceIndices@[i]. -- -- If @deviceIndexCount@ is zero and @memory@ comes from a memory heap with -- the@@ -103,7 +90,7 @@ -- -- 'Vulkan.Core10.Enums.StructureType.StructureType' data BindBufferMemoryDeviceGroupInfo = BindBufferMemoryDeviceGroupInfo- { -- No documentation found for Nested "VkBindBufferMemoryDeviceGroupInfo" "pDeviceIndices"+ { -- | @pDeviceIndices@ is a pointer to an array of device indices. deviceIndices :: Vector Word32 } deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -144,45 +131,25 @@ -- | VkBindImageMemoryDeviceGroupInfo - Structure specifying device within a -- group to bind to ----- = Members+-- = Description ----- If the @pNext@ list of+-- If the @pNext@ chain of -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo' -- includes a 'BindImageMemoryDeviceGroupInfo' structure, then that -- structure determines how memory is bound to images across multiple -- devices in a device group. ----- = Description------ The 'BindImageMemoryDeviceGroupInfo' structure is defined as:------ - @sType@ is the type of this structure.------ - @pNext@ is @NULL@ or a pointer to a structure extending this--- structure.------ - @deviceIndexCount@ is the number of elements in @pDeviceIndices@.------ - @pDeviceIndices@ is a pointer to an array of device indices.------ - @splitInstanceBindRegionCount@ is the number of elements in--- @pSplitInstanceBindRegions@.------ - @pSplitInstanceBindRegions@ is a pointer to an array of--- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures describing which--- regions of the image are attached to each instance of memory.--- -- If @deviceIndexCount@ is greater than zero, then on device index i -- @image@ is attached to the instance of the memory on the physical device -- with device index pDeviceIndices[i]. -- -- Let N be the number of physical devices in the logical device. If -- @splitInstanceBindRegionCount@ is greater than zero, then--- @pSplitInstanceBindRegions@ is an array of N2 rectangles, where the--- image region specified by the rectangle at element i*N+j in resource--- instance i is bound to the memory instance j. The blocks of the memory--- that are bound to each sparse image block region use an offset in--- memory, relative to @memoryOffset@, computed as if the whole image were+-- @pSplitInstanceBindRegions@ is a pointer to an array of N2 rectangles,+-- where the image region specified by the rectangle at element i*N+j in+-- resource instance i is bound to the memory instance j. The blocks of the+-- memory that are bound to each sparse image block region use an offset in+-- memory, relative to @memoryOffset@, computed as if the whole image was -- being bound to a contiguous range of memory. In other words, -- horizontally adjacent image blocks use consecutive blocks of memory, -- vertically adjacent image blocks are separated by the number of bytes@@ -247,7 +214,7 @@ -- @extent.height@ member of any element of @pSplitInstanceBindRegions@ -- /must/ either be a multiple of the sparse image block height of all -- non-metadata aspects of the image, or else @extent.height@ +--- @offset.y@ /must/ equal the width of the image subresource+-- @offset.y@ /must/ equal the height of the image subresource -- -- == Valid Usage (Implicit) --@@ -270,9 +237,11 @@ -- 'Vulkan.Core10.FundamentalTypes.Rect2D', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data BindImageMemoryDeviceGroupInfo = BindImageMemoryDeviceGroupInfo- { -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "pDeviceIndices"+ { -- | @pDeviceIndices@ is a pointer to an array of device indices. deviceIndices :: Vector Word32- , -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "pSplitInstanceBindRegions"+ , -- | @pSplitInstanceBindRegions@ is a pointer to an array of+ -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures describing which+ -- regions of the image are attached to each instance of memory. splitInstanceBindRegions :: Vector Rect2D } deriving (Typeable)
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs view
@@ -93,10 +93,9 @@ -- actually written to @pPhysicalDeviceGroupProperties@. If -- @pPhysicalDeviceGroupCount@ is less than the number of device groups -- available, at most @pPhysicalDeviceGroupCount@ structures will be--- written. If @pPhysicalDeviceGroupCount@ is smaller than the number of--- device groups available, 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate--- that not all the available device groups were returned.+-- written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned+-- instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not+-- all the available device groups were returned. -- -- Every physical device /must/ be in exactly one device group. --
src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs view
@@ -126,7 +126,7 @@ data PhysicalDeviceExternalFenceInfo = PhysicalDeviceExternalFenceInfo { -- | @handleType@ is a -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'- -- value indicating an external fence handle type for which capabilities+ -- value specifying an external fence handle type for which capabilities -- will be returned. -- -- #VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameter#
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs view
@@ -41,9 +41,9 @@ -- -- Note ----- A 'ExternalMemoryImageCreateInfo' structure with a non-zero @handleType@--- field must be included in the creation parameters for an image that will--- be bound to memory that is either exported or imported.+-- A 'ExternalMemoryImageCreateInfo' structure with a non-zero+-- @handleTypes@ field must be included in the creation parameters for an+-- image that will be bound to memory that is either exported or imported. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -497,6 +497,14 @@ -- valid LUID and @deviceNodeMask@ contains a valid node mask, and -- 'Vulkan.Core10.FundamentalTypes.FALSE' if they do not. --+-- If the 'PhysicalDeviceIDProperties' 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.+-- -- @deviceUUID@ /must/ be immutable for a given device across instances, -- processes, driver APIs, driver versions, and system reboots. --
src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs view
@@ -465,6 +465,7 @@ -- -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements', -- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoGetMemoryPropertiesKHR VkVideoGetMemoryPropertiesKHR>, -- 'getBufferMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2KHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV',
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -100,6 +100,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)@@ -121,6 +122,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_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)@@ -143,6 +145,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) 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.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)@@ -169,6 +172,8 @@ 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)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)@@ -214,12 +219,14 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) 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 Vulkan.Core10.Handles (PhysicalDevice_T)@@ -301,10 +308,10 @@ -- -- = Description ----- Each structure in @pProperties@ and its @pNext@ chain contain members--- corresponding to properties or implementation-dependent limits.--- 'getPhysicalDeviceProperties2' writes each member to a value indicating--- the value of that property or limit.+-- Each structure in @pProperties@ and its @pNext@ chain contains members+-- corresponding to implementation-dependent properties, behaviors, or+-- limits. 'getPhysicalDeviceProperties2' fills in each member to specify+-- the corresponding value for the implementation. -- -- == Valid Usage (Implicit) --@@ -608,7 +615,7 @@ getPhysicalDeviceSparseImageFormatProperties2 :: forall io . (MonadIO io) => -- | @physicalDevice@ is the physical device from which to query the sparse- -- image capabilities.+ -- image format properties. PhysicalDevice -> -- | @pFormatInfo@ is a pointer to a 'PhysicalDeviceSparseImageFormatInfo2' -- structure containing input parameters to the command.@@ -635,10 +642,6 @@ -- | VkPhysicalDeviceFeatures2 - Structure describing the fine-grained -- features that can be supported by an implementation ----- = Members------ The 'PhysicalDeviceFeatures2' structure is defined as:--- -- = Description -- -- The @pNext@ chain of this structure is used to extend the structure with@@ -676,7 +679,12 @@ getNext PhysicalDeviceFeatures2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b extends _ 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 @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f@@ -689,6 +697,7 @@ | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = 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 @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f@@ -833,6 +842,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',@@ -883,6 +893,7 @@ getNext PhysicalDeviceProperties2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b extends _ 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@@ -969,9 +980,13 @@ -- - #VUID-VkFormatProperties2-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FORMAT_PROPERTIES_2' ----- - #VUID-VkFormatProperties2-pNext-pNext# @pNext@ /must/ be @NULL@ or a--- pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT'+-- - #VUID-VkFormatProperties2-pNext-pNext# Each @pNext@ member of any+-- structure (including this one) in the @pNext@ chain /must/ be either+-- @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- - #VUID-VkFormatProperties2-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -1321,9 +1336,10 @@ -- - #VUID-VkQueueFamilyProperties2-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_synchronization2.QueueFamilyCheckpointProperties2NV'+-- 'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV',+-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV', -- or--- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV'+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR> -- -- - #VUID-VkQueueFamilyProperties2-sType-unique# The @sType@ value of -- each struct in the @pNext@ chain /must/ be unique@@ -1548,8 +1564,9 @@ -- #VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter# @type@ -- /must/ be a valid 'Vulkan.Core10.Enums.ImageType.ImageType' value type' :: ImageType- , -- | @samples@ is the number of samples per texel as defined in- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+ , -- | @samples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the number of samples per texel. -- -- #VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095# @samples@ -- /must/ be a bit value that is set in
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs view
@@ -56,6 +56,15 @@ -- | VkInputAttachmentAspectReference - Structure specifying a subpass\/input -- attachment pair and an aspect mask that /can/ be read. --+-- = Description+--+-- This structure specifies an aspect mask for a specific input attachment+-- of a specific subpass in the render pass.+--+-- @subpass@ and @inputAttachmentIndex@ index into the render pass as:+--+-- > pname:pCreateInfo->pSubpasses[subpass].pInputAttachments[inputAttachmentIndex]+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -135,6 +144,10 @@ -- -- = Description --+-- To specify which aspects of an input attachment /can/ be read, add a+-- 'RenderPassInputAttachmentAspectCreateInfo' structure to the @pNext@+-- chain of the 'Vulkan.Core10.Pass.RenderPassCreateInfo' structure:+-- -- An application /can/ access any aspect of an input attachment that does -- not have a specified aspect mask in the @pAspectReferences@ array. -- Otherwise, an application /must/ not access aspect(s) of an input@@ -195,17 +208,15 @@ -- | VkPhysicalDevicePointClippingProperties - Structure describing the point -- clipping behavior supported by an implementation ----- = Members------ The members of the 'PhysicalDevicePointClippingProperties' structure--- describe the following implementation-dependent limit:--- -- = Description -- -- If the 'PhysicalDevicePointClippingProperties' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -273,9 +284,9 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImageViewUsageCreateInfo = ImageViewUsageCreateInfo- { -- | @usage@ is a bitmask describing the allowed usages of the image view.- -- See 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' for a- -- description of the supported bits.+ { -- | @usage@ is a bitmask of+ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' specifying+ -- allowed usages of the image view. -- -- #VUID-VkImageViewUsageCreateInfo-usage-parameter# @usage@ /must/ be a -- valid combination of@@ -331,7 +342,7 @@ -- included in the @pNext@ chain of -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo', it -- controls the origin of the tessellation domain. If this structure is not--- present, it is as if @domainOrigin@ were+-- present, it is as if @domainOrigin@ was -- 'Vulkan.Core11.Enums.TessellationDomainOrigin.TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT'. -- -- == Valid Usage (Implicit)
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs view
@@ -140,17 +140,15 @@ -- | VkPhysicalDeviceMaintenance3Properties - Structure describing descriptor -- set properties ----- = Members------ The members of the 'PhysicalDeviceMaintenance3Properties' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMaintenance3Properties' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs view
@@ -49,11 +49,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceMultiviewFeatures' structure describe--- the following features:+-- This structure describes the following features: -- -- = Description --+-- - @sType@ is the type of this structure.+--+-- - @pNext@ is @NULL@ or a pointer to a structure extending this+-- structure.+-- -- - #extension-features-multiview# @multiview@ specifies whether the -- implementation supports multiview rendering within a render pass. If -- this feature is not enabled, the view mask of each subpass /must/@@ -76,11 +80,14 @@ -- tessellation shaders. -- -- If the 'PhysicalDeviceMultiviewFeatures' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceMultiviewFeatures' /can/ also be included in the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceMultiviewFeatures' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage --@@ -159,17 +166,15 @@ -- | VkPhysicalDeviceMultiviewProperties - Structure describing multiview -- limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceMultiviewProperties' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMultiviewProperties' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- @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) --@@ -228,8 +233,8 @@ zero --- | VkRenderPassMultiviewCreateInfo - Structure containing multiview info--- for all subpasses+-- | VkRenderPassMultiviewCreateInfo - Structure containing multiview+-- information for all subpasses -- -- = Description --
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -670,7 +670,9 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data BindImagePlaneMemoryInfo = BindImagePlaneMemoryInfo- { -- | @planeAspect@ is the aspect of the disjoint image plane to bind.+ { -- | @planeAspect@ is a+ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+ -- specifying the aspect of the disjoint image plane to bind. planeAspect :: ImageAspectFlagBits } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -755,7 +757,9 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImagePlaneMemoryRequirementsInfo = ImagePlaneMemoryRequirementsInfo- { -- | @planeAspect@ is the aspect corresponding to the image plane to query.+ { -- | @planeAspect@ is a+ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+ -- specifying the aspect corresponding to the image plane to query. planeAspect :: ImageAspectFlagBits } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -796,12 +800,23 @@ -- | VkPhysicalDeviceSamplerYcbcrConversionFeatures - Structure describing--- Y’CbCr conversion features that can be supported by an implementation+-- Y′CBCR conversion features that can be supported by an implementation -- -- = Members ----- The members of the 'PhysicalDeviceSamplerYcbcrConversionFeatures'--- structure describe the following feature:+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceSamplerYcbcrConversionFeatures' 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. 'PhysicalDeviceSamplerYcbcrConversionFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs view
@@ -36,12 +36,21 @@ -- shader draw parameter features that can be supported by an -- implementation --+-- = Members+--+-- This structure describes the following feature:+-- -- = Description -- -- If the 'PhysicalDeviceShaderDrawParametersFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.+-- 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. 'PhysicalDeviceShaderDrawParametersFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs view
@@ -37,11 +37,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceVariablePointersFeatures' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --+-- - @sType@ is the type of this structure.+--+-- - @pNext@ is @NULL@ or a pointer to a structure extending this+-- structure.+-- -- - #extension-features-variablePointersStorageBuffer# -- @variablePointersStorageBuffer@ specifies whether the implementation -- supports the SPIR-V @VariablePointersStorageBuffer@ capability. When@@ -55,12 +59,14 @@ -- not declare the @VariablePointers@ capability. -- -- If the 'PhysicalDeviceVariablePointersFeatures' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceVariablePointersFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceVariablePointersFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage --
src/Vulkan/Core12.hs view
@@ -95,14 +95,14 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags) import Vulkan.Core10.APIConstants (UUID_SIZE)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES)) import Vulkan.Core10.Enums.StructureType (StructureType(..)) pattern API_VERSION_1_2 :: Word32-pattern API_VERSION_1_2 = MAKE_VERSION 1 2 0+pattern API_VERSION_1_2 = MAKE_API_VERSION 1 2 0 -- | VkPhysicalDeviceVulkan11Features - Structure describing the Vulkan 1.1@@ -110,17 +110,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceVulkan11Features' structure describe--- the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceVulkan11Features' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceVulkan11Features' /can/ also be used in the @pNext@ chain--- of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceVulkan11Features' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage (Implicit) --@@ -290,8 +292,18 @@ -- -- = Description ----- The members of 'PhysicalDeviceVulkan11Properties' /must/ have the same--- values as the corresponding members of+-- If the 'PhysicalDeviceVulkan11Properties' 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.1 functionality.+--+-- The members of 'PhysicalDeviceVulkan11Properties' have the same values+-- as the corresponding members of -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',@@ -497,11 +509,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceVulkan12Features' structure describe--- the following features:+-- This structure describes the following features: -- -- = Description --+-- - @sType@ is the type of this structure.+--+-- - @pNext@ is @NULL@ or a pointer to a structure extending this+-- structure.+-- -- - #features-samplerMirrorClampToEdge# @samplerMirrorClampToEdge@ -- indicates whether the implementation supports the -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE'@@ -806,8 +822,8 @@ -- vectors of these types in -- <https://www.khronos.org/registry/vulkan/specs/1.2-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>if--- the implementation supports the types.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,+-- if the implementation supports the types. -- -- - #features-separateDepthStencilLayouts# @separateDepthStencilLayouts@ -- indicates whether the implementation supports a@@ -895,11 +911,14 @@ -- constants. -- -- If the 'PhysicalDeviceVulkan12Features' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceVulkan12Features' /can/ also be used in the @pNext@ chain--- of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceVulkan12Features' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage (Implicit) --@@ -1233,6 +1252,16 @@ -- device properties for functionality promoted to Vulkan 1.2 -- -- = Description+--+-- If the 'PhysicalDeviceVulkan12Properties' 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.2 functionality. -- -- The members of 'PhysicalDeviceVulkan12Properties' /must/ have the same -- values as the corresponding members of
src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs view
@@ -82,13 +82,13 @@ -- binding. This /must/ only be used for the last binding in the descriptor -- set layout (i.e. the binding with the largest value of @binding@). For -- 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+-- @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. .+-- limit instead. pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = DescriptorBindingFlagBits 0x00000008 conNameDescriptorBindingFlagBits :: String
src/Vulkan/Core12/Enums/DriverId.hs view
@@ -14,6 +14,8 @@ , DRIVER_ID_BROADCOM_PROPRIETARY , DRIVER_ID_MESA_LLVMPIPE , DRIVER_ID_MOLTENVK+ , DRIVER_ID_COREAVI_PROPRIETARY+ , DRIVER_ID_JUICE_PROPRIETARY , .. )) where @@ -79,6 +81,10 @@ pattern DRIVER_ID_MESA_LLVMPIPE = DriverId 13 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MOLTENVK" pattern DRIVER_ID_MOLTENVK = DriverId 14+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_COREAVI_PROPRIETARY"+pattern DRIVER_ID_COREAVI_PROPRIETARY = DriverId 15+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_JUICE_PROPRIETARY"+pattern DRIVER_ID_JUICE_PROPRIETARY = DriverId 16 {-# complete DRIVER_ID_AMD_PROPRIETARY, DRIVER_ID_AMD_OPEN_SOURCE, DRIVER_ID_MESA_RADV,@@ -92,7 +98,9 @@ DRIVER_ID_GGP_PROPRIETARY, DRIVER_ID_BROADCOM_PROPRIETARY, DRIVER_ID_MESA_LLVMPIPE,- DRIVER_ID_MOLTENVK :: DriverId #-}+ DRIVER_ID_MOLTENVK,+ DRIVER_ID_COREAVI_PROPRIETARY,+ DRIVER_ID_JUICE_PROPRIETARY :: DriverId #-} conNameDriverId :: String conNameDriverId = "DriverId"@@ -116,6 +124,8 @@ , (DRIVER_ID_BROADCOM_PROPRIETARY , "BROADCOM_PROPRIETARY") , (DRIVER_ID_MESA_LLVMPIPE , "MESA_LLVMPIPE") , (DRIVER_ID_MOLTENVK , "MOLTENVK")+ , (DRIVER_ID_COREAVI_PROPRIETARY , "COREAVI_PROPRIETARY")+ , (DRIVER_ID_JUICE_PROPRIETARY , "JUICE_PROPRIETARY") ] instance Show DriverId where
src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs view
@@ -15,7 +15,7 @@ import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) --- | VkShaderFloatControlsIndependence - Enum specifying whether, and how,+-- | VkShaderFloatControlsIndependence - Bitmask specifying whether, and how, -- shader float controls can be set separately -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs view
@@ -63,18 +63,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDescriptorIndexingFeatures' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceDescriptorIndexingFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceDescriptorIndexingFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceDescriptorIndexingFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -384,17 +385,15 @@ -- descriptor indexing properties that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceDescriptorIndexingProperties'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceDescriptorIndexingProperties' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -1004,12 +1003,16 @@ -- -- = Description ----- If the create info includes a variable-sized descriptor, then--- @supported@ is determined assuming the requested size of the--- variable-sized descriptor, and @maxVariableDescriptorCount@ is set to--- the maximum size of that descriptor that /can/ be successfully created--- (which is greater than or equal to the requested size passed in). If the--- create info does not include a variable-sized descriptor or if the+-- If the 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo'+-- structure specified in+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport'::@pCreateInfo@+-- includes a variable-sized descriptor, then @supported@ is determined+-- assuming the requested size of the variable-sized descriptor, and+-- @maxVariableDescriptorCount@ is set to the maximum size of that+-- descriptor that /can/ be successfully created (which is greater than or+-- equal to the requested size passed in). If the+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo' structure+-- does not include a variable-sized descriptor, or if the -- 'PhysicalDeviceDescriptorIndexingFeatures'::@descriptorBindingVariableDescriptorCount@ -- feature is not enabled, then @maxVariableDescriptorCount@ is set to -- zero. For the purposes of this command, a variable-sized descriptor
src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs view
@@ -125,18 +125,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceHostQueryResetFeatures' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceHostQueryResetFeatures' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceHostQueryResetFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceHostQueryResetFeatures' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs view
@@ -38,17 +38,15 @@ -- | VkPhysicalDeviceSamplerFilterMinmaxProperties - Structure describing -- sampler filter minmax limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceSamplerFilterMinmaxProperties'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceSamplerFilterMinmaxProperties' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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 @filterMinmaxSingleComponentFormats@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', the following formats /must/@@ -56,7 +54,7 @@ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT' -- feature with 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', if -- they support--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT'.+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT': -- -- If the format is a depth\/stencil format, this bit only specifies that -- the depth aspect (not the stencil aspect) of an image of this format
src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs view
@@ -31,18 +31,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceScalarBlockLayoutFeatures' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceScalarBlockLayoutFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceScalarBlockLayoutFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable this--- feature.+-- 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. 'PhysicalDeviceScalarBlockLayoutFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs view
@@ -40,7 +40,7 @@ -- stencil aspect of the image /must/ only be used as specified by -- @stencilUsage@. When this structure is not included in the @pNext@ chain -- of 'Vulkan.Core10.Image.ImageCreateInfo', the stencil aspect of an image--- /must/ only be used as specified+-- /must/ only be used as specified by -- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@. Use of other aspects of -- an image are unaffected by this structure. --
src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDevice8BitStorageFeatures - Structure describing features -- supported by VK_KHR_8bit_storage --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevice8BitStorageFeatures' 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. 'PhysicalDevice8BitStorageFeatures' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs view
@@ -278,8 +278,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceBufferDeviceAddressFeatures' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --@@ -292,12 +291,14 @@ -- See 'getBufferDeviceAddress' for more information. -- -- If the 'PhysicalDeviceBufferDeviceAddressFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceBufferDeviceAddressFeatures' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceBufferDeviceAddressFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -547,7 +548,7 @@ -- -- In most cases, it is expected that a non-zero @opaqueAddress@ is an -- address retrieved from 'getDeviceMemoryOpaqueCaptureAddress' on an--- identically created memory allocation. If this is not the case, it+-- identically created memory allocation. If this is not the case, it is -- likely that -- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS' errors -- will occur.
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -316,8 +316,8 @@ -- have been created with a @usage@ value including -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' ----- - #VUID-vkCmdBeginRenderPass2-initialLayout-03100# If any of the--- @initialLayout@ members of the+-- - #VUID-vkCmdBeginRenderPass2-initialLayout-03100# 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@@ -620,21 +620,25 @@ -- @initialLayout@ and @finalLayout@ /can/ be set to a layout that only -- specifies the layout of the depth aspect. ----- If @format@ is a depth\/stencil format, and @initialLayout@ only--- specifies the initial layout of the depth aspect of the attachment, the--- initial layout of the stencil aspect is specified by the--- @stencilInitialLayout@ member of a+-- If the @pNext@ chain includes a -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure included in the @pNext@ chain. Otherwise, @initialLayout@--- describes the initial layout for all relevant image aspects.+-- structure, then the @stencilInitialLayout@ and @stencilFinalLayout@+-- members specify the initial and final layouts of the stencil aspect of a+-- depth\/stencil format, and @initialLayout@ and @finalLayout@ only apply+-- to the depth aspect. For depth-only formats, the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure is ignored. For stencil-only formats, the initial and final+-- layouts of the stencil aspect are taken from the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure if present, or @initialLayout@ and @finalLayout@ if not+-- present. ----- If @format@ is a depth\/stencil format, and @finalLayout@ only specifies--- the final layout of the depth aspect of the attachment, the final layout--- of the stencil aspect is specified by the @stencilFinalLayout@ member of--- a+-- If @format@ is a depth\/stencil format, and either @initialLayout@ or+-- @finalLayout@ does not specify a layout for the stencil aspect, then the+-- application /must/ specify the initial and final layouts of the stencil+-- aspect by including a -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure included in the @pNext@ chain. Otherwise, @finalLayout@--- describes the final layout for all relevant image aspects.+-- structure in the @pNext@ chain. -- -- == Valid Usage --@@ -818,8 +822,9 @@ , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' value specifying the -- format of the image that will be used for the attachment. format :: Format- , -- | @samples@ is the number of samples of the image as defined in- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+ , -- | @samples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the number of samples of the image. samples :: SampleCountFlagBits , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp' -- value specifying how the contents of color and depth components of the@@ -1032,8 +1037,7 @@ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es , -- | @attachment@ is either an integer value identifying an attachment at the- -- corresponding index in- -- 'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pAttachments@, or+ -- corresponding index in 'RenderPassCreateInfo2'::@pAttachments@, or -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' to signify that this -- attachment is not used. attachment :: Word32@@ -1213,8 +1217,8 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', they /must/ have the -- same sample count ----- - #VUID-VkSubpassDescription2-attachment-03073# The @attachment@--- member of any element of @pPreserveAttachments@ /must/ not be+-- - #VUID-VkSubpassDescription2-attachment-03073# Each element of+-- @pPreserveAttachments@ /must/ not be -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- - #VUID-VkSubpassDescription2-pPreserveAttachments-03074# Any given@@ -1222,8 +1226,8 @@ -- any other member of the subpass description -- -- - #VUID-VkSubpassDescription2-layout-02528# If any attachment is used--- by more than one 'Vulkan.Core10.Pass.AttachmentReference' member,--- then each use /must/ use the same @layout@+-- by more than one 'AttachmentReference2' member, then each use /must/+-- use the same @layout@ -- -- - #VUID-VkSubpassDescription2-None-04439# Attachments /must/ follow -- the@@ -1336,13 +1340,13 @@ -- structures defining the input attachments for this subpass and their -- layouts. inputAttachments :: Vector (SomeStruct AttachmentReference2)- , -- | @pColorAttachments@ is a pointer to an array of 'AttachmentReference2'- -- structures defining the color attachments for this subpass and their- -- layouts.- colorAttachments :: Vector (SomeStruct AttachmentReference2)- , -- | @pResolveAttachments@ is an optional array of @colorAttachmentCount@- -- 'AttachmentReference2' structures defining the resolve attachments for+ , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@+ -- 'AttachmentReference2' structures defining the color attachments for -- this subpass and their layouts.+ colorAttachments :: Vector (SomeStruct AttachmentReference2)+ , -- | @pResolveAttachments@ is @NULL@ or a pointer to an array of+ -- @colorAttachmentCount@ 'AttachmentReference2' structures defining the+ -- resolve attachments for this subpass and their layouts. resolveAttachments :: Vector (SomeStruct AttachmentReference2) , -- | @pDepthStencilAttachment@ is a pointer to a 'AttachmentReference2' -- structure specifying the depth\/stencil attachment for this subpass and@@ -1867,6 +1871,38 @@ -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --+-- - #VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905# If the+-- pipeline is being created with fragment shader state, and the+-- VK_QCOM_render_pass_shader_resolve extension is enabled, and if+-- subpass has any input attachments, and if the subpass description+-- contains+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+-- then the sample count of the input attachments /must/ equal+-- @rasterizationSamples@+--+-- - #VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906# If the+-- pipeline is being created with fragment shader state, and the+-- VK_QCOM_render_pass_shader_resolve extension is enabled, and if the+-- subpass description contains+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+-- then @sampleShadingEnable@ /must/ be false+--+-- - #VUID-VkRenderPassCreateInfo2-flags-04907# If @flags@ includes+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+-- and if @pResolveAttachments@ is not @NULL@, then each resolve+-- attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+--+-- - #VUID-VkRenderPassCreateInfo2-flags-04908# If @flags@ includes+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+-- and if @pDepthStencilResolveAttachmentKHR@ is not @NULL@, then the+-- depth\/stencil resolve attachment /must/ be+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+--+-- - #VUID-VkRenderPassCreateInfo2-flags-04909# If @flags@ includes+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+-- then the subpass /must/ be the last subpass in a subpass dependency+-- chain+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRenderPassCreateInfo2-sType-sType# @sType@ /must/ be@@ -2010,7 +2046,7 @@ mempty --- | VkSubpassBeginInfo - Structure specifying subpass begin info+-- | VkSubpassBeginInfo - Structure specifying subpass begin information -- -- == Valid Usage (Implicit) --@@ -2067,7 +2103,7 @@ zero --- | VkSubpassEndInfo - Structure specifying subpass end info+-- | VkSubpassEndInfo - Structure specifying subpass end information -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs view
@@ -48,10 +48,15 @@ -- depth\/stencil resolve properties that can be supported by an -- implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceDepthStencilResolveProperties'--- structure describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceDepthStencilResolveProperties' 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) --@@ -256,17 +261,18 @@ -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data SubpassDescriptionDepthStencilResolve = SubpassDescriptionDepthStencilResolve- { -- | @depthResolveMode@ is a bitmask of- -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' describing- -- the depth resolve mode.+ { -- | @depthResolveMode@ is a+ -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+ -- describing the depth resolve mode. depthResolveMode :: ResolveModeFlagBits- , -- | @stencilResolveMode@ is a bitmask of- -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' describing- -- the stencil resolve mode.+ , -- | @stencilResolveMode@ is a+ -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+ -- describing the stencil resolve mode. stencilResolveMode :: ResolveModeFlagBits- , -- | @pDepthStencilResolveAttachment@ is an optional- -- 'Vulkan.Core10.Pass.AttachmentReference' structure defining the- -- depth\/stencil resolve attachment for this subpass and its layout.+ , -- | @pDepthStencilResolveAttachment@ is @NULL@ or a pointer to a+ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2'+ -- structure defining the depth\/stencil resolve attachment for this+ -- subpass and its layout. depthStencilResolveAttachment :: Maybe (SomeStruct AttachmentReference2) } deriving (Typeable)
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -31,8 +31,8 @@ "dynamic" mkVkCmdDrawIndirectCount :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndirectCount - Perform an indirect draw with the draw count--- sourced from a buffer+-- | vkCmdDrawIndirectCount - Draw primitives with indirect parameters and+-- draw count -- -- = Description --@@ -143,9 +143,9 @@ -- - #VUID-vkCmdDrawIndirectCount-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdDrawIndirectCount-None-02859# There /must/ not have been -- any calls to dynamic state setting commands for any state not@@ -312,7 +312,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -326,7 +326,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -342,7 +342,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -425,7 +425,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -433,6 +433,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #VUID-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -444,7 +485,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -465,6 +506,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawIndirectCount-pStrides-04884# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings -- accessed via vertex input variables declared in the vertex shader -- entry point’s interface /must/ have either valid or@@ -625,8 +676,8 @@ "dynamic" mkVkCmdDrawIndexedIndirectCount :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndexedIndirectCount - Perform an indexed indirect draw with--- the draw count sourced from a buffer+-- | vkCmdDrawIndexedIndirectCount - Draw parameters with indirect+-- parameters, indexed vertices, and draw count -- -- = Description --@@ -738,9 +789,9 @@ -- - #VUID-vkCmdDrawIndexedIndirectCount-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-02859# There /must/ not -- have been any calls to dynamic state setting commands for any state@@ -910,7 +961,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -924,7 +975,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -940,7 +991,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -1023,7 +1074,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -1031,6 +1082,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #VUID-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-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-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1042,7 +1134,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -1063,6 +1155,16 @@ -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884# If the bound+-- graphics pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs view
@@ -112,6 +112,16 @@ -- -- = Description --+-- If the 'PhysicalDeviceDriverProperties' 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 driver corresponding to a physical device.+-- -- @driverID@ /must/ be immutable for a given driver across instances, -- processes, driver versions, and system reboots. --
src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs view
@@ -38,7 +38,7 @@ -- -- If @viewFormatCount@ is zero, @pViewFormats@ is ignored and the image is -- created as if the 'ImageFormatListCreateInfo' structure were not--- included in the @pNext@ list of 'Vulkan.Core10.Image.ImageCreateInfo'.+-- included in the @pNext@ chain of 'Vulkan.Core10.Image.ImageCreateInfo'. -- -- == Valid Usage (Implicit) --@@ -55,8 +55,9 @@ -- 'Vulkan.Core10.Enums.Format.Format', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImageFormatListCreateInfo = ImageFormatListCreateInfo- { -- | @pViewFormats@ is an array which lists of all formats which /can/ be- -- used when creating views of this image.+ { -- | @pViewFormats@ is a pointer to an array of+ -- 'Vulkan.Core10.Enums.Format.Format' values specifying all formats which+ -- /can/ be used when creating views of this image. viewFormats :: Vector Format } deriving (Typeable) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs view
@@ -54,18 +54,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceImagelessFramebufferFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceImagelessFramebufferFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceImagelessFramebufferFeatures' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- this feature.+-- 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. 'PhysicalDeviceImagelessFramebufferFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -234,9 +235,11 @@ height :: Word32 , -- No documentation found for Nested "VkFramebufferAttachmentImageInfo" "layerCount" layerCount :: Word32- , -- | @pViewFormats@ is an array which lists of all formats which /can/ be- -- used when creating views of the image, matching the value of- -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::pViewFormats+ , -- | @pViewFormats@ is a pointer to an array of+ -- 'Vulkan.Core10.Enums.Format.Format' values specifying all of the formats+ -- which /can/ be used when creating views of the image, matching the value+ -- of+ -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@ -- used to create an image used with this framebuffer. viewFormats :: Vector Format }
src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs view
@@ -39,18 +39,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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. 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDeviceShaderAtomicInt64Features - Structure describing -- features supported by VK_KHR_shader_atomic_int64 --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderAtomicInt64Features' 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. 'PhysicalDeviceShaderAtomicInt64Features' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDeviceShaderFloat16Int8Features - Structure describing -- features supported by VK_KHR_shader_float16_int8 --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderFloat16Int8Features' 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. 'PhysicalDeviceShaderFloat16Int8Features' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs view
@@ -32,17 +32,15 @@ -- | VkPhysicalDeviceFloatControlsProperties - Structure describing -- properties supported by VK_KHR_shader_float_controls ----- = Members------ The members of the 'PhysicalDeviceFloatControlsProperties' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceFloatControlsProperties' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs view
@@ -32,18 +32,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --@@ -58,8 +60,8 @@ -- 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> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>if- -- the implementation supports the types.+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,+ -- if the implementation supports the types. shaderSubgroupExtendedTypes :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs view
@@ -169,7 +169,7 @@ waitSemaphoresSafeOrUnsafe :: forall io . (MonadIO io) => (FunPtr (Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result) -> Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result)- -> -- | @device@ is the logical device that owns the semaphore.+ -> -- | @device@ is the logical device that owns the semaphores. -- -- #VUID-vkWaitSemaphores-device-parameter# @device@ /must/ be a valid -- 'Vulkan.Core10.Handles.Device' handle@@ -207,7 +207,7 @@ -- whichever is sooner. -- -- If @timeout@ is zero, then 'waitSemaphores' does not wait, but simply--- returns information about the current state of the semaphore.+-- returns information about the current state of the semaphores. -- 'Vulkan.Core10.Enums.Result.TIMEOUT' will be returned in this case if -- the condition is not satisfied, even though no actual wait was -- performed.@@ -244,7 +244,7 @@ -- 'Vulkan.Core10.Handles.Device', 'SemaphoreWaitInfo' waitSemaphores :: forall io . (MonadIO io)- => -- | @device@ is the logical device that owns the semaphore.+ => -- | @device@ is the logical device that owns the semaphores. -- -- #VUID-vkWaitSemaphores-device-parameter# @device@ /must/ be a valid -- 'Vulkan.Core10.Handles.Device' handle@@ -266,7 +266,7 @@ -- | A variant of 'waitSemaphores' which makes a *safe* FFI call waitSemaphoresSafe :: forall io . (MonadIO io)- => -- | @device@ is the logical device that owns the semaphore.+ => -- | @device@ is the logical device that owns the semaphores. -- -- #VUID-vkWaitSemaphores-device-parameter# @device@ /must/ be a valid -- 'Vulkan.Core10.Handles.Device' handle@@ -352,18 +352,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTimelineSemaphoreFeatures' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceTimelineSemaphoreFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceTimelineSemaphoreFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceTimelineSemaphoreFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -419,10 +420,15 @@ -- | VkPhysicalDeviceTimelineSemaphoreProperties - Structure describing -- timeline semaphore properties that can be supported by an implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceTimelineSemaphoreProperties' structure--- describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceTimelineSemaphoreProperties' 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) --@@ -476,14 +482,17 @@ -- | VkSemaphoreTypeCreateInfo - Structure specifying the type of a newly -- created semaphore ----- == Valid Usage (Implicit)+-- = Description ----- - #VUID-VkSemaphoreTypeCreateInfo-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO'+-- To create a semaphore of a specific type, add a+-- 'SemaphoreTypeCreateInfo' structure to the+-- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo'::@pNext@ chain. ----- - #VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter#--- @semaphoreType@ /must/ be a valid--- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' value+-- If no 'SemaphoreTypeCreateInfo' structure is included in the @pNext@+-- chain of 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo', then the+-- created semaphore will have a default+-- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of+-- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'. -- -- == Valid Usage --@@ -497,12 +506,15 @@ -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY', -- @initialValue@ /must/ be zero ----- If no 'SemaphoreTypeCreateInfo' structure is included in the @pNext@--- chain of 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo', then the--- created semaphore will have a default--- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of--- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'.+-- == Valid Usage (Implicit) --+-- - #VUID-VkSemaphoreTypeCreateInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO'+--+-- - #VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter#+-- @semaphoreType@ /must/ be a valid+-- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' value+-- -- = See Also -- -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType',@@ -594,17 +606,17 @@ { -- | @waitSemaphoreValueCount@ is the number of semaphore wait values -- specified in @pWaitSemaphoreValues@. waitSemaphoreValueCount :: Word32- , -- | @pWaitSemaphoreValues@ is an array of length @waitSemaphoreValueCount@- -- containing values for the corresponding semaphores in+ , -- | @pWaitSemaphoreValues@ is a pointer to an array of+ -- @waitSemaphoreValueCount@ values for the corresponding semaphores in -- 'Vulkan.Core10.Queue.SubmitInfo'::@pWaitSemaphores@ to wait for. waitSemaphoreValues :: Vector Word64 , -- | @signalSemaphoreValueCount@ is the number of semaphore signal values -- specified in @pSignalSemaphoreValues@. signalSemaphoreValueCount :: Word32- , -- | @pSignalSemaphoreValues@ is an array of length- -- @signalSemaphoreValueCount@ containing values for the corresponding- -- semaphores in 'Vulkan.Core10.Queue.SubmitInfo'::@pSignalSemaphores@ to- -- set when signaled.+ , -- | @pSignalSemaphoreValues@ is a pointer to an array+ -- @signalSemaphoreValueCount@ values for the corresponding semaphores in+ -- 'Vulkan.Core10.Queue.SubmitInfo'::@pSignalSemaphores@ to set when+ -- signaled. signalSemaphoreValues :: Vector Word64 } deriving (Typeable)
src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs view
@@ -31,18 +31,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceUniformBufferStandardLayoutFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceUniformBufferStandardLayoutFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceUniformBufferStandardLayoutFeatures' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable this feature.+-- 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. 'PhysicalDeviceUniformBufferStandardLayoutFeatures' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs view
@@ -29,6 +29,25 @@ -- | VkPhysicalDeviceVulkanMemoryModelFeatures - Structure describing -- features supported by the memory model --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the+-- 'Vulkan.Extensions.VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeaturesKHR'+-- 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.+-- 'Vulkan.Extensions.VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeaturesKHR'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Dynamic.hs view
@@ -89,6 +89,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.Handles (CuFunctionNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.Handles (CuModuleNVX) import {-# SOURCE #-} Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT)@@ -211,6 +216,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL) import {-# SOURCE #-} Vulkan.Core10.Handles (Instance_T) import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)+import {-# SOURCE #-} Vulkan.Core10.Enums.LogicOp (LogicOp) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange) import {-# SOURCE #-} Vulkan.Core10.Memory (MemoryAllocateInfo)@@ -346,6 +352,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (TimeDomainEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (ValidationCacheEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputAttributeDescription2EXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputBindingDescription2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NN_vi_surface (ViSurfaceCreateInfoNN) import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (ViewportWScalingNV)@@ -962,6 +970,11 @@ , 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 ())+ , pVkCmdSetPatchControlPointsEXT :: FunPtr (Ptr CommandBuffer_T -> ("patchControlPoints" ::: Word32) -> IO ())+ , pVkCmdSetRasterizerDiscardEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ())+ , pVkCmdSetDepthBiasEnableEXT :: 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)@@ -975,6 +988,8 @@ , 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 ())@@ -983,6 +998,11 @@ , pVkCmdWriteTimestamp2KHR :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> ("query" ::: Word32) -> IO ()) , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> ("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)+ , pVkDestroyCuModuleNVX :: FunPtr (Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+ , pVkDestroyCuFunctionNVX :: FunPtr (Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+ , pVkCmdCuLaunchKernelNVX :: FunPtr (Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ()) } deriving instance Eq DeviceCmds@@ -1030,7 +1050,8 @@ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr- nullFunPtr+ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1358,6 +1379,11 @@ vkCmdSetDepthBoundsTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBoundsTestEnableEXT"#) vkCmdSetStencilTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilTestEnableEXT"#) vkCmdSetStencilOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilOpEXT"#)+ vkCmdSetPatchControlPointsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPatchControlPointsEXT"#)+ vkCmdSetRasterizerDiscardEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetRasterizerDiscardEnableEXT"#)+ vkCmdSetDepthBiasEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBiasEnableEXT"#)+ 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"#)@@ -1371,6 +1397,8 @@ 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"#)@@ -1379,6 +1407,11 @@ vkCmdWriteTimestamp2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdWriteTimestamp2KHR"#) vkCmdWriteBufferMarker2AMD <- getDeviceProcAddr' handle (Ptr "vkCmdWriteBufferMarker2AMD"#) vkGetQueueCheckpointData2NV <- getDeviceProcAddr' handle (Ptr "vkGetQueueCheckpointData2NV"#)+ vkCreateCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuModuleNVX"#)+ vkCreateCuFunctionNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuFunctionNVX"#)+ vkDestroyCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuModuleNVX"#)+ vkDestroyCuFunctionNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuFunctionNVX"#)+ vkCmdCuLaunchKernelNVX <- getDeviceProcAddr' handle (Ptr "vkCmdCuLaunchKernelNVX"#) pure $ DeviceCmds handle (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr) (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1687,6 +1720,11 @@ (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 -> ("patchControlPoints" ::: Word32) -> IO ()) vkCmdSetPatchControlPointsEXT)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ()) vkCmdSetRasterizerDiscardEnableEXT)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBiasEnableEXT)+ (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)@@ -1700,6 +1738,8 @@ (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)@@ -1708,4 +1748,9 @@ (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 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)+ (castFunPtr @_ @(Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuModuleNVX)+ (castFunPtr @_ @(Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuFunctionNVX)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ()) vkCmdCuLaunchKernelNVX)
src/Vulkan/Extensions.hs view
@@ -30,6 +30,7 @@ , module Vulkan.Extensions.VK_EXT_blend_operation_advanced , module Vulkan.Extensions.VK_EXT_buffer_device_address , module Vulkan.Extensions.VK_EXT_calibrated_timestamps+ , module Vulkan.Extensions.VK_EXT_color_write_enable , module Vulkan.Extensions.VK_EXT_conditional_rendering , module Vulkan.Extensions.VK_EXT_conservative_rasterization , module Vulkan.Extensions.VK_EXT_custom_border_color@@ -46,6 +47,7 @@ , module Vulkan.Extensions.VK_EXT_display_control , module Vulkan.Extensions.VK_EXT_display_surface_counter , module Vulkan.Extensions.VK_EXT_extended_dynamic_state+ , module Vulkan.Extensions.VK_EXT_extended_dynamic_state2 , module Vulkan.Extensions.VK_EXT_external_memory_dma_buf , module Vulkan.Extensions.VK_EXT_external_memory_host , module Vulkan.Extensions.VK_EXT_filter_cubic@@ -70,6 +72,7 @@ , module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback , module Vulkan.Extensions.VK_EXT_post_depth_coverage , module Vulkan.Extensions.VK_EXT_private_data+ , module Vulkan.Extensions.VK_EXT_provoking_vertex , module Vulkan.Extensions.VK_EXT_queue_family_foreign , module Vulkan.Extensions.VK_EXT_robustness2 , module Vulkan.Extensions.VK_EXT_sample_locations@@ -93,6 +96,8 @@ , module Vulkan.Extensions.VK_EXT_validation_features , module Vulkan.Extensions.VK_EXT_validation_flags , module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+ , module Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state+ , module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats , module Vulkan.Extensions.VK_EXT_ycbcr_image_arrays , module Vulkan.Extensions.VK_FUCHSIA_external_memory , module Vulkan.Extensions.VK_FUCHSIA_external_semaphore@@ -190,6 +195,7 @@ , module Vulkan.Extensions.VK_MVK_ios_surface , module Vulkan.Extensions.VK_MVK_macos_surface , module Vulkan.Extensions.VK_NN_vi_surface+ , module Vulkan.Extensions.VK_NVX_binary_import , module Vulkan.Extensions.VK_NVX_image_view_handle , module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes , module Vulkan.Extensions.VK_NV_acquire_winrt_display@@ -213,6 +219,7 @@ , module Vulkan.Extensions.VK_NV_framebuffer_mixed_samples , module Vulkan.Extensions.VK_NV_geometry_shader_passthrough , module Vulkan.Extensions.VK_NV_glsl_shader+ , module Vulkan.Extensions.VK_NV_inherited_viewport_scissor , module Vulkan.Extensions.VK_NV_mesh_shader , module Vulkan.Extensions.VK_NV_ray_tracing , module Vulkan.Extensions.VK_NV_representative_fragment_test@@ -262,6 +269,7 @@ import Vulkan.Extensions.VK_EXT_blend_operation_advanced import Vulkan.Extensions.VK_EXT_buffer_device_address import Vulkan.Extensions.VK_EXT_calibrated_timestamps+import Vulkan.Extensions.VK_EXT_color_write_enable import Vulkan.Extensions.VK_EXT_conditional_rendering import Vulkan.Extensions.VK_EXT_conservative_rasterization import Vulkan.Extensions.VK_EXT_custom_border_color@@ -278,6 +286,7 @@ import Vulkan.Extensions.VK_EXT_display_control import Vulkan.Extensions.VK_EXT_display_surface_counter import Vulkan.Extensions.VK_EXT_extended_dynamic_state+import Vulkan.Extensions.VK_EXT_extended_dynamic_state2 import Vulkan.Extensions.VK_EXT_external_memory_dma_buf import Vulkan.Extensions.VK_EXT_external_memory_host import Vulkan.Extensions.VK_EXT_filter_cubic@@ -302,6 +311,7 @@ import Vulkan.Extensions.VK_EXT_pipeline_creation_feedback import Vulkan.Extensions.VK_EXT_post_depth_coverage import Vulkan.Extensions.VK_EXT_private_data+import Vulkan.Extensions.VK_EXT_provoking_vertex import Vulkan.Extensions.VK_EXT_queue_family_foreign import Vulkan.Extensions.VK_EXT_robustness2 import Vulkan.Extensions.VK_EXT_sample_locations@@ -325,6 +335,8 @@ import Vulkan.Extensions.VK_EXT_validation_features import Vulkan.Extensions.VK_EXT_validation_flags import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+import Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state+import Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays import Vulkan.Extensions.VK_FUCHSIA_external_memory import Vulkan.Extensions.VK_FUCHSIA_external_semaphore@@ -422,6 +434,7 @@ import Vulkan.Extensions.VK_MVK_ios_surface import Vulkan.Extensions.VK_MVK_macos_surface import Vulkan.Extensions.VK_NN_vi_surface+import Vulkan.Extensions.VK_NVX_binary_import import Vulkan.Extensions.VK_NVX_image_view_handle import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes import Vulkan.Extensions.VK_NV_acquire_winrt_display@@ -445,6 +458,7 @@ import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples import Vulkan.Extensions.VK_NV_geometry_shader_passthrough import Vulkan.Extensions.VK_NV_glsl_shader+import Vulkan.Extensions.VK_NV_inherited_viewport_scissor import Vulkan.Extensions.VK_NV_mesh_shader import Vulkan.Extensions.VK_NV_ray_tracing import Vulkan.Extensions.VK_NV_representative_fragment_test
src/Vulkan/Extensions/Dependencies.hs view
@@ -17,6 +17,7 @@ import Vulkan.Extensions.VK_EXT_acquire_xlib_display (pattern EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_astc_decode_mode (pattern EXT_ASTC_DECODE_MODE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_buffer_device_address (pattern EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_color_write_enable (pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_conservative_rasterization (pattern EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_marker (pattern EXT_DEBUG_MARKER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_report (pattern EXT_DEBUG_REPORT_EXTENSION_NAME)@@ -27,6 +28,7 @@ import Vulkan.Extensions.VK_EXT_discard_rectangles (pattern EXT_DISCARD_RECTANGLES_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_display_control (pattern EXT_DISPLAY_CONTROL_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_display_surface_counter (pattern EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_extended_dynamic_state (pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_external_memory_dma_buf (pattern EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_external_memory_host (pattern EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME)@@ -45,6 +47,7 @@ import Vulkan.Extensions.VK_EXT_memory_priority (pattern EXT_MEMORY_PRIORITY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_metal_surface (pattern EXT_METAL_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pci_bus_info (pattern EXT_PCI_BUS_INFO_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_provoking_vertex (pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_queue_family_foreign (pattern EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_sampler_filter_minmax (pattern EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_sample_locations (pattern EXT_SAMPLE_LOCATIONS_EXTENSION_NAME)@@ -58,6 +61,8 @@ import Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (pattern EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (pattern EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME) import Vulkan.Extensions.VK_FUCHSIA_external_memory (pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME) import Vulkan.Extensions.VK_FUCHSIA_external_semaphore (pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME)@@ -138,7 +143,7 @@ import Vulkan.Extensions.VK_KHR_xcb_surface (pattern KHR_XCB_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_xlib_surface (pattern KHR_XLIB_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) import Vulkan.Extensions.VK_MVK_ios_surface (pattern MVK_IOS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_MVK_macos_surface (pattern MVK_MACOS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_NN_vi_surface (pattern NN_VI_SURFACE_EXTENSION_NAME)@@ -440,6 +445,7 @@ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME ] KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_PROVOKING_VERTEX_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME -> [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , KHR_SURFACE_EXTENSION_NAME@@ -467,6 +473,13 @@ , KHR_MULTIVIEW_EXTENSION_NAME , KHR_MAINTENANCE2_EXTENSION_NAME ]+ EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME ->+ [ KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME+ , KHR_MAINTENANCE1_EXTENSION_NAME+ , KHR_BIND_MEMORY_2_EXTENSION_NAME+ , KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ ] EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME -> [EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME ->@@ -479,6 +492,7 @@ EXT_DIRECTFB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME] VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME -> [KHR_MAINTENANCE3_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME -> [ KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME , KHR_EXTERNAL_MEMORY_EXTENSION_NAME@@ -489,21 +503,23 @@ , KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME ]+ EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] QNX_SCREEN_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] _ -> [] -- | The minimum required API version to use this extension extensionCoreRequirement :: ("extensionName" ::: ByteString) -> Word32 extensionCoreRequirement = \case- KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME -> MAKE_VERSION 1 1 0- KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME -> MAKE_VERSION 1 1 0- KHR_RAY_QUERY_EXTENSION_NAME -> MAKE_VERSION 1 1 0- NV_SHADER_SM_BUILTINS_EXTENSION_NAME -> MAKE_VERSION 1 1 0- KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME -> MAKE_VERSION 1 1 0- NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME -> MAKE_VERSION 1 1 0- EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME -> MAKE_VERSION 1 1 0- KHR_SPIRV_1_4_EXTENSION_NAME -> MAKE_VERSION 1 1 0- KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME -> MAKE_VERSION 1 1 0- NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME -> MAKE_VERSION 1 1 0+ KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ KHR_RAY_QUERY_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ NV_SHADER_SM_BUILTINS_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ KHR_SPIRV_1_4_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0 _ -> API_VERSION_1_0
src/Vulkan/Extensions/Handles.hs view
@@ -7,6 +7,8 @@ , PerformanceConfigurationINTEL(..) , DeferredOperationKHR(..) , PrivateDataSlotEXT(..)+ , CuModuleNVX(..)+ , CuFunctionNVX(..) , DisplayKHR(..) , DisplayModeKHR(..) , SurfaceKHR(..)@@ -50,6 +52,8 @@ import Vulkan.Core10.APIConstants (IsHandle) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_NV))+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CU_FUNCTION_NVX))+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CU_MODULE_NVX)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEFERRED_OPERATION_KHR))@@ -230,6 +234,26 @@ 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)+++-- No documentation found for TopLevel "VkCuModuleNVX"+newtype CuModuleNVX = CuModuleNVX Word64+ deriving newtype (Eq, Ord, Storable, Zero)+ deriving anyclass (IsHandle)+instance HasObjectType CuModuleNVX where+ objectTypeAndHandle (CuModuleNVX h) = (OBJECT_TYPE_CU_MODULE_NVX, h)+instance Show CuModuleNVX where+ showsPrec p (CuModuleNVX x) = showParen (p >= 11) (showString "CuModuleNVX 0x" . showHex x)+++-- No documentation found for TopLevel "VkCuFunctionNVX"+newtype CuFunctionNVX = CuFunctionNVX Word64+ deriving newtype (Eq, Ord, Storable, Zero)+ deriving anyclass (IsHandle)+instance HasObjectType CuFunctionNVX where+ objectTypeAndHandle (CuFunctionNVX h) = (OBJECT_TYPE_CU_FUNCTION_NVX, h)+instance Show CuFunctionNVX where+ showsPrec p (CuFunctionNVX x) = showParen (p >= 11) (showString "CuFunctionNVX 0x" . showHex x) -- | VkDisplayKHR - Opaque handle to a display object
src/Vulkan/Extensions/Handles.hs-boot view
@@ -2,6 +2,8 @@ -- No documentation found for Chapter "Handles" module Vulkan.Extensions.Handles ( AccelerationStructureKHR , AccelerationStructureNV+ , CuFunctionNVX+ , CuModuleNVX , DebugReportCallbackEXT , DebugUtilsMessengerEXT , DeferredOperationKHR@@ -21,6 +23,12 @@ data AccelerationStructureNV+++data CuFunctionNVX+++data CuModuleNVX data DebugReportCallbackEXT
src/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -201,7 +201,7 @@ -- - #VUID-vkCmdWriteBufferMarkerAMD-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.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798# @dstOffset@ /must/ -- be less than or equal to the size of @dstBuffer@ minus @4@@@ -274,10 +274,10 @@ => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer- -> -- | @pipelineStage@ is one of the- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- values, specifying the pipeline stage whose completion triggers the- -- marker write.+ -> -- | @pipelineStage@ is a+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value+ -- specifying the pipeline stage whose completion triggers the marker+ -- write. PipelineStageFlagBits -> -- | @dstBuffer@ is the buffer where the marker will be written to. ("dstBuffer" ::: Buffer)
src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs view
@@ -127,8 +127,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCoherentMemoryFeaturesAMD' structure--- describe the following features:+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceCoherentMemoryFeaturesAMD' 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. 'PhysicalDeviceCoherentMemoryFeaturesAMD' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs view
@@ -60,10 +60,10 @@ -- -- == Description ----- This extension allows an application to source the number of draw calls--- for indirect draw calls from a buffer. This enables applications to--- generate arbitrary amounts of draw commands and execute them without--- host intervention.+-- This extension allows an application to source the number of draws for+-- indirect drawing commands from a buffer. This enables applications to+-- generate an arbitrary number of drawing commands and execute them+-- without host intervention. -- -- == Promotion to @VK_KHR_draw_indirect_count@ --
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs view
@@ -47,8 +47,8 @@ -- == Description -- -- This extension introduces 'PipelineCompilerControlCreateInfoAMD'--- structure that can be chained to a pipeline’s create info to specify--- additional flags that affect pipeline compilation.+-- structure that can be chained to a pipeline’s creation information to+-- specify additional flags that affect pipeline compilation. -- -- == New Structures --
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot view
@@ -47,8 +47,8 @@ -- == Description -- -- This extension introduces 'PipelineCompilerControlCreateInfoAMD'--- structure that can be chained to a pipeline’s create info to specify--- additional flags that affect pipeline compilation.+-- structure that can be chained to a pipeline’s creation information to+-- specify additional flags that affect pipeline compilation. -- -- == New Structures --
src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs view
@@ -181,17 +181,15 @@ -- | VkPhysicalDeviceShaderCorePropertiesAMD - Structure describing shader -- core properties that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShaderCorePropertiesAMD' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceShaderCorePropertiesAMD' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs view
@@ -137,17 +137,15 @@ -- | VkPhysicalDeviceShaderCoreProperties2AMD - Structure describing shader -- core properties that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShaderCoreProperties2AMD' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceShaderCoreProperties2AMD' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_AMD_shader_info.hs view
@@ -250,12 +250,11 @@ -- @pInfoSize@. Otherwise, @pInfoSize@ /must/ point to a variable set by -- the user to the size of the buffer, in bytes, pointed to by @pInfo@, and -- on return the variable is overwritten with the amount of data actually--- written to @pInfo@.------ If @pInfoSize@ is less than the maximum size that /can/ be retrieved by--- the pipeline cache, then at most @pInfoSize@ bytes will be written to--- @pInfo@, and 'getShaderInfoAMD' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- written to @pInfo@. If @pInfoSize@ is less than the maximum size that+-- /can/ be retrieved by the pipeline cache, then at most @pInfoSize@ bytes+-- will be written to @pInfo@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'+-- will be returned, instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to+-- indicate that not all required of the pipeline cache was returned. -- -- Not all information is available for every shader and implementations -- may not support all kinds of information for any shader. When a certain@@ -331,8 +330,10 @@ Device -> -- | @pipeline@ is the target of the query. Pipeline- -> -- | @shaderStage@ identifies the particular shader within the pipeline about- -- which information is being queried.+ -> -- | @shaderStage@ is a+ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying+ -- the particular shader within the pipeline about which information is+ -- being queried. ShaderStageFlagBits -> -- | @infoType@ describes what kind of information is being queried. ShaderInfoTypeAMD@@ -544,7 +545,8 @@ (zero, zero, zero) --- | VkShaderInfoTypeAMD - Enum specifying which type of shader info to query+-- | VkShaderInfoTypeAMD - Enum specifying which type of shader information+-- to query -- -- = See Also --
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -153,7 +153,7 @@ -- -- 2) The internal layout and therefore size of a 'AHardwareBuffer' image -- may depend on native usage flags that do not have corresponding Vulkan--- counterparts. Do we provide this info to+-- counterparts. Do we provide this information to -- 'Vulkan.Core10.Image.createImage' somehow, or allow the allocation size -- reported by 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' -- to be approximate?@@ -183,7 +183,7 @@ -- as possible without causing compatibility problems for existing OpenGL -- ES applications or violating Vulkan requirements. ----- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_@* usage+-- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_*@ usage -- be mappable in Vulkan? Should it be possible to export an -- @AHardwareBuffers@ with such usage? --@@ -209,13 +209,13 @@ -- time. Can reference to them be added to this extension, or do they need -- a new extension? ----- RESOLVED: This extension can document the interaction between the new--- AHB formats\/usages and existing Vulkan features. No new Vulkan features--- or implementation requirements can be added. The extension version--- number will be incremented when this additional documentation is added,--- but the version number does not indicate that an implementaiton supports--- Vulkan memory or resources that map to the new 'AHardwareBuffer'--- features: support for that must be queried with+-- __RESOLVED__: This extension can document the interaction between the+-- new AHB formats\/usages and existing Vulkan features. No new Vulkan+-- features or implementation requirements can be added. The extension+-- version number will be incremented when this additional documentation is+-- added, but the version number does not indicate that an implementaiton+-- supports Vulkan memory or resources that map to the new+-- 'AHardwareBuffer' features: support for that must be queried with -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- or is implied by successfully allocating a 'AHardwareBuffer' outside of -- Vulkan that uses the new feature and has a GPU usage flag.@@ -378,7 +378,7 @@ -- -- #VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884# @buffer@ -- /must/ be a valid Android hardware buffer object with at least one of- -- the @AHARDWAREBUFFER_USAGE_GPU_@* flags in its+ -- the @AHARDWAREBUFFER_USAGE_GPU_*@ flags in its -- @AHardwareBuffer_Desc@::@usage@ -- -- #VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter#@@ -556,7 +556,7 @@ -- are included in the @usage@ or @flags@ fields of -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'. -- It /must/ include at least one GPU usage flag--- (@AHARDWAREBUFFER_USAGE_GPU_@*), even if none of the corresponding+-- (@AHARDWAREBUFFER_USAGE_GPU_*@), even if none of the corresponding -- Vulkan usages or flags are requested. -- -- Note
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -153,7 +153,7 @@ -- -- 2) The internal layout and therefore size of a 'AHardwareBuffer' image -- may depend on native usage flags that do not have corresponding Vulkan--- counterparts. Do we provide this info to+-- counterparts. Do we provide this information to -- 'Vulkan.Core10.Image.createImage' somehow, or allow the allocation size -- reported by 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' -- to be approximate?@@ -183,7 +183,7 @@ -- as possible without causing compatibility problems for existing OpenGL -- ES applications or violating Vulkan requirements. ----- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_@* usage+-- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_*@ usage -- be mappable in Vulkan? Should it be possible to export an -- @AHardwareBuffers@ with such usage? --@@ -209,13 +209,13 @@ -- time. Can reference to them be added to this extension, or do they need -- a new extension? ----- RESOLVED: This extension can document the interaction between the new--- AHB formats\/usages and existing Vulkan features. No new Vulkan features--- or implementation requirements can be added. The extension version--- number will be incremented when this additional documentation is added,--- but the version number does not indicate that an implementaiton supports--- Vulkan memory or resources that map to the new 'AHardwareBuffer'--- features: support for that must be queried with+-- __RESOLVED__: This extension can document the interaction between the+-- new AHB formats\/usages and existing Vulkan features. No new Vulkan+-- features or implementation requirements can be added. The extension+-- version number will be incremented when this additional documentation is+-- added, but the version number does not indicate that an implementaiton+-- supports Vulkan memory or resources that map to the new+-- 'AHardwareBuffer' features: support for that must be queried with -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- or is implied by successfully allocating a 'AHardwareBuffer' outside of -- Vulkan that uses the new feature and has a GPU usage flag.
src/Vulkan/Extensions/VK_EXT_4444_formats.hs view
@@ -132,8 +132,19 @@ -- -- = Members ----- The members of the 'PhysicalDevice4444FormatsFeaturesEXT' structure--- describe the following features:+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevice4444FormatsFeaturesEXT' 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. 'PhysicalDevice4444FormatsFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs view
@@ -273,17 +273,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceASTCDecodeFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceASTCDecodeFeaturesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceASTCDecodeFeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.createDevice' to enable features.+-- 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. 'PhysicalDeviceASTCDecodeFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs view
@@ -331,18 +331,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT' /can/ also be included--- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the features.+-- 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. 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -407,17 +408,15 @@ -- describing advanced blending limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceBlendOperationAdvancedPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceBlendOperationAdvancedPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs view
@@ -236,18 +236,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceBufferDeviceAddressFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceBufferDeviceAddressFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceBufferDeviceAddressFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceBufferDeviceAddressFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- Note --
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -15,7 +15,7 @@ -- 185 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --@@ -271,11 +271,9 @@ -- values actually written to @pTimeDomains@. If the value of -- @pTimeDomainCount@ is less than the number of calibrateable time domains -- supported, at most @pTimeDomainCount@ values will be written to--- @pTimeDomains@. If @pTimeDomainCount@ is smaller than the number of--- calibrateable time domains supported for the given @physicalDevice@,--- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all the--- available values were returned.+-- @pTimeDomains@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate+-- that not all the available time domains were returned. -- -- == Valid Usage (Implicit) --@@ -554,11 +552,11 @@ readPrec = enumReadPrec enumPrefixTimeDomainEXT showTableTimeDomainEXT conNameTimeDomainEXT TimeDomainEXT -type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1+type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION" pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1+pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2 type EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps"
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -15,7 +15,7 @@ -- 185 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --
+ src/Vulkan/Extensions/VK_EXT_color_write_enable.hs view
@@ -0,0 +1,444 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_color_write_enable - device extension+--+-- == VK_EXT_color_write_enable+--+-- [__Name String__]+-- @VK_EXT_color_write_enable@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 382+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Sharif Elcott+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_color_write_enable:%20&body=@selcott%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-02-25+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Sharif Elcott, Google+--+-- - Tobias Hector, AMD+--+-- - Piers Daniell, NVIDIA+--+-- == Description+--+-- This extension allows for selectively enabling and disabling writes to+-- output color attachments via a pipeline dynamic state.+--+-- The intended use cases for this new state are mostly identical to those+-- of colorWriteMask, such as selectively disabling writes to avoid+-- feedback loops between subpasses or bandwidth savings for unused+-- outputs. By making the state dynamic, one additional benefit is the+-- ability to reduce pipeline counts and pipeline switching via shaders+-- that write a superset of the desired data of which subsets are selected+-- dynamically. The reason for a new state, colorWriteEnable, rather than+-- making colorWriteMask dynamic is that, on many implementations, the more+-- flexible per-channel semantics of the colorWriteMask state cannot be+-- made dynamic in a performant manner.+--+-- == New Commands+--+-- - 'cmdSetColorWriteEnableEXT'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceColorWriteEnableFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo':+--+-- - 'PipelineColorWriteCreateInfoEXT'+--+-- == New Enum Constants+--+-- - 'EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME'+--+-- - 'EXT_COLOR_WRITE_ENABLE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT'+--+-- == Version History+--+-- - Revision 1, 2020-01-25 (Sharif Elcott)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceColorWriteEnableFeaturesEXT',+-- 'PipelineColorWriteCreateInfoEXT', 'cmdSetColorWriteEnableEXT'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_color_write_enable ( cmdSetColorWriteEnableEXT+ , PhysicalDeviceColorWriteEnableFeaturesEXT(..)+ , PipelineColorWriteCreateInfoEXT(..)+ , EXT_COLOR_WRITE_ENABLE_SPEC_VERSION+ , pattern EXT_COLOR_WRITE_ENABLE_SPEC_VERSION+ , EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME+ , pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.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.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_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorWriteEnableEXT))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetColorWriteEnableEXT+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Bool32 -> IO ()++-- | vkCmdSetColorWriteEnableEXT - Enable or disable writes to a color+-- attachment+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetColorWriteEnableEXT-None-04803# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-04804#+-- @attachmentCount@ /must/ be equal to the @attachmentCount@ member of+-- the 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'+-- structure specified during pipeline creation+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameter#+-- @pColorWriteEnables@ /must/ be a valid pointer to an array of+-- @attachmentCount@ 'Vulkan.Core10.FundamentalTypes.Bool32' values+--+-- - #VUID-vkCmdSetColorWriteEnableEXT-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-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylength#+-- @attachmentCount@ /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> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Both | Graphics | |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetColorWriteEnableEXT :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pColorWriteEnables@ is a pointer to an array of per target attachment+ -- boolean values specifying whether color writes are enabled for the given+ -- attachment.+ ("colorWriteEnables" ::: Vector Bool)+ -> io ()+cmdSetColorWriteEnableEXT commandBuffer colorWriteEnables = liftIO . evalContT $ do+ let vkCmdSetColorWriteEnableEXTPtr = pVkCmdSetColorWriteEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdSetColorWriteEnableEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetColorWriteEnableEXT is null" Nothing Nothing+ let vkCmdSetColorWriteEnableEXT' = mkVkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXTPtr+ pPColorWriteEnables <- ContT $ allocaBytesAligned @Bool32 ((Data.Vector.length (colorWriteEnables)) * 4) 4+ lift $ Data.Vector.imapM_ (\i e -> poke (pPColorWriteEnables `plusPtr` (4 * (i)) :: Ptr Bool32) (boolToBool32 (e))) (colorWriteEnables)+ lift $ traceAroundEvent "vkCmdSetColorWriteEnableEXT" (vkCmdSetColorWriteEnableEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (colorWriteEnables)) :: Word32)) (pPColorWriteEnables))+ pure $ ()+++-- | VkPhysicalDeviceColorWriteEnableFeaturesEXT - Structure describing+-- whether writes to color attachments can be enabled and disabled+-- dynamically+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceColorWriteEnableFeaturesEXT' 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. 'PhysicalDeviceColorWriteEnableFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceColorWriteEnableFeaturesEXT = PhysicalDeviceColorWriteEnableFeaturesEXT+ { -- | #features-colorWriteEnable# @colorWriteEnable@ indicates that the+ -- implementation supports the dynamic state+ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'.+ colorWriteEnable :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceColorWriteEnableFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceColorWriteEnableFeaturesEXT++instance ToCStruct PhysicalDeviceColorWriteEnableFeaturesEXT where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceColorWriteEnableFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (colorWriteEnable))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceColorWriteEnableFeaturesEXT where+ peekCStruct p = do+ colorWriteEnable <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceColorWriteEnableFeaturesEXT+ (bool32ToBool colorWriteEnable)++instance Storable PhysicalDeviceColorWriteEnableFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceColorWriteEnableFeaturesEXT where+ zero = PhysicalDeviceColorWriteEnableFeaturesEXT+ zero+++-- | VkPipelineColorWriteCreateInfoEXT - Structure specifying color write+-- state of a newly created pipeline+--+-- = Description+--+-- When this structure is included in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo', it defines+-- per-attachment color write state. If this structure is not included in+-- the @pNext@ chain, it is equivalent to specifying this structure with+-- @attachmentCount@ equal to the @attachmentCount@ member of+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo', and+-- @pColorWriteEnables@ pointing to an array of as many+-- 'Vulkan.Core10.FundamentalTypes.TRUE' values.+--+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>+-- as follows: * If @colorWriteEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', writes to the attachment are+-- determined by the @colorWriteMask@. * If @colorWriteEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE', the @colorWriteMask@ is ignored+-- and writes to all components of the attachment are disabled. This is+-- equivalent to specifying a @colorWriteMask@ of 0.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- feature is not enabled, all elements of @pColorWriteEnables@ /must/+-- be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- - #VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-04802#+-- @attachmentCount@ /must/ be equal to the @attachmentCount@ member of+-- the 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'+-- structure specified during pipeline creation+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineColorWriteCreateInfoEXT-sType-sType# @sType@ /must/+-- be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT'+--+-- - #VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameter#+-- If @attachmentCount@ is not @0@, @pColorWriteEnables@ /must/ be a+-- valid pointer to an array of @attachmentCount@+-- 'Vulkan.Core10.FundamentalTypes.Bool32' values+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineColorWriteCreateInfoEXT = PipelineColorWriteCreateInfoEXT+ { -- | @pColorWriteEnables@ is a pointer to an array of per target attachment+ -- boolean values specifying whether color writes are enabled for the given+ -- attachment.+ colorWriteEnables :: Vector Bool }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineColorWriteCreateInfoEXT)+#endif+deriving instance Show PipelineColorWriteCreateInfoEXT++instance ToCStruct PipelineColorWriteCreateInfoEXT where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineColorWriteCreateInfoEXT{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorWriteEnables)) :: Word32))+ pPColorWriteEnables' <- ContT $ allocaBytesAligned @Bool32 ((Data.Vector.length (colorWriteEnables)) * 4) 4+ lift $ Data.Vector.imapM_ (\i e -> poke (pPColorWriteEnables' `plusPtr` (4 * (i)) :: Ptr Bool32) (boolToBool32 (e))) (colorWriteEnables)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Bool32))) (pPColorWriteEnables')+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct PipelineColorWriteCreateInfoEXT where+ peekCStruct p = do+ attachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pColorWriteEnables <- peek @(Ptr Bool32) ((p `plusPtr` 24 :: Ptr (Ptr Bool32)))+ pColorWriteEnables' <- generateM (fromIntegral attachmentCount) (\i -> do+ pColorWriteEnablesElem <- peek @Bool32 ((pColorWriteEnables `advancePtrBytes` (4 * (i)) :: Ptr Bool32))+ pure $ bool32ToBool pColorWriteEnablesElem)+ pure $ PipelineColorWriteCreateInfoEXT+ pColorWriteEnables'++instance Zero PipelineColorWriteCreateInfoEXT where+ zero = PipelineColorWriteCreateInfoEXT+ mempty+++type EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION"+pattern EXT_COLOR_WRITE_ENABLE_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1+++type EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable"++-- No documentation found for TopLevel "VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME"+pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable"+
+ src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot view
@@ -0,0 +1,136 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_color_write_enable - device extension+--+-- == VK_EXT_color_write_enable+--+-- [__Name String__]+-- @VK_EXT_color_write_enable@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 382+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Sharif Elcott+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_color_write_enable:%20&body=@selcott%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-02-25+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Sharif Elcott, Google+--+-- - Tobias Hector, AMD+--+-- - Piers Daniell, NVIDIA+--+-- == Description+--+-- This extension allows for selectively enabling and disabling writes to+-- output color attachments via a pipeline dynamic state.+--+-- The intended use cases for this new state are mostly identical to those+-- of colorWriteMask, such as selectively disabling writes to avoid+-- feedback loops between subpasses or bandwidth savings for unused+-- outputs. By making the state dynamic, one additional benefit is the+-- ability to reduce pipeline counts and pipeline switching via shaders+-- that write a superset of the desired data of which subsets are selected+-- dynamically. The reason for a new state, colorWriteEnable, rather than+-- making colorWriteMask dynamic is that, on many implementations, the more+-- flexible per-channel semantics of the colorWriteMask state cannot be+-- made dynamic in a performant manner.+--+-- == New Commands+--+-- - 'cmdSetColorWriteEnableEXT'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceColorWriteEnableFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo':+--+-- - 'PipelineColorWriteCreateInfoEXT'+--+-- == New Enum Constants+--+-- - 'EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME'+--+-- - 'EXT_COLOR_WRITE_ENABLE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT'+--+-- == Version History+--+-- - Revision 1, 2020-01-25 (Sharif Elcott)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceColorWriteEnableFeaturesEXT',+-- 'PipelineColorWriteCreateInfoEXT', 'cmdSetColorWriteEnableEXT'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_color_write_enable ( PhysicalDeviceColorWriteEnableFeaturesEXT+ , PipelineColorWriteCreateInfoEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceColorWriteEnableFeaturesEXT++instance ToCStruct PhysicalDeviceColorWriteEnableFeaturesEXT+instance Show PhysicalDeviceColorWriteEnableFeaturesEXT++instance FromCStruct PhysicalDeviceColorWriteEnableFeaturesEXT+++data PipelineColorWriteCreateInfoEXT++instance ToCStruct PipelineColorWriteCreateInfoEXT+instance Show PipelineColorWriteCreateInfoEXT++instance FromCStruct PipelineColorWriteCreateInfoEXT+
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs view
@@ -118,12 +118,12 @@ -- -- 1) Should conditional rendering affect copy and blit commands? ----- RESOLVED: Conditional rendering should not affect copies and blits.+-- __RESOLVED__: Conditional rendering should not affect copies and blits. -- -- 2) Should secondary command buffers be allowed to execute while -- conditional rendering is active in the primary command buffer? ----- RESOLVED: The rendering commands in secondary command buffer will be+-- __RESOLVED__: The rendering commands in secondary command buffer will be -- affected by an active conditional rendering in primary command buffer if -- the @conditionalRenderingEnable@ is set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Conditional rendering /must/ not@@ -396,7 +396,7 @@ -- | VkConditionalRenderingBeginInfoEXT - Structure specifying conditional--- rendering begin info+-- rendering begin information -- -- = Description --@@ -503,7 +503,7 @@ -- | VkCommandBufferInheritanceConditionalRenderingInfoEXT - Structure--- specifying command buffer inheritance info+-- specifying command buffer inheritance information -- -- = Description --@@ -579,15 +579,21 @@ -- if a secondary command buffer can be executed if conditional rendering -- is active in the primary command buffer --+-- = Members+--+-- This structure describes the following features:+-- -- = Description -- -- If the 'PhysicalDeviceConditionalRenderingFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating the implementation-dependent--- behavior. 'PhysicalDeviceConditionalRenderingFeaturesEXT' /can/ also be--- included in @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the features.+-- 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. 'PhysicalDeviceConditionalRenderingFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot view
@@ -118,12 +118,12 @@ -- -- 1) Should conditional rendering affect copy and blit commands? ----- RESOLVED: Conditional rendering should not affect copies and blits.+-- __RESOLVED__: Conditional rendering should not affect copies and blits. -- -- 2) Should secondary command buffers be allowed to execute while -- conditional rendering is active in the primary command buffer? ----- RESOLVED: The rendering commands in secondary command buffer will be+-- __RESOLVED__: The rendering commands in secondary command buffer will be -- affected by an active conditional rendering in primary command buffer if -- the @conditionalRenderingEnable@ is set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Conditional rendering /must/ not
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -208,18 +208,15 @@ -- describing conservative raster properties that can be supported by an -- implementation ----- = Members------ The members of the--- 'PhysicalDeviceConservativeRasterizationPropertiesEXT' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceConservativeRasterizationPropertiesEXT' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties.+-- 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) --
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -21,6 +21,12 @@ -- -- - Requires Vulkan 1.0 --+-- [__Special Uses__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+-- -- [__Contact__] -- -- - Liam Middlebrook@@ -132,8 +138,8 @@ -- VkClearColorValue is used here because it provides a union of -- float,int,uint types. ----- RESOLVED: Will re-use existing VkClearColorValue structure in order to--- easily take advantage of float,int,uint borderColor types.+-- __RESOLVED__: Will reuse existing VkClearColorValue structure in order+-- to easily take advantage of float,int,uint borderColor types. -- -- 2) For hardware which supports a limited number of border colors what -- happens if that number is exceeded? Should this be handled by the driver@@ -141,7 +147,7 @@ -- using a new Object type, however that may have lead to additional system -- resource consumption which would otherwise not be required. ----- RESOLVED: Added+-- __RESOLVED__: Added -- 'PhysicalDeviceCustomBorderColorPropertiesEXT'::@maxCustomBorderColorSamplers@ -- for tracking implementation-specific limit, and Valid Usage statement -- handling overflow.@@ -152,19 +158,19 @@ -- work on them for implementations that can support it, or forbidding it -- entirely. ----- RESOLVED: Samplers created with a custom border color are forbidden from--- being immutable. This resolves concerns for implementations where the--- custom border color is an index to a LUT instead of being directly+-- __RESOLVED__: Samplers created with a custom border color are forbidden+-- from being immutable. This resolves concerns for implementations where+-- the custom border color is an index to a LUT instead of being directly -- embedded into sampler state. -- -- 4) Should UINT and SINT (unsigned integer and signed integer) border -- color types be separated or should they be combined into one generic INT -- (integer) type? ----- RESOLVED: Separating these doesn’t make much sense as the existing fixed--- border color types don’t have this distinction, and there is no reason--- in hardware to do so. This separation would also create unnecessary work--- and considerations for the application.+-- __RESOLVED__: Separating these doesn’t make much sense as the existing+-- fixed border color types don’t have this distinction, and there is no+-- reason in hardware to do so. This separation would also create+-- unnecessary work and considerations for the application. -- -- == Version History --@@ -368,10 +374,15 @@ -- | VkPhysicalDeviceCustomBorderColorPropertiesEXT - Structure describing -- whether custom border colors can be supported by an implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceCustomBorderColorPropertiesEXT'--- structure describe the following features:+-- If the 'PhysicalDeviceCustomBorderColorPropertiesEXT' 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) --@@ -426,8 +437,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCustomBorderColorFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceCustomBorderColorFeaturesEXT' 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. 'PhysicalDeviceCustomBorderColorFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot view
@@ -21,6 +21,12 @@ -- -- - Requires Vulkan 1.0 --+-- [__Special Uses__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+-- -- [__Contact__] -- -- - Liam Middlebrook@@ -132,8 +138,8 @@ -- VkClearColorValue is used here because it provides a union of -- float,int,uint types. ----- RESOLVED: Will re-use existing VkClearColorValue structure in order to--- easily take advantage of float,int,uint borderColor types.+-- __RESOLVED__: Will reuse existing VkClearColorValue structure in order+-- to easily take advantage of float,int,uint borderColor types. -- -- 2) For hardware which supports a limited number of border colors what -- happens if that number is exceeded? Should this be handled by the driver@@ -141,7 +147,7 @@ -- using a new Object type, however that may have lead to additional system -- resource consumption which would otherwise not be required. ----- RESOLVED: Added+-- __RESOLVED__: Added -- 'PhysicalDeviceCustomBorderColorPropertiesEXT'::@maxCustomBorderColorSamplers@ -- for tracking implementation-specific limit, and Valid Usage statement -- handling overflow.@@ -152,19 +158,19 @@ -- work on them for implementations that can support it, or forbidding it -- entirely. ----- RESOLVED: Samplers created with a custom border color are forbidden from--- being immutable. This resolves concerns for implementations where the--- custom border color is an index to a LUT instead of being directly+-- __RESOLVED__: Samplers created with a custom border color are forbidden+-- from being immutable. This resolves concerns for implementations where+-- the custom border color is an index to a LUT instead of being directly -- embedded into sampler state. -- -- 4) Should UINT and SINT (unsigned integer and signed integer) border -- color types be separated or should they be combined into one generic INT -- (integer) type? ----- RESOLVED: Separating these doesn’t make much sense as the existing fixed--- border color types don’t have this distinction, and there is no reason--- in hardware to do so. This separation would also create unnecessary work--- and considerations for the application.+-- __RESOLVED__: Separating these doesn’t make much sense as the existing+-- fixed border color types don’t have this distinction, and there is no+-- reason in hardware to do so. This separation would also create+-- unnecessary work and considerations for the application. -- -- == Version History --
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -15,7 +15,7 @@ -- 12 -- -- [__Revision__]--- 9+-- 10 -- -- [__Extension and Version Dependencies__] --@@ -247,7 +247,7 @@ -- 4) How do you compare handles returned by the debug_report callback to -- the application’s handles? ----- RESOLVED: Due to the different nature of dispatchable and+-- __RESOLVED__: Due to the different nature of dispatchable and -- nondispatchable handles there is no generic way (that we know of) that -- works for common compilers with 32bit, 64bit, C and C++. We recommend -- applications use the same cast that the validation layers use:@@ -379,6 +379,8 @@ , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT , DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT+ , DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT+ , DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT , DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT , .. )@@ -1038,6 +1040,10 @@ pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = DebugReportObjectTypeEXT 1000156000 -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = DebugReportObjectTypeEXT 1000150000+-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"+pattern DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = DebugReportObjectTypeEXT 1000029001+-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"+pattern DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = DebugReportObjectTypeEXT 1000029000 -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = DebugReportObjectTypeEXT 1000085000 {-# complete DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,@@ -1075,6 +1081,8 @@ DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT, DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,+ DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,+ DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT, DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT #-} conNameDebugReportObjectTypeEXT :: String@@ -1120,6 +1128,8 @@ , (DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT , "ACCELERATION_STRUCTURE_NV_EXT") , (DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT , "SAMPLER_YCBCR_CONVERSION_EXT") , (DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, "ACCELERATION_STRUCTURE_KHR_EXT")+ , (DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT , "CU_FUNCTION_NVX_EXT")+ , (DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT , "CU_MODULE_NVX_EXT") , (DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, "DESCRIPTOR_UPDATE_TEMPLATE_EXT") ] @@ -1165,11 +1175,11 @@ type PFN_vkDebugReportCallbackEXT = FunPtr FN_vkDebugReportCallbackEXT -type EXT_DEBUG_REPORT_SPEC_VERSION = 9+type EXT_DEBUG_REPORT_SPEC_VERSION = 10 -- No documentation found for TopLevel "VK_EXT_DEBUG_REPORT_SPEC_VERSION" pattern EXT_DEBUG_REPORT_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_DEBUG_REPORT_SPEC_VERSION = 9+pattern EXT_DEBUG_REPORT_SPEC_VERSION = 10 type EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report"
src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot view
@@ -15,7 +15,7 @@ -- 12 -- -- [__Revision__]--- 9+-- 10 -- -- [__Extension and Version Dependencies__] --@@ -247,7 +247,7 @@ -- 4) How do you compare handles returned by the debug_report callback to -- the application’s handles? ----- RESOLVED: Due to the different nature of dispatchable and+-- __RESOLVED__: Due to the different nature of dispatchable and -- nondispatchable handles there is no generic way (that we know of) that -- works for common compilers with 32bit, 64bit, C and C++. We recommend -- applications use the same cast that the validation layers use:
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -1341,8 +1341,8 @@ . (MonadIO io) => -- | @instance@ is the debug stream’s 'Vulkan.Core10.Handles.Instance'. Instance- -> -- | @messageSeverity@ is the 'DebugUtilsMessageSeverityFlagBitsEXT' severity- -- of this event\/message.+ -> -- | @messageSeverity@ is a 'DebugUtilsMessageSeverityFlagBitsEXT' value+ -- specifying the severity of this event\/message. DebugUtilsMessageSeverityFlagBitsEXT -> -- | @messageTypes@ is a bitmask of 'DebugUtilsMessageTypeFlagBitsEXT' -- specifying which type of event(s) to identify with this message.@@ -2043,6 +2043,24 @@ -- | VkDebugUtilsMessageSeverityFlagBitsEXT - Bitmask specifying which -- severities of events cause a debug messenger callback+--+-- = Description+--+-- Note+--+-- The values of 'DebugUtilsMessageSeverityFlagBitsEXT' are sorted based on+-- severity. The higher the flag value, the more severe the message. This+-- allows for simple boolean operation comparisons when looking at+-- 'DebugUtilsMessageSeverityFlagBitsEXT' values.+--+-- For example:+--+-- > if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) {+-- > // Do something for warnings and errors+-- > }+--+-- In addition, space has been left between the enums to allow for later+-- addition of new severities in between the existing values. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs view
@@ -154,18 +154,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDepthClipEnableFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDepthClipEnableFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceDepthClipEnableFeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable this--- feature.+-- 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. 'PhysicalDeviceDepthClipEnableFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -114,9 +114,9 @@ -- instead of adding the new callback structure in this extension? -- -- __RESOLVED__: No. Our memory reporting layer that combines this--- information with other memory info it collects directly (e.g. bindings--- of resources to 'Vulkan.Core10.Handles.DeviceMemory') would have to--- intercept all entry points that take a+-- information with other memory information it collects directly (e.g.+-- bindings of resources to 'Vulkan.Core10.Handles.DeviceMemory') would+-- have to intercept all entry points that take a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' parameter and -- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That’s -- maybe doable for the extensions we know about, but not for ones we@@ -130,9 +130,9 @@ -- -- We’re interested in both alloc\/free and import\/unimport. The latter is -- fairly important for tracking (and avoiding double-counting) of--- swapchain images (still true with \"native swapchains\" based on--- external memory) and media\/camera interop. Though we might be able to--- handle this with additional+-- swapchain images (still true with “native swapchains” based on external+-- memory) and media\/camera interop. Though we might be able to handle+-- this with additional -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values, for import\/export we do want to be able to tie this to the -- external resource, which is one thing that the @memoryObjectId@ is for.@@ -153,7 +153,7 @@ -- do) leading up to 1.0. -- -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' is described in--- a section called \"Host memory\" and the intro to it is very explicitly+-- a section called “Host memory” and the intro to it is very explicitly -- about host memory. The other callbacks are all inherently about host -- memory. But this extension is very focused on device memory. --@@ -201,7 +201,7 @@ -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. ----- 7) Should we add an additional \"allocation failed\" event type with+-- 7) Should we add an additional “allocation failed” event type with -- things like size and heap index reported? -- -- __RESOLVED__ Yes. This fits in well with the callback infrastructure@@ -305,18 +305,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDeviceMemoryReportFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDeviceMemoryReportFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceDeviceMemoryReportFeaturesEXT' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceDeviceMemoryReportFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -482,7 +483,7 @@ -- usually will not yet exist when the application or tool receives the -- callback. @objectHandle@ will only exist when the create or allocate -- call that triggered the event returns, and if the allocation or import--- ends up failing @objectHandle@ won’t ever exist.+-- ends up failing @objectHandle@ will not ever exist. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -114,9 +114,9 @@ -- instead of adding the new callback structure in this extension? -- -- __RESOLVED__: No. Our memory reporting layer that combines this--- information with other memory info it collects directly (e.g. bindings--- of resources to 'Vulkan.Core10.Handles.DeviceMemory') would have to--- intercept all entry points that take a+-- information with other memory information it collects directly (e.g.+-- bindings of resources to 'Vulkan.Core10.Handles.DeviceMemory') would+-- have to intercept all entry points that take a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' parameter and -- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That’s -- maybe doable for the extensions we know about, but not for ones we@@ -130,9 +130,9 @@ -- -- We’re interested in both alloc\/free and import\/unimport. The latter is -- fairly important for tracking (and avoiding double-counting) of--- swapchain images (still true with \"native swapchains\" based on--- external memory) and media\/camera interop. Though we might be able to--- handle this with additional+-- swapchain images (still true with “native swapchains” based on external+-- memory) and media\/camera interop. Though we might be able to handle+-- this with additional -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values, for import\/export we do want to be able to tie this to the -- external resource, which is one thing that the @memoryObjectId@ is for.@@ -153,7 +153,7 @@ -- do) leading up to 1.0. -- -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' is described in--- a section called \"Host memory\" and the intro to it is very explicitly+-- a section called “Host memory” and the intro to it is very explicitly -- about host memory. The other callbacks are all inherently about host -- memory. But this extension is very focused on device memory. --@@ -201,7 +201,7 @@ -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. ----- 7) Should we add an additional \"allocation failed\" event type with+-- 7) Should we add an additional “allocation failed” event type with -- things like size and heap index reported? -- -- __RESOLVED__ Yes. This fits in well with the callback infrastructure
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs view
@@ -238,6 +238,11 @@ -- @pDiscardRectangles@ /must/ not cause a signed integer addition -- overflow --+-- - #VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788# 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-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter#@@ -309,17 +314,15 @@ -- | VkPhysicalDeviceDiscardRectanglePropertiesEXT - Structure describing -- discard rectangle limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceDiscardRectanglePropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceDiscardRectanglePropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -296,8 +296,8 @@ Device -> -- | @display@ is the display whose power state is modified. DisplayKHR- -> -- | @pDisplayPowerInfo@ is a 'DisplayPowerInfoEXT' structure specifying the- -- new power state of @display@.+ -> -- | @pDisplayPowerInfo@ is a pointer to a 'DisplayPowerInfoEXT' structure+ -- specifying the new power state of @display@. DisplayPowerInfoEXT -> io () displayPowerControlEXT device display displayPowerInfo = liftIO . evalContT $ do@@ -523,7 +523,9 @@ Device -> -- | @swapchain@ is the swapchain from which to query the counter value. SwapchainKHR- -> -- | @counter@ is the counter to query.+ -> -- | @counter@ is a+ -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCounterFlagBitsEXT'+ -- value specifying the counter to query. SurfaceCounterFlagBitsEXT -> io (("counterValue" ::: Word64)) getSwapchainCounterEXT device swapchain counter = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -348,7 +348,10 @@ poke ((p `plusPtr` 32 :: Ptr Extent2D)) (zero) poke ((p `plusPtr` 40 :: Ptr Extent2D)) (zero) poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 52 :: Ptr SurfaceTransformFlagsKHR)) (zero) poke ((p `plusPtr` 56 :: Ptr SurfaceTransformFlagBitsKHR)) (zero)+ poke ((p `plusPtr` 60 :: Ptr CompositeAlphaFlagsKHR)) (zero)+ poke ((p `plusPtr` 64 :: Ptr ImageUsageFlags)) (zero) f instance FromCStruct SurfaceCapabilities2EXT where
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -486,6 +486,11 @@ -- <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#@@ -583,6 +588,11 @@ -- (@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#@@ -664,7 +674,7 @@ -- 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 draw commands.+-- address calculations for subsequent drawing commands. -- -- If the bound pipeline state object was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'@@ -710,12 +720,6 @@ -- @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the -- corresponding element of @pOffsets@ /must/ be zero ----- - #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03361# If the bound--- pipeline state object was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic state enabled then @pStrides@ /must/ not be @NULL@,--- otherwise @pStrides@ /must/ be @NULL@--- -- - #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03362# If @pStrides@ is -- not @NULL@ each element of @pStrides@ /must/ be less than or equal -- to@@ -723,10 +727,13 @@ -- -- - #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03363# If @pStrides@ is -- not @NULL@ each element of @pStrides@ /must/ be greater than or--- equal to the maximum extent of of all vertex input attributes--- fetched from the corresponding binding, where the extent is--- calculated as the VkVertexInputAttributeDescription::offset plus--- VkVertexInputAttributeDescription::format size+-- 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) --@@ -801,11 +808,10 @@ ("buffers" ::: Vector Buffer) -> -- | @pOffsets@ is a pointer to an array of buffer offsets. ("offsets" ::: Vector DeviceSize)- -> -- | @pSizes@ is an optional array of the size in bytes of vertex data bound- -- from @pBuffers@.+ -> -- | @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 optional, and when not @NULL@ is a pointer to an array of- -- buffer strides.+ -> -- | @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@@ -1314,8 +1320,9 @@ => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer- -> -- | @faceMask@ is a bitmask of VkStencilFaceFlagBits specifying the set of- -- stencil state for which to update the stencil operation.+ -> -- | @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.@@ -1346,18 +1353,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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) --
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -0,0 +1,670 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_extended_dynamic_state2 - device extension+--+-- == VK_EXT_extended_dynamic_state2+--+-- [__Name String__]+-- @VK_EXT_extended_dynamic_state2@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 378+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Vikram Kushwaha+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_extended_dynamic_state2:%20&body=@vkushwaha-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-12+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Vikram Kushwaha, NVIDIA+--+-- - Piers Daniell, NVIDIA+--+-- - Jeff Bolz, NVIDIA+--+-- == 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+--+-- - 'cmdSetDepthBiasEnableEXT'+--+-- - 'cmdSetLogicOpEXT'+--+-- - 'cmdSetPatchControlPointsEXT'+--+-- - 'cmdSetPrimitiveRestartEnableEXT'+--+-- - 'cmdSetRasterizerDiscardEnableEXT'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceExtendedDynamicState2FeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME'+--+-- - 'EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+-- - 'Vulkan.Core10.Enums.DynamicState.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'+--+-- - 'Vulkan.Core10.Enums.DynamicState.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'+--+-- == Version History+--+-- - Revision 1, 2021-04-12 (Vikram Kushwaha)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceExtendedDynamicState2FeaturesEXT',+-- 'cmdSetDepthBiasEnableEXT', 'cmdSetLogicOpEXT',+-- 'cmdSetPatchControlPointsEXT', 'cmdSetPrimitiveRestartEnableEXT',+-- 'cmdSetRasterizerDiscardEnableEXT'+--+-- = 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>+--+-- 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+ , cmdSetRasterizerDiscardEnableEXT+ , cmdSetDepthBiasEnableEXT+ , cmdSetLogicOpEXT+ , cmdSetPrimitiveRestartEnableEXT+ , PhysicalDeviceExtendedDynamicState2FeaturesEXT(..)+ , EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION+ , pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION+ , EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME+ , pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (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.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetPatchControlPointsEXT+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO ()++-- | vkCmdSetPatchControlPointsEXT - specifies the number of control points+-- per patch+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetPatchControlPointsEXT-None-04873# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874#+-- @patchControlPoints@ /must/ be greater than zero and less than or+-- equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetPatchControlPointsEXT-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-vkCmdSetPatchControlPointsEXT-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> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Both | Graphics | |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetPatchControlPointsEXT :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @patchControlPoints@ specifies number of control points per patch.+ ("patchControlPoints" ::: Word32)+ -> io ()+cmdSetPatchControlPointsEXT commandBuffer patchControlPoints = liftIO $ do+ let vkCmdSetPatchControlPointsEXTPtr = pVkCmdSetPatchControlPointsEXT (deviceCmds (commandBuffer :: CommandBuffer))+ unless (vkCmdSetPatchControlPointsEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPatchControlPointsEXT is null" Nothing Nothing+ let vkCmdSetPatchControlPointsEXT' = mkVkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXTPtr+ traceAroundEvent "vkCmdSetPatchControlPointsEXT" (vkCmdSetPatchControlPointsEXT' (commandBufferHandle (commandBuffer)) (patchControlPoints))+ pure $ ()+++foreign import ccall+#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 for a command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == 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> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Both | Graphics | |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- '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 (deviceCmds (commandBuffer :: CommandBuffer))+ 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 - Controls whether to bias fragment depth+-- values for a command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == 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> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Both | Graphics | |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- '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 (deviceCmds (commandBuffer :: CommandBuffer))+ 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 ()++-- | vkCmdSetLogicOpEXT - selects which logical operation to apply for blend+-- state+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetLogicOpEXT-None-04867# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetLogicOpEXT-logicOp-parameter# @logicOp@ /must/ be a+-- valid 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdSetLogicOpEXT-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-vkCmdSetLogicOpEXT-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> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Both | Graphics | |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp'+cmdSetLogicOpEXT :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @logicOp@ specifies the logical operation to apply for blend state.+ LogicOp+ -> io ()+cmdSetLogicOpEXT commandBuffer logicOp = liftIO $ do+ let vkCmdSetLogicOpEXTPtr = pVkCmdSetLogicOpEXT (deviceCmds (commandBuffer :: CommandBuffer))+ unless (vkCmdSetLogicOpEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLogicOpEXT is null" Nothing Nothing+ let vkCmdSetLogicOpEXT' = mkVkCmdSetLogicOpEXT vkCmdSetLogicOpEXTPtr+ traceAroundEvent "vkCmdSetLogicOpEXT" (vkCmdSetLogicOpEXT' (commandBufferHandle (commandBuffer)) (logicOp))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetPrimitiveRestartEnableEXT+ :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetPrimitiveRestartEnableEXT - controls whether a special vertex+-- index value is treated as restarting the assembly of primitives+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == 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> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Both | Graphics | |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- '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 (deviceCmds (commandBuffer :: CommandBuffer))+ 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 $ ()+++-- | VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - Structure describing+-- what extended dynamic state can be used+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceExtendedDynamicState2FeaturesEXT' 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. 'PhysicalDeviceExtendedDynamicState2FeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExtendedDynamicState2FeaturesEXT = PhysicalDeviceExtendedDynamicState2FeaturesEXT+ { -- | #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_PRIMITIVE_RESTART_ENABLE_EXT'+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+ extendedDynamicState2 :: Bool+ , -- | #features-extendedDynamicState2LogicOp# @extendedDynamicState2LogicOp@+ -- indicates that the implementation supports the following dynamic state:+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+ extendedDynamicState2LogicOp :: Bool+ , -- | #features-extendedDynamicState2PatchControlPoints#+ -- @extendedDynamicState2PatchControlPoints@ indicates that the+ -- implementation supports the following dynamic state:+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+ extendedDynamicState2PatchControlPoints :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceExtendedDynamicState2FeaturesEXT)+#endif+deriving instance Show PhysicalDeviceExtendedDynamicState2FeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceExtendedDynamicState2FeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState2))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState2LogicOp))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState2PatchControlPoints))+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT where+ peekCStruct p = do+ extendedDynamicState2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ extendedDynamicState2LogicOp <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ extendedDynamicState2PatchControlPoints <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ pure $ PhysicalDeviceExtendedDynamicState2FeaturesEXT+ (bool32ToBool extendedDynamicState2) (bool32ToBool extendedDynamicState2LogicOp) (bool32ToBool extendedDynamicState2PatchControlPoints)++instance Storable PhysicalDeviceExtendedDynamicState2FeaturesEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceExtendedDynamicState2FeaturesEXT where+ zero = PhysicalDeviceExtendedDynamicState2FeaturesEXT+ zero+ zero+ zero+++type EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION"+pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1+++type EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME"+pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"+
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot view
@@ -0,0 +1,127 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_extended_dynamic_state2 - device extension+--+-- == VK_EXT_extended_dynamic_state2+--+-- [__Name String__]+-- @VK_EXT_extended_dynamic_state2@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 378+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Vikram Kushwaha+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_extended_dynamic_state2:%20&body=@vkushwaha-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-12+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Vikram Kushwaha, NVIDIA+--+-- - Piers Daniell, NVIDIA+--+-- - Jeff Bolz, NVIDIA+--+-- == 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+--+-- - 'cmdSetDepthBiasEnableEXT'+--+-- - 'cmdSetLogicOpEXT'+--+-- - 'cmdSetPatchControlPointsEXT'+--+-- - 'cmdSetPrimitiveRestartEnableEXT'+--+-- - 'cmdSetRasterizerDiscardEnableEXT'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceExtendedDynamicState2FeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME'+--+-- - 'EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+-- - 'Vulkan.Core10.Enums.DynamicState.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'+--+-- - 'Vulkan.Core10.Enums.DynamicState.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'+--+-- == Version History+--+-- - Revision 1, 2021-04-12 (Vikram Kushwaha)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceExtendedDynamicState2FeaturesEXT',+-- 'cmdSetDepthBiasEnableEXT', 'cmdSetLogicOpEXT',+-- 'cmdSetPatchControlPointsEXT', 'cmdSetPrimitiveRestartEnableEXT',+-- 'cmdSetRasterizerDiscardEnableEXT'+--+-- = 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>+--+-- 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 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceExtendedDynamicState2FeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT+instance Show PhysicalDeviceExtendedDynamicState2FeaturesEXT++instance FromCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT+
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -97,55 +97,55 @@ -- -- 1) What memory type has to be used to import host pointers? ----- RESOLVED: Depends on the implementation. Applications have to use the--- new 'getMemoryHostPointerPropertiesEXT' command to query the supported--- memory types for a particular host pointer. The reported memory types--- may include memory types that come from a memory heap that is otherwise--- not usable for regular memory object allocation and thus such a heap’s--- size may be zero.+-- __RESOLVED__: Depends on the implementation. Applications have to use+-- the new 'getMemoryHostPointerPropertiesEXT' command to query the+-- supported memory types for a particular host pointer. The reported+-- memory types may include memory types that come from a memory heap that+-- is otherwise not usable for regular memory object allocation and thus+-- such a heap’s size may be zero. -- -- 2) Can the application still access the contents of the host allocation -- after importing? ----- RESOLVED: Yes. However, usual synchronization requirements apply.+-- __RESOLVED__: Yes. However, usual synchronization requirements apply. -- -- 3) Can the application free the host allocation? ----- RESOLVED: No, it violates valid usage conditions. Using the memory+-- __RESOLVED__: No, it violates valid usage conditions. Using the memory -- object imported from a host allocation that’s already freed thus results -- in undefined behavior. -- -- 4) Is 'Vulkan.Core10.Memory.mapMemory' expected to return the same host -- address which was specified when importing it to the memory object? ----- RESOLVED: No. Implementations are allowed to return the same address but--- it’s not required. Some implementations might return a different virtual--- mapping of the allocation, although the same physical pages will be--- used.+-- __RESOLVED__: No. Implementations are allowed to return the same address+-- but it’s not required. Some implementations might return a different+-- virtual mapping of the allocation, although the same physical pages will+-- be used. -- -- 5) Is there any limitation on the alignment of the host pointer and\/or -- size? ----- RESOLVED: Yes. Both the address and the size have to be an integer+-- __RESOLVED__: Yes. Both the address and the size have to be an integer -- multiple of @minImportedHostPointerAlignment@. In addition, some -- platforms and foreign devices may have additional restrictions. -- -- 6) Can the same host allocation be imported multiple times into a given -- physical device? ----- RESOLVED: No, at least not guaranteed by this extension. Some platforms--- do not allow locking the same physical pages for device access multiple--- times, so attempting to do it may result in undefined behavior.+-- __RESOLVED__: No, at least not guaranteed by this extension. Some+-- platforms do not allow locking the same physical pages for device access+-- multiple times, so attempting to do it may result in undefined behavior. -- -- 7) Does this extension support exporting the new handle type? ----- RESOLVED: No.+-- __RESOLVED__: No. -- -- 8) Should we include the possibility to import host mapped foreign -- device memory using this API? ----- RESOLVED: Yes, through a separate handle type. Implementations are still--- allowed to support only one of the handle types introduced by this+-- __RESOLVED__: Yes, through a separate handle type. Implementations are+-- still allowed to support only one of the handle types introduced by this -- extension by not returning import support for a particular handle type -- as returned in -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.ExternalMemoryPropertiesKHR'.@@ -293,7 +293,9 @@ . (MonadIO io) => -- | @device@ is the logical device that will be importing @pHostPointer@. Device- -> -- | @handleType@ is the type of the handle @pHostPointer@.+ -> -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of the handle @pHostPointer@. ExternalMemoryHandleTypeFlagBits -> -- | @pHostPointer@ is the host pointer to import from. ("hostPointer" ::: Ptr ())@@ -386,7 +388,9 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryHostPointerInfoEXT = ImportMemoryHostPointerInfoEXT- { -- | @handleType@ specifies the handle type.+ { -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the handle type. handleType :: ExternalMemoryHandleTypeFlagBits , -- | @pHostPointer@ is the host pointer to import from. hostPointer :: Ptr ()@@ -493,17 +497,15 @@ -- external memory host pointer limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceExternalMemoryHostPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceExternalMemoryHostPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -515,7 +517,7 @@ { -- | #limits-minImportedHostPointerAlignment# -- @minImportedHostPointerAlignment@ is the minimum /required/ alignment, -- in bytes, for the base address and size of host pointers that /can/ be- -- imported to a Vulkan memory object.+ -- imported to a Vulkan memory object. The value /must/ be a power of two. minImportedHostPointerAlignment :: DeviceSize } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot view
@@ -97,55 +97,55 @@ -- -- 1) What memory type has to be used to import host pointers? ----- RESOLVED: Depends on the implementation. Applications have to use the--- new 'getMemoryHostPointerPropertiesEXT' command to query the supported--- memory types for a particular host pointer. The reported memory types--- may include memory types that come from a memory heap that is otherwise--- not usable for regular memory object allocation and thus such a heap’s--- size may be zero.+-- __RESOLVED__: Depends on the implementation. Applications have to use+-- the new 'getMemoryHostPointerPropertiesEXT' command to query the+-- supported memory types for a particular host pointer. The reported+-- memory types may include memory types that come from a memory heap that+-- is otherwise not usable for regular memory object allocation and thus+-- such a heap’s size may be zero. -- -- 2) Can the application still access the contents of the host allocation -- after importing? ----- RESOLVED: Yes. However, usual synchronization requirements apply.+-- __RESOLVED__: Yes. However, usual synchronization requirements apply. -- -- 3) Can the application free the host allocation? ----- RESOLVED: No, it violates valid usage conditions. Using the memory+-- __RESOLVED__: No, it violates valid usage conditions. Using the memory -- object imported from a host allocation that’s already freed thus results -- in undefined behavior. -- -- 4) Is 'Vulkan.Core10.Memory.mapMemory' expected to return the same host -- address which was specified when importing it to the memory object? ----- RESOLVED: No. Implementations are allowed to return the same address but--- it’s not required. Some implementations might return a different virtual--- mapping of the allocation, although the same physical pages will be--- used.+-- __RESOLVED__: No. Implementations are allowed to return the same address+-- but it’s not required. Some implementations might return a different+-- virtual mapping of the allocation, although the same physical pages will+-- be used. -- -- 5) Is there any limitation on the alignment of the host pointer and\/or -- size? ----- RESOLVED: Yes. Both the address and the size have to be an integer+-- __RESOLVED__: Yes. Both the address and the size have to be an integer -- multiple of @minImportedHostPointerAlignment@. In addition, some -- platforms and foreign devices may have additional restrictions. -- -- 6) Can the same host allocation be imported multiple times into a given -- physical device? ----- RESOLVED: No, at least not guaranteed by this extension. Some platforms--- do not allow locking the same physical pages for device access multiple--- times, so attempting to do it may result in undefined behavior.+-- __RESOLVED__: No, at least not guaranteed by this extension. Some+-- platforms do not allow locking the same physical pages for device access+-- multiple times, so attempting to do it may result in undefined behavior. -- -- 7) Does this extension support exporting the new handle type? ----- RESOLVED: No.+-- __RESOLVED__: No. -- -- 8) Should we include the possibility to import host mapped foreign -- device memory using this API? ----- RESOLVED: Yes, through a separate handle type. Implementations are still--- allowed to support only one of the handle types introduced by this+-- __RESOLVED__: Yes, through a separate handle type. Implementations are+-- still allowed to support only one of the handle types introduced by this -- extension by not returning import support for a particular handle type -- as returned in -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.ExternalMemoryPropertiesKHR'.
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs view
@@ -214,18 +214,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentDensityMapFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentDensityMapFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentDensityMapFeaturesEXT' /can/ also be included in--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceFragmentDensityMapFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -310,17 +311,17 @@ -- fragment density map properties that can be supported by an -- implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceFragmentDensityMapPropertiesEXT'--- structure describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceFragmentDensityMapPropertiesEXT' 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)------ If the 'PhysicalDeviceFragmentDensityMapPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs view
@@ -182,18 +182,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentDensityMap2FeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' /can/ also be included in--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -251,17 +252,17 @@ -- additional fragment density map properties that can be supported by an -- implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT'--- structure describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT' 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)------ If the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs view
@@ -159,18 +159,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs view
@@ -158,7 +158,7 @@ -- -- 1) What should the extension & flag be called? ----- RESOLVED: VK_EXT_full_screen_exclusive.+-- __RESOLVED__: VK_EXT_full_screen_exclusive. -- -- Other options considered (prior to the app-controlled mode) were: --@@ -176,7 +176,7 @@ -- -- 2) Do we need more than a boolean toggle? ----- RESOLVED: Yes.+-- __RESOLVED__: Yes. -- -- Using an enum with default\/allowed\/disallowed\/app-controlled enables -- applications to accept driver default behavior, specifically override it@@ -185,13 +185,13 @@ -- -- 3) Should this be a KHR or EXT extension? ----- RESOLVED: EXT, in order to allow it to be shipped faster.+-- __RESOLVED__: EXT, in order to allow it to be shipped faster. -- -- 4) Can the fullscreen hint affect the surface capabilities, and if so, -- should the hint also be specified as input when querying the surface -- capabilities? ----- RESOLVED: Yes on both accounts.+-- __RESOLVED__: Yes on both accounts. -- -- While the hint does not guarantee a particular fullscreen mode will be -- used when the swapchain is created, it can sometimes imply particular@@ -206,7 +206,7 @@ -- -- 5) Should full-screen be one word or two? ----- RESOLVED: Two words.+-- __RESOLVED__: Two words. -- -- \"Fullscreen\" is not in my dictionary, and web searches did not turn up -- definitive proof that it is a colloquially accepted compound word.
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot view
@@ -158,7 +158,7 @@ -- -- 1) What should the extension & flag be called? ----- RESOLVED: VK_EXT_full_screen_exclusive.+-- __RESOLVED__: VK_EXT_full_screen_exclusive. -- -- Other options considered (prior to the app-controlled mode) were: --@@ -176,7 +176,7 @@ -- -- 2) Do we need more than a boolean toggle? ----- RESOLVED: Yes.+-- __RESOLVED__: Yes. -- -- Using an enum with default\/allowed\/disallowed\/app-controlled enables -- applications to accept driver default behavior, specifically override it@@ -185,13 +185,13 @@ -- -- 3) Should this be a KHR or EXT extension? ----- RESOLVED: EXT, in order to allow it to be shipped faster.+-- __RESOLVED__: EXT, in order to allow it to be shipped faster. -- -- 4) Can the fullscreen hint affect the surface capabilities, and if so, -- should the hint also be specified as input when querying the surface -- capabilities? ----- RESOLVED: Yes on both accounts.+-- __RESOLVED__: Yes on both accounts. -- -- While the hint does not guarantee a particular fullscreen mode will be -- used when the swapchain is created, it can sometimes imply particular@@ -206,7 +206,7 @@ -- -- 5) Should full-screen be one word or two? ----- RESOLVED: Two words.+-- __RESOLVED__: Two words. -- -- \"Fullscreen\" is not in my dictionary, and web searches did not turn up -- definitive proof that it is a colloquially accepted compound word.
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs view
@@ -1,531 +1,8 @@ {-# language CPP #-}--- | = Name------ VK_EXT_image_drm_format_modifier - device extension------ == VK_EXT_image_drm_format_modifier------ [__Name String__]--- @VK_EXT_image_drm_format_modifier@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 159------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_bind_memory2@------ - Requires @VK_KHR_get_physical_device_properties2@------ - Requires @VK_KHR_image_format_list@------ - Requires @VK_KHR_sampler_ycbcr_conversion@------ [__Contact__]------ - Chad Versace--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_image_drm_format_modifier:%20&body=@chadversary%20 >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2018-08-29------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Antoine Labour, Google------ - Bas Nieuwenhuizen, Google------ - Chad Versace, Google------ - James Jones, NVIDIA------ - Jason Ekstrand, Intel------ - Jőrg Wagner, ARM------ - Kristian Høgsberg Kristensen, Google------ - Ray Smith, ARM------ == Description------ This extension provides the ability to use /DRM format modifiers/ with--- images, enabling Vulkan to better integrate with the Linux ecosystem of--- graphics, video, and display APIs.------ Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^+-- | Its functionality closely overlaps with+-- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^.--- 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.------ == Introduction to DRM Format Modifiers------ A /DRM format modifier/ is a 64-bit, vendor-prefixed, semi-opaque--- unsigned integer. Most /modifiers/ represent a concrete, vendor-specific--- tiling format for images. Some exceptions are @DRM_FORMAT_MOD_LINEAR@--- (which is not vendor-specific); @DRM_FORMAT_MOD_NONE@ (which is an alias--- of @DRM_FORMAT_MOD_LINEAR@ due to historical accident); and--- @DRM_FORMAT_MOD_INVALID@ (which does not represent a tiling format). The--- /modifier’s/ vendor prefix consists of the 8 most significant bits. The--- canonical list of /modifiers/ and vendor prefixes is found in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>--- in the Linux kernel source. The other dominant source of /modifiers/ are--- vendor kernel trees.------ One goal of /modifiers/ in the Linux ecosystem is to enumerate for each--- vendor a reasonably sized set of tiling formats that are appropriate for--- images shared across processes, APIs, and\/or devices, where each--- participating component may possibly be from different vendors. A--- non-goal is to enumerate all tiling formats supported by all vendors.--- Some tiling formats used internally by vendors are inappropriate for--- sharing; no /modifiers/ should be assigned to such tiling formats.------ Modifier values typically do not /describe/ memory layouts. More--- precisely, a /modifier/\'s lower 56 bits usually have no structure.--- Instead, modifiers /name/ memory layouts; they name a small set of--- vendor-preferred layouts for image sharing. As a consequence, in each--- vendor namespace the modifier values are often sequentially allocated--- starting at 1.------ Each /modifier/ is usually supported by a single vendor and its name--- matches the pattern @{VENDOR}_FORMAT_MOD_*@ or--- @DRM_FORMAT_MOD_{VENDOR}_*@. Examples are @I915_FORMAT_MOD_X_TILED@ and--- @DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED@. An exception is--- @DRM_FORMAT_MOD_LINEAR@, which is supported by most vendors.------ Many APIs in Linux use /modifiers/ to negotiate and specify the memory--- layout of shared images. For example, a Wayland compositor and Wayland--- client may, by relaying /modifiers/ over the Wayland protocol--- @zwp_linux_dmabuf_v1@, negotiate a vendor-specific tiling format for a--- shared @wl_buffer@. The client may allocate the underlying memory for--- the @wl_buffer@ with GBM, providing the chosen /modifier/ to--- @gbm_bo_create_with_modifiers@. The client may then import the--- @wl_buffer@ into Vulkan for producing image content, providing the--- resource’s dma_buf to--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR' and--- its /modifier/ to 'ImageDrmFormatModifierExplicitCreateInfoEXT'. The--- compositor may then import the @wl_buffer@ into OpenGL for sampling,--- providing the resource’s dma_buf and /modifier/ to @eglCreateImage@. The--- compositor may also bypass OpenGL and submit the @wl_buffer@ directly to--- the kernel’s display API, providing the dma_buf and /modifier/ through--- @drm_mode_fb_cmd2@.------ == Format Translation------ /Modifier/-capable APIs often pair /modifiers/ with DRM formats, which--- are defined in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>.--- However, @VK_EXT_image_drm_format_modifier@ uses--- 'Vulkan.Core10.Enums.Format.Format' instead of DRM formats. The--- application must convert between 'Vulkan.Core10.Enums.Format.Format' and--- DRM format when it sends or receives a DRM format to or from an external--- API.------ The mapping from 'Vulkan.Core10.Enums.Format.Format' to DRM format is--- lossy. Therefore, when receiving a DRM format from an external API,--- often the application must use information from the external API to--- accurately map the DRM format to a 'Vulkan.Core10.Enums.Format.Format'.--- For example, DRM formats do not distinguish between RGB and sRGB (as of--- 2018-03-28); external information is required to identify the image’s--- colorspace.------ The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format--- is also incomplete. For some DRM formats there exist no corresponding--- Vulkan format, and for some Vulkan formats there exist no corresponding--- DRM format.------ == Usage Patterns------ Three primary usage patterns are intended for this extension:------ - __Negotiation.__ The application negotiates with /modifier/-aware,--- external components to determine sets of image creation parameters--- supported among all components.------ In the Linux ecosystem, the negotiation usually assumes the image is--- a 2D, single-sampled, non-mipmapped, non-array image; this extension--- permits that assumption but does not require it. The result of the--- negotiation usually resembles a set of tuples such as /(drmFormat,--- drmFormatModifier)/, where each participating component supports all--- tuples in the set.------ Many details of this negotiation—such as the protocol used during--- negotiation, the set of image creation parameters expressable in the--- protocol, and how the protocol chooses which process and which API--- will create the image—are outside the scope of this specification.------ In this extension,--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'--- with 'DrmFormatModifierPropertiesListEXT' serves a primary role--- during the negotiation, and--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'--- with 'PhysicalDeviceImageDrmFormatModifierInfoEXT' serves a--- secondary role.------ - __Import.__ The application imports an image with a /modifier/.------ In this pattern, the application receives from an external source--- the image’s memory and its creation parameters, which are often the--- result of the negotiation described above. Some image creation--- parameters are implicitly defined by the external source; for--- example, 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' is often--- assumed. Some image creation parameters are usually explicit, such--- as the image’s @format@, @drmFormatModifier@, and @extent@; and each--- plane’s @offset@ and @rowPitch@.------ Before creating the image, the application first verifies that the--- physical device supports the received creation parameters by--- querying--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'--- with 'DrmFormatModifierPropertiesListEXT' and--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'--- with 'PhysicalDeviceImageDrmFormatModifierInfoEXT'. Then the--- application creates the image by chaining--- 'ImageDrmFormatModifierExplicitCreateInfoEXT' and--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'--- onto 'Vulkan.Core10.Image.ImageCreateInfo'.------ - __Export.__ The application creates an image and allocates its--- memory. Then the application exports to /modifier/-aware consumers--- the image’s memory handles; its creation parameters; its /modifier/;--- and the <VkSubresourceLayout.html offset>,--- <VkSubresourceLayout.html size>, and--- <VkSubresourceLayout.html rowPitch> of each /memory plane/.------ In this pattern, the Vulkan device is the authority for the image;--- it is the allocator of the image’s memory and the decider of the--- image’s creation parameters. When choosing the image’s creation--- parameters, the application usually chooses a tuple /(format,--- drmFormatModifier)/ from the result of the negotiation described--- above. The negotiation’s result often contains multiple tuples that--- share the same format but differ in their /modifier/. In this case,--- the application should defer the choice of the image’s /modifier/ to--- the Vulkan implementation by providing all such /modifiers/ to--- 'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@;--- and the implementation should choose from @pDrmFormatModifiers@ the--- optimal /modifier/ in consideration with the other image parameters.------ The application creates the image by chaining--- 'ImageDrmFormatModifierListCreateInfoEXT' and--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'--- onto 'Vulkan.Core10.Image.ImageCreateInfo'. The protocol and APIs by--- which the application will share the image with external consumers--- will likely determine the value of--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@.--- The implementation chooses for the image an optimal /modifier/ from--- 'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@.--- The application then queries the implementation-chosen /modifier/--- with 'getImageDrmFormatModifierPropertiesEXT', and queries the--- memory layout of each plane with--- 'Vulkan.Core10.Image.getImageSubresourceLayout'.------ The application then allocates the image’s memory with--- 'Vulkan.Core10.Memory.MemoryAllocateInfo', adding chained extending--- structures for external memory; binds it to the image; and exports--- the memory, for example, with--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR'.------ Finally, the application sends the image’s creation parameters, its--- /modifier/, its per-plane memory layout, and the exported memory--- handle to the external consumers. The details of how the application--- transmits this information to external consumers is outside the--- scope of this specification.------ == Prior Art------ Extension--- @EGL_EXT_image_dma_buf_import@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^--- 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@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^--- 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@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^--- 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@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- 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@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^;--- and symmetrically allows exporting the same data from the @gbm_bo@. See--- the references to /modifier/ and /plane/ in--- @gbm.h@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^.------ == New Commands------ - 'getImageDrmFormatModifierPropertiesEXT'------ == New Structures------ - 'DrmFormatModifierPropertiesEXT'------ - 'ImageDrmFormatModifierPropertiesEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':------ - 'DrmFormatModifierPropertiesListEXT'------ - Extending 'Vulkan.Core10.Image.ImageCreateInfo':------ - 'ImageDrmFormatModifierExplicitCreateInfoEXT'------ - 'ImageDrmFormatModifierListCreateInfoEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2':------ - 'PhysicalDeviceImageDrmFormatModifierInfoEXT'------ == New Enum Constants------ - 'EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME'------ - 'EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits':------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT'------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT'------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT'------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT'------ - Extending 'Vulkan.Core10.Enums.ImageTiling.ImageTiling':------ - 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'------ - Extending 'Vulkan.Core10.Enums.Result.Result':------ - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT'------ == Issues------ 1) Should this extension define a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'? Or define one per plane?------ +------ __RESOLVED__: There exists a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- 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--- /modifier/ for each plane. (See Linux commit--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bae781b259269590109e8a4a8227331362b88212 bae781b259269590109e8a4a8227331362b88212>).--- And GBM provides an entry point, @gbm_bo_get_modifier@, for querying the--- /modifier/ of the image but does not provide one to query the modifier--- of individual planes.------ 2) When creating an image with--- 'ImageDrmFormatModifierExplicitCreateInfoEXT', which is typically used--- when /importing/ an image, should the application explicitly provide the--- size of each plane?------ +------ __RESOLVED__: No. The application /must/ not provide the size. To--- enforce this, the API requires that--- 'ImageDrmFormatModifierExplicitCreateInfoEXT'::@pPlaneLayouts->size@--- /must/ be 0.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- 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.------ However, Vulkan differs from EGL and GBM with regards to image creation--- in the following ways:------ - __Undedicated allocation by default.__ When importing or exporting a--- set of dma_bufs as an @EGLImage@ or @gbm_bo@, common practice--- mandates that each dma_buf’s memory be dedicated (in the sense of--- @VK_KHR_dedicated_allocation@) to the image (though not necessarily--- dedicated to a single plane). In particular, neither the GBM--- documentation nor the EGL extension specifications explicitly state--- this requirement, but in light of common practice this is likely due--- to under-specification rather than intentional omission. In--- contrast, @VK_EXT_image_drm_format_modifier@ permits, but does not--- require, the implementation to require dedicated allocations for--- images created with--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'.------ - __Separation of image creation and memory allocation.__ When--- importing a set of dma_bufs as an @EGLImage@ or @gbm_bo@, EGL and--- GBM create the image resource and bind it to memory (the dma_bufs)--- simultaneously. This allows EGL and GBM to query each dma_buf’s size--- during image creation. In Vulkan, image creation and memory--- allocation are independent unless a dedicated allocation is used (as--- in @VK_KHR_dedicated_allocation@). Therefore, without requiring--- dedicated allocation, Vulkan cannot query the size of each dma_buf--- (or other external handle) when calculating the image’s memory--- layout. Even if dedication allocation were required, Vulkan cannot--- calculate the image’s memory layout until after the image is bound--- to its dma_ufs.------ The above differences complicate the potential inference of plane size--- in Vulkan. Consider the following problematic cases:------ - __Padding.__ Some plane of the image may require--- implementation-dependent padding.------ - __Metadata.__ For some /modifiers/, the image may have a metadata--- plane which requires a non-trivial calculation to determine its--- size.------ - __Mipmapped, array, and 3D images.__ The implementation may support--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'--- for images whose @mipLevels@, @arrayLayers@, or @depth@ is greater--- than 1. For such images with certain /modifiers/, the calculation of--- each plane’s size may be non-trivial.------ However, an application-provided plane size solves none of the above--- problems.------ For simplicity, consider an external image with a single memory plane.--- The implementation is obviously capable calculating the image’s size--- when its tiling is--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. Likewise, any--- reasonable implementation is capable of calculating the image’s size--- when its tiling uses a supported /modifier/.------ Suppose that the external image’s size is smaller than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', the implementation--- would observe the mismatched size and recognize its inability to--- comprehend the external image’s layout (unless the implementation used--- the application-provided size to select a refinement of the tiling--- layout indicated by the /modifier/, which is strongly discouraged). The--- implementation would observe the conflict, and reject image creation--- with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is less than the size required by the--- implementation. The application would observe the conflict and refuse to--- bind the 'Vulkan.Core10.Handles.Image' to the external memory. In both--- cases, the result is explicit failure.------ Suppose that the external image’s size is larger than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', for reasons similar--- to above the implementation would observe the mismatched size and--- recognize its inability to comprehend the image data residing in the--- extra size. The implementation, however, must assume that image data--- resides in the entire size provided by the application. The--- implementation would observe the conflict and reject image creation with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is larger than the implementation-usable size. The--- application would observe the conflict and refuse to bind the--- 'Vulkan.Core10.Handles.Image' to the external memory. In both cases, the--- result is explicit failure.------ Therefore, an application-provided size provides no benefit, and this--- extension should not require it. This decision renders--- 'Vulkan.Core10.Image.SubresourceLayout'::@size@ an unused field during--- image creation, and thus introduces a risk that implementations may--- require applications to submit sideband creation parameters in the--- unused field. To prevent implementations from relying on sideband data,--- this extension /requires/ the application to set @size@ to 0.------ === References------ 1. #VK_EXT_image_drm_format_modifier-fn1#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>------ 2. #VK_EXT_image_drm_format_modifier-fn2#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>------ 3. #VK_EXT_image_drm_format_modifier-fn3#--- <https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export>------ 4. #VK_EXT_image_drm_format_modifier-fn4#--- <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct--- drm_mode_fb_cmd2>------ 5. #VK_EXT_image_drm_format_modifier-fn5#--- <https://cgit.freedesktop.org/mesa/mesa/tree/src/gbm/main/gbm.h?id=refs/tags/mesa-18.0.0-rc1 gbm.h>------ === Version History------ - Revision 1, 2018-08-29 (Chad Versace)------ - First stable revision------ = See Also------ 'DrmFormatModifierPropertiesEXT', 'DrmFormatModifierPropertiesListEXT',--- 'ImageDrmFormatModifierExplicitCreateInfoEXT',--- 'ImageDrmFormatModifierListCreateInfoEXT',--- 'ImageDrmFormatModifierPropertiesEXT',--- 'PhysicalDeviceImageDrmFormatModifierInfoEXT',--- 'getImageDrmFormatModifierPropertiesEXT'------ = 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>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.+-- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>^. module Vulkan.Extensions.VK_EXT_image_drm_format_modifier ( getImageDrmFormatModifierPropertiesEXT , DrmFormatModifierPropertiesListEXT(..) , DrmFormatModifierPropertiesEXT(..)@@ -677,8 +154,8 @@ { -- | @drmFormatModifierCount@ is an inout parameter related to the number of -- modifiers compatible with the @format@, as described below. drmFormatModifierCount :: Word32- , -- | @pDrmFormatModifierProperties@ is either @NULL@ or an array of- -- 'DrmFormatModifierPropertiesEXT' structures.+ , -- | @pDrmFormatModifierProperties@ is either @NULL@ or a pointer to an array+ -- of 'DrmFormatModifierPropertiesEXT' structures. drmFormatModifierProperties :: Ptr DrmFormatModifierPropertiesEXT } deriving (Typeable, Eq)@@ -921,9 +398,9 @@ , -- | @sharingMode@ specifies how the image will be accessed by multiple queue -- families. sharingMode :: SharingMode- , -- | @pQueueFamilyIndices@ is a list of queue families that will access the- -- image (ignored if @sharingMode@ is not- -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT').+ , -- | @pQueueFamilyIndices@ is a pointer to an array of queue families that+ -- will access the image. It is ignored if @sharingMode@ is not+ -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'. queueFamilyIndices :: Vector Word32 } deriving (Typeable)
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot view
@@ -1,531 +1,8 @@ {-# language CPP #-}--- | = Name------ VK_EXT_image_drm_format_modifier - device extension------ == VK_EXT_image_drm_format_modifier------ [__Name String__]--- @VK_EXT_image_drm_format_modifier@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 159------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_bind_memory2@------ - Requires @VK_KHR_get_physical_device_properties2@------ - Requires @VK_KHR_image_format_list@------ - Requires @VK_KHR_sampler_ycbcr_conversion@------ [__Contact__]------ - Chad Versace--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_image_drm_format_modifier:%20&body=@chadversary%20 >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2018-08-29------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Antoine Labour, Google------ - Bas Nieuwenhuizen, Google------ - Chad Versace, Google------ - James Jones, NVIDIA------ - Jason Ekstrand, Intel------ - Jőrg Wagner, ARM------ - Kristian Høgsberg Kristensen, Google------ - Ray Smith, ARM------ == Description------ This extension provides the ability to use /DRM format modifiers/ with--- images, enabling Vulkan to better integrate with the Linux ecosystem of--- graphics, video, and display APIs.------ Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^+-- | Its functionality closely overlaps with+-- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^.--- 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.------ == Introduction to DRM Format Modifiers------ A /DRM format modifier/ is a 64-bit, vendor-prefixed, semi-opaque--- unsigned integer. Most /modifiers/ represent a concrete, vendor-specific--- tiling format for images. Some exceptions are @DRM_FORMAT_MOD_LINEAR@--- (which is not vendor-specific); @DRM_FORMAT_MOD_NONE@ (which is an alias--- of @DRM_FORMAT_MOD_LINEAR@ due to historical accident); and--- @DRM_FORMAT_MOD_INVALID@ (which does not represent a tiling format). The--- /modifier’s/ vendor prefix consists of the 8 most significant bits. The--- canonical list of /modifiers/ and vendor prefixes is found in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>--- in the Linux kernel source. The other dominant source of /modifiers/ are--- vendor kernel trees.------ One goal of /modifiers/ in the Linux ecosystem is to enumerate for each--- vendor a reasonably sized set of tiling formats that are appropriate for--- images shared across processes, APIs, and\/or devices, where each--- participating component may possibly be from different vendors. A--- non-goal is to enumerate all tiling formats supported by all vendors.--- Some tiling formats used internally by vendors are inappropriate for--- sharing; no /modifiers/ should be assigned to such tiling formats.------ Modifier values typically do not /describe/ memory layouts. More--- precisely, a /modifier/\'s lower 56 bits usually have no structure.--- Instead, modifiers /name/ memory layouts; they name a small set of--- vendor-preferred layouts for image sharing. As a consequence, in each--- vendor namespace the modifier values are often sequentially allocated--- starting at 1.------ Each /modifier/ is usually supported by a single vendor and its name--- matches the pattern @{VENDOR}_FORMAT_MOD_*@ or--- @DRM_FORMAT_MOD_{VENDOR}_*@. Examples are @I915_FORMAT_MOD_X_TILED@ and--- @DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED@. An exception is--- @DRM_FORMAT_MOD_LINEAR@, which is supported by most vendors.------ Many APIs in Linux use /modifiers/ to negotiate and specify the memory--- layout of shared images. For example, a Wayland compositor and Wayland--- client may, by relaying /modifiers/ over the Wayland protocol--- @zwp_linux_dmabuf_v1@, negotiate a vendor-specific tiling format for a--- shared @wl_buffer@. The client may allocate the underlying memory for--- the @wl_buffer@ with GBM, providing the chosen /modifier/ to--- @gbm_bo_create_with_modifiers@. The client may then import the--- @wl_buffer@ into Vulkan for producing image content, providing the--- resource’s dma_buf to--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR' and--- its /modifier/ to 'ImageDrmFormatModifierExplicitCreateInfoEXT'. The--- compositor may then import the @wl_buffer@ into OpenGL for sampling,--- providing the resource’s dma_buf and /modifier/ to @eglCreateImage@. The--- compositor may also bypass OpenGL and submit the @wl_buffer@ directly to--- the kernel’s display API, providing the dma_buf and /modifier/ through--- @drm_mode_fb_cmd2@.------ == Format Translation------ /Modifier/-capable APIs often pair /modifiers/ with DRM formats, which--- are defined in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>.--- However, @VK_EXT_image_drm_format_modifier@ uses--- 'Vulkan.Core10.Enums.Format.Format' instead of DRM formats. The--- application must convert between 'Vulkan.Core10.Enums.Format.Format' and--- DRM format when it sends or receives a DRM format to or from an external--- API.------ The mapping from 'Vulkan.Core10.Enums.Format.Format' to DRM format is--- lossy. Therefore, when receiving a DRM format from an external API,--- often the application must use information from the external API to--- accurately map the DRM format to a 'Vulkan.Core10.Enums.Format.Format'.--- For example, DRM formats do not distinguish between RGB and sRGB (as of--- 2018-03-28); external information is required to identify the image’s--- colorspace.------ The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format--- is also incomplete. For some DRM formats there exist no corresponding--- Vulkan format, and for some Vulkan formats there exist no corresponding--- DRM format.------ == Usage Patterns------ Three primary usage patterns are intended for this extension:------ - __Negotiation.__ The application negotiates with /modifier/-aware,--- external components to determine sets of image creation parameters--- supported among all components.------ In the Linux ecosystem, the negotiation usually assumes the image is--- a 2D, single-sampled, non-mipmapped, non-array image; this extension--- permits that assumption but does not require it. The result of the--- negotiation usually resembles a set of tuples such as /(drmFormat,--- drmFormatModifier)/, where each participating component supports all--- tuples in the set.------ Many details of this negotiation—such as the protocol used during--- negotiation, the set of image creation parameters expressable in the--- protocol, and how the protocol chooses which process and which API--- will create the image—are outside the scope of this specification.------ In this extension,--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'--- with 'DrmFormatModifierPropertiesListEXT' serves a primary role--- during the negotiation, and--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'--- with 'PhysicalDeviceImageDrmFormatModifierInfoEXT' serves a--- secondary role.------ - __Import.__ The application imports an image with a /modifier/.------ In this pattern, the application receives from an external source--- the image’s memory and its creation parameters, which are often the--- result of the negotiation described above. Some image creation--- parameters are implicitly defined by the external source; for--- example, 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' is often--- assumed. Some image creation parameters are usually explicit, such--- as the image’s @format@, @drmFormatModifier@, and @extent@; and each--- plane’s @offset@ and @rowPitch@.------ Before creating the image, the application first verifies that the--- physical device supports the received creation parameters by--- querying--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'--- with 'DrmFormatModifierPropertiesListEXT' and--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'--- with 'PhysicalDeviceImageDrmFormatModifierInfoEXT'. Then the--- application creates the image by chaining--- 'ImageDrmFormatModifierExplicitCreateInfoEXT' and--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'--- onto 'Vulkan.Core10.Image.ImageCreateInfo'.------ - __Export.__ The application creates an image and allocates its--- memory. Then the application exports to /modifier/-aware consumers--- the image’s memory handles; its creation parameters; its /modifier/;--- and the <VkSubresourceLayout.html offset>,--- <VkSubresourceLayout.html size>, and--- <VkSubresourceLayout.html rowPitch> of each /memory plane/.------ In this pattern, the Vulkan device is the authority for the image;--- it is the allocator of the image’s memory and the decider of the--- image’s creation parameters. When choosing the image’s creation--- parameters, the application usually chooses a tuple /(format,--- drmFormatModifier)/ from the result of the negotiation described--- above. The negotiation’s result often contains multiple tuples that--- share the same format but differ in their /modifier/. In this case,--- the application should defer the choice of the image’s /modifier/ to--- the Vulkan implementation by providing all such /modifiers/ to--- 'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@;--- and the implementation should choose from @pDrmFormatModifiers@ the--- optimal /modifier/ in consideration with the other image parameters.------ The application creates the image by chaining--- 'ImageDrmFormatModifierListCreateInfoEXT' and--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'--- onto 'Vulkan.Core10.Image.ImageCreateInfo'. The protocol and APIs by--- which the application will share the image with external consumers--- will likely determine the value of--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@.--- The implementation chooses for the image an optimal /modifier/ from--- 'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@.--- The application then queries the implementation-chosen /modifier/--- with 'getImageDrmFormatModifierPropertiesEXT', and queries the--- memory layout of each plane with--- 'Vulkan.Core10.Image.getImageSubresourceLayout'.------ The application then allocates the image’s memory with--- 'Vulkan.Core10.Memory.MemoryAllocateInfo', adding chained extending--- structures for external memory; binds it to the image; and exports--- the memory, for example, with--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR'.------ Finally, the application sends the image’s creation parameters, its--- /modifier/, its per-plane memory layout, and the exported memory--- handle to the external consumers. The details of how the application--- transmits this information to external consumers is outside the--- scope of this specification.------ == Prior Art------ Extension--- @EGL_EXT_image_dma_buf_import@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^--- 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@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^--- 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@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^--- 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@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- 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@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^;--- and symmetrically allows exporting the same data from the @gbm_bo@. See--- the references to /modifier/ and /plane/ in--- @gbm.h@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^.------ == New Commands------ - 'getImageDrmFormatModifierPropertiesEXT'------ == New Structures------ - 'DrmFormatModifierPropertiesEXT'------ - 'ImageDrmFormatModifierPropertiesEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':------ - 'DrmFormatModifierPropertiesListEXT'------ - Extending 'Vulkan.Core10.Image.ImageCreateInfo':------ - 'ImageDrmFormatModifierExplicitCreateInfoEXT'------ - 'ImageDrmFormatModifierListCreateInfoEXT'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2':------ - 'PhysicalDeviceImageDrmFormatModifierInfoEXT'------ == New Enum Constants------ - 'EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME'------ - 'EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits':------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT'------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT'------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT'------ - 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT'------ - Extending 'Vulkan.Core10.Enums.ImageTiling.ImageTiling':------ - 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'------ - Extending 'Vulkan.Core10.Enums.Result.Result':------ - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT'------ == Issues------ 1) Should this extension define a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'? Or define one per plane?------ +------ __RESOLVED__: There exists a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- 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--- /modifier/ for each plane. (See Linux commit--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bae781b259269590109e8a4a8227331362b88212 bae781b259269590109e8a4a8227331362b88212>).--- And GBM provides an entry point, @gbm_bo_get_modifier@, for querying the--- /modifier/ of the image but does not provide one to query the modifier--- of individual planes.------ 2) When creating an image with--- 'ImageDrmFormatModifierExplicitCreateInfoEXT', which is typically used--- when /importing/ an image, should the application explicitly provide the--- size of each plane?------ +------ __RESOLVED__: No. The application /must/ not provide the size. To--- enforce this, the API requires that--- 'ImageDrmFormatModifierExplicitCreateInfoEXT'::@pPlaneLayouts->size@--- /must/ be 0.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- 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.------ However, Vulkan differs from EGL and GBM with regards to image creation--- in the following ways:------ - __Undedicated allocation by default.__ When importing or exporting a--- set of dma_bufs as an @EGLImage@ or @gbm_bo@, common practice--- mandates that each dma_buf’s memory be dedicated (in the sense of--- @VK_KHR_dedicated_allocation@) to the image (though not necessarily--- dedicated to a single plane). In particular, neither the GBM--- documentation nor the EGL extension specifications explicitly state--- this requirement, but in light of common practice this is likely due--- to under-specification rather than intentional omission. In--- contrast, @VK_EXT_image_drm_format_modifier@ permits, but does not--- require, the implementation to require dedicated allocations for--- images created with--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'.------ - __Separation of image creation and memory allocation.__ When--- importing a set of dma_bufs as an @EGLImage@ or @gbm_bo@, EGL and--- GBM create the image resource and bind it to memory (the dma_bufs)--- simultaneously. This allows EGL and GBM to query each dma_buf’s size--- during image creation. In Vulkan, image creation and memory--- allocation are independent unless a dedicated allocation is used (as--- in @VK_KHR_dedicated_allocation@). Therefore, without requiring--- dedicated allocation, Vulkan cannot query the size of each dma_buf--- (or other external handle) when calculating the image’s memory--- layout. Even if dedication allocation were required, Vulkan cannot--- calculate the image’s memory layout until after the image is bound--- to its dma_ufs.------ The above differences complicate the potential inference of plane size--- in Vulkan. Consider the following problematic cases:------ - __Padding.__ Some plane of the image may require--- implementation-dependent padding.------ - __Metadata.__ For some /modifiers/, the image may have a metadata--- plane which requires a non-trivial calculation to determine its--- size.------ - __Mipmapped, array, and 3D images.__ The implementation may support--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'--- for images whose @mipLevels@, @arrayLayers@, or @depth@ is greater--- than 1. For such images with certain /modifiers/, the calculation of--- each plane’s size may be non-trivial.------ However, an application-provided plane size solves none of the above--- problems.------ For simplicity, consider an external image with a single memory plane.--- The implementation is obviously capable calculating the image’s size--- when its tiling is--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. Likewise, any--- reasonable implementation is capable of calculating the image’s size--- when its tiling uses a supported /modifier/.------ Suppose that the external image’s size is smaller than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', the implementation--- would observe the mismatched size and recognize its inability to--- comprehend the external image’s layout (unless the implementation used--- the application-provided size to select a refinement of the tiling--- layout indicated by the /modifier/, which is strongly discouraged). The--- implementation would observe the conflict, and reject image creation--- with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is less than the size required by the--- implementation. The application would observe the conflict and refuse to--- bind the 'Vulkan.Core10.Handles.Image' to the external memory. In both--- cases, the result is explicit failure.------ Suppose that the external image’s size is larger than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', for reasons similar--- to above the implementation would observe the mismatched size and--- recognize its inability to comprehend the image data residing in the--- extra size. The implementation, however, must assume that image data--- resides in the entire size provided by the application. The--- implementation would observe the conflict and reject image creation with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is larger than the implementation-usable size. The--- application would observe the conflict and refuse to bind the--- 'Vulkan.Core10.Handles.Image' to the external memory. In both cases, the--- result is explicit failure.------ Therefore, an application-provided size provides no benefit, and this--- extension should not require it. This decision renders--- 'Vulkan.Core10.Image.SubresourceLayout'::@size@ an unused field during--- image creation, and thus introduces a risk that implementations may--- require applications to submit sideband creation parameters in the--- unused field. To prevent implementations from relying on sideband data,--- this extension /requires/ the application to set @size@ to 0.------ === References------ 1. #VK_EXT_image_drm_format_modifier-fn1#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>------ 2. #VK_EXT_image_drm_format_modifier-fn2#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>------ 3. #VK_EXT_image_drm_format_modifier-fn3#--- <https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export>------ 4. #VK_EXT_image_drm_format_modifier-fn4#--- <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct--- drm_mode_fb_cmd2>------ 5. #VK_EXT_image_drm_format_modifier-fn5#--- <https://cgit.freedesktop.org/mesa/mesa/tree/src/gbm/main/gbm.h?id=refs/tags/mesa-18.0.0-rc1 gbm.h>------ === Version History------ - Revision 1, 2018-08-29 (Chad Versace)------ - First stable revision------ = See Also------ 'DrmFormatModifierPropertiesEXT', 'DrmFormatModifierPropertiesListEXT',--- 'ImageDrmFormatModifierExplicitCreateInfoEXT',--- 'ImageDrmFormatModifierListCreateInfoEXT',--- 'ImageDrmFormatModifierPropertiesEXT',--- 'PhysicalDeviceImageDrmFormatModifierInfoEXT',--- 'getImageDrmFormatModifierPropertiesEXT'------ = 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>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.+-- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>^. module Vulkan.Extensions.VK_EXT_image_drm_format_modifier ( DrmFormatModifierPropertiesEXT , DrmFormatModifierPropertiesListEXT , ImageDrmFormatModifierExplicitCreateInfoEXT
src/Vulkan/Extensions/VK_EXT_image_robustness.hs view
@@ -143,15 +143,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceImageRobustnessFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceImageRobustnessFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.+-- 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) --
src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs view
@@ -116,18 +116,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceIndexTypeUint8FeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceIndexTypeUint8FeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceIndexTypeUint8FeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceIndexTypeUint8FeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs view
@@ -53,9 +53,9 @@ -- 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 draw or--- dispatch commands and /may/ enable uniform data to be accessed with less--- indirections compared to uniforms backed by buffer memory.+-- 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 --@@ -215,18 +215,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceInlineUniformBlockFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceInlineUniformBlockFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceInlineUniformBlockFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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) --@@ -296,17 +297,15 @@ -- inline uniform block properties that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceInlineUniformBlockPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceInlineUniformBlockPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot view
@@ -53,9 +53,9 @@ -- 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 draw or--- dispatch commands and /may/ enable uniform data to be accessed with less--- indirections compared to uniforms backed by buffer memory.+-- 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 --
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -103,9 +103,8 @@ -- == Issues -- -- > (1) Do we need to support Bresenham-style and smooth lines with more than--- > one rasterization sample? i.e. the equivalent of--- > glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than--- > one sample?+-- > one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE)+-- > in OpenGL when the framebuffer has more than one sample? -- -- > RESOLVED: Yes. -- > For simplicity, Bresenham line rasterization carries forward a few@@ -270,18 +269,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceLineRasterizationFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceLineRasterizationFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceLineRasterizationFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the feature.+-- 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. 'PhysicalDeviceLineRasterizationFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -382,17 +382,15 @@ -- | VkPhysicalDeviceLineRasterizationPropertiesEXT - Structure describing -- line rasterization properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceLineRasterizationPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceLineRasterizationPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot view
@@ -103,9 +103,8 @@ -- == Issues -- -- > (1) Do we need to support Bresenham-style and smooth lines with more than--- > one rasterization sample? i.e. the equivalent of--- > glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than--- > one sample?+-- > one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE)+-- > in OpenGL when the framebuffer has more than one sample? -- -- > RESOLVED: Yes. -- > For simplicity, Bresenham line rasterization carries forward a few
src/Vulkan/Extensions/VK_EXT_memory_priority.hs view
@@ -131,18 +131,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceMemoryPriorityFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceMemoryPriorityFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceMemoryPriorityFeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceMemoryPriorityFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs view
@@ -127,6 +127,18 @@ -- | VkPhysicalDevicePCIBusInfoPropertiesEXT - Structure containing PCI bus -- information of a physical device --+-- = Description+--+-- If the 'PhysicalDevicePCIBusInfoPropertiesEXT' 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 PCI bus information of a physical device.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs view
@@ -102,7 +102,7 @@ -- 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+-- 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@@ -241,19 +241,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' /can/ also be--- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable features.+-- 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) --
src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot view
@@ -102,7 +102,7 @@ -- 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+-- 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
src/Vulkan/Extensions/VK_EXT_private_data.hs view
@@ -629,17 +629,19 @@ -- -- = Members ----- The members of the 'PhysicalDevicePrivateDataFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDevicePrivateDataFeaturesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDevicePrivateDataFeaturesEXT' /can/ also be used in the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- 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) --
+ src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -0,0 +1,530 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_provoking_vertex - device extension+--+-- == VK_EXT_provoking_vertex+--+-- [__Name String__]+-- @VK_EXT_provoking_vertex@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 255+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Special Use__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+-- - Jesse Hall+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_provoking_vertex:%20&body=@jessehall%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-02-22+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Alexis Hétu, Google+--+-- - Bill Licea-Kane, Qualcomm+--+-- - Daniel Koch, Nvidia+--+-- - Jamie Madill, Google+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Jason Ekstrand, Intel+--+-- - Jeff Bolz, Nvidia+--+-- - Jeff Leger, Qualcomm+--+-- - Jesse Hall, Google+--+-- - Jörg Wagner, Arm+--+-- - Matthew Netsch, Qualcomm+--+-- - Mike Blumenkrantz, Valve+--+-- - Piers Daniell, Nvidia+--+-- - Tobias Hector, AMD+--+-- == Description+--+-- This extension allows changing the provoking vertex convention between+-- Vulkan’s default convention (first vertex) and OpenGL’s convention (last+-- vertex).+--+-- This extension is intended for use by API-translation layers that+-- implement APIs like OpenGL on top of Vulkan, and need to match the+-- source API’s provoking vertex convention. Applications using Vulkan+-- directly should use Vulkan’s default convention.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceProvokingVertexFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceProvokingVertexPropertiesEXT'+--+-- - Extending+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':+--+-- - 'PipelineRasterizationProvokingVertexStateCreateInfoEXT'+--+-- == New Enums+--+-- - 'ProvokingVertexModeEXT'+--+-- == New Enum Constants+--+-- - 'EXT_PROVOKING_VERTEX_EXTENSION_NAME'+--+-- - 'EXT_PROVOKING_VERTEX_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT'+--+-- == Issues+--+-- 1) At what granularity should this state be set?+--+-- __RESOLVED__: At pipeline bind, with an optional per-renderpass+-- restriction.+--+-- The most natural place to put this state is in the graphics pipeline+-- object. Some implementations require it to be known when creating the+-- pipeline, and pipeline state is convenient for implementing OpenGL 3.2’s+-- glProvokingVertex, which can change the state between draw calls.+-- However, some implementations can only change it approximately+-- renderpass granularity. To accommodate both, provoking vertex will be+-- pipeline state, but implementations can require that only one mode is+-- used within a renderpass instance; the renderpass’s mode is chosen+-- implicitly when the first pipeline is bound.+--+-- 2) Does the provoking vertex mode affect the order that vertices are+-- written to transform feedback buffers?+--+-- __RESOLVED__: Yes, to enable layered implementations of OpenGL and D3D.+--+-- All of OpenGL, OpenGL ES, and Direct3D 11 require that vertices are+-- written to transform feedback buffers such that flat-shaded attributes+-- have the same value when drawing the contents of the transform feedback+-- buffer as they did in the original drawing when the transform feedback+-- buffer was written (assuming the provoking vertex mode hasn’t changed,+-- in APIs that support more than one mode).+--+-- == Version History+--+-- - Revision 1(c), 2021-02-22 (Jesse Hall)+--+-- - Added+-- VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex+-- to accommodate implementations that can’t change the transform+-- feedback vertex order for triangle fans.+--+-- - Revision 1(b), 2020-06-14 (Jesse Hall)+--+-- - Added+-- VkPhysicalDeviceProvokingVertexFeaturesEXT::transformFeedbackPreservesProvokingVertex+-- and required that transform feedback write vertices so as to+-- preserve the provoking vertex of each primitive.+--+-- - Revision 1(a), 2019-10-23 (Jesse Hall)+--+-- - Initial draft, based on a proposal by Alexis Hétu+--+-- = See Also+--+-- 'PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'PhysicalDeviceProvokingVertexPropertiesEXT',+-- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT',+-- 'ProvokingVertexModeEXT'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_provoking_vertex ( PhysicalDeviceProvokingVertexFeaturesEXT(..)+ , PhysicalDeviceProvokingVertexPropertiesEXT(..)+ , PipelineRasterizationProvokingVertexStateCreateInfoEXT(..)+ , ProvokingVertexModeEXT( PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT+ , PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT+ , ..+ )+ , EXT_PROVOKING_VERTEX_SPEC_VERSION+ , pattern EXT_PROVOKING_VERTEX_SPEC_VERSION+ , EXT_PROVOKING_VERTEX_EXTENSION_NAME+ , pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT))+-- | VkPhysicalDeviceProvokingVertexFeaturesEXT - Structure describing the+-- provoking vertex features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceProvokingVertexFeaturesEXT' 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. 'PhysicalDeviceProvokingVertexFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- 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>+-- is not enabled, the value of @transformFeedbackPreservesProvokingVertex@+-- is ignored.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceProvokingVertexFeaturesEXT = PhysicalDeviceProvokingVertexFeaturesEXT+ { -- | #features-provokingVertexLast# @provokingVertexLast@ indicates whether+ -- the implementation supports the 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT'+ -- <VkProvokingVertexModeEXT.html provoking vertex mode> for flat shading.+ provokingVertexLast :: Bool+ , -- | #features-transformFeedbackPreservesProvokingVertex#+ -- @transformFeedbackPreservesProvokingVertex@ indicates that the order of+ -- 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>+ -- is 'Vulkan.Core10.FundamentalTypes.FALSE'.+ -- @transformFeedbackPreservesProvokingVertex@ /must/ be+ -- 'Vulkan.Core10.FundamentalTypes.FALSE' when the+ -- VK_EXT_transform_feedback extension is not supported.+ transformFeedbackPreservesProvokingVertex :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceProvokingVertexFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceProvokingVertexFeaturesEXT++instance ToCStruct PhysicalDeviceProvokingVertexFeaturesEXT where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceProvokingVertexFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (provokingVertexLast))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (transformFeedbackPreservesProvokingVertex))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_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 PhysicalDeviceProvokingVertexFeaturesEXT where+ peekCStruct p = do+ provokingVertexLast <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ transformFeedbackPreservesProvokingVertex <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ pure $ PhysicalDeviceProvokingVertexFeaturesEXT+ (bool32ToBool provokingVertexLast) (bool32ToBool transformFeedbackPreservesProvokingVertex)++instance Storable PhysicalDeviceProvokingVertexFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceProvokingVertexFeaturesEXT where+ zero = PhysicalDeviceProvokingVertexFeaturesEXT+ zero+ zero+++-- | VkPhysicalDeviceProvokingVertexPropertiesEXT - Structure describing+-- provoking vertex properties supported by an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceProvokingVertexPropertiesEXT' 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+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceProvokingVertexPropertiesEXT = PhysicalDeviceProvokingVertexPropertiesEXT+ { -- | #limits-provokingVertexModePerPipeline# @provokingVertexModePerPipeline@+ -- indicates whether the implementation supports graphics pipelines with+ -- different provoking vertex modes within the same renderpass instance.+ provokingVertexModePerPipeline :: Bool+ , -- | #limits-transformFeedbackPreservesTriangleFanProvokingVertex#+ -- @transformFeedbackPreservesTriangleFanProvokingVertex@ indicates whether+ -- the implementation can preserve the provoking vertex order when writing+ -- triangle fan vertices to transform feedback.+ transformFeedbackPreservesTriangleFanProvokingVertex :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceProvokingVertexPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceProvokingVertexPropertiesEXT++instance ToCStruct PhysicalDeviceProvokingVertexPropertiesEXT where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceProvokingVertexPropertiesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (provokingVertexModePerPipeline))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (transformFeedbackPreservesTriangleFanProvokingVertex))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_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 PhysicalDeviceProvokingVertexPropertiesEXT where+ peekCStruct p = do+ provokingVertexModePerPipeline <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ transformFeedbackPreservesTriangleFanProvokingVertex <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ pure $ PhysicalDeviceProvokingVertexPropertiesEXT+ (bool32ToBool provokingVertexModePerPipeline) (bool32ToBool transformFeedbackPreservesTriangleFanProvokingVertex)++instance Storable PhysicalDeviceProvokingVertexPropertiesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceProvokingVertexPropertiesEXT where+ zero = PhysicalDeviceProvokingVertexPropertiesEXT+ zero+ zero+++-- | VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - Structure+-- specifying provoking vertex mode used by a graphics pipeline+--+-- = Description+--+-- If this struct is not provided when creating the pipeline, the pipeline+-- 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>+-- limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then the all pipelines+-- bound within a renderpass instance /must/ have the same+-- @provokingVertexMode@.+--+-- == Valid Usage+--+-- - #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>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sType#+-- @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT'+--+-- - #VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameter#+-- @provokingVertexMode@ /must/ be a valid 'ProvokingVertexModeEXT'+-- value+--+-- = See Also+--+-- 'ProvokingVertexModeEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineRasterizationProvokingVertexStateCreateInfoEXT = PipelineRasterizationProvokingVertexStateCreateInfoEXT+ { -- | @provokingVertexMode@ is a 'ProvokingVertexModeEXT' value selecting the+ -- provoking vertex mode.+ provokingVertexMode :: ProvokingVertexModeEXT }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineRasterizationProvokingVertexStateCreateInfoEXT)+#endif+deriving instance Show PipelineRasterizationProvokingVertexStateCreateInfoEXT++instance ToCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineRasterizationProvokingVertexStateCreateInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ProvokingVertexModeEXT)) (provokingVertexMode)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ProvokingVertexModeEXT)) (zero)+ f++instance FromCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT where+ peekCStruct p = do+ provokingVertexMode <- peek @ProvokingVertexModeEXT ((p `plusPtr` 16 :: Ptr ProvokingVertexModeEXT))+ pure $ PipelineRasterizationProvokingVertexStateCreateInfoEXT+ provokingVertexMode++instance Storable PipelineRasterizationProvokingVertexStateCreateInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineRasterizationProvokingVertexStateCreateInfoEXT where+ zero = PipelineRasterizationProvokingVertexStateCreateInfoEXT+ zero+++-- | VkProvokingVertexModeEXT - Specify which vertex in a primitive is the+-- provoking vertex+--+-- = 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>.+--+-- = See Also+--+-- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT'+newtype ProvokingVertexModeEXT = ProvokingVertexModeEXT Int32+ deriving newtype (Eq, Ord, Storable, Zero)++-- | 'PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT' specifies that the provoking+-- vertex is the first non-adjacency vertex in the list of vertices used by+-- a primitive.+pattern PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = ProvokingVertexModeEXT 0+-- | 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT' specifies that the provoking+-- vertex is the last non-adjacency vertex in the list of vertices used by+-- a primitive.+pattern PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = ProvokingVertexModeEXT 1+{-# complete PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,+ PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT :: ProvokingVertexModeEXT #-}++conNameProvokingVertexModeEXT :: String+conNameProvokingVertexModeEXT = "ProvokingVertexModeEXT"++enumPrefixProvokingVertexModeEXT :: String+enumPrefixProvokingVertexModeEXT = "PROVOKING_VERTEX_MODE_"++showTableProvokingVertexModeEXT :: [(ProvokingVertexModeEXT, String)]+showTableProvokingVertexModeEXT =+ [ (PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT, "FIRST_VERTEX_EXT")+ , (PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT , "LAST_VERTEX_EXT")+ ]++instance Show ProvokingVertexModeEXT where+ showsPrec = enumShowsPrec enumPrefixProvokingVertexModeEXT+ showTableProvokingVertexModeEXT+ conNameProvokingVertexModeEXT+ (\(ProvokingVertexModeEXT x) -> x)+ (showsPrec 11)++instance Read ProvokingVertexModeEXT where+ readPrec = enumReadPrec enumPrefixProvokingVertexModeEXT+ showTableProvokingVertexModeEXT+ conNameProvokingVertexModeEXT+ ProvokingVertexModeEXT+++type EXT_PROVOKING_VERTEX_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_PROVOKING_VERTEX_SPEC_VERSION"+pattern EXT_PROVOKING_VERTEX_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_PROVOKING_VERTEX_SPEC_VERSION = 1+++type EXT_PROVOKING_VERTEX_EXTENSION_NAME = "VK_EXT_provoking_vertex"++-- No documentation found for TopLevel "VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME"+pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME = "VK_EXT_provoking_vertex"+
+ src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot view
@@ -0,0 +1,214 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_provoking_vertex - device extension+--+-- == VK_EXT_provoking_vertex+--+-- [__Name String__]+-- @VK_EXT_provoking_vertex@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 255+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Special Use__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+-- - Jesse Hall+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_provoking_vertex:%20&body=@jessehall%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-02-22+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Alexis Hétu, Google+--+-- - Bill Licea-Kane, Qualcomm+--+-- - Daniel Koch, Nvidia+--+-- - Jamie Madill, Google+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Jason Ekstrand, Intel+--+-- - Jeff Bolz, Nvidia+--+-- - Jeff Leger, Qualcomm+--+-- - Jesse Hall, Google+--+-- - Jörg Wagner, Arm+--+-- - Matthew Netsch, Qualcomm+--+-- - Mike Blumenkrantz, Valve+--+-- - Piers Daniell, Nvidia+--+-- - Tobias Hector, AMD+--+-- == Description+--+-- This extension allows changing the provoking vertex convention between+-- Vulkan’s default convention (first vertex) and OpenGL’s convention (last+-- vertex).+--+-- This extension is intended for use by API-translation layers that+-- implement APIs like OpenGL on top of Vulkan, and need to match the+-- source API’s provoking vertex convention. Applications using Vulkan+-- directly should use Vulkan’s default convention.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceProvokingVertexFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceProvokingVertexPropertiesEXT'+--+-- - Extending+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':+--+-- - 'PipelineRasterizationProvokingVertexStateCreateInfoEXT'+--+-- == New Enums+--+-- - 'ProvokingVertexModeEXT'+--+-- == New Enum Constants+--+-- - 'EXT_PROVOKING_VERTEX_EXTENSION_NAME'+--+-- - 'EXT_PROVOKING_VERTEX_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT'+--+-- == Issues+--+-- 1) At what granularity should this state be set?+--+-- __RESOLVED__: At pipeline bind, with an optional per-renderpass+-- restriction.+--+-- The most natural place to put this state is in the graphics pipeline+-- object. Some implementations require it to be known when creating the+-- pipeline, and pipeline state is convenient for implementing OpenGL 3.2’s+-- glProvokingVertex, which can change the state between draw calls.+-- However, some implementations can only change it approximately+-- renderpass granularity. To accommodate both, provoking vertex will be+-- pipeline state, but implementations can require that only one mode is+-- used within a renderpass instance; the renderpass’s mode is chosen+-- implicitly when the first pipeline is bound.+--+-- 2) Does the provoking vertex mode affect the order that vertices are+-- written to transform feedback buffers?+--+-- __RESOLVED__: Yes, to enable layered implementations of OpenGL and D3D.+--+-- All of OpenGL, OpenGL ES, and Direct3D 11 require that vertices are+-- written to transform feedback buffers such that flat-shaded attributes+-- have the same value when drawing the contents of the transform feedback+-- buffer as they did in the original drawing when the transform feedback+-- buffer was written (assuming the provoking vertex mode hasn’t changed,+-- in APIs that support more than one mode).+--+-- == Version History+--+-- - Revision 1(c), 2021-02-22 (Jesse Hall)+--+-- - Added+-- VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex+-- to accommodate implementations that can’t change the transform+-- feedback vertex order for triangle fans.+--+-- - Revision 1(b), 2020-06-14 (Jesse Hall)+--+-- - Added+-- VkPhysicalDeviceProvokingVertexFeaturesEXT::transformFeedbackPreservesProvokingVertex+-- and required that transform feedback write vertices so as to+-- preserve the provoking vertex of each primitive.+--+-- - Revision 1(a), 2019-10-23 (Jesse Hall)+--+-- - Initial draft, based on a proposal by Alexis Hétu+--+-- = See Also+--+-- 'PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'PhysicalDeviceProvokingVertexPropertiesEXT',+-- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT',+-- 'ProvokingVertexModeEXT'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_provoking_vertex ( PhysicalDeviceProvokingVertexFeaturesEXT+ , PhysicalDeviceProvokingVertexPropertiesEXT+ , PipelineRasterizationProvokingVertexStateCreateInfoEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceProvokingVertexFeaturesEXT++instance ToCStruct PhysicalDeviceProvokingVertexFeaturesEXT+instance Show PhysicalDeviceProvokingVertexFeaturesEXT++instance FromCStruct PhysicalDeviceProvokingVertexFeaturesEXT+++data PhysicalDeviceProvokingVertexPropertiesEXT++instance ToCStruct PhysicalDeviceProvokingVertexPropertiesEXT+instance Show PhysicalDeviceProvokingVertexPropertiesEXT++instance FromCStruct PhysicalDeviceProvokingVertexPropertiesEXT+++data PipelineRasterizationProvokingVertexStateCreateInfoEXT++instance ToCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT+instance Show PipelineRasterizationProvokingVertexStateCreateInfoEXT++instance FromCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT+
src/Vulkan/Extensions/VK_EXT_robustness2.hs view
@@ -55,7 +55,7 @@ -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary. ----- This extension also adds support for \"null descriptors\", where+-- This extension also adds support for “null descriptors”, where -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /can/ be used instead of a -- valid handle. Accesses to null descriptors have well-defined behavior, -- and don’t rely on robustness.@@ -93,14 +93,14 @@ -- 'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ -- exist? ----- RESOLVED: Some implementations can’t efficiently tightly bounds-check--- all buffer accesses. Rather, the size of the bound range is padded to--- some power of two multiple, up to 256 bytes for uniform buffers and up--- to 4 bytes for storage buffers, and that padded size is bounds-checked.--- This is sufficient to implement D3D-like behavior, because D3D only--- allows binding whole uniform buffers or ranges that are a multiple of--- 256 bytes, and D3D raw and structured buffers only support 32-bit--- accesses.+-- __RESOLVED__: Some implementations can’t efficiently tightly+-- bounds-check all buffer accesses. Rather, the size of the bound range is+-- padded to some power of two multiple, up to 256 bytes for uniform+-- buffers and up to 4 bytes for storage buffers, and that padded size is+-- bounds-checked. This is sufficient to implement D3D-like behavior,+-- because D3D only allows binding whole uniform buffers or ranges that are+-- a multiple of 256 bytes, and D3D raw and structured buffers only support+-- 32-bit accesses. -- -- == Examples --@@ -161,11 +161,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRobustness2FeaturesEXT' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --+-- - @sType@ is the type of this structure.+--+-- - @pNext@ is @NULL@ or a pointer to a structure extending this+-- structure.+-- -- - #features-robustBufferAccess2# @robustBufferAccess2@ indicates -- whether buffer accesses are tightly bounds-checked against the range -- of the descriptor. Uniform buffers /must/ be bounds-checked to the@@ -193,9 +197,14 @@ -- to nothing. -- -- If the 'PhysicalDeviceRobustness2FeaturesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.+-- 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. 'PhysicalDeviceRobustness2FeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage --@@ -271,17 +280,15 @@ -- | VkPhysicalDeviceRobustness2PropertiesEXT - Structure describing robust -- buffer access properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceRobustness2PropertiesEXT' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceRobustness2PropertiesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot view
@@ -55,7 +55,7 @@ -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary. ----- This extension also adds support for \"null descriptors\", where+-- This extension also adds support for “null descriptors”, where -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /can/ be used instead of a -- valid handle. Accesses to null descriptors have well-defined behavior, -- and don’t rely on robustness.@@ -93,14 +93,14 @@ -- 'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ -- exist? ----- RESOLVED: Some implementations can’t efficiently tightly bounds-check--- all buffer accesses. Rather, the size of the bound range is padded to--- some power of two multiple, up to 256 bytes for uniform buffers and up--- to 4 bytes for storage buffers, and that padded size is bounds-checked.--- This is sufficient to implement D3D-like behavior, because D3D only--- allows binding whole uniform buffers or ranges that are a multiple of--- 256 bytes, and D3D raw and structured buffers only support 32-bit--- accesses.+-- __RESOLVED__: Some implementations can’t efficiently tightly+-- bounds-check all buffer accesses. Rather, the size of the bound range is+-- padded to some power of two multiple, up to 256 bytes for uniform+-- buffers and up to 4 bytes for storage buffers, and that padded size is+-- bounds-checked. This is sufficient to implement D3D-like behavior,+-- because D3D only allows binding whole uniform buffers or ranges that are+-- a multiple of 256 bytes, and D3D raw and structured buffers only support+-- 32-bit accesses. -- -- == Examples --
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -355,7 +355,9 @@ -- @physicalDevice@ /must/ be a valid -- 'Vulkan.Core10.Handles.PhysicalDevice' handle PhysicalDevice- -> -- | @samples@ is the sample count to query the capabilities for.+ -> -- | @samples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the sample count to query capabilities for. -- -- #VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter# -- @samples@ /must/ be a valid@@ -384,10 +386,8 @@ -- The values specified in a 'SampleLocationEXT' structure are always -- clamped to the implementation-dependent sample location coordinate range -- [@sampleLocationCoordinateRange@[0],@sampleLocationCoordinateRange@[1]]--- that /can/ be queried by adding a--- 'PhysicalDeviceSampleLocationsPropertiesEXT' structure to the @pNext@--- chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'.+-- that /can/ be queried using+-- 'PhysicalDeviceSampleLocationsPropertiesEXT'. -- -- = See Also --@@ -846,17 +846,15 @@ -- | VkPhysicalDeviceSampleLocationsPropertiesEXT - Structure describing -- sample location limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceSampleLocationsPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceSampleLocationsPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs view
@@ -132,6 +132,22 @@ -- | VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - Structure describing -- features supported by VK_EXT_shader_atomic_float --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderAtomicFloatFeaturesEXT' 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. 'PhysicalDeviceShaderAtomicFloatFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs view
@@ -50,13 +50,13 @@ -- 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+-- @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.+-- This is a better match for the “discard” instruction in HLSL. -- -- == New Structures --@@ -132,19 +132,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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) --
src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot view
@@ -50,13 +50,13 @@ -- 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+-- @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.+-- This is a better match for the “discard” instruction in HLSL. -- -- == New Structures --
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -140,6 +140,22 @@ -- | VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - Structure describing -- features supported by VK_EXT_shader_image_atomic_int64 --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the @VkPhysicalDeviceShaderAtomicInt64FeaturesEXT@ 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. @VkPhysicalDeviceShaderAtomicInt64FeaturesEXT@ /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs view
@@ -130,7 +130,7 @@ -- Most of the functionality in this extension is superseded by the core -- Vulkan 1.1 -- <VkPhysicalDeviceSubgroupProperties.html subgroup operations>. However,--- Vulkan 1.1 required the @OpGroupNonUniformBroadcast@ \"Id\" to be+-- 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>
src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs view
@@ -202,18 +202,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the feature.+-- 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 --@@ -297,17 +298,15 @@ -- | VkPhysicalDeviceSubgroupSizeControlPropertiesEXT - Structure describing -- the control subgroup size properties of an implementation ----- = Members------ The members of the 'PhysicalDeviceSubgroupSizeControlPropertiesEXT'--- structure describe the following properties:--- -- = Description -- -- If the 'PhysicalDeviceSubgroupSizeControlPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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@
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs view
@@ -128,18 +128,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT' /can/ also be included--- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the feature.+-- 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. 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -194,17 +195,15 @@ -- | VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT - Structure describing -- the texel buffer alignment requirements supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs view
@@ -174,18 +174,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.createDevice' to--- enable features.+-- 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) --
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -452,12 +452,13 @@ ("buffers" ::: Vector Buffer) -> -- | @pOffsets@ is a pointer to an array of buffer offsets. ("offsets" ::: Vector DeviceSize)- -> -- | @pSizes@ is an optional array of buffer sizes, specifying the maximum- -- number of bytes to capture to the corresponding transform feedback- -- buffer. If @pSizes@ is @NULL@, or the value of the @pSizes@ array- -- element is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', then the maximum- -- bytes captured will be the size of the corresponding buffer minus the- -- buffer offset.+ -> -- | @pSizes@ is @NULL@ or a pointer to an array of+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' buffer sizes, specifying the+ -- maximum number of bytes to capture to the corresponding transform+ -- feedback buffer. If @pSizes@ is @NULL@, or the value of the @pSizes@+ -- array element is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', then the+ -- maximum number of bytes captured will be the size of the corresponding+ -- buffer minus the buffer offset. ("sizes" ::: Vector DeviceSize) -> io () cmdBindTransformFeedbackBuffersEXT commandBuffer firstBinding buffers offsets sizes = liftIO . evalContT $ do@@ -608,26 +609,28 @@ -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0]. ("firstCounterBuffer" ::: Word32)- -> -- | @pCounterBuffers@ is an optional array of buffer handles to the counter- -- buffers which contain a 4 byte integer value representing the byte- -- offset from the start of the corresponding transform feedback buffer- -- from where to start capturing vertex data. If the byte offset stored to- -- the counter buffer location was done using 'cmdEndTransformFeedbackEXT'- -- it can be used to resume transform feedback from the previous location.- -- If @pCounterBuffers@ is @NULL@, then transform feedback will start+ -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of+ -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. Each buffer+ -- contains a 4 byte integer value representing the byte offset from the+ -- start of the corresponding transform feedback buffer from where to start+ -- capturing vertex data. If the byte offset stored to the counter buffer+ -- location was done using 'cmdEndTransformFeedbackEXT' it can be used to+ -- resume transform feedback from the previous location. If+ -- @pCounterBuffers@ is @NULL@, then transform feedback will start -- capturing vertex data to byte offset zero in all bound transform -- feedback buffers. For each element of @pCounterBuffers@ that is -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', transform feedback will start -- capturing vertex data to byte zero in the corresponding bound transform -- feedback buffer. ("counterBuffers" ::: Vector Buffer)- -> -- | @pCounterBufferOffsets@ is an optional array of offsets within each of- -- the @pCounterBuffers@ where the counter values were previously written.- -- The location in each counter buffer at these offsets /must/ be large- -- enough to contain 4 bytes of data. This data is the number of bytes- -- captured by the previous transform feedback to this buffer. If- -- @pCounterBufferOffsets@ is @NULL@, then it is assumed the offsets are- -- zero.+ -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets+ -- within each of the @pCounterBuffers@ where the counter values were+ -- previously written. The location in each counter buffer at these offsets+ -- /must/ be large enough to contain 4 bytes of data. This data is the+ -- number of bytes captured by the previous transform feedback to this+ -- buffer. If @pCounterBufferOffsets@ is @NULL@, then it is assumed the+ -- offsets are zero. ("counterBufferOffsets" ::: Vector DeviceSize) -> io () cmdBeginTransformFeedbackEXT commandBuffer firstCounterBuffer counterBuffers counterBufferOffsets = liftIO . evalContT $ do@@ -768,21 +771,24 @@ -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0]. ("firstCounterBuffer" ::: Word32)- -> -- | @pCounterBuffers@ is an optional array of buffer handles to the counter- -- buffers used to record the current byte positions of each transform+ -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of+ -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. The counter+ -- buffers are used to record the current byte positions of each transform -- feedback buffer where the next vertex output data would be captured. -- This /can/ be used by a subsequent 'cmdBeginTransformFeedbackEXT' call -- to resume transform feedback capture from this position. It can also be -- used by 'cmdDrawIndirectByteCountEXT' to determine the vertex count of -- the draw call. ("counterBuffers" ::: Vector Buffer)- -> -- | @pCounterBufferOffsets@ is an optional array of offsets within each of- -- the @pCounterBuffers@ where the counter values can be written. The- -- location in each counter buffer at these offsets /must/ be large enough- -- to contain 4 bytes of data. The data stored at this location is the byte- -- offset from the start of the transform feedback buffer binding where the- -- next vertex data would be written. If @pCounterBufferOffsets@ is @NULL@,- -- then it is assumed the offsets are zero.+ -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets+ -- within each of the @pCounterBuffers@ where the counter values can be+ -- written. The location in each counter buffer at these offsets /must/ be+ -- large enough to contain 4 bytes of data. The data stored at this+ -- location is the byte offset from the start of the transform feedback+ -- buffer binding where the next vertex data would be written. If+ -- @pCounterBufferOffsets@ is @NULL@, then it is assumed the offsets are+ -- zero. ("counterBufferOffsets" ::: Vector DeviceSize) -> io () cmdEndTransformFeedbackEXT commandBuffer firstCounterBuffer counterBuffers counterBufferOffsets = liftIO . evalContT $ do@@ -1159,8 +1165,9 @@ "dynamic" mkVkCmdDrawIndirectByteCountEXT :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndirectByteCountEXT - Draw primitives where the vertex count--- is derived from the counter byte value in the counter buffer+-- | vkCmdDrawIndirectByteCountEXT - Draw primitives with indirect parameters+-- where the vertex count is derived from the counter byte value in the+-- counter buffer -- -- = Description --@@ -1279,9 +1286,9 @@ -- - #VUID-vkCmdDrawIndirectByteCountEXT-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02859# There /must/ not -- have been any calls to dynamic state setting commands for any state@@ -1451,7 +1458,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1465,7 +1472,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1481,7 +1488,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -1564,7 +1571,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -1572,6 +1579,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-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-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1583,7 +1631,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -1605,6 +1653,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884# If the bound+-- graphics pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex -- shader entry point’s interface /must/ have either valid or@@ -1735,18 +1793,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTransformFeedbackFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceTransformFeedbackFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceTransformFeedbackFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceTransformFeedbackFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -1808,17 +1867,15 @@ -- | VkPhysicalDeviceTransformFeedbackPropertiesEXT - Structure describing -- transform feedback properties that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceTransformFeedbackPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceTransformFeedbackPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties.+-- 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) --
src/Vulkan/Extensions/VK_EXT_validation_cache.hs view
@@ -420,15 +420,16 @@ -- @pDataSize@. Otherwise, @pDataSize@ /must/ point to a variable set by -- the user to the size of the buffer, in bytes, pointed to by @pData@, and -- on return the variable is overwritten with the amount of data actually--- written to @pData@.+-- written to @pData@. If @pDataSize@ is less than the maximum size that+-- /can/ be retrieved by the validation cache, at most @pDataSize@ bytes+-- will be written to @pData@, and 'getValidationCacheDataEXT' will return+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all of the+-- validation cache was returned. ----- If @pDataSize@ is less than the maximum size that /can/ be retrieved by--- the validation cache, at most @pDataSize@ bytes will be written to--- @pData@, and 'getValidationCacheDataEXT' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'. Any data written to @pData@ is--- valid and /can/ be provided as the @pInitialData@ member of the--- 'ValidationCacheCreateInfoEXT' structure passed to--- 'createValidationCacheEXT'.+-- Any data written to @pData@ is valid and /can/ be provided as the+-- @pInitialData@ member of the 'ValidationCacheCreateInfoEXT' structure+-- passed to 'createValidationCacheEXT'. -- -- Two calls to 'getValidationCacheDataEXT' with the same parameters /must/ -- retrieve the same data unless a command that modifies the contents of
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs view
@@ -356,17 +356,15 @@ -- describing max value of vertex attribute divisor that can be supported -- by an implementation ----- = Members------ The members of the 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -419,15 +417,21 @@ -- | VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - Structure describing -- if fetching of vertex attribute may be repeated for instanced rendering --+-- = Members+--+-- This structure describes the following features:+-- -- = Description -- -- If the 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating the implementation-dependent--- behavior. 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' /can/ also--- be included in @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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. 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --
+ src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs view
@@ -0,0 +1,601 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_vertex_input_dynamic_state - device extension+--+-- == VK_EXT_vertex_input_dynamic_state+--+-- [__Name String__]+-- @VK_EXT_vertex_input_dynamic_state@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 353+--+-- [__Revision__]+-- 2+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Piers Daniell+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_vertex_input_dynamic_state:%20&body=@pdaniell-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-08-21+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jeff Bolz, NVIDIA+--+-- - Spencer Fricke, Samsung+--+-- - Stu Smith, AMD+--+-- == Description+--+-- One of the states that contributes to the combinatorial explosion of+-- pipeline state objects that need to be created, is the vertex input+-- binding and attribute descriptions. By allowing them to be dynamic+-- applications may reduce the number of pipeline objects they need to+-- create.+--+-- This extension adds dynamic state support for what is normally static+-- state in 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo'.+--+-- == New Commands+--+-- - 'cmdSetVertexInputEXT'+--+-- == New Structures+--+-- - 'VertexInputAttributeDescription2EXT'+--+-- - 'VertexInputBindingDescription2EXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME'+--+-- - 'EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'+--+-- == Version History+--+-- - Revision 2, 2020-11-05 (Piers Daniell)+--+-- - Make 'VertexInputBindingDescription2EXT' extensible+--+-- - Add new 'VertexInputAttributeDescription2EXT' struct for the+-- @pVertexAttributeDescriptions@ parameter to+-- 'cmdSetVertexInputEXT' so it is also extensible+--+-- - Revision 1, 2020-08-21 (Piers Daniell)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT',+-- 'VertexInputAttributeDescription2EXT',+-- 'VertexInputBindingDescription2EXT', 'cmdSetVertexInputEXT'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state ( cmdSetVertexInputEXT+ , PhysicalDeviceVertexInputDynamicStateFeaturesEXT(..)+ , VertexInputBindingDescription2EXT(..)+ , VertexInputAttributeDescription2EXT(..)+ , EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION+ , pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION+ , EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME+ , pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+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 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.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetVertexInputEXT))+import Vulkan.Core10.Enums.Format (Format)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetVertexInputEXT+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr VertexInputBindingDescription2EXT -> Word32 -> Ptr VertexInputAttributeDescription2EXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr VertexInputBindingDescription2EXT -> Word32 -> Ptr VertexInputAttributeDescription2EXT -> IO ()++-- | vkCmdSetVertexInputEXT - Set the dynamic vertex input state+--+-- = Description+--+-- This command sets the vertex input attribute and vertex input binding+-- descriptions state for subsequent drawing commands.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetVertexInputEXT-None-04790# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791#+-- @vertexBindingDescriptionCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792#+-- @vertexAttributeDescriptionCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@+--+-- - #VUID-vkCmdSetVertexInputEXT-binding-04793# For every @binding@+-- specified by each element of @pVertexAttributeDescriptions@, a+-- 'VertexInputBindingDescription2EXT' /must/ exist in+-- @pVertexBindingDescriptions@ with the same value of @binding@+--+-- - #VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794# All+-- elements of @pVertexBindingDescriptions@ /must/ describe distinct+-- binding numbers+--+-- - #VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795# All+-- elements of @pVertexAttributeDescriptions@ /must/ describe distinct+-- attribute locations+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameter#+-- If @vertexBindingDescriptionCount@ is not @0@,+-- @pVertexBindingDescriptions@ /must/ be a valid pointer to an array+-- of @vertexBindingDescriptionCount@ valid+-- 'VertexInputBindingDescription2EXT' structures+--+-- - #VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameter#+-- If @vertexAttributeDescriptionCount@ is not @0@,+-- @pVertexAttributeDescriptions@ /must/ be a valid pointer to an array+-- of @vertexAttributeDescriptionCount@ valid+-- 'VertexInputAttributeDescription2EXT' structures+--+-- - #VUID-vkCmdSetVertexInputEXT-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-vkCmdSetVertexInputEXT-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> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Both | Graphics | |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'VertexInputAttributeDescription2EXT',+-- 'VertexInputBindingDescription2EXT'+cmdSetVertexInputEXT :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pVertexBindingDescriptions@ is a pointer to an array of+ -- 'VertexInputBindingDescription2EXT' structures.+ ("vertexBindingDescriptions" ::: Vector VertexInputBindingDescription2EXT)+ -> -- | @pVertexAttributeDescriptions@ is a pointer to an array of+ -- 'VertexInputAttributeDescription2EXT' structures.+ ("vertexAttributeDescriptions" ::: Vector VertexInputAttributeDescription2EXT)+ -> io ()+cmdSetVertexInputEXT commandBuffer vertexBindingDescriptions vertexAttributeDescriptions = liftIO . evalContT $ do+ let vkCmdSetVertexInputEXTPtr = pVkCmdSetVertexInputEXT (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdSetVertexInputEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetVertexInputEXT is null" Nothing Nothing+ let vkCmdSetVertexInputEXT' = mkVkCmdSetVertexInputEXT vkCmdSetVertexInputEXTPtr+ pPVertexBindingDescriptions <- ContT $ allocaBytesAligned @VertexInputBindingDescription2EXT ((Data.Vector.length (vertexBindingDescriptions)) * 32) 8+ lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDescriptions `plusPtr` (32 * (i)) :: Ptr VertexInputBindingDescription2EXT) (e)) (vertexBindingDescriptions)+ pPVertexAttributeDescriptions <- ContT $ allocaBytesAligned @VertexInputAttributeDescription2EXT ((Data.Vector.length (vertexAttributeDescriptions)) * 32) 8+ lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexAttributeDescriptions `plusPtr` (32 * (i)) :: Ptr VertexInputAttributeDescription2EXT) (e)) (vertexAttributeDescriptions)+ lift $ traceAroundEvent "vkCmdSetVertexInputEXT" (vkCmdSetVertexInputEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32)) (pPVertexBindingDescriptions) ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32)) (pPVertexAttributeDescriptions))+ pure $ ()+++-- | VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - Structure+-- describing whether the dynamic vertex input state can be used+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT' 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. 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVertexInputDynamicStateFeaturesEXT = PhysicalDeviceVertexInputDynamicStateFeaturesEXT+ { -- | #features-vertexInputDynamicState# @vertexInputDynamicState@ indicates+ -- that the implementation supports the following dynamic states:+ --+ -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+ vertexInputDynamicState :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceVertexInputDynamicStateFeaturesEXT++instance ToCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceVertexInputDynamicStateFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (vertexInputDynamicState))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+ peekCStruct p = do+ vertexInputDynamicState <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceVertexInputDynamicStateFeaturesEXT+ (bool32ToBool vertexInputDynamicState)++instance Storable PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+ zero = PhysicalDeviceVertexInputDynamicStateFeaturesEXT+ zero+++-- | VkVertexInputBindingDescription2EXT - Structure specifying the extended+-- vertex input binding description+--+-- == Valid Usage+--+-- - #VUID-VkVertexInputBindingDescription2EXT-binding-04796# @binding@+-- /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-VkVertexInputBindingDescription2EXT-stride-04797# @stride@+-- /must/ be less than or equal to+-- '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>+-- 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>+-- feature is not enabled, @divisor@ /must/ be @1@+--+-- - #VUID-VkVertexInputBindingDescription2EXT-divisor-04800# @divisor@+-- /must/ be a value between @0@ and+-- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@,+-- inclusive+--+-- - #VUID-VkVertexInputBindingDescription2EXT-divisor-04801# If+-- @divisor@ is not @1@ then @inputRate@ /must/ be of type+-- 'Vulkan.Core10.Enums.VertexInputRate.VERTEX_INPUT_RATE_INSTANCE'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkVertexInputBindingDescription2EXT-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'+--+-- - #VUID-VkVertexInputBindingDescription2EXT-inputRate-parameter#+-- @inputRate@ /must/ be a valid+-- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate',+-- 'cmdSetVertexInputEXT'+data VertexInputBindingDescription2EXT = VertexInputBindingDescription2EXT+ { -- | @binding@ is the binding number that this structure describes.+ binding :: Word32+ , -- | @stride@ is the distance in bytes between two consecutive elements+ -- within the buffer.+ stride :: Word32+ , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'+ -- value specifying whether vertex attribute addressing is a function of+ -- the vertex index or of the instance index.+ inputRate :: VertexInputRate+ , -- | @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>+ -- 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>+ -- feature is enabled. In this case, the same vertex attribute will be+ -- applied to all instances.+ divisor :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (VertexInputBindingDescription2EXT)+#endif+deriving instance Show VertexInputBindingDescription2EXT++instance ToCStruct VertexInputBindingDescription2EXT where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p VertexInputBindingDescription2EXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (binding)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (stride)+ poke ((p `plusPtr` 24 :: Ptr VertexInputRate)) (inputRate)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (divisor)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_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 VertexInputRate)) (zero)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+ f++instance FromCStruct VertexInputBindingDescription2EXT where+ peekCStruct p = do+ binding <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ stride <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ inputRate <- peek @VertexInputRate ((p `plusPtr` 24 :: Ptr VertexInputRate))+ divisor <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+ pure $ VertexInputBindingDescription2EXT+ binding stride inputRate divisor++instance Storable VertexInputBindingDescription2EXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero VertexInputBindingDescription2EXT where+ zero = VertexInputBindingDescription2EXT+ zero+ zero+ zero+ zero+++-- | VkVertexInputAttributeDescription2EXT - Structure specifying the+-- extended vertex input attribute description+--+-- == Valid Usage+--+-- - #VUID-VkVertexInputAttributeDescription2EXT-location-04802#+-- @location@ /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@+--+-- - #VUID-VkVertexInputAttributeDescription2EXT-binding-04803# @binding@+-- /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-VkVertexInputAttributeDescription2EXT-offset-04804# @offset@+-- /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@+--+-- - #VUID-VkVertexInputAttributeDescription2EXT-format-04805# @format@+-- /must/ be allowed as a vertex buffer format, as specified by the+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'+-- flag in+-- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@+-- returned by+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+--+-- - #VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806#+-- If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@vertexAttributeAccessBeyondStride@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', the sum of @offset@ plus+-- the size of the vertex attribute data described by @format@ /must/+-- not be greater than @stride@ in the+-- 'VertexInputBindingDescription2EXT' referenced in @binding@.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkVertexInputAttributeDescription2EXT-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT'+--+-- - #VUID-VkVertexInputAttributeDescription2EXT-format-parameter#+-- @format@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdSetVertexInputEXT'+data VertexInputAttributeDescription2EXT = VertexInputAttributeDescription2EXT+ { -- | @location@ is the shader input location number for this attribute.+ location :: Word32+ , -- | @binding@ is the binding number which this attribute takes its data+ -- from.+ binding :: Word32+ , -- | @format@ is the size and type of the vertex attribute data.+ format :: Format+ , -- | @offset@ is a byte offset of this attribute relative to the start of an+ -- element in the vertex input binding.+ offset :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (VertexInputAttributeDescription2EXT)+#endif+deriving instance Show VertexInputAttributeDescription2EXT++instance ToCStruct VertexInputAttributeDescription2EXT where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p VertexInputAttributeDescription2EXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (location)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (binding)+ poke ((p `plusPtr` 24 :: Ptr Format)) (format)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (offset)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_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 Format)) (zero)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+ f++instance FromCStruct VertexInputAttributeDescription2EXT where+ peekCStruct p = do+ location <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ binding <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ format <- peek @Format ((p `plusPtr` 24 :: Ptr Format))+ offset <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+ pure $ VertexInputAttributeDescription2EXT+ location binding format offset++instance Storable VertexInputAttributeDescription2EXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero VertexInputAttributeDescription2EXT where+ zero = VertexInputAttributeDescription2EXT+ zero+ zero+ zero+ zero+++type EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION"+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION = 2+++type EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state"++-- No documentation found for TopLevel "VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME"+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state"+
+ src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot view
@@ -0,0 +1,150 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_vertex_input_dynamic_state - device extension+--+-- == VK_EXT_vertex_input_dynamic_state+--+-- [__Name String__]+-- @VK_EXT_vertex_input_dynamic_state@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 353+--+-- [__Revision__]+-- 2+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Piers Daniell+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_vertex_input_dynamic_state:%20&body=@pdaniell-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-08-21+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jeff Bolz, NVIDIA+--+-- - Spencer Fricke, Samsung+--+-- - Stu Smith, AMD+--+-- == Description+--+-- One of the states that contributes to the combinatorial explosion of+-- pipeline state objects that need to be created, is the vertex input+-- binding and attribute descriptions. By allowing them to be dynamic+-- applications may reduce the number of pipeline objects they need to+-- create.+--+-- This extension adds dynamic state support for what is normally static+-- state in 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo'.+--+-- == New Commands+--+-- - 'cmdSetVertexInputEXT'+--+-- == New Structures+--+-- - 'VertexInputAttributeDescription2EXT'+--+-- - 'VertexInputBindingDescription2EXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME'+--+-- - 'EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'+--+-- == Version History+--+-- - Revision 2, 2020-11-05 (Piers Daniell)+--+-- - Make 'VertexInputBindingDescription2EXT' extensible+--+-- - Add new 'VertexInputAttributeDescription2EXT' struct for the+-- @pVertexAttributeDescriptions@ parameter to+-- 'cmdSetVertexInputEXT' so it is also extensible+--+-- - Revision 1, 2020-08-21 (Piers Daniell)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT',+-- 'VertexInputAttributeDescription2EXT',+-- 'VertexInputBindingDescription2EXT', 'cmdSetVertexInputEXT'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state ( PhysicalDeviceVertexInputDynamicStateFeaturesEXT+ , VertexInputAttributeDescription2EXT+ , VertexInputBindingDescription2EXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceVertexInputDynamicStateFeaturesEXT++instance ToCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT+instance Show PhysicalDeviceVertexInputDynamicStateFeaturesEXT++instance FromCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT+++data VertexInputAttributeDescription2EXT++instance ToCStruct VertexInputAttributeDescription2EXT+instance Show VertexInputAttributeDescription2EXT++instance FromCStruct VertexInputAttributeDescription2EXT+++data VertexInputBindingDescription2EXT++instance ToCStruct VertexInputBindingDescription2EXT+instance Show VertexInputBindingDescription2EXT++instance FromCStruct VertexInputBindingDescription2EXT+
+ src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs view
@@ -0,0 +1,214 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_ycbcr_2plane_444_formats - device extension+--+-- == VK_EXT_ycbcr_2plane_444_formats+--+-- [__Name String__]+-- @VK_EXT_ycbcr_2plane_444_formats@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 331+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_sampler_ycbcr_conversion@+--+-- [__Contact__]+--+-- - Tony Zlatinski+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_ycbcr_2plane_444_formats:%20&body=@tzlatinski%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-07-28+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Piers Daniell, NVIDIA+--+-- - Ping Liu, Intel+--+-- == Description+--+-- This extension adds some Y′CBCR formats that are in common use for video+-- encode and decode, but were not part of the+-- <VK_KHR_sampler_ycbcr_conversion.html VK_KHR_sampler_ycbcr_conversion>+-- extension.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME'+--+-- - 'EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.Format.Format':+--+-- - 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+--+-- - 'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+--+-- - 'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+--+-- - 'Vulkan.Core10.Enums.Format.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'+--+-- == Version History+--+-- - Revision 1, 2020-03-08 (Piers Daniell)+--+-- - Initial draft+--+-- = See Also+--+-- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- = 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>+--+-- 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(..)+ , EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION+ , pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION+ , EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME+ , pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+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_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT))+-- | VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - Structure describing+-- whether the implementation supports additional 2-plane 444 Y′CBCR+-- formats+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT' 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. 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+ { -- | #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_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+ --+ -- - 'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+ ycbcr2plane444Formats :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT++instance ToCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (ycbcr2plane444Formats))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+ peekCStruct p = do+ ycbcr2plane444Formats <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+ (bool32ToBool ycbcr2plane444Formats)++instance Storable PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+ zero = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+ zero+++type EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION"+pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION = 1+++type EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME = "VK_EXT_ycbcr_2plane_444_formats"++-- No documentation found for TopLevel "VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME"+pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME = "VK_EXT_ycbcr_2plane_444_formats"+
+ src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot view
@@ -0,0 +1,109 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_ycbcr_2plane_444_formats - device extension+--+-- == VK_EXT_ycbcr_2plane_444_formats+--+-- [__Name String__]+-- @VK_EXT_ycbcr_2plane_444_formats@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 331+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_sampler_ycbcr_conversion@+--+-- [__Contact__]+--+-- - Tony Zlatinski+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_ycbcr_2plane_444_formats:%20&body=@tzlatinski%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-07-28+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Piers Daniell, NVIDIA+--+-- - Ping Liu, Intel+--+-- == Description+--+-- This extension adds some Y′CBCR formats that are in common use for video+-- encode and decode, but were not part of the+-- <VK_KHR_sampler_ycbcr_conversion.html VK_KHR_sampler_ycbcr_conversion>+-- extension.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME'+--+-- - 'EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.Format.Format':+--+-- - 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+--+-- - 'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+--+-- - 'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+--+-- - 'Vulkan.Core10.Enums.Format.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'+--+-- == Version History+--+-- - Revision 1, 2020-03-08 (Piers Daniell)+--+-- - Initial draft+--+-- = See Also+--+-- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- = 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>+--+-- 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) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT++instance ToCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+instance Show PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT++instance FromCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs view
@@ -108,23 +108,24 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT)) -- | VkPhysicalDeviceYcbcrImageArraysFeaturesEXT - Structure describing--- extended Y’CbCr image creation features that can be supported by an+-- extended Y′CBCR image creation features that can be supported by an -- implementation -- -- = Members ----- The members of the 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs view
@@ -207,7 +207,7 @@ -- 'Vulkan.Core10.Handles.Device', 'MemoryGetZirconHandleInfoFUCHSIA' getMemoryZirconHandleFUCHSIA :: forall io . (MonadIO io)- => -- | @device@ is the VkDevice.+ => -- | @device@ is the 'Vulkan.Core10.Handles.Device'. -- -- #VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter# @device@ /must/ -- be a valid 'Vulkan.Core10.Handles.Device' handle@@ -260,12 +260,14 @@ -- 'MemoryZirconHandlePropertiesFUCHSIA' getMemoryZirconHandlePropertiesFUCHSIA :: forall io . (MonadIO io)- => -- | @device@ is the VkDevice.+ => -- | @device@ is the 'Vulkan.Core10.Handles.Device'. -- -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter# -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle Device- -> -- | @handleType@ is the type of @zirconHandle@+ -> -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of @zirconHandle@ -- -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773# -- @handleType@ /must/ be@@ -323,7 +325,9 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryZirconHandleInfoFUCHSIA = ImportMemoryZirconHandleInfoFUCHSIA- { -- | @handleType@ is the type of @handle@.+ { -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of @handle@. handleType :: ExternalMemoryHandleTypeFlagBits , -- | @handle@ is a @zx_handle_t@ (Zircon) handle to the external memory. handle :: Zx_handle_t@@ -436,8 +440,10 @@ -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter# @memory@ -- /must/ be a valid 'Vulkan.Core10.Handles.DeviceMemory' handle memory :: DeviceMemory- , -- | @handleType@ is the type of the handle pointed to by @pZirconHandle@ as- -- retrieved by the call to 'getMemoryZirconHandleFUCHSIA'.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of the handle pointed to by+ -- 'getMemoryZirconHandleFUCHSIA'::@pZirconHandle@. -- -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775# @handleType@ -- /must/ be
src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs view
@@ -391,7 +391,9 @@ -- specifying additional parameters for the semaphore payload import -- operation. flags :: SemaphoreImportFlags- , -- | @handleType@ specifies the type of @zirconHandle@.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+ -- value specifying the type of @zirconHandle@. handleType :: ExternalSemaphoreHandleTypeFlagBits , -- | @zirconHandle@ is the external handle to import. zirconHandle :: Zx_handle_t@@ -518,7 +520,9 @@ data SemaphoreGetZirconHandleInfoFUCHSIA = SemaphoreGetZirconHandleInfoFUCHSIA { -- | @semaphore@ is the semaphore from which state will be exported. semaphore :: Semaphore- , -- | @handleType@ is the type of handle requested.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+ -- value specifying the type of handle requested. handleType :: ExternalSemaphoreHandleTypeFlagBits } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs view
@@ -254,7 +254,7 @@ , -- | @imagePipeHandle@ is a @zx_handle_t@ referring to the ImagePipe to -- associate with the surface. --- -- #VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-00000#+ -- #VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863# -- @imagePipeHandle@ /must/ be a valid @zx_handle_t@ imagePipeHandle :: Zx_handle_t }
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs view
@@ -279,12 +279,10 @@ -- with the number of structures actually written to -- @pPresentationTimings@. If the value of @pPresentationTimingCount@ is -- less than the number of newly-available timing records, at most--- @pPresentationTimingCount@ structures will be written. If--- @pPresentationTimingCount@ is smaller than the number of newly-available--- timing records for the given @swapchain@,+-- @pPresentationTimingCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all the--- available values were returned.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available timing records were returned. -- -- == Valid Usage (Implicit) --@@ -602,6 +600,10 @@ -- | VkPresentTimeGOOGLE - The earliest time image should be presented --+-- = Description+--+-- > but does not need a specific pname:desiredPresentTime.+-- -- = See Also -- -- 'PresentTimesInfoGOOGLE'@@ -618,7 +620,7 @@ -- (e.g. @CLOCK_MONOTONIC@ (see clock_gettime(2)) on Android and Linux). A -- value of zero specifies that the presentation engine /may/ display the -- image at any time. This is useful when the application desires to- -- provide @presentID@, but does not need a specific @desiredPresentTime@.+ -- provide @presentID@, desiredPresentTime :: Word64 } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_INTEL_performance_query.hs view
@@ -1310,7 +1310,7 @@ zero --- | VkPerformanceOverrideInfoINTEL - Performance override info+-- | VkPerformanceOverrideInfoINTEL - Performance override information -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs view
@@ -127,18 +127,21 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description ----- If the 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- If the @VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures@.+-- 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.+-- @VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures@. /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -466,7 +466,7 @@ -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV' -- → 'AccelerationStructureCreateInfoKHR' (reshuffle geometry--- layout\/info)+-- layout\/information) -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV' -- → 'PhysicalDeviceAccelerationStructurePropertiesKHR' (for@@ -486,7 +486,7 @@ -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.createAccelerationStructureNV' -- → 'createAccelerationStructureKHR' (device address, different--- geometry layout\/info)+-- geometry layout\/information) -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureMemoryRequirementsNV' -- (deleted - replaced by allocating on top of@@ -755,7 +755,7 @@ -- -- - add a new -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'--- buffer usage such buffers+-- buffer usage for such buffers -- -- - add a new 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' acceleration -- structure type for layering@@ -786,12 +786,12 @@ -- -- (5) What is 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' for? ----- RESOLVED: It is primarily intended for API layering. In DXR, the+-- __RESOLVED__: It is primarily intended for API layering. In DXR, the -- acceleration structure is basically just a buffer in a special layout, -- and you don’t know at creation time whether it will be used as a top or -- bottom level acceleration structure. We thus added a generic -- acceleration structure type whose type is unknown at creation time, but--- is specified at build type instead. Applications which are written+-- is specified at build time instead. Applications which are written -- directly for Vulkan should not use it. -- -- == Version History@@ -815,7 +815,7 @@ -- better match its type (!3523) -- -- - Allow VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS for pipeline--- creation if shader group handles cannot be re-used. (!3523)+-- creation if shader group handles cannot be reused (!3523) -- -- - update documentation for the -- VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS error code and add@@ -1429,7 +1429,7 @@ -- 'Vulkan.Core10.Handles.Device' destroyAccelerationStructureKHR :: forall io . (MonadIO io)- => -- | @device@ is the logical device that destroys the buffer.+ => -- | @device@ is the logical device that destroys the acceleration structure. Device -> -- | @accelerationStructure@ is the acceleration structure to destroy. AccelerationStructureKHR@@ -1461,7 +1461,7 @@ -- -- = Description ----- Accesses to @pInfo@->@src@ and @pInfo@->@dst@ /must/ be+-- 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> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -1477,10 +1477,10 @@ -- == Valid Usage -- -- - #VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737# The @buffer@--- used to create @pInfo@->@src@ /must/ be bound to device memory+-- used to create @pInfo->src@ /must/ be bound to device memory -- -- - #VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738# The @buffer@--- used to create @pInfo@->@dst@ /must/ be bound to device memory+-- used to create @pInfo->dst@ /must/ be bound to device memory -- -- == Valid Usage (Implicit) --@@ -1571,12 +1571,10 @@ -- @deferredOperation@ /must/ be complete -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03727# The @buffer@ used--- to create @pInfo@->@src@ /must/ be bound to host-visible device--- memory+-- to create @pInfo->src@ /must/ be bound to host-visible device memory -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03728# The @buffer@ used--- to create @pInfo@->@dst@ /must/ be bound to host-visible device--- memory+-- to create @pInfo->dst@ /must/ be bound to host-visible device memory -- -- - #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582# -- The@@ -1584,11 +1582,11 @@ -- feature /must/ be enabled -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used--- to create @pInfo@->@src@ /must/ be bound to memory that was not+-- to create @pInfo->src@ /must/ be bound to memory that was not -- allocated with multiple instances -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03781# The @buffer@ used--- to create @pInfo@->@dst@ /must/ be bound to memory that was not+-- to create @pInfo->dst@ /must/ be bound to memory that was not -- allocated with multiple instances -- -- == Valid Usage (Implicit)@@ -1666,7 +1664,7 @@ -- -- = Description ----- Accesses to @pInfo@->@src@ /must/ be+-- Accesses to @pInfo->src@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -1675,8 +1673,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-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 synchronized with the+-- Accesses to the buffer indicated by @pInfo->dst.deviceAddress@ /must/ be+-- synchronized with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage and an access type of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'.@@ -1722,19 +1720,19 @@ -- == Valid Usage -- -- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739#--- @pInfo@->@dst.deviceAddress@ /must/ be a valid device address for a--- buffer bound to device memory.+-- @pInfo->dst.deviceAddress@ /must/ be a valid device address for a+-- buffer bound to device memory -- -- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740#--- @pInfo@->@dst.deviceAddress@ /must/ be aligned to @256@ bytes+-- @pInfo->dst.deviceAddress@ /must/ be aligned to @256@ bytes -- -- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741# If the--- buffer pointed to by @pInfo@->@dst.deviceAddress@ is non-sparse then+-- buffer pointed to by @pInfo->dst.deviceAddress@ is non-sparse then -- it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object -- -- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559# The--- @buffer@ used to create @pInfo@->@src@ /must/ be bound to device+-- @buffer@ used to create @pInfo->src@ /must/ be bound to device -- memory -- -- == Valid Usage (Implicit)@@ -1834,14 +1832,14 @@ -- @deferredOperation@ /must/ be complete -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731# The--- @buffer@ used to create @pInfo@->@src@ /must/ be bound to--- host-visible device memory+-- @buffer@ used to create @pInfo->src@ /must/ be bound to host-visible+-- device memory -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732#--- @pInfo@->@dst.hostAddress@ /must/ be a valid host pointer+-- @pInfo->dst.hostAddress@ /must/ be a valid host pointer -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751#--- @pInfo@->@dst.hostAddress@ /must/ be aligned to 16 bytes+-- @pInfo->dst.hostAddress@ /must/ be aligned to 16 bytes -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584# -- The@@ -1849,8 +1847,8 @@ -- feature /must/ be enabled -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783# The--- @buffer@ used to create @pInfo@->@src@ /must/ be bound to memory--- that was not allocated with multiple instances+-- @buffer@ used to create @pInfo->src@ /must/ be bound to memory that+-- was not allocated with multiple instances -- -- == Valid Usage (Implicit) --@@ -1893,7 +1891,7 @@ -- 'Vulkan.Core10.Handles.Device' copyAccelerationStructureToMemoryKHR :: forall io . (MonadIO io)- => -- | @device@ is the device which owns @pInfo@->@src@.+ => -- | @device@ is the device which owns @pInfo->src@. Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to@@ -1927,7 +1925,7 @@ -- -- = Description ----- Accesses to @pInfo@->@dst@ /must/ be+-- Accesses to @pInfo->dst@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -1936,8 +1934,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-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 synchronized with the+-- Accesses to the buffer indicated by @pInfo->src.deviceAddress@ /must/ be+-- synchronized with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage and an access type of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_READ_BIT'.@@ -1955,19 +1953,19 @@ -- == Valid Usage -- -- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742#--- @pInfo@->@src.deviceAddress@ /must/ be a valid device address for a+-- @pInfo->src.deviceAddress@ /must/ be a valid device address for a -- buffer bound to device memory. -- -- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743#--- @pInfo@->@src.deviceAddress@ /must/ be aligned to @256@ bytes+-- @pInfo->src.deviceAddress@ /must/ be aligned to @256@ bytes -- -- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744# If the--- buffer pointed to by @pInfo@->@src.deviceAddress@ is non-sparse then+-- buffer pointed to by @pInfo->src.deviceAddress@ is non-sparse then -- it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object -- -- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745# The--- @buffer@ used to create @pInfo@->@dst@ /must/ be bound to device+-- @buffer@ used to create @pInfo->dst@ /must/ be bound to device -- memory -- -- == Valid Usage (Implicit)@@ -2063,14 +2061,14 @@ -- @deferredOperation@ /must/ be complete -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729#--- @pInfo@->@src.hostAddress@ /must/ be a valid host pointer+-- @pInfo->src.hostAddress@ /must/ be a valid host pointer -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750#--- @pInfo@->@src.hostAddress@ /must/ be aligned to 16 bytes+-- @pInfo->src.hostAddress@ /must/ be aligned to 16 bytes -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730# The--- @buffer@ used to create @pInfo@->@dst@ /must/ be bound to--- host-visible device memory+-- @buffer@ used to create @pInfo->dst@ /must/ be bound to host-visible+-- device memory -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583# -- The@@ -2078,8 +2076,8 @@ -- feature /must/ be enabled -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782# The--- @buffer@ used to create @pInfo@->@dst@ /must/ be bound to memory--- that was not allocated with multiple instances+-- @buffer@ used to create @pInfo->dst@ /must/ be bound to memory that+-- was not allocated with multiple instances -- -- == Valid Usage (Implicit) --@@ -2181,6 +2179,10 @@ -- The @buffer@ used to create each acceleration structure in -- @pAccelerationStructures@ /must/ be bound to device memory --+-- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880# The+-- sum of @query@ plus @accelerationStructureCount@ /must/ be less than+-- or equal to the number of queries in @queryPool@+-- -- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431# -- All acceleration structures in @pAccelerationStructures@ /must/ have -- been built with@@ -2407,8 +2409,8 @@ => -- | @device@ is the device which owns the acceleration structures in -- @pAccelerationStructures@. Device- -> -- | @pAccelerationStructures@ points to an array of existing previously- -- built acceleration structures.+ -> -- | @pAccelerationStructures@ is a pointer to an array of existing+ -- previously built acceleration structures. ("accelerationStructures" ::: Vector AccelerationStructureKHR) -> -- | @queryType@ is a 'Vulkan.Core10.Enums.QueryType.QueryType' value -- specifying the property to be queried.@@ -2473,8 +2475,8 @@ . (MonadIO io) => -- | @device@ is the device to check the version against. Device- -> -- | @pVersionInfo@ points to the 'AccelerationStructureVersionInfoKHR'- -- version information to check against the device.+ -> -- | @pVersionInfo@ is a pointer to a 'AccelerationStructureVersionInfoKHR'+ -- structure specifying version information to check against the device. AccelerationStructureVersionInfoKHR -> io (AccelerationStructureCompatibilityKHR) getDeviceAccelerationStructureCompatibilityKHR device versionInfo = liftIO . evalContT $ do@@ -2643,7 +2645,7 @@ -- the builds. -- -- Accesses to the acceleration structure scratch buffers as identified by--- the 'AccelerationStructureBuildGeometryInfoKHR'→@scratchData@ buffer+-- the 'AccelerationStructureBuildGeometryInfoKHR'::@scratchData@ buffer -- device addresses /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the@@ -2656,16 +2658,16 @@ -- or -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'. -- Similarly for accesses to each--- 'AccelerationStructureBuildGeometryInfoKHR'→@srcAccelerationStructure@+-- 'AccelerationStructureBuildGeometryInfoKHR'::@srcAccelerationStructure@ -- and--- 'AccelerationStructureBuildGeometryInfoKHR'→@dstAccelerationStructure@.+-- 'AccelerationStructureBuildGeometryInfoKHR'::@dstAccelerationStructure@. -- -- Accesses to other input buffers as identified by any used values of--- 'AccelerationStructureGeometryTrianglesDataKHR'→@vertexData@,--- 'AccelerationStructureGeometryTrianglesDataKHR'→@indexData@,--- 'AccelerationStructureGeometryTrianglesDataKHR'→@transformData@,--- 'AccelerationStructureGeometryAabbsDataKHR'→@data@, and--- 'AccelerationStructureGeometryInstancesDataKHR'→@data@ /must/ be+-- 'AccelerationStructureGeometryTrianglesDataKHR'::@vertexData@,+-- 'AccelerationStructureGeometryTrianglesDataKHR'::@indexData@,+-- '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> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -2785,12 +2787,6 @@ -- 'GEOMETRY_TYPE_INSTANCES_KHR' in any other element of @pInfos@, -- which is accessed by this command ----- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03666# For each--- element of @pInfos@, if its @mode@ member is--- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its--- @srcAccelerationStructure@ member /must/ not be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'--- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667# For each -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its@@ -2811,19 +2807,19 @@ -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @geometryCount@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03759# For each -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @flags@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03760# For each -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @type@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03761# For each -- element of @pInfos@, if its @mode@ member is@@ -2831,7 +2827,7 @@ -- 'AccelerationStructureGeometryKHR' structure referred to by its -- @pGeometries@ or @ppGeometries@ members, its @geometryType@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03762# For each -- element of @pInfos@, if its @mode@ member is@@ -2839,7 +2835,7 @@ -- 'AccelerationStructureGeometryKHR' structure referred to by its -- @pGeometries@ or @ppGeometries@ members, its @flags@ member /must/ -- have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03763# For each -- element of @pInfos@, if its @mode@ member is@@ -2848,7 +2844,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.vertexFormat@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03764# For each -- element of @pInfos@, if its @mode@ member is@@ -2857,7 +2853,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.maxVertex@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03765# For each -- element of @pInfos@, if its @mode@ member is@@ -2866,7 +2862,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.indexType@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03766# For each -- element of @pInfos@, if its @mode@ member is@@ -2875,7 +2871,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', if its -- @geometry.triangles.transformData@ member was NULL when--- @srcAccelerationStructure@ was last built, then it must be NULL.+-- @srcAccelerationStructure@ was last built, then it /must/ be NULL -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03767# For each -- element of @pInfos@, if its @mode@ member is@@ -2884,7 +2880,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', if its -- @geometry.triangles.transformData@ member was not NULL when--- @srcAccelerationStructure@ was last built, then it may not be NULL.+-- @srcAccelerationStructure@ was last built, then it may not be NULL -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768# For each -- element of @pInfos@, if its @mode@ member is@@ -2893,20 +2889,20 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', and @geometry.triangles.indexType@ is -- not 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR', then the--- value of each index referenced index must be the same as the+-- value of each index referenced /must/ be the same as the -- corresponding index value when @srcAccelerationStructure@ was last--- built.+-- built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769# For -- each 'AccelerationStructureBuildRangeInfoKHR' referenced by this -- command, its @primitiveCount@ member /must/ have the same value--- which was specified when @srcAccelerationStructure@ was last built.+-- which was specified when @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770# For -- each 'AccelerationStructureBuildRangeInfoKHR' referenced by this -- command, if the corresponding geometry uses indices, its -- @firstVertex@ member /must/ have the same value which was specified--- when @srcAccelerationStructure@ was last built.+-- when @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801# For each -- element of @pInfos@[i].@pGeometries@ or @pInfos@[i].@ppGeometries@@@ -2959,7 +2955,8 @@ -- @geometry.triangles.vertexData@, @geometry.triangles.indexData@, -- @geometry.triangles.transformData@, @geometry.aabbs.data@, and -- @geometry.instances.data@ members of all @pInfos@[i].@pGeometries@--- and @pInfos@[i].@ppGeometries@ /must/ have been created with the+-- and @pInfos@[i].@ppGeometries@ are queried /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' -- usage flag --@@ -3186,16 +3183,16 @@ => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer- -> -- | @pInfos@ is an array of @infoCount@+ -> -- | @pInfos@ is a pointer to an array of @infoCount@ -- 'AccelerationStructureBuildGeometryInfoKHR' structures defining the -- geometry used to build each acceleration structure. ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)- -> -- | @ppBuildRangeInfos@ is an array of @infoCount@ pointers to arrays of- -- 'AccelerationStructureBuildRangeInfoKHR' structures. Each- -- @ppBuildRangeInfos@[i] is an array of @pInfos@[i].@geometryCount@- -- 'AccelerationStructureBuildRangeInfoKHR' structures defining dynamic- -- offsets to the addresses where geometry data is stored, as defined by- -- @pInfos@[i].+ -> -- | @ppBuildRangeInfos@ is a pointer to an array of @infoCount@ pointers to+ -- arrays of 'AccelerationStructureBuildRangeInfoKHR' structures. Each+ -- @ppBuildRangeInfos@[i] is a pointer to an array of+ -- @pInfos@[i].@geometryCount@ 'AccelerationStructureBuildRangeInfoKHR'+ -- structures defining dynamic offsets to the addresses where geometry data+ -- is stored, as defined by @pInfos@[i]. ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR)) -> io () cmdBuildAccelerationStructuresKHR commandBuffer infos buildRangeInfos = liftIO . evalContT $ do@@ -3354,12 +3351,6 @@ -- 'GEOMETRY_TYPE_INSTANCES_KHR' in any other element of @pInfos@, -- which is accessed by this command ----- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03666# For--- each element of @pInfos@, if its @mode@ member is--- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its--- @srcAccelerationStructure@ member /must/ not be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'--- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667# For -- each element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its@@ -3380,19 +3371,19 @@ -- each element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @geometryCount@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759# For -- each element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @flags@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760# For -- each element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @type@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761# For -- each element of @pInfos@, if its @mode@ member is@@ -3400,7 +3391,7 @@ -- 'AccelerationStructureGeometryKHR' structure referred to by its -- @pGeometries@ or @ppGeometries@ members, its @geometryType@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762# For -- each element of @pInfos@, if its @mode@ member is@@ -3408,7 +3399,7 @@ -- 'AccelerationStructureGeometryKHR' structure referred to by its -- @pGeometries@ or @ppGeometries@ members, its @flags@ member /must/ -- have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763# For -- each element of @pInfos@, if its @mode@ member is@@ -3417,7 +3408,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.vertexFormat@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764# For -- each element of @pInfos@, if its @mode@ member is@@ -3426,7 +3417,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.maxVertex@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765# For -- each element of @pInfos@, if its @mode@ member is@@ -3435,7 +3426,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.indexType@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766# For -- each element of @pInfos@, if its @mode@ member is@@ -3444,7 +3435,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', if its -- @geometry.triangles.transformData@ member was NULL when--- @srcAccelerationStructure@ was last built, then it must be NULL.+-- @srcAccelerationStructure@ was last built, then it /must/ be NULL -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767# For -- each element of @pInfos@, if its @mode@ member is@@ -3453,7 +3444,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', if its -- @geometry.triangles.transformData@ member was not NULL when--- @srcAccelerationStructure@ was last built, then it may not be NULL.+-- @srcAccelerationStructure@ was last built, then it may not be NULL -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768# For -- each element of @pInfos@, if its @mode@ member is@@ -3462,20 +3453,20 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', and @geometry.triangles.indexType@ is -- not 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR', then the--- value of each index referenced index must be the same as the+-- value of each index referenced /must/ be the same as the -- corresponding index value when @srcAccelerationStructure@ was last--- built.+-- built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769# -- For each 'AccelerationStructureBuildRangeInfoKHR' referenced by this -- command, its @primitiveCount@ member /must/ have the same value--- which was specified when @srcAccelerationStructure@ was last built.+-- which was specified when @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770# -- For each 'AccelerationStructureBuildRangeInfoKHR' referenced by this -- command, if the corresponding geometry uses indices, its -- @firstVertex@ member /must/ have the same value which was specified--- when @srcAccelerationStructure@ was last built.+-- when @srcAccelerationStructure@ was last built -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801# For -- each element of @pInfos@[i].@pGeometries@ or@@ -3529,7 +3520,8 @@ -- @geometry.triangles.vertexData@, @geometry.triangles.indexData@, -- @geometry.triangles.transformData@, @geometry.aabbs.data@, and -- @geometry.instances.data@ members of all @pInfos@[i].@pGeometries@--- and @pInfos@[i].@ppGeometries@ /must/ have been created with the+-- and @pInfos@[i].@ppGeometries@ are queried /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' -- usage flag --@@ -3709,7 +3701,7 @@ -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646# -- For any element of @pIndirectDeviceAddresses@[i], all device -- addresses between @pIndirectDeviceAddresses@[i] and--- @pIndirectDeviceAddresses@[i] + (@pInfos@[i]→geometryCount ×+-- @pIndirectDeviceAddresses@[i] + (@pInfos@[i].@geometryCount@ × -- @pIndirectStrides@[i]) - 1 /must/ be in the buffer device address -- range of the same buffer --@@ -3817,22 +3809,23 @@ => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer- -> -- | @pInfos@ is an array of @infoCount@+ -> -- | @pInfos@ is a pointer to an array of @infoCount@ -- 'AccelerationStructureBuildGeometryInfoKHR' structures defining the -- geometry used to build each acceleration structure. ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)- -> -- | @pIndirectDeviceAddresses@ is an array of @infoCount@ buffer device- -- addresses which point to @pInfos@[i]→@geometryCount@+ -> -- | @pIndirectDeviceAddresses@ is a pointer to an array of @infoCount@+ -- buffer device addresses which point to @pInfos@[i].@geometryCount@ -- 'AccelerationStructureBuildRangeInfoKHR' structures defining dynamic -- offsets to the addresses where geometry data is stored, as defined by -- @pInfos@[i]. ("indirectDeviceAddresses" ::: Vector DeviceAddress)- -> -- | @pIndirectStrides@ is an array of @infoCount@ byte strides between- -- elements of @pIndirectDeviceAddresses@.+ -> -- | @pIndirectStrides@ is a pointer to an array of @infoCount@ byte strides+ -- between elements of @pIndirectDeviceAddresses@. ("indirectStrides" ::: Vector Word32)- -> -- | @ppMaxPrimitiveCounts@ is an array of @infoCount@ arrays of- -- @pInfo@[i]→@geometryCount@ values indicating the maximum number of- -- primitives that will be built by this command for each geometry.+ -> -- | @ppMaxPrimitiveCounts@ is a pointer to an array of @infoCount@ pointers+ -- to arrays of @pInfos@[i].@geometryCount@ values indicating the maximum+ -- number of primitives that will be built by this command for each+ -- geometry. ("maxPrimitiveCounts" ::: Vector (Vector Word32)) -> io () cmdBuildAccelerationStructuresIndirectKHR commandBuffer infos indirectDeviceAddresses indirectStrides maxPrimitiveCounts = liftIO . evalContT $ do@@ -4002,12 +3995,6 @@ -- 'GEOMETRY_TYPE_INSTANCES_KHR' in any other element of @pInfos@, -- which is accessed by this command ----- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03666# For each--- element of @pInfos@, if its @mode@ member is--- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its--- @srcAccelerationStructure@ member /must/ not be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'--- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03667# For each -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its@@ -4028,19 +4015,19 @@ -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @geometryCount@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03759# For each -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @flags@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03760# For each -- element of @pInfos@, if its @mode@ member is -- 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @type@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03761# For each -- element of @pInfos@, if its @mode@ member is@@ -4048,7 +4035,7 @@ -- 'AccelerationStructureGeometryKHR' structure referred to by its -- @pGeometries@ or @ppGeometries@ members, its @geometryType@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03762# For each -- element of @pInfos@, if its @mode@ member is@@ -4056,7 +4043,7 @@ -- 'AccelerationStructureGeometryKHR' structure referred to by its -- @pGeometries@ or @ppGeometries@ members, its @flags@ member /must/ -- have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03763# For each -- element of @pInfos@, if its @mode@ member is@@ -4065,7 +4052,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.vertexFormat@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03764# For each -- element of @pInfos@, if its @mode@ member is@@ -4074,7 +4061,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.maxVertex@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03765# For each -- element of @pInfos@, if its @mode@ member is@@ -4083,7 +4070,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.indexType@ -- member /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03766# For each -- element of @pInfos@, if its @mode@ member is@@ -4092,7 +4079,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', if its -- @geometry.triangles.transformData@ member was NULL when--- @srcAccelerationStructure@ was last built, then it must be NULL.+-- @srcAccelerationStructure@ was last built, then it /must/ be NULL -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03767# For each -- element of @pInfos@, if its @mode@ member is@@ -4101,7 +4088,7 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', if its -- @geometry.triangles.transformData@ member was not NULL when--- @srcAccelerationStructure@ was last built, then it may not be NULL.+-- @srcAccelerationStructure@ was last built, then it may not be NULL -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03768# For each -- element of @pInfos@, if its @mode@ member is@@ -4110,20 +4097,20 @@ -- @pGeometries@ or @ppGeometries@ members, if @geometryType@ is -- 'GEOMETRY_TYPE_TRIANGLES_KHR', and @geometry.triangles.indexType@ is -- not 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR', then the--- value of each index referenced index must be the same as the+-- value of each index referenced /must/ be the same as the -- corresponding index value when @srcAccelerationStructure@ was last--- built.+-- built -- -- - #VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769# For -- each 'AccelerationStructureBuildRangeInfoKHR' referenced by this -- command, its @primitiveCount@ member /must/ have the same value--- which was specified when @srcAccelerationStructure@ was last built.+-- which was specified when @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770# For each -- 'AccelerationStructureBuildRangeInfoKHR' referenced by this command, -- if the corresponding geometry uses indices, its @firstVertex@ member -- /must/ have the same value which was specified when--- @srcAccelerationStructure@ was last built.+-- @srcAccelerationStructure@ was last built -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03801# For each -- element of @pInfos@[i].@pGeometries@ or @pInfos@[i].@ppGeometries@@@ -4316,12 +4303,12 @@ -- 'AccelerationStructureBuildGeometryInfoKHR' structures defining the -- geometry used to build each acceleration structure. ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)- -> -- | @ppBuildRangeInfos@ is an array of @infoCount@ pointers to arrays of- -- 'AccelerationStructureBuildRangeInfoKHR' structures. Each- -- @ppBuildRangeInfos@[i] is an array of @pInfos@[i].@geometryCount@- -- 'AccelerationStructureBuildRangeInfoKHR' structures defining dynamic- -- offsets to the addresses where geometry data is stored, as defined by- -- @pInfos@[i].+ -> -- | @ppBuildRangeInfos@ is a pointer to an array of @infoCount@ pointers to+ -- arrays of 'AccelerationStructureBuildRangeInfoKHR' structures. Each+ -- @ppBuildRangeInfos@[i] is a pointer to an array of+ -- @pInfos@[i].@geometryCount@ 'AccelerationStructureBuildRangeInfoKHR'+ -- structures defining dynamic offsets to the addresses where geometry data+ -- is stored, as defined by @pInfos@[i]. ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR)) -> io (Result) buildAccelerationStructuresKHR device deferredOperation infos buildRangeInfos = liftIO . evalContT $ do@@ -4362,13 +4349,13 @@ -- structure building. -- -- If the acceleration structure was created with a non-zero value of--- 'AccelerationStructureCreateInfoKHR'::@deviceAddress@ the return value+-- 'AccelerationStructureCreateInfoKHR'::@deviceAddress@, the return value -- will be the same address. -- -- If the acceleration structure was created with a @type@ of--- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' the returned address /must/ be--- consistent with the relative offset to other acceleration structures of--- @type@ of 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' allocated with the+-- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR', the returned address /must/+-- be consistent with the relative offset to other acceleration structures+-- with @type@ 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' allocated with the -- same 'Vulkan.Core10.Handles.Buffer'. That is, the difference in returned -- addresses between the two /must/ be the same as the difference in -- offsets provided at acceleration structure creation.@@ -4402,7 +4389,7 @@ -- 'Vulkan.Core10.Handles.Device' getAccelerationStructureDeviceAddressKHR :: forall io . (MonadIO io)- => -- | @device@ is the logical device that the accelerationStructure was+ => -- | @device@ is the logical device that the acceleration structure was -- created on. Device -> -- | @pInfo@ is a pointer to a 'AccelerationStructureDeviceAddressInfoKHR'@@ -4585,7 +4572,7 @@ -- | VkWriteDescriptorSetAccelerationStructureKHR - Structure specifying--- acceleration structure descriptor info+-- acceleration structure descriptor information -- -- == Valid Usage --@@ -4602,7 +4589,7 @@ -- - #VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is not enabled, each member of @pAccelerationStructures@+-- feature is not enabled, each element of @pAccelerationStructures@ -- /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- == Valid Usage (Implicit)@@ -4625,7 +4612,9 @@ -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data WriteDescriptorSetAccelerationStructureKHR = WriteDescriptorSetAccelerationStructureKHR- { -- | @pAccelerationStructures@ are the acceleration structures to update.+ { -- | @pAccelerationStructures@ is a pointer to an array of+ -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR' structures+ -- specifying the acceleration structures to update. accelerationStructures :: Vector AccelerationStructureKHR } deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -4669,18 +4658,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceAccelerationStructureFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceAccelerationStructureFeaturesKHR' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the features.+-- 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. 'PhysicalDeviceAccelerationStructureFeaturesKHR' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -4781,9 +4771,12 @@ -- = Description -- -- If the 'PhysicalDeviceAccelerationStructurePropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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. -- -- Limits specified by this structure /must/ match those specified with the -- same name in@@ -5136,23 +5129,6 @@ -- | VkAccelerationStructureGeometryKHR - Structure specifying geometries to -- be built into an acceleration structure ----- == Valid Usage------ - #VUID-VkAccelerationStructureGeometryKHR-geometryType-03541# If--- @geometryType@ is 'GEOMETRY_TYPE_AABBS_KHR', the @aabbs@ member of--- @geometry@ /must/ be a valid--- 'AccelerationStructureGeometryAabbsDataKHR' structure------ - #VUID-VkAccelerationStructureGeometryKHR-geometryType-03542# If--- @geometryType@ is 'GEOMETRY_TYPE_TRIANGLES_KHR', the @triangles@--- member of @geometry@ /must/ be a valid--- 'AccelerationStructureGeometryTrianglesDataKHR' structure------ - #VUID-VkAccelerationStructureGeometryKHR-geometryType-03543# If--- @geometryType@ is 'GEOMETRY_TYPE_INSTANCES_KHR', the @instances@--- member of @geometry@ /must/ be a valid--- 'AccelerationStructureGeometryInstancesDataKHR' structure--- -- == Valid Usage (Implicit) -- -- - #VUID-VkAccelerationStructureGeometryKHR-sType-sType# @sType@ /must/@@ -5356,12 +5332,12 @@ , -- | @mode@ is a 'BuildAccelerationStructureModeKHR' value specifying the -- type of operation to perform. mode :: BuildAccelerationStructureModeKHR- , -- | @srcAccelerationStructure@ points to an existing acceleration structure- -- that is to be used to update the @dst@ acceleration structure when- -- @mode@ is 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR'.+ , -- | @srcAccelerationStructure@ is a pointer to an existing acceleration+ -- structure that is to be used to update the @dst@ acceleration structure+ -- when @mode@ is 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR'. srcAccelerationStructure :: AccelerationStructureKHR- , -- | @dstAccelerationStructure@ points to the target acceleration structure- -- for the build.+ , -- | @dstAccelerationStructure@ is a pointer to the target acceleration+ -- structure for the build. dstAccelerationStructure :: AccelerationStructureKHR , -- | @pGeometries@ is a pointer to an array of -- 'AccelerationStructureGeometryKHR' structures.@@ -5470,7 +5446,7 @@ -- -- - #VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657# -- For geometries of type 'GEOMETRY_TYPE_TRIANGLES_KHR', if the--- geometry doesn’t use indices, the offset @primitiveOffset@ from+-- geometry does not use indices, the offset @primitiveOffset@ from -- 'AccelerationStructureGeometryTrianglesDataKHR'::@vertexData@ /must/ -- be a multiple of the component size of -- 'AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@@@ -5581,7 +5557,7 @@ -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' -- flag to all buffers that use -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT',--- and+-- and will add -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT' -- to all buffers used as storage for an acceleration structure where -- @deviceAddress@ is not zero. During capture the tool will save the@@ -5921,8 +5897,8 @@ -- -- = Description ----- The C language spec does not define the ordering of bit-fields, but in--- practice, this struct produces the correct layout with existing+-- The C language specification does not define the ordering of bit-fields,+-- but in practice, this struct produces the correct layout with existing -- compilers. The intended bit pattern is for the following: -- -- If a compiler produces code that diverges from that pattern,@@ -5942,7 +5918,7 @@ -- to ray shaders in the @InstanceCustomIndexKHR@ built-in. -- -- @instanceCustomIndex@ and @mask@ occupy the same memory as if a single- -- @int32_t@ was specified in their place+ -- @uint32_t@ was specified in their place -- -- - @instanceCustomIndex@ occupies the 24 least significant bits of that -- memory@@ -5956,7 +5932,7 @@ -- calculating the hit shader binding table index. -- -- @instanceShaderBindingTableRecordOffset@ and @flags@ occupy the same- -- memory as if a single @int32_t@ was specified in their place+ -- memory as if a single @uint32_t@ was specified in their place -- -- - @instanceShaderBindingTableRecordOffset@ occupies the 24 least -- significant bits of that memory@@ -6703,8 +6679,8 @@ pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000008 -- | 'BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR' indicates that this -- acceleration structure /should/ minimize the size of the scratch memory--- and the final result build, potentially at the expense of build time or--- trace performance.+-- and the final result acceleration structure, potentially at the expense+-- of build time or trace performance. pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000010 conNameBuildAccelerationStructureFlagBitsKHR :: String@@ -7043,11 +7019,12 @@ newtype AccelerationStructureCompatibilityKHR = AccelerationStructureCompatibilityKHR Int32 deriving newtype (Eq, Ord, Storable, Zero) --- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR' when the--- @pVersion@ version acceleration structure is compatibile with @device@.+-- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR' if the+-- @pVersionData@ version acceleration structure is compatible with+-- @device@. pattern ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = AccelerationStructureCompatibilityKHR 0--- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR' when the--- @pVersion@ version acceleration structure is not compatibile with+-- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR' if the+-- @pVersionData@ version acceleration structure is not compatible with -- @device@. pattern ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = AccelerationStructureCompatibilityKHR 1 {-# complete ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -466,7 +466,7 @@ -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV' -- → 'AccelerationStructureCreateInfoKHR' (reshuffle geometry--- layout\/info)+-- layout\/information) -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV' -- → 'PhysicalDeviceAccelerationStructurePropertiesKHR' (for@@ -486,7 +486,7 @@ -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.createAccelerationStructureNV' -- → 'createAccelerationStructureKHR' (device address, different--- geometry layout\/info)+-- geometry layout\/information) -- -- - 'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureMemoryRequirementsNV' -- (deleted - replaced by allocating on top of@@ -755,7 +755,7 @@ -- -- - add a new -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'--- buffer usage such buffers+-- buffer usage for such buffers -- -- - add a new 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' acceleration -- structure type for layering@@ -786,12 +786,12 @@ -- -- (5) What is 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' for? ----- RESOLVED: It is primarily intended for API layering. In DXR, the+-- __RESOLVED__: It is primarily intended for API layering. In DXR, the -- acceleration structure is basically just a buffer in a special layout, -- and you don’t know at creation time whether it will be used as a top or -- bottom level acceleration structure. We thus added a generic -- acceleration structure type whose type is unknown at creation time, but--- is specified at build type instead. Applications which are written+-- is specified at build time instead. Applications which are written -- directly for Vulkan should not use it. -- -- == Version History@@ -815,7 +815,7 @@ -- better match its type (!3523) -- -- - Allow VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS for pipeline--- creation if shader group handles cannot be re-used. (!3523)+-- creation if shader group handles cannot be reused (!3523) -- -- - update documentation for the -- VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS error code and add
src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs view
@@ -79,8 +79,8 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_physical_storage_buffer.html SPV_KHR_physical_storage_buffer> -- SPIR-V extension. ----- Another way to describe this extension is that it adds \"pointers to--- buffer memory in shaders\". By calling+-- Another way to describe this extension is that it adds “pointers to+-- buffer memory in shaders”. By calling -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress' -- with a 'Vulkan.Core10.Handles.Buffer', it will return a -- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' value which represents
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -28,14 +28,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] -- 2020-07-06 -- -- [__Interactions and External Dependencies__] -- -- - None ----- [Contributors]+-- [__Contributors__] -- -- - Jeff Leger, Qualcomm --@@ -56,10 +56,10 @@ -- The following extensible copy commands are introduced with this -- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR', -- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command--- contain@*Info2KHR@ structure parameter that includes @sType@\/@pNext@--- members. Lower level structures that describe each region to be copied--- are also extended with @sType@\/@pNext@ members.+-- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an+-- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.+-- Lower level structures that describe each region to be copied are also+-- extended with @sType@\/@pNext@ members. -- -- == New Commands --@@ -701,7 +701,7 @@ => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer- -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'cmdCopyImageToBuffer2KHR'+ -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'CopyImageToBufferInfo2KHR' -- structure describing the copy parameters. CopyImageToBufferInfo2KHR -> io ()@@ -1672,12 +1672,12 @@ -- -- - #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 and+-- 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 and+-- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and -- @dstSubresource.layerCount@ /must/ be @1@ -- -- - #VUID-VkCopyImageInfo2KHR-aspectMask-00142# For each element of@@ -2080,55 +2080,55 @@ -- present in @dstImage@ -- -- - #VUID-VkBlitImageInfo2KHR-srcOffset-00243# For each element of--- @pRegions@, @srcOffset@[0].x and @srcOffset@[1].x /must/ both be+-- @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@, @srcOffset@[0].y and @srcOffset@[1].y /must/ both be+-- @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@, @srcOffset@[0].y /must/ be @0@ and @srcOffset@[1].y+-- of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y -- /must/ be @1@ -- -- - #VUID-VkBlitImageInfo2KHR-srcOffset-00246# For each element of--- @pRegions@, @srcOffset@[0].z and @srcOffset@[1].z /must/ both be+-- @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@, @srcOffset@[0].z /must/ be @0@ and @srcOffset@[1].z+-- of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z -- /must/ be @1@ -- -- - #VUID-VkBlitImageInfo2KHR-dstOffset-00248# For each element of--- @pRegions@, @dstOffset@[0].x and @dstOffset@[1].x /must/ both be+-- @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@, @dstOffset@[0].y and @dstOffset@[1].y /must/ both be+-- @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@, @dstOffset@[0].y /must/ be @0@ and @dstOffset@[1].y+-- of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y -- /must/ be @1@ -- -- - #VUID-VkBlitImageInfo2KHR-dstOffset-00251# For each element of--- @pRegions@, @dstOffset@[0].z and @dstOffset@[1].z /must/ both be+-- @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@, @dstOffset@[0].z /must/ be @0@ and @dstOffset@[1].z+-- of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z -- /must/ be @1@ -- -- - #VUID-VkBlitImageInfo2KHR-pRegions-04561# If any element of@@ -2376,7 +2376,7 @@ -- - #VUID-VkCopyBufferToImageInfo2KHR-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@ ++-- 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@ where this refers to the width of the /plane/ of the@@ -2386,7 +2386,7 @@ -- - #VUID-VkCopyBufferToImageInfo2KHR-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 ++-- 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@ where this refers to the height of the /plane/ of the@@ -2413,7 +2413,7 @@ -- @imageExtent.height@ /must/ be @1@ -- -- - #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00200# For each--- element of @pRegions@, @imageOffset.z@ and (imageExtent.depth ++-- 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@@@ -2734,7 +2734,7 @@ -- - #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 ++-- 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@ where this refers to the height of the /plane/ of the@@ -2761,7 +2761,7 @@ -- @imageExtent.height@ /must/ be @1@ -- -- - #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00200# For each--- element of @pRegions@, @imageOffset.z@ and (imageExtent.depth ++-- 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}
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot view
@@ -28,14 +28,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] -- 2020-07-06 -- -- [__Interactions and External Dependencies__] -- -- - None ----- [Contributors]+-- [__Contributors__] -- -- - Jeff Leger, Qualcomm --@@ -56,10 +56,10 @@ -- The following extensible copy commands are introduced with this -- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR', -- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command--- contain@*Info2KHR@ structure parameter that includes @sType@\/@pNext@--- members. Lower level structures that describe each region to be copied--- are also extended with @sType@\/@pNext@ members.+-- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an+-- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.+-- Lower level structures that describe each region to be copied are also+-- extended with @sType@\/@pNext@ members. -- -- == New Commands --
src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs view
@@ -37,14 +37,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] -- 2018-02-07 -- -- [__Interactions and External Dependencies__] -- -- - Promoted to Vulkan 1.2 Core ----- [Contributors]+-- [__Contributors__] -- -- - Tobias Hector --
src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs view
@@ -200,7 +200,7 @@ -- -- - Revision 3, 2017-07-31 (Jason Ekstrand) ----- - Clarify that memory objects created with+-- - Clarify that memory objects allocated with -- VkMemoryDedicatedAllocateInfoKHR can only have the specified -- resource bound and no others. --
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -137,6 +137,43 @@ -- > } -- > ); --+-- The following example illustrates extracting concurrency from a single+-- deferred operation:+--+-- > // create a deferred operation+-- > VkDeferredOperationKHR hOp;+-- > VkResult result = vkCreateDeferredOperationKHR(device, pCallbacks, &hOp);+-- > assert(result == VK_SUCCESS);+-- >+-- > result = vkDoSomethingExpensive(device, hOp, ...);+-- > assert( result == VK_OPERATION_DEFERRED_KHR );+-- >+-- > // Query the maximum amount of concurrency and clamp to the desired maximum+-- > uint32_t numLaunches = std::min(vkGetDeferredOperationMaxConcurrencyKHR(device, hOp), maxThreads);+-- >+-- > std::vector<std::future<void> > joins;+-- >+-- > for (uint32_t i = 0; i < numLaunches; i++) {+-- > joins.emplace_back(std::async::launch(+-- > [ hOp ] ( )+-- > {+-- > vkDeferredOperationJoinKHR(device, hOp);+-- > // in a job system, a return of VK_THREAD_IDLE_KHR should queue another+-- > // job, but it's not functionally required+-- > }+-- > );+-- > }+-- >+-- > for (auto &f : joins) {+-- > f.get();+-- > }+-- >+-- > result = vkGetDeferredOperationResultKHR(device, hOp);+-- >+-- > // deferred operation is now complete. 'result' indicates success or failure+-- >+-- > vkDestroyDeferredOperationKHR(device, hOp, pCallbacks);+-- -- The following example shows a subroutine which guarantees completion of -- a deferred operation, in the presence of multiple worker threads, and -- returns the result of the operation.@@ -183,13 +220,13 @@ -- -- == Issues ----- 1. Should this entension have a VkPhysicalDevice*FeaturesKHR structure?+-- 1. Should this extension have a VkPhysicalDevice*FeaturesKHR structure? ----- RESOLVED: No. This extension does not add any functionality on its own--- and requires a dependent extension to actually enable functionality and--- thus there is no value in adding a feature structure. If necessary, any--- dependent extension could add a feature boolean if it wanted to indicate--- that it is adding optional deferral support.+-- __RESOLVED__: No. This extension does not add any functionality on its+-- own and requires a dependent extension to actually enable functionality+-- and thus there is no value in adding a feature structure. If necessary,+-- any dependent extension could add a feature boolean if it wanted to+-- indicate that it is adding optional deferral support. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs view
@@ -54,7 +54,7 @@ -- == Description -- -- Applications may wish to update a fixed set of descriptors in a large--- number of descriptors sets very frequently, i.e. during initializaton+-- number of descriptor sets very frequently, i.e. during initializaton -- phase or if it is required to rebuild descriptor sets for each frame. -- For those cases it is also not unlikely that all information required to -- update a single descriptor set is stored in a single struct. This
src/Vulkan/Extensions/VK_KHR_device_group.hs view
@@ -342,8 +342,8 @@ -- -- - Revision 4, 2017-10-10 (Jeff Bolz) ----- - Rename \"SFR\" bits and structure members to use the phrase--- \"split instance bind regions\".+-- - Rename “SFR” bits and structure members to use the phrase “split+-- instance bind regions”. -- -- = See Also --
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -126,9 +126,9 @@ -- -- == Issues ----- 1) Which properties of a mode should be fixed in the mode info vs.--- settable in some other function when setting the mode? E.g., do we need--- to double the size of the mode pool to include both stereo and+-- 1) Which properties of a mode should be fixed in the mode information+-- vs. settable in some other function when setting the mode? E.g., do we+-- need to double the size of the mode pool to include both stereo and -- non-stereo modes? YUV and RGB scanout even if they both take RGB input -- images? BGR vs. RGB input? etc. --@@ -181,9 +181,9 @@ -- monitor side or in the GPU display engine, making “modes” something of a -- relic\/compatibility construct). ----- __PROPOSED RESOLUTION__: Expose both. Display info structures will--- expose a set of predefined modes, as well as any attributes necessary to--- construct a customized mode.+-- __PROPOSED RESOLUTION__: Expose both. Display information structures+-- will expose a set of predefined modes, as well as any attributes+-- necessary to construct a customized mode. -- -- 6) Is it fine if we return the display and display mode handles in the -- structure used to query their properties?@@ -204,12 +204,11 @@ -- __PROPOSED RESOLUTION__: Require specifying a plane explicitly. -- -- 9) Should displays have an associated window system display, such as an--- @HDC@ or 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'*?+-- @HDC@ or @Display*@? -- -- __PROPOSED RESOLUTION__: No. Displays are independent of any windowing--- system in use on the system. Further, neither @HDC@ nor--- 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'* refer to a physical--- display object.+-- system in use on the system. Further, neither @HDC@ nor @Display*@ refer+-- to a physical display object. -- -- 10) Are displays queried from a physical GPU or from a device instance? --@@ -312,7 +311,7 @@ -- -- - Added functions to query count of display, mode and overlay. ----- - Added native display handle, which is maybe needed on some+-- - Added native display handle, which may be needed on some -- platforms to create a native Window. -- -- - Revision 4, 2015-03-18 (Norbert Nopper)@@ -320,7 +319,7 @@ -- - Removed primary and virtualPostion members (see comment of James -- Jones in Bugzilla). ----- - Added native overlay handle to info structure.+-- - Added native overlay handle to information structure. -- -- - Replaced , with ; in struct. --@@ -328,7 +327,7 @@ -- -- - Added WSI extension suffix to all items. ----- - Made the whole API more \"Vulkanish\".+-- - Made the whole API more “Vulkanish”. -- -- - Replaced all functions with a single vkGetDisplayInfoKHR -- function to better match the rest of the API.@@ -340,8 +339,8 @@ -- - Renamed *Info structures to *Properties. -- -- - Removed overlayIndex field from VkOverlayProperties as there is--- an implicit index already as a result of moving to a--- \"Vulkanish\" API.+-- an implicit index already as a result of moving to a “Vulkanish”+-- API. -- -- - Displays are not get through device, but through physical GPU to -- match the rest of the Vulkan API. Also this is something ISVs@@ -392,14 +391,14 @@ -- swapchain specifications and the latest Vulkan API. -- -- - Address overlay planes by their index rather than an object--- handle and refer to them as \"planes\" rather than \"overlays\"--- to make it slightly clearer that even a display with no--- \"overlays\" still has at least one base \"plane\" that images--- can be displayed on.+-- handle and refer to them as “planes” rather than “overlays” to+-- make it slightly clearer that even a display with no “overlays”+-- still has at least one base “plane” that images can be displayed+-- on. -- -- - Updated most of the issues. ----- - Added an \"extension type\" section to the specification header.+-- - Added an “extension type” section to the specification header. -- -- - Re-used the VK_EXT_KHR_surface surface transform enumerations -- rather than redefining them here.@@ -412,7 +411,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Revision 14, 2015-09-01 (James Jones)@@ -443,7 +442,7 @@ -- -- - Removed detailed mode timing data. It was agreed that the mode -- extents and refresh rate are sufficient for current use cases.--- Other information could be added back2 in as an extension if it+-- Other information could be added back in as an extension if it -- is needed in the future. -- -- - Added support for smart\/persistent\/buffered display devices.@@ -477,7 +476,7 @@ -- -- - Revision 22, 2015-12-18 (James Jones) ----- - Added missing \"planeIndex\" parameter to+-- - Added missing “planeIndex” parameter to -- vkGetDisplayPlaneSupportedDisplaysKHR() -- -- - Revision 23, 2017-03-13 (James Jones)@@ -660,11 +659,9 @@ -- variable is overwritten with the number of structures actually written -- to @pProperties@. If the value of @pPropertyCount@ is less than the -- number of display devices for @physicalDevice@, at most @pPropertyCount@--- structures will be written. If @pPropertyCount@ is smaller than the--- number of display devices available for @physicalDevice@,--- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all the--- available values were returned.+-- structures will be written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'+-- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to+-- indicate that not all the available properties were returned. -- -- == Valid Usage (Implicit) --@@ -816,12 +813,11 @@ -- set by the user to the number of elements in the @pDisplays@ array, and -- on return the variable is overwritten with the number of handles -- actually written to @pDisplays@. If the value of @pDisplayCount@ is less--- than the number of display planes for @physicalDevice@, at most--- @pDisplayCount@ handles will be written. If @pDisplayCount@ is smaller--- than the number of displays usable with the specified @planeIndex@ for--- @physicalDevice@, 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate--- that not all the available values were returned.+-- than the number of usable display-plane pairs for @physicalDevice@, at+-- most @pDisplayCount@ handles will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available pairs were returned. -- -- == Valid Usage --@@ -907,11 +903,10 @@ -- and on return the variable is overwritten with the number of structures -- actually written to @pProperties@. If the value of @pPropertyCount@ is -- less than the number of display modes for @physicalDevice@, at most--- @pPropertyCount@ structures will be written. If @pPropertyCount@ is--- smaller than the number of display modes available on the specified--- @display@ for @physicalDevice@, 'Vulkan.Core10.Enums.Result.INCOMPLETE'--- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS' to--- indicate that not all the available values were returned.+-- @pPropertyCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available display modes were returned. -- -- == Valid Usage (Implicit) --@@ -1039,8 +1034,8 @@ PhysicalDevice -> -- | @display@ is the display to create an additional mode for. DisplayKHR- -> -- | @pCreateInfo@ is a 'DisplayModeCreateInfoKHR' structure describing the- -- new mode to create.+ -> -- | @pCreateInfo@ is a pointer to a 'DisplayModeCreateInfoKHR' structure+ -- describing the new mode to create. DisplayModeCreateInfoKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- display mode object when there is no more specific allocator available@@ -1109,7 +1104,8 @@ -- 'DisplayPlaneCapabilitiesKHR', 'Vulkan.Core10.Handles.PhysicalDevice' getDisplayPlaneCapabilitiesKHR :: forall io . (MonadIO io)- => -- | @physicalDevice@ is the physical device associated with @display@+ => -- | @physicalDevice@ is the physical device associated with the display+ -- specified by @mode@ PhysicalDevice -> -- | @mode@ is the display mode the application intends to program when using -- the specified plane. Note this parameter also implicitly specifies a@@ -1236,11 +1232,11 @@ { -- | @display@ is a handle that is used to refer to the display described -- here. This handle will be valid for the lifetime of the Vulkan instance. display :: DisplayKHR- , -- | @displayName@ is a pointer to a null-terminated UTF-8 string containing- -- the name of the display. Generally, this will be the name provided by- -- the display’s EDID. It /can/ be @NULL@ if no suitable name is available.- -- If not @NULL@, the memory it points to /must/ remain accessible as long- -- as @display@ is valid.+ , -- | @displayName@ is @NULL@ or a pointer to a null-terminated UTF-8 string+ -- containing the name of the display. Generally, this will be the name+ -- provided by the display’s EDID. If @NULL@, no suitable name is+ -- available. If not @NULL@, the string pointed to /must/ remain accessible+ -- and unmodified as long as @display@ is valid. displayName :: ByteString , -- | @physicalDimensions@ describes the physical width and height of the -- visible portion of the display, in millimeters.@@ -1573,16 +1569,16 @@ -- swapchain’s presentable images on the specified display plane. This is -- expressed by returning @minSrcPosition@, @maxSrcPosition@, -- @minSrcExtent@, and @maxSrcExtent@ values that indicate a range of--- possible positions and sizes /may/ be used to specify the region within--- the presentable images that source pixels will be read from when+-- possible positions and sizes which /may/ be used to specify the region+-- within the presentable images that source pixels will be read from when -- creating a swapchain on the specified display mode and plane. -- -- Vendors /may/ also support mapping the presentable images’ content to a -- subset or superset of the visible region in the specified display mode. -- This is expressed by returning @minDstPosition@, @maxDstPosition@, -- @minDstExtent@ and @maxDstExtent@ values that indicate a range of--- possible positions and sizes /may/ be used to describe the region within--- the display mode that the source pixels will be mapped to.+-- possible positions and sizes which /may/ be used to describe the region+-- within the display mode that the source pixels will be mapped to. -- -- Other vendors /may/ support only a 1-1 mapping between pixels in the -- presentable images and the display mode. This /may/ be indicated by@@ -1799,7 +1795,7 @@ , -- | @alphaMode@ is a 'DisplayPlaneAlphaFlagBitsKHR' value specifying the -- type of alpha blending to use. alphaMode :: DisplayPlaneAlphaFlagBitsKHR- , -- | @imageExtent@ The size of the presentable images to use with the+ , -- | @imageExtent@ is the size of the presentable images to use with the -- surface. imageExtent :: Extent2D }
src/Vulkan/Extensions/VK_KHR_display.hs-boot view
@@ -126,9 +126,9 @@ -- -- == Issues ----- 1) Which properties of a mode should be fixed in the mode info vs.--- settable in some other function when setting the mode? E.g., do we need--- to double the size of the mode pool to include both stereo and+-- 1) Which properties of a mode should be fixed in the mode information+-- vs. settable in some other function when setting the mode? E.g., do we+-- need to double the size of the mode pool to include both stereo and -- non-stereo modes? YUV and RGB scanout even if they both take RGB input -- images? BGR vs. RGB input? etc. --@@ -181,9 +181,9 @@ -- monitor side or in the GPU display engine, making “modes” something of a -- relic\/compatibility construct). ----- __PROPOSED RESOLUTION__: Expose both. Display info structures will--- expose a set of predefined modes, as well as any attributes necessary to--- construct a customized mode.+-- __PROPOSED RESOLUTION__: Expose both. Display information structures+-- will expose a set of predefined modes, as well as any attributes+-- necessary to construct a customized mode. -- -- 6) Is it fine if we return the display and display mode handles in the -- structure used to query their properties?@@ -204,12 +204,11 @@ -- __PROPOSED RESOLUTION__: Require specifying a plane explicitly. -- -- 9) Should displays have an associated window system display, such as an--- @HDC@ or 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'*?+-- @HDC@ or @Display*@? -- -- __PROPOSED RESOLUTION__: No. Displays are independent of any windowing--- system in use on the system. Further, neither @HDC@ nor--- 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'* refer to a physical--- display object.+-- system in use on the system. Further, neither @HDC@ nor @Display*@ refer+-- to a physical display object. -- -- 10) Are displays queried from a physical GPU or from a device instance? --@@ -312,7 +311,7 @@ -- -- - Added functions to query count of display, mode and overlay. ----- - Added native display handle, which is maybe needed on some+-- - Added native display handle, which may be needed on some -- platforms to create a native Window. -- -- - Revision 4, 2015-03-18 (Norbert Nopper)@@ -320,7 +319,7 @@ -- - Removed primary and virtualPostion members (see comment of James -- Jones in Bugzilla). ----- - Added native overlay handle to info structure.+-- - Added native overlay handle to information structure. -- -- - Replaced , with ; in struct. --@@ -328,7 +327,7 @@ -- -- - Added WSI extension suffix to all items. ----- - Made the whole API more \"Vulkanish\".+-- - Made the whole API more “Vulkanish”. -- -- - Replaced all functions with a single vkGetDisplayInfoKHR -- function to better match the rest of the API.@@ -340,8 +339,8 @@ -- - Renamed *Info structures to *Properties. -- -- - Removed overlayIndex field from VkOverlayProperties as there is--- an implicit index already as a result of moving to a--- \"Vulkanish\" API.+-- an implicit index already as a result of moving to a “Vulkanish”+-- API. -- -- - Displays are not get through device, but through physical GPU to -- match the rest of the Vulkan API. Also this is something ISVs@@ -392,14 +391,14 @@ -- swapchain specifications and the latest Vulkan API. -- -- - Address overlay planes by their index rather than an object--- handle and refer to them as \"planes\" rather than \"overlays\"--- to make it slightly clearer that even a display with no--- \"overlays\" still has at least one base \"plane\" that images--- can be displayed on.+-- handle and refer to them as “planes” rather than “overlays” to+-- make it slightly clearer that even a display with no “overlays”+-- still has at least one base “plane” that images can be displayed+-- on. -- -- - Updated most of the issues. ----- - Added an \"extension type\" section to the specification header.+-- - Added an “extension type” section to the specification header. -- -- - Re-used the VK_EXT_KHR_surface surface transform enumerations -- rather than redefining them here.@@ -412,7 +411,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Revision 14, 2015-09-01 (James Jones)@@ -443,7 +442,7 @@ -- -- - Removed detailed mode timing data. It was agreed that the mode -- extents and refresh rate are sufficient for current use cases.--- Other information could be added back2 in as an extension if it+-- Other information could be added back in as an extension if it -- is needed in the future. -- -- - Added support for smart\/persistent\/buffered display devices.@@ -477,7 +476,7 @@ -- -- - Revision 22, 2015-12-18 (James Jones) ----- - Added missing \"planeIndex\" parameter to+-- - Added missing “planeIndex” parameter to -- vkGetDisplayPlaneSupportedDisplaysKHR() -- -- - Revision 23, 2017-03-13 (James Jones)
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -85,7 +85,7 @@ -- already complex enough. -- -- 2) Should the @srcRect@ and @dstRect@ parameters be specified as part of--- the present command, or at swapchain creation time?+-- the presentation command, or at swapchain creation time? -- -- __RESOLVED__: As part of the presentation command. This allows moving -- and scaling the image on the screen without the need to respecify the@@ -149,7 +149,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Revision 3, 2015-09-01 (James Jones)@@ -434,8 +434,9 @@ -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR' structure -- returned by -- 'Vulkan.Extensions.VK_KHR_display.getPhysicalDeviceDisplayPropertiesKHR'--- for the display the present operation targets then @persistent@--- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'+-- for the display the present operation targets is+-- 'Vulkan.Core10.FundamentalTypes.FALSE', then @persistent@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- == Valid Usage (Implicit) --@@ -456,13 +457,13 @@ , -- | @dstRect@ is a rectangular region within the visible region of the -- swapchain’s display mode. If 'DisplayPresentInfoKHR' is not specified, -- this region will be assumed to be the entire visible region of the- -- visible region of the swapchain’s mode. If the specified rectangle is a- -- subset of the display mode’s visible region, content from display planes- -- below the swapchain’s plane will be visible outside the rectangle. If- -- there are no planes below the swapchain’s, the area outside the- -- specified rectangle will be black. If portions of the specified- -- rectangle are outside of the display’s visible region, pixels mapping- -- only to those portions of the rectangle will be discarded.+ -- swapchain’s mode. If the specified rectangle is a subset of the display+ -- mode’s visible region, content from display planes below the swapchain’s+ -- plane will be visible outside the rectangle. If there are no planes+ -- below the swapchain’s, the area outside the specified rectangle will be+ -- black. If portions of the specified rectangle are outside of the+ -- display’s visible region, pixels mapping only to those portions of the+ -- rectangle will be discarded. dstRect :: Rect2D , -- | @persistent@: If this is 'Vulkan.Core10.FundamentalTypes.TRUE', the -- display engine will enable buffered mode on displays that support it.
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot view
@@ -85,7 +85,7 @@ -- already complex enough. -- -- 2) Should the @srcRect@ and @dstRect@ parameters be specified as part of--- the present command, or at swapchain creation time?+-- the presentation command, or at swapchain creation time? -- -- __RESOLVED__: As part of the presentation command. This allows moving -- and scaling the image on the screen without the need to respecify the@@ -149,7 +149,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Revision 3, 2015-09-01 (James Jones)
src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs view
@@ -60,12 +60,12 @@ -- == Description -- -- This extension is based off the @VK_AMD_draw_indirect_count@ extension.--- This extension allows an application to source the number of draw calls--- for indirect draw calls from a buffer.+-- This extension allows an application to source the number of draws for+-- indirect draw calls from a buffer. -- -- Applications might want to do culling on the GPU via a compute shader--- prior to the draw. This enables the application to generate arbitrary--- amounts of draw commands and execute them without host intervention.+-- prior to drawing. This enables the application to generate an arbitrary+-- number of drawing commands and execute them without host intervention. -- -- == Promotion to Vulkan 1.2 --
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs view
@@ -389,7 +389,9 @@ -- 'Vulkan.Core11.Enums.FenceImportFlagBits.FenceImportFlagBits' specifying -- additional parameters for the fence payload import operation. flags :: FenceImportFlags- , -- | @handleType@ specifies the type of @fd@.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+ -- value specifying the type of @fd@. handleType :: ExternalFenceHandleTypeFlagBits , -- | @fd@ is the external handle to import. fd :: Int32@@ -501,7 +503,9 @@ data FenceGetFdInfoKHR = FenceGetFdInfoKHR { -- | @fence@ is the fence from which state will be exported. fence :: Fence- , -- | @handleType@ is the type of handle requested.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+ -- value specifying the type of handle requested. handleType :: ExternalFenceHandleTypeFlagBits } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -401,12 +401,14 @@ -- 'Vulkan.Core11.Enums.FenceImportFlagBits.FenceImportFlagBits' specifying -- additional parameters for the fence payload import operation. flags :: FenceImportFlags- , -- | @handleType@ specifies the type of @handle@.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+ -- value specifying the type of @handle@. handleType :: ExternalFenceHandleTypeFlagBits- , -- | @handle@ is the external handle to import, or @NULL@.+ , -- | @handle@ is @NULL@ or the external handle to import. handle :: HANDLE- , -- | @name@ is a null-terminated UTF-16 string naming the underlying- -- synchronization primitive to import, or @NULL@.+ , -- | @name@ is @NULL@ or a null-terminated UTF-16 string naming the+ -- underlying synchronization primitive to import. name :: LPCWSTR } deriving (Typeable, Eq)@@ -635,7 +637,9 @@ data FenceGetWin32HandleInfoKHR = FenceGetWin32HandleInfoKHR { -- | @fence@ is the fence from which state will be exported. fence :: Fence- , -- | @handleType@ is the type of handle requested.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+ -- value specifying the type of handle requested. handleType :: ExternalFenceHandleTypeFlagBits } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_memory.hs view
@@ -174,9 +174,9 @@ -- receive it from another instance or API? -- -- __RESOLVED__: Yes. Some implementations need to perform additional cache--- management when transitioning memory between address spaces, and other--- APIs, instances, or processes may operate in a separate address space.--- Options for defining this transition include:+-- management when transitioning memory between address spaces and other+-- APIs, instances, or processes which may operate in a separate address+-- space. Options for defining this transition include: -- -- - A new structure that can be added to the @pNext@ list in -- 'Vulkan.Core10.OtherTypes.MemoryBarrier',@@ -212,7 +212,7 @@ -- external→internal barrier. This may not be a problem in practice, but -- seems like the wrong scope. Another downside of -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags' is that it--- lacks inherent directionality: There are not @src@ and @dst@ variants of+-- lacks inherent directionality: there are no @src@ and @dst@ variants of -- it in the barrier or dependency description semantics, so two bits might -- need to be added to describe both internal→external and -- external→internal transitions. Transitioning a resource to a special@@ -237,7 +237,7 @@ -- -- __RESOLVED__: Some vendors claim this is necessary on their -- implementations, but it was determined that the security risks of--- allowing opaque meta data to be passed from applications to the driver+-- allowing opaque metadata to be passed from applications to the driver -- were too high. Therefore, implementations which require metadata will -- need to associate it with the objects represented by the external -- handles, and rely on the dedicated allocation mechanism to associate the@@ -256,29 +256,30 @@ -- containing brief descriptions of the layout of bits within that memory. -- -- Because memory object-based sharing is aligned with the overall Vulkan--- API design, it exposes the full power of Vulkan on external objects.--- External memory can be used as backing for sparse images, for example,--- whereas such usage would be awkward at best with a sharing mechanism--- based on higher-level primitives such as images. Further, aligning the--- mechanism with the API in this way provides some hope of trivial--- compatibility with future API enhancements. If new objects backed by--- memory objects are added to the API, they too can be used across--- processes with minimal additions to the base external memory APIs.+-- API design, it enables the full range of Vulkan capabilities with+-- external objects. External memory can be used as backing for sparse+-- images, for example, whereas such usage would be awkward at best with a+-- sharing mechanism based on higher-level primitives such as images.+-- Further, aligning the mechanism with the API in this way provides some+-- hope of trivial compatibility with future API enhancements. If new+-- objects backed by memory objects are added to the API, they too can be+-- used across processes with minimal additions to the base external memory+-- APIs. -- -- Earlier APIs implemented interop at a higher level, and this -- necessitated entirely separate sharing APIs for images and buffers. To -- co-exist and interoperate with those APIs, the Vulkan external sharing -- mechanism must accommodate their model. However, if it can be agreed -- that memory-based sharing is the more desirable and forward-looking--- design, legacy interoperation considerations can be considered another--- reason to favor memory-based sharing: While native and legacy driver+-- design, legacy interoperation constraints can be considered another+-- reason to favor memory-based sharing: while native and legacy driver -- primitives that may be used to implement sharing may not be as low-level -- as the API here suggests, raw memory is still the least common -- denominator among the types. Image-based sharing can be cleanly derived -- from a set of base memory- object sharing APIs with minimal effort, -- whereas image-based sharing does not generalize well to buffer or -- raw-memory sharing. Therefore, following the general Vulkan design--- principle of minimalism, it is better to expose even interopability with+-- principle of minimalism, it is better to expose interopability with -- image-based native and external primitives via the memory sharing API, -- and place sufficient limits on their usage to ensure they can be used -- only as backing for equivalent Vulkan images. This provides a consistent@@ -310,7 +311,7 @@ -- not be visible to applications importing an exported memory object. -- -- 9) Must implementations validate external handles the application--- provides as input to memory import operations?+-- provides as inputs to memory import operations? -- -- __RESOLVED__: Implementations must return an error to the application if -- the provided memory handle cannot be used to complete the requested
src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -212,9 +212,9 @@ -- API are added. To allow correlating with Direct3D devices, a device LUID -- is added that corresponds to a DXGI adapter LUID. A driver ID is not -- needed for Direct3D because mismatched driver component versions are not--- a currently supported configuration on the Windows OS. Should support--- for such configurations be introduced at the OS level, further Vulkan--- extensions would be needed to correlate userspace component builds.+-- currently supported on the Windows OS. Should support for such+-- configurations be introduced at the OS level, further Vulkan extensions+-- would be needed to correlate userspace component builds. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -289,7 +289,9 @@ -- #VUID-vkGetMemoryFdPropertiesKHR-device-parameter# @device@ /must/ be a -- valid 'Vulkan.Core10.Handles.Device' handle Device- -> -- | @handleType@ is the type of the handle @fd@.+ -> -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of the handle @fd@. -- -- #VUID-vkGetMemoryFdPropertiesKHR-handleType-00674# @handleType@ /must/ -- not be@@ -348,10 +350,13 @@ -- -- - #VUID-VkImportMemoryFdInfoKHR-handleType-00669# If @handleType@ is -- not @0@, it /must/ be--- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'.+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'+-- or+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT' -- -- - #VUID-VkImportMemoryFdInfoKHR-handleType-00670# If @handleType@ is--- not @0@, @fd@ /must/ be a valid POSIX file descriptor handle.+-- not @0@, @fd@ /must/ be a valid handle of the type specified by+-- @handleType@ -- -- - #VUID-VkImportMemoryFdInfoKHR-fd-01746# The memory represented by -- @fd@ /must/ have been created from a physical device and driver that@@ -377,7 +382,9 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryFdInfoKHR = ImportMemoryFdInfoKHR- { -- | @handleType@ specifies the handle type of @fd@.+ { -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the handle type of @fd@. handleType :: ExternalMemoryHandleTypeFlagBits , -- | @fd@ is the external handle to import. fd :: Int32@@ -487,7 +494,7 @@ -- Note -- -- The size of the exported file /may/ be larger than the size requested by--- 'Vulkan.Core10.Memory.MemoryAllocateInfo'::allocationSize. If+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@. If -- @handleType@ is -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT', -- then the application /can/ query the file’s actual size with@@ -506,7 +513,9 @@ -- #VUID-VkMemoryGetFdInfoKHR-memory-parameter# @memory@ /must/ be a valid -- 'Vulkan.Core10.Handles.DeviceMemory' handle memory :: DeviceMemory- , -- | @handleType@ is the type of handle requested.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of handle requested. -- -- #VUID-VkMemoryGetFdInfoKHR-handleType-00671# @handleType@ /must/ have -- been included in@@ -514,7 +523,9 @@ -- when @memory@ was created -- -- #VUID-VkMemoryGetFdInfoKHR-handleType-00672# @handleType@ /must/ be- -- defined as a POSIX file descriptor handle+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'+ -- or+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT' -- -- #VUID-VkMemoryGetFdInfoKHR-handleType-parameter# @handleType@ /must/ be -- a valid
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -310,7 +310,9 @@ -- #VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter# @device@ -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle Device- -> -- | @handleType@ is the type of the handle @handle@.+ -> -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of the handle @handle@. -- -- #VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666# @handleType@ -- /must/ not be one of the handle types defined as opaque@@ -424,12 +426,14 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryWin32HandleInfoKHR = ImportMemoryWin32HandleInfoKHR- { -- | @handleType@ specifies the type of @handle@ or @name@.+ { -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of @handle@ or @name@. handleType :: ExternalMemoryHandleTypeFlagBits- , -- | @handle@ is the external handle to import, or @NULL@.+ , -- | @handle@ is @NULL@ or the external handle to import. handle :: HANDLE- , -- | @name@ is a null-terminated UTF-16 string naming the payload to import,- -- or @NULL@.+ , -- | @name@ is @NULL@ or a null-terminated UTF-16 string naming the payload+ -- to import. name :: LPCWSTR } deriving (Typeable, Eq)@@ -498,23 +502,25 @@ -- -- For handles of the following types: ----- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT'--- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT'+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT' --+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT'+-- -- The implementation /must/ ensure the access rights allow read and write -- access to the memory. -- -- For handles of the following types: ----- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT'--- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT'+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT' --+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT'+-- -- The access rights /must/ be: ----- @GENERIC_ALL@+-- - @GENERIC_ALL@ ----- [1]--- <https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights>+-- [1]+-- <https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights> -- -- == Valid Usage --@@ -703,7 +709,9 @@ data MemoryGetWin32HandleInfoKHR = MemoryGetWin32HandleInfoKHR { -- | @memory@ is the memory object from which the handle will be exported. memory :: DeviceMemory- , -- | @handleType@ is the type of handle requested.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value specifying the type of handle requested. handleType :: ExternalMemoryHandleTypeFlagBits } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -416,7 +416,9 @@ -- specifying additional parameters for the semaphore payload import -- operation. flags :: SemaphoreImportFlags- , -- | @handleType@ specifies the type of @fd@.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+ -- value specifying the type of @fd@. handleType :: ExternalSemaphoreHandleTypeFlagBits , -- | @fd@ is the external handle to import. fd :: Int32@@ -547,7 +549,9 @@ data SemaphoreGetFdInfoKHR = SemaphoreGetFdInfoKHR { -- | @semaphore@ is the semaphore from which state will be exported. semaphore :: Semaphore- , -- | @handleType@ is the type of handle requested.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+ -- value specifying the type of handle requested. handleType :: ExternalSemaphoreHandleTypeFlagBits } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -475,12 +475,14 @@ -- specifying additional parameters for the semaphore payload import -- operation. flags :: SemaphoreImportFlags- , -- | @handleType@ specifies the type of @handle@.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+ -- value specifying the type of @handle@. handleType :: ExternalSemaphoreHandleTypeFlagBits- , -- | @handle@ is the external handle to import, or @NULL@.+ , -- | @handle@ is @NULL@ or the external handle to import. handle :: HANDLE- , -- | @name@ is a null-terminated UTF-16 string naming the underlying- -- synchronization primitive to import, or @NULL@.+ , -- | @name@ is @NULL@ or a null-terminated UTF-16 string naming the+ -- underlying synchronization primitive to import. name :: LPCWSTR } deriving (Typeable, Eq)@@ -693,13 +695,13 @@ -- @waitSemaphoreValuesCount@ /must/ be the same value as -- 'Vulkan.Core10.Queue.SubmitInfo'::@waitSemaphoreCount@, where -- 'Vulkan.Core10.Queue.SubmitInfo' is in the @pNext@ chain of this--- 'D3D12FenceSubmitInfoKHR' structure+-- 'D3D12FenceSubmitInfoKHR' structure. -- -- - #VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080# -- @signalSemaphoreValuesCount@ /must/ be the same value as -- 'Vulkan.Core10.Queue.SubmitInfo'::@signalSemaphoreCount@, where -- 'Vulkan.Core10.Queue.SubmitInfo' is in the @pNext@ chain of this--- 'D3D12FenceSubmitInfoKHR' structure+-- 'D3D12FenceSubmitInfoKHR' structure. -- -- == Valid Usage (Implicit) --@@ -881,7 +883,9 @@ data SemaphoreGetWin32HandleInfoKHR = SemaphoreGetWin32HandleInfoKHR { -- | @semaphore@ is the semaphore from which state will be exported. semaphore :: Semaphore- , -- | @handleType@ is the type of handle requested.+ , -- | @handleType@ is a+ -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+ -- value specifying the type of handle requested. handleType :: ExternalSemaphoreHandleTypeFlagBits } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -138,7 +138,7 @@ -- -- - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': ----- - 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+-- - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -151,17 +151,17 @@ -- -- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': ----- - 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+-- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': ----- - 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - Extending -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': ----- - 'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -201,10 +201,6 @@ -- the generator scripts, not directly. module Vulkan.Extensions.VK_KHR_fragment_shading_rate ( cmdSetFragmentShadingRateKHR , getPhysicalDeviceFragmentShadingRatesKHR- , pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR- , pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR- , pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR- , pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , FragmentShadingRateAttachmentInfoKHR(..) , PipelineFragmentShadingRateStateCreateInfoKHR(..) , PhysicalDeviceFragmentShadingRateFeaturesKHR(..)@@ -233,6 +229,7 @@ import Foreign.Marshal.Alloc (allocaBytesAligned) import Foreign.Marshal.Alloc (callocBytes) import Foreign.Marshal.Alloc (free)+import Foreign.Marshal.Utils (maybePeek) import GHC.Base (when) import GHC.IO (throwIO) import GHC.Ptr (castPtr)@@ -292,16 +289,8 @@ import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags) import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.CStruct.Extends (SomeStruct(..)) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)-import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV))-import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV))-import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)-import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlagBits(IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV))-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR))@@ -323,12 +312,12 @@ -- - #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507# -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>--- is not enabled, @pFragmentSize@->@width@ /must/ be @1@+-- 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>--- is not enabled, @pFragmentSize@->@height@ /must/ be @1@+-- is not enabled, @pFragmentSize->height@ /must/ be @1@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509# -- One of@@ -358,22 +347,22 @@ -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513#--- @pFragmentSize@->@width@ /must/ be greater than or equal to @1@+-- @pFragmentSize->width@ /must/ be greater than or equal to @1@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514#--- @pFragmentSize@->@height@ /must/ be greater than or equal to @1@+-- @pFragmentSize->height@ /must/ be greater than or equal to @1@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515#--- @pFragmentSize@->@width@ /must/ be a power-of-two value+-- @pFragmentSize->width@ /must/ be a power-of-two value -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516#--- @pFragmentSize@->@height@ /must/ be a power-of-two value+-- @pFragmentSize->height@ /must/ be a power-of-two value -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517#--- @pFragmentSize@->@width@ /must/ be less than or equal to @4@+-- @pFragmentSize->width@ /must/ be less than or equal to @4@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518#--- @pFragmentSize@->@height@ /must/ be less than or equal to @4@+-- @pFragmentSize->height@ /must/ be less than or equal to @4@ -- -- == Valid Usage (Implicit) --@@ -426,7 +415,7 @@ -- recorded. CommandBuffer -> -- | @pFragmentSize@ specifies the pipeline fragment shading rate for- -- subsequent draw commands.+ -- subsequent drawing commands. ("fragmentSize" ::: Extent2D) -> -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' determining -- how the@@ -538,8 +527,27 @@ -- -- Including the {1,1} fragment size is done for completeness; it has no -- actual effect on the support of rendering without setting the fragment--- size. All sample counts are supported for this rate.+-- size. All sample counts and render pass transforms are supported for+-- this rate. --+-- The returned set of fragment shading rates /must/ be returned in the+-- native (rotated) coordinate system. For rasterization using render pass+-- @transform@ not equal to+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+-- the application /must/ transform the returned fragment shading rates+-- into the current (unrotated) coordinate system to get the supported+-- rates for that transform.+--+-- Note+--+-- For example, consider an implementation returning support for 4x2, but+-- not 2x4 in the set of supported fragment shading rates. This means that+-- for transforms+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR'+-- and+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',+-- 2x4 is a supported rate, but 4x2 is an unsupported rate.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter#@@ -597,28 +605,12 @@ pure $ ((r'), pFragmentShadingRates') --- No documentation found for TopLevel "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR"-pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV----- No documentation found for TopLevel "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"-pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV----- No documentation found for TopLevel "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"-pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV----- No documentation found for TopLevel "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"-pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV-- -- | VkFragmentShadingRateAttachmentInfoKHR - Structure specifying a fragment -- shading rate attachment for a subpass -- -- = Description ----- If no shading rate attachment is specified, or if this structure isn’t+-- If no shading rate attachment is specified, 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.@@ -631,7 +623,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member -- /must/ be equal to -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or--- 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -704,6 +696,7 @@ -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR' -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter#+-- If @pFragmentShadingRateAttachment@ is not @NULL@, -- @pFragmentShadingRateAttachment@ /must/ be a valid pointer to a -- valid -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2'@@ -715,11 +708,11 @@ -- 'Vulkan.Core10.FundamentalTypes.Extent2D', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data FragmentShadingRateAttachmentInfoKHR = FragmentShadingRateAttachmentInfoKHR- { -- | @pFragmentShadingRateAttachment@ is an optional- -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.AttachmentReference2KHR'+ { -- | @pFragmentShadingRateAttachment@ is @NULL@ or a pointer to a+ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2' -- structure defining the fragment shading rate attachment for this -- subpass.- fragmentShadingRateAttachment :: SomeStruct AttachmentReference2+ fragmentShadingRateAttachment :: Maybe (SomeStruct AttachmentReference2) , -- | @shadingRateAttachmentTexelSize@ specifies the size of the portion of -- the framebuffer corresponding to each texel in -- @pFragmentShadingRateAttachment@.@@ -736,30 +729,31 @@ pokeCStruct p FragmentShadingRateAttachmentInfoKHR{..} f = evalContT $ do lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR) lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pFragmentShadingRateAttachment'' <- ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 (fragmentShadingRateAttachment) (cont . castPtr)+ pFragmentShadingRateAttachment'' <- case (fragmentShadingRateAttachment) of+ Nothing -> pure nullPtr+ Just j -> ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 (j) (cont . castPtr) lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _)))) pFragmentShadingRateAttachment'' lift $ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize) lift $ f cStructSize = 32 cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- pFragmentShadingRateAttachment'' <- ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 ((SomeStruct zero)) (cont . castPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _)))) pFragmentShadingRateAttachment''- lift $ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (zero)- lift $ f+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (zero)+ f instance FromCStruct FragmentShadingRateAttachmentInfoKHR where peekCStruct p = do- pFragmentShadingRateAttachment <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _))))+ pFragmentShadingRateAttachment <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _))))+ pFragmentShadingRateAttachment' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pFragmentShadingRateAttachment shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D)) pure $ FragmentShadingRateAttachmentInfoKHR- pFragmentShadingRateAttachment shadingRateAttachmentTexelSize+ pFragmentShadingRateAttachment' shadingRateAttachmentTexelSize instance Zero FragmentShadingRateAttachmentInfoKHR where zero = FragmentShadingRateAttachmentInfoKHR- (SomeStruct zero)+ Nothing zero @@ -796,7 +790,7 @@ data PipelineFragmentShadingRateStateCreateInfoKHR = PipelineFragmentShadingRateStateCreateInfoKHR { -- | @fragmentSize@ specifies a 'Vulkan.Core10.FundamentalTypes.Extent2D' -- structure containing the fragment size used to define the pipeline- -- fragment shading rate for draw commands using this pipeline.+ -- fragment shading rate for drawing commands using this pipeline. fragmentSize :: Extent2D , -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' value -- determining how the@@ -866,18 +860,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShadingRateFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentShadingRateFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentShadingRateFeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable these--- features.+-- 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. 'PhysicalDeviceFragmentShadingRateFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -949,13 +944,6 @@ -- variable fragment shading rate limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceFragmentShadingRatePropertiesKHR'--- structure describe the following implementation-dependent properties--- related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>:--- -- = Description -- -- Note@@ -974,10 +962,16 @@ -- will not affect the correct operation of applications. -- -- If the 'PhysicalDeviceFragmentShadingRatePropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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 are related to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -1043,9 +1037,9 @@ -- with multiple layers. If this value is -- 'Vulkan.Core10.FundamentalTypes.FALSE', when creating an image view with -- a @usage@ that includes- -- 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', @layerCount@- -- /must/ be @1@. It /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' if- -- the+ -- '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> -- feature, the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>@@ -1092,9 +1086,11 @@ -- is supported. This limit is purely informational, and is not validated. maxFragmentShadingRateCoverageSamples :: Word32 , -- | #limits-maxFragmentShadingRateRasterizationSamples#- -- @maxFragmentShadingRateRasterizationSamples@ specifies the maximum- -- sample rate supported when a fragment covers multiple pixels. This limit- -- is purely informational, and is not validated.+ -- @maxFragmentShadingRateRasterizationSamples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the maximum sample rate supported when a fragment covers+ -- multiple pixels. This limit is purely informational, and is not+ -- validated. maxFragmentShadingRateRasterizationSamples :: SampleCountFlagBits , -- | #limits-fragmentShadingRateWithShaderDepthStencilWrites# -- @fragmentShadingRateWithShaderDepthStencilWrites@ specifies whether the@@ -1106,7 +1102,7 @@ , -- | #limits-fragmentShadingRateWithSampleMask# -- @fragmentShadingRateWithSampleMask@ specifies whether the the -- implementation supports setting valid bits of- -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::pSampleMask+ -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@pSampleMask@ -- to @0@ for multi-pixel fragments. If this value is -- 'Vulkan.Core10.FundamentalTypes.FALSE', zeroing valid bits in the sample -- mask will clamp the fragment shading rate to (1,1).@@ -1366,8 +1362,8 @@ -- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR' specifies a combiner -- operation of combine(Axy,Bxy) = max(Axy,Bxy). pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = FragmentShadingRateCombinerOpKHR 3--- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' combiner operation of--- combine(Axy,Bxy) = Axy*Bxy.+-- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' specifies a combiner+-- operation of combine(Axy,Bxy) = Axy*Bxy. pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = FragmentShadingRateCombinerOpKHR 4 {-# complete FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR, FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot view
@@ -138,7 +138,7 @@ -- -- - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': ----- - 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+-- - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -151,17 +151,17 @@ -- -- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': ----- - 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+-- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': ----- - 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - Extending -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': ----- - 'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --
src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs view
@@ -142,14 +142,14 @@ -- > // Get features with a hypothetical future extension. -- > VkHypotheticalExtensionFeaturesKHR hypotheticalFeatures = -- > {--- > VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType--- > NULL, // pNext+-- > VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType+-- > NULL, // pNext -- > }; -- > -- > VkPhysicalDeviceFeatures2KHR features = -- > {--- > VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType--- > &hypotheticalFeatures, // pNext+-- > VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType+-- > &hypotheticalFeatures, // pNext -- > }; -- > -- > // After this call, features and hypotheticalFeatures have been filled out.@@ -160,14 +160,14 @@ -- > // Enable some features: -- > VkHypotheticalExtensionFeaturesKHR enabledHypotheticalFeatures = -- > {--- > VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType--- > NULL, // pNext+-- > VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType+-- > NULL, // pNext -- > }; -- > -- > VkPhysicalDeviceFeatures2KHR enabledFeatures = -- > {--- > VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType--- > &enabledHypotheticalFeatures, // pNext+-- > VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType+-- > &enabledHypotheticalFeatures, // pNext -- > }; -- > -- > enabledFeatures.features.xyz = VK_TRUE;@@ -175,11 +175,11 @@ -- > -- > VkDeviceCreateInfo deviceCreateInfo = -- > {--- > VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, // sType--- > &enabledFeatures, // pNext+-- > VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, // sType+-- > &enabledFeatures, // pNext -- > ...--- > NULL, // pEnabledFeatures--- > }+-- > NULL, // pEnabledFeatures+-- > }; -- > -- > VkDevice device; -- > vkCreateDevice(physicalDevice, &deviceCreateInfo, NULL, &device);
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -347,11 +347,9 @@ -- return the variable is overwritten with the number of structures -- actually written to @pSurfaceFormats@. If the value of -- @pSurfaceFormatCount@ is less than the number of format tuples--- supported, at most @pSurfaceFormatCount@ structures will be written. If--- @pSurfaceFormatCount@ is smaller than the number of format tuples--- supported for the surface parameters described in @pSurfaceInfo@,+-- supported, at most @pSurfaceFormatCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all the+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the -- available values were returned. -- -- == Valid Usage
src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs view
@@ -37,14 +37,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] -- 2018-12-14 -- -- [__Interactions and External Dependencies__] -- -- - Promoted to Vulkan 1.2 Core ----- [Contributors]+-- [__Contributors__] -- -- - Tobias Hector --
src/Vulkan/Extensions/VK_KHR_incremental_present.hs view
@@ -15,7 +15,7 @@ -- 85 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --@@ -127,12 +127,30 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' must still be -- honored, including waiting for semaphores to signal. --+-- 5) When the swapchain is created with+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@preTransform@+-- set to a value other than+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+-- should the rectangular region, 'RectLayerKHR', be transformed to align+-- with the @preTransform@?+--+-- __RESOLVED__: No. The rectangular region in 'RectLayerKHR' should not be+-- tranformed. As such, it may not align with the extents of the+-- swapchain’s image(s). It is the responsibility of the presentation+-- engine to transform the rectangular region. This matches the behavior of+-- the Android presentation engine, which set the precedent.+-- -- == Version History -- -- - Revision 1, 2016-11-02 (Ian Elliott) -- -- - Internal revisions --+-- - Revision 2, 2021-03-18 (Ian Elliott)+--+-- - Clarified alignment of rectangles for presentation engines that+-- support transformed swapchains.+-- -- = See Also -- -- 'PresentRegionKHR', 'PresentRegionsKHR', 'RectLayerKHR'@@ -297,7 +315,12 @@ -- framebuffer coordinates, plus layer, of a portion of a presentable image -- that has changed and /must/ be presented. If non-@NULL@, each entry in -- @pRectangles@ is a rectangle of the given image that has changed since- -- the last image was presented to the given swapchain.+ -- the last image was presented to the given swapchain. The rectangles+ -- /must/ be specified relative to+ -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@currentTransform@,+ -- regardless of the swapchain’s @preTransform@. The presentation engine+ -- will apply the @preTransform@ transformation to the rectangles, along+ -- with any further transformation it applies to the image content. rectangles :: Vector RectLayerKHR } deriving (Typeable)@@ -347,13 +370,22 @@ -- | VkRectLayerKHR - Structure containing a rectangle, including layer, -- changed by vkQueuePresentKHR for a given VkImage --+-- = Description+--+-- Some platforms allow the size of a surface to change, and then scale the+-- pixels of the image to fit the surface. 'RectLayerKHR' specifies pixels+-- of the swapchain’s image(s), which will be constant for the life of the+-- swapchain.+-- -- == Valid Usage ----- - #VUID-VkRectLayerKHR-offset-01261# The sum of @offset@ and @extent@--- /must/ be no greater than the @imageExtent@ member of the+-- - #VUID-VkRectLayerKHR-offset-04864# The sum of @offset@ and @extent@,+-- after being transformed according to the @preTransform@ member of+-- the 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'+-- structure, /must/ be no greater than the @imageExtent@ member of the -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR' -- structure passed to--- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'+-- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'. -- -- - #VUID-VkRectLayerKHR-layer-01262# @layer@ /must/ be less than the -- @imageArrayLayers@ member of the@@ -361,11 +393,6 @@ -- structure passed to -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR' ----- Some platforms allow the size of a surface to change, and then scale the--- pixels of the image to fit the surface. 'RectLayerKHR' specifies pixels--- of the swapchain’s image(s), which will be constant for the life of the--- swapchain.--- -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Extent2D',@@ -421,11 +448,11 @@ zero -type KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 1+type KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION" pattern KHR_INCREMENTAL_PRESENT_SPEC_VERSION :: forall a . Integral a => a-pattern KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 1+pattern KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 2 type KHR_INCREMENTAL_PRESENT_EXTENSION_NAME = "VK_KHR_incremental_present"
src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot view
@@ -15,7 +15,7 @@ -- 85 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --@@ -127,11 +127,29 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' must still be -- honored, including waiting for semaphores to signal. --+-- 5) When the swapchain is created with+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@preTransform@+-- set to a value other than+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+-- should the rectangular region, 'RectLayerKHR', be transformed to align+-- with the @preTransform@?+--+-- __RESOLVED__: No. The rectangular region in 'RectLayerKHR' should not be+-- tranformed. As such, it may not align with the extents of the+-- swapchain’s image(s). It is the responsibility of the presentation+-- engine to transform the rectangular region. This matches the behavior of+-- the Android presentation engine, which set the precedent.+-- -- == Version History -- -- - Revision 1, 2016-11-02 (Ian Elliott) -- -- - Internal revisions+--+-- - Revision 2, 2021-03-18 (Ian Elliott)+--+-- - Clarified alignment of rectangles for presentation engines that+-- support transformed swapchains. -- -- = See Also --
src/Vulkan/Extensions/VK_KHR_maintenance2.hs view
@@ -205,7 +205,7 @@ -- > ... -- > .pNext = &specifyAspects, -- > ...--- > }+-- > }; -- > -- > vkCreateRenderPass(...); --
src/Vulkan/Extensions/VK_KHR_multiview.hs view
@@ -60,7 +60,7 @@ -- This extension has the same goal as the OpenGL ES @GL_OVR_multiview@ -- extension. Multiview is a rendering technique originally designed for VR -- where it is more efficient to record a single set of commands to be--- executed with slightly different behavior for each \"view\".+-- executed with slightly different behavior for each “view”. -- -- It includes a concise way to declare a render pass with multiple views, -- and gives implementations freedom to render the views in the most@@ -73,9 +73,9 @@ -- -- This extension enables the use of the -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_multiview.html SPV_KHR_multiview>--- shader extension which adds a new @ViewIndex@ built-in type to shaders--- that allow shaders to control what to do for each view. If using GLSL--- there is also a+-- shader extension, which adds a new @ViewIndex@ built-in type that allows+-- shaders to control what to do for each view. If using GLSL there is also+-- the -- <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview> -- extension that introduces a @highp int gl_ViewIndex;@ built-in variable -- for vertex, tessellation, geometry, and fragment shaders.
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -225,9 +225,9 @@ -- 10) Should we introduce an indirect mechanism to set the counter pass -- index? ----- __RESOLVED__ Specify the counter pass index at submit time instead to+-- __RESOLVED__ Specify the counter pass index at submit time instead, to -- avoid requiring re-recording of command buffers when multiple counter--- passes needed.+-- passes are needed. -- -- == Examples --@@ -648,9 +648,10 @@ -- of elements in the @pCounters@, @pCounterDescriptions@, or both arrays -- and on return the variable is overwritten with the number of structures -- actually written out. If @pCounterCount@ is less than the number of--- counters available, at most @pCounterCount@ structures will be written+-- counters available, at most @pCounterCount@ structures will be written, -- and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS'.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available counters were returned. -- -- == Valid Usage (Implicit) --@@ -892,6 +893,22 @@ -- | VkPhysicalDevicePerformanceQueryFeaturesKHR - Structure describing -- performance query support for an implementation --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevicePerformanceQueryFeaturesKHR' 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. 'PhysicalDevicePerformanceQueryFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -954,18 +971,18 @@ -- | VkPhysicalDevicePerformanceQueryPropertiesKHR - Structure describing -- performance query properties for an implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDevicePerformanceQueryPropertiesKHR'--- structure describe the following implementation-dependent properties:+-- If the 'PhysicalDevicePerformanceQueryPropertiesKHR' 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) ----- If the 'PhysicalDevicePerformanceQueryPropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent properties.--- -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Bool32',@@ -1206,7 +1223,7 @@ { -- | @queueFamilyIndex@ is the queue family index to create this performance -- query pool for. queueFamilyIndex :: Word32- , -- | @pCounterIndices@ is the array of indices into the+ , -- | @pCounterIndices@ is a pointer to an array of indices into the -- 'enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR'::@pCounters@ -- to enable in this performance query pool. counterIndices :: Vector Word32
src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot view
@@ -225,9 +225,9 @@ -- 10) Should we introduce an indirect mechanism to set the counter pass -- index? ----- __RESOLVED__ Specify the counter pass index at submit time instead to+-- __RESOLVED__ Specify the counter pass index at submit time instead, to -- avoid requiring re-recording of command buffers when multiple counter--- passes needed.+-- passes are needed. -- -- == Examples --
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -145,9 +145,9 @@ -- the compilation process and about which you can query properties and -- statistics? ----- __RESOLVED__: Call them \"executables\". The name \"binary\" was used in--- early drafts of the extension but it was determined that \"pipeline--- binary\" could have a fairly broad meaning (such as a binary serialized+-- __RESOLVED__: Call them “executables”. The name “binary” was used in+-- early drafts of the extension but it was determined that “pipeline+-- binary” could have a fairly broad meaning (such as a binary serialized -- form of an entire pipeline) and was too big of a namespace for the very -- specific needs of this extension. --@@ -296,15 +296,17 @@ -- -- = Description ----- If @pProperties@ is @NULL@, then the number of executables associated--- with the pipeline is returned in @pExecutableCount@. Otherwise,--- @pExecutableCount@ /must/ point to a variable set by the user to the--- number of elements in the @pProperties@ array, and on return the+-- If @pProperties@ is @NULL@, then the number of pipeline executables+-- associated with the pipeline is returned in @pExecutableCount@.+-- Otherwise, @pExecutableCount@ /must/ point to a variable set by the user+-- to the number of elements in the @pProperties@ array, and on return the -- variable is overwritten with the number of structures actually written -- to @pProperties@. If @pExecutableCount@ is less than the number of--- executables associated with the pipeline, at most @pExecutableCount@--- structures will be written and 'getPipelineExecutablePropertiesKHR' will--- return 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- pipeline executables associated with the pipeline, at most+-- @pExecutableCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available properties were returned. -- -- == Valid Usage --@@ -398,9 +400,10 @@ -- variable is overwritten with the number of structures actually written -- to @pStatistics@. If @pStatisticCount@ is less than the number of -- statistics associated with the pipeline executable, at most--- @pStatisticCount@ structures will be written and--- 'getPipelineExecutableStatisticsKHR' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- @pStatisticCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available statistics were returned. -- -- == Valid Usage --@@ -500,14 +503,15 @@ -- actually written to @pInternalRepresentations@. If -- @pInternalRepresentationCount@ is less than the number of internal -- representations associated with the pipeline executable, at most--- @pInternalRepresentationCount@ structures will be written and--- 'getPipelineExecutableInternalRepresentationsKHR' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- @pInternalRepresentationCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available representations were returned. -- -- While the details of the internal representations remain implementation -- dependent, the implementation /should/ order the internal--- representations in the order in which they occur in the compile pipeline--- with the final shader assembly (if any) last.+-- representations in the order in which they occur in the compiled+-- pipeline with the final shader assembly (if any) last. -- -- == Valid Usage --@@ -593,19 +597,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --@@ -616,7 +621,7 @@ data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR { -- | #features-pipelineExecutableInfo# @pipelineExecutableInfo@ indicates -- that the implementation supports reporting properties and statistics- -- about the executables associated with a compiled pipeline.+ -- about the pipeline executables associated with a compiled pipeline. pipelineExecutableInfo :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -714,17 +719,15 @@ -- -- = Description ----- The @stages@ field /may/ be zero or it /may/ contain one or more bits--- describing the stages principally used to compile this pipeline. Not all--- implementations have a 1:1 mapping between shader stages and pipeline--- executables and some implementations /may/ reduce a given shader stage--- to fixed function hardware programming such that no executable is--- available. No guarantees are provided about the mapping between shader--- stages and pipeline executables and @stages@ /should/ be considered a--- best effort hint. Because the application /cannot/ rely on the @stages@--- field to provide an exact description, @name@ and @description@ provide--- a human readable name and description which more accurately describes--- the given pipeline executable.+-- Not all implementations have a 1:1 mapping between shader stages and+-- pipeline executables and some implementations /may/ reduce a given+-- shader stage to fixed function hardware programming such that no+-- pipeline executable is available. No guarantees are provided about the+-- mapping between shader stages and pipeline executables and @stages@+-- /should/ be considered a best effort hint. Because the application+-- /cannot/ rely on the @stages@ field to provide an exact description,+-- @name@ and @description@ provide a human readable name and description+-- which more accurately describes the given pipeline executable. -- -- == Valid Usage (Implicit) --@@ -734,22 +737,22 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'getPipelineExecutablePropertiesKHR' data PipelineExecutablePropertiesKHR = PipelineExecutablePropertiesKHR- { -- | @stages@ is a bitmask of+ { -- | @stages@ is a bitmask of zero or more -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' indicating -- which shader stages (if any) were principally used as inputs to compile -- this pipeline executable. stages :: ShaderStageFlags , -- | @name@ is an array of 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE' -- @char@ containing a null-terminated UTF-8 string which is a short human- -- readable name for this executable.+ -- readable name for this pipeline executable. name :: ByteString , -- | @description@ is an array of -- 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE' @char@ containing a -- null-terminated UTF-8 string which is a human readable description for- -- this executable.+ -- this pipeline executable. description :: ByteString- , -- | @subgroupSize@ is the subgroup size with which this executable is- -- dispatched.+ , -- | @subgroupSize@ is the subgroup size with which this pipeline executable+ -- is dispatched. subgroupSize :: Word32 } deriving (Typeable)@@ -819,12 +822,12 @@ -- #VUID-VkPipelineExecutableInfoKHR-pipeline-parameter# @pipeline@ /must/ -- be a valid 'Vulkan.Core10.Handles.Pipeline' handle pipeline :: Pipeline- , -- | @executableIndex@ is the index of the executable to query in the array- -- of executable properties returned by+ , -- | @executableIndex@ is the index of the pipeline executable to query in+ -- the array of executable properties returned by -- 'getPipelineExecutablePropertiesKHR'. -- -- #VUID-VkPipelineExecutableInfoKHR-executableIndex-03275#- -- @executableIndex@ /must/ be less than the number of executables+ -- @executableIndex@ /must/ be less than the number of pipeline executables -- associated with @pipeline@ as returned in the @pExecutableCount@ -- parameter of 'getPipelineExecutablePropertiesKHR' executableIndex :: Word32@@ -953,13 +956,15 @@ -- return @dataSize@ is overwritten with the number of bytes of data -- actually written to @pData@ including any trailing null character. If -- @dataSize@ is less than the size, in bytes, of the internal--- representation data, at most @dataSize@ bytes of data will be written to--- @pData@ and 'getPipelineExecutableInternalRepresentationsKHR' will--- return 'Vulkan.Core10.Enums.Result.INCOMPLETE'. If @isText@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE' and @pData@ is not @NULL@ and--- @dataSize@ is not zero, the last byte written to @pData@ will be a null--- character.+-- representation’s data, at most @dataSize@ bytes of data will be written+-- to @pData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned+-- instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not+-- all the available representation was returned. --+-- If @isText@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and @pData@ is not+-- @NULL@ and @dataSize@ is not zero, the last byte written to @pData@ will+-- be a null character.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -983,11 +988,10 @@ -- string. isText :: Bool , -- | @dataSize@ is an integer related to the size, in bytes, of the internal- -- representation data, as described below.+ -- representation’s data, as described below. dataSize :: Word64- , -- | @pData@ is either @NULL@ or a pointer to an block of data into which the- -- implementation will write the textual form of the internal- -- representation.+ , -- | @pData@ is either @NULL@ or a pointer to a block of data into which the+ -- implementation will write the internal representation. data' :: Ptr () } deriving (Typeable)
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot view
@@ -145,9 +145,9 @@ -- the compilation process and about which you can query properties and -- statistics? ----- __RESOLVED__: Call them \"executables\". The name \"binary\" was used in--- early drafts of the extension but it was determined that \"pipeline--- binary\" could have a fairly broad meaning (such as a binary serialized+-- __RESOLVED__: Call them “executables”. The name “binary” was used in+-- early drafts of the extension but it was determined that “pipeline+-- binary” could have a fairly broad meaning (such as a binary serialized -- form of an entire pipeline) and was too big of a namespace for the very -- specific needs of this extension. --
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs view
@@ -144,8 +144,9 @@ -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PipelineLibraryCreateInfoKHR = PipelineLibraryCreateInfoKHR- { -- | @pLibraries@ is an array of pipeline libraries to use when creating a- -- pipeline.+ { -- | @pLibraries@ is a pointer to an array of+ -- 'Vulkan.Core10.Handles.Pipeline' structures specifying pipeline+ -- libraries to use when creating a pipeline. libraries :: Vector Pipeline } deriving (Typeable) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -56,11 +56,13 @@ -- -- - Neil Trevett, NVIDIA ----- This extension allows a non-conformant Vulkan implementation to be built--- on top of another non-Vulkan graphics API, and identifies differences--- between that implementation and a fully-conformant native Vulkan--- implementation.+-- == Description --+-- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan+-- implementation to be built on top of another non-Vulkan graphics API,+-- and identifies differences between that implementation and a+-- fully-conformant native Vulkan implementation.+-- -- This extension provides Vulkan implementations with the ability to mark -- otherwise-required capabilities as unsupported, or to establish -- additional properties and limits that the application should adhere to@@ -172,18 +174,19 @@ -- -- = Members ----- The members of the 'PhysicalDevicePortabilitySubsetFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDevicePortabilitySubsetFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the features are supported.--- 'PhysicalDevicePortabilitySubsetFeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDevicePortabilitySubsetFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -383,17 +386,15 @@ -- | VkPhysicalDevicePortabilitySubsetPropertiesKHR - Structure describing -- additional properties supported by a portable implementation ----- = Members------ The members of the 'PhysicalDevicePortabilitySubsetPropertiesKHR'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDevicePortabilitySubsetPropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot view
@@ -56,10 +56,12 @@ -- -- - Neil Trevett, NVIDIA ----- This extension allows a non-conformant Vulkan implementation to be built--- on top of another non-Vulkan graphics API, and identifies differences--- between that implementation and a fully-conformant native Vulkan--- implementation.+-- == Description+--+-- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan+-- implementation to be built on top of another non-Vulkan graphics API,+-- and identifies differences between that implementation and a+-- fully-conformant native Vulkan implementation. -- -- This extension provides Vulkan implementations with the ability to mark -- otherwise-required capabilities as unsupported, or to establish
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -216,8 +216,8 @@ -- -- Push descriptors that are -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>--- by a pipeline /must/ not be undefined at the time that a draw or--- dispatch command is recorded to execute using that pipeline. This+-- 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 -- they are accessed by a pipeline (the immutable samplers are pushed, -- rather than the samplers in @pDescriptorWrites@). Push descriptors that@@ -441,7 +441,7 @@ -- > } -- > }; -- >--- > // create a descriptor update template for descriptor set updates+-- > // create a descriptor update template for push descriptor set updates -- > const VkDescriptorUpdateTemplateCreateInfo createInfo = -- > { -- > VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, // sType@@ -462,7 +462,6 @@ -- > &createInfo, -- > NULL, -- > &myDescriptorUpdateTemplate);--- > } -- > -- > AppDataStructure appData; -- > // fill appData here or cache it in your engine@@ -505,17 +504,15 @@ -- | VkPhysicalDevicePushDescriptorPropertiesKHR - Structure describing push -- descriptor limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDevicePushDescriptorPropertiesKHR' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDevicePushDescriptorPropertiesKHR' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_KHR_ray_query.hs view
@@ -279,17 +279,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRayQueryFeaturesKHR' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceRayQueryFeaturesKHR' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceRayQueryFeaturesKHR' /can/ also be used in the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceRayQueryFeaturesKHR' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -602,14 +602,15 @@ -- with gl_InstanceIndex. Which should be used for Vulkan in this -- extension? ----- RESOLVED: This extension uses gl_InstanceID and maps it to @InstanceId@--- in SPIR-V. It is acknowledged that this is different than other shader--- stages in Vulkan. There are two main reasons for the difference here:+-- __RESOLVED__: This extension uses gl_InstanceID and maps it to+-- @InstanceId@ in SPIR-V. It is acknowledged that this is different than+-- other shader stages in Vulkan. There are two main reasons for the+-- difference here: -- -- - symmetry with gl_PrimitiveID which is also available in these -- shaders ----- - there is no \"baseInstance\" relevant for these shaders, and so ID+-- - there is no “baseInstance” relevant for these shaders, and so ID -- makes it more obvious that this is zero-based. -- -- == Sample Code@@ -984,9 +985,9 @@ -- - #VUID-vkCmdTraceRaysKHR-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdTraceRaysKHR-None-02859# There /must/ not have been any -- calls to dynamic state setting commands for any state not specified@@ -1105,7 +1106,7 @@ -- -- - #VUID-vkCmdTraceRaysKHR-None-03429# Any shader group handle -- referenced by this call /must/ have been queried from the currently--- bound ray tracing shader pipeline+-- bound ray tracing pipeline -- -- - #VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679# This -- command /must/ not cause a shader call instruction to be executed@@ -1691,10 +1692,10 @@ . (MonadIO io) => -- | @device@ is the logical device that creates the ray tracing pipelines. Device- -> -- | @deferredOperation@ is an optional- -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to+ -> -- | @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>- -- for this command.+ -- 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@@ -1857,9 +1858,9 @@ -- - #VUID-vkCmdTraceRaysIndirectKHR-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-02859# There /must/ not have -- been any calls to dynamic state setting commands for any state not@@ -1981,7 +1982,7 @@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-03429# Any shader group handle -- referenced by this call /must/ have been queried from the currently--- bound ray tracing shader pipeline+-- bound ray tracing pipeline -- -- - #VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679# -- This command /must/ not cause a shader call instruction to be@@ -2155,7 +2156,7 @@ -- 1 /must/ be in the buffer device address range of the same buffer -- -- - #VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637#--- the+-- The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect ::rayTracingPipelineTraceRaysIndirect> -- feature /must/ be enabled --@@ -2232,8 +2233,8 @@ -> -- | @pCallableShaderBindingTable@ is a 'StridedDeviceAddressRegionKHR' that -- holds the shader binding table data for the callable shader stage. ("callableShaderBindingTable" ::: StridedDeviceAddressRegionKHR)- -> -- | @indirectDeviceAddress@ is a buffer device address which points to a- -- 'TraceRaysIndirectCommandKHR' structure which contains the trace ray+ -> -- | @indirectDeviceAddress@ is a buffer device address which is a pointer to+ -- a 'TraceRaysIndirectCommandKHR' structure containing the trace ray -- parameters. ("indirectDeviceAddress" ::: DeviceAddress) -> io ()@@ -2682,9 +2683,9 @@ -- @NULL@ -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591# Each--- element of the @pLibraries@ member of @pLibraryInfo@ /must/ have--- been created with the value of @maxPipelineRayRecursionDepth@ equal--- to that in this pipeline+-- element of @pLibraryInfo->pLibraries@ /must/ have been created with+-- the value of @maxPipelineRayRecursionDepth@ equal to that in this+-- pipeline -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592# If -- @pLibraryInfo@ is not @NULL@, each element of its @pLibraries@@@ -2700,56 +2701,56 @@ -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR',--- each element of the @pLibraries@ member of @libraries@ /must/ have--- been created with the+-- each element of @pLibraryInfo->pLibraries@ /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' -- bit set -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR',--- each element of the @pLibraries@ member of @libraries@ /must/ have--- been created with the+-- each element of @pLibraryInfo->pLibraries@ /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' -- bit set -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR',--- each element of the @pLibraries@ member of @libraries@ /must/ have--- been created with the+-- each element of @pLibraryInfo->pLibraries@ /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' -- bit set -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',--- each element of the @pLibraries@ member of @libraries@ /must/ have--- been created with the+-- each element of @pLibraryInfo->pLibraries@ /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' -- bit set -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',--- each element of the @pLibraries@ member of @libraries@ /must/ have--- been created with the+-- each element of @pLibraryInfo->pLibraries@ /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR' -- bit set -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',--- each element of the @pLibraries@ member of @libraries@ /must/ have--- been created with the+-- each element of @pLibraryInfo->pLibraries@ /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR' -- bit set -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',--- each element of the @pLibraries@ member of @libraries@ /must/ have--- been created with the+-- each element of @pLibraryInfo->pLibraries@ /must/ have been created+-- with the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR' -- bit set --@@ -3025,11 +3026,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRayTracingPipelineFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description --+-- - @sType@ is the type of this structure.+--+-- - @pNext@ is @NULL@ or a pointer to a structure extending this+-- structure.+-- -- - #features-rayTracingPipeline# @rayTracingPipeline@ indicates whether -- the implementation supports the ray tracing pipeline functionality. -- See@@ -3059,12 +3064,14 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>. -- -- If the 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceRayTracingPipelineFeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceRayTracingPipelineFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage --@@ -3156,9 +3163,12 @@ -- = Description -- -- If the 'PhysicalDeviceRayTracingPipelinePropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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. -- -- Limits specified by this structure /must/ match those specified with the -- same name in@@ -3170,7 +3180,7 @@ -- -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceRayTracingPipelinePropertiesKHR = PhysicalDeviceRayTracingPipelinePropertiesKHR- { -- | @shaderGroupHandleSize@ size in bytes of the shader header.+ { -- | @shaderGroupHandleSize@ is the size in bytes of the shader header. shaderGroupHandleSize :: Word32 , -- | #limits-maxRayRecursionDepth# @maxRayRecursionDepth@ is the maximum -- number of levels of ray recursion allowed in a trace command.@@ -3272,8 +3282,8 @@ -- buffer -- -- - #VUID-VkStridedDeviceAddressRegionKHR-size-04632# If @size@ is not--- zero, @stride@ /must/ be less than the size of the buffer from which--- @deviceAddress@ was queried+-- zero, @stride@ /must/ be less than or equal to the size of the+-- buffer from which @deviceAddress@ was queried -- -- = See Also --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot view
@@ -602,14 +602,15 @@ -- with gl_InstanceIndex. Which should be used for Vulkan in this -- extension? ----- RESOLVED: This extension uses gl_InstanceID and maps it to @InstanceId@--- in SPIR-V. It is acknowledged that this is different than other shader--- stages in Vulkan. There are two main reasons for the difference here:+-- __RESOLVED__: This extension uses gl_InstanceID and maps it to+-- @InstanceId@ in SPIR-V. It is acknowledged that this is different than+-- other shader stages in Vulkan. There are two main reasons for the+-- difference here: -- -- - symmetry with gl_PrimitiveID which is also available in these -- shaders ----- - there is no \"baseInstance\" relevant for these shaders, and so ID+-- - there is no “baseInstance” relevant for these shaders, and so ID -- makes it more obvious that this is zero-based. -- -- == Sample Code
src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -336,11 +336,11 @@ -- -- - Added query function, formats as RGB, clarifications ----- - Revision 5, 2017-04 (Andrew Garrard)+-- - Revision 5, 2017-04-?? (Andrew Garrard) -- -- - Simplified query and removed output conversions ----- - Revision 6, 2017-4-24 (Andrew Garrard)+-- - Revision 6, 2017-04-24 (Andrew Garrard) -- -- - Tidying, incorporated new image query, restored transfer -- functions@@ -348,7 +348,7 @@ -- - Revision 7, 2017-04-25 (Andrew Garrard) -- -- - Added cosited option\/midpoint requirement for formats,--- \"bypassConversion\"+-- “bypassConversion” -- -- - Revision 8, 2017-04-25 (Andrew Garrard) --
src/Vulkan/Extensions/VK_KHR_shader_clock.hs view
@@ -61,9 +61,9 @@ -- 'Vulkan.Core10.Handles.Device'. -- -- When using GLSL source-based shading languages, the--- @clockRealtime@*@EXT@() timing functions map to the @OpReadClockKHR@+-- @clockRealtime*EXT@() timing functions map to the @OpReadClockKHR@ -- instruction with a scope of 'Vulkan.Core10.Handles.Device', and the--- @clock@*@ARB@() timing functions map to the @OpReadClockKHR@ instruction+-- @clock*ARB@() timing functions map to the @OpReadClockKHR@ instruction -- with a scope of @Subgroup@. -- -- == New Structures@@ -137,15 +137,21 @@ -- | VkPhysicalDeviceShaderClockFeaturesKHR - Structure describing features -- supported by VK_KHR_shader_clock --+-- = Members+--+-- This structure describes the following features:+-- -- = Description -- -- If the 'PhysicalDeviceShaderClockFeaturesKHR' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceShaderClockFeaturesKHR' can also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceShaderClockFeaturesKHR' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot view
@@ -61,9 +61,9 @@ -- 'Vulkan.Core10.Handles.Device'. -- -- When using GLSL source-based shading languages, the--- @clockRealtime@*@EXT@() timing functions map to the @OpReadClockKHR@+-- @clockRealtime*EXT@() timing functions map to the @OpReadClockKHR@ -- instruction with a scope of 'Vulkan.Core10.Handles.Device', and the--- @clock@*@ARB@() timing functions map to the @OpReadClockKHR@ instruction+-- @clock*ARB@() timing functions map to the @OpReadClockKHR@ instruction -- with a scope of @Subgroup@. -- -- == New Structures
src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs view
@@ -74,10 +74,10 @@ -- variables in Vulkan: -- -- - @BaseInstance@, which contains the @firstInstance@ parameter passed--- to draw commands,+-- to drawing commands, -- -- - @BaseVertex@, which contains the @firstVertex@ or @vertexOffset@--- parameter passed to draw commands, and+-- parameter passed to drawing commands, and -- -- - @DrawIndex@, which contains the index of the draw call currently -- being processed from an indirect draw call.
src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs view
@@ -126,11 +126,15 @@ -- 2) What is the denorm behavior for intermediate results? -- -- __RESOLVED__: When a SPIR-V instruction is implemented as a sequence of--- other instructions: - in the @DenormFlushToZero@ execution mode the--- intermediate instructions may flush denormals, the final result of the--- sequence /must/ not be denormal. - in the @DenormPreserve@ execution--- mode denormals must be preserved throughout the whole sequence.+-- other instructions: --+-- - in the @DenormFlushToZero@ execution mode, the intermediate+-- instructions may flush denormals, the final result of the sequence+-- /must/ not be denormal.+--+-- - in the @DenormPreserve@ execution mode, denormals must be preserved+-- throughout the whole sequence.+-- -- 3) Do denorm and rounding mode controls apply to @OpSpecConstantOp@? -- -- __RESOLVED__: Yes, except when the opcode is @OpQuantizeToF16@.@@ -141,12 +145,12 @@ -- -- __RESOLVED__: No, these instructions unconditionally round towards zero. ----- 5) Do any of the \"Pack\" GLSL.std.450 instructions count as conversion--- instructions and have the rounding mode apply?+-- 5) Do any of the “Pack” GLSL.std.450 instructions count as conversion+-- instructions and have the rounding mode applied? ----- __RESOLVED__: No, only instructions listed in the section \"3.32.11.--- Conversion Instructions\" of the SPIR-V specification count as--- conversion instructions.+-- __RESOLVED__: No, only instructions listed in “section 3.32.11.+-- Conversion Instructions” of the SPIR-V specification count as conversion+-- instructions. -- -- 6) When using inf\/nan-ignore mode, what is expected of @OpIsNan@ and -- @OpIsInf@?@@ -159,7 +163,7 @@ -- The original versions of @VK_KHR_shader_float_controls@ shipped with -- booleans named “separateDenormSettings” and -- “separateRoundingModeSettings”, which at first glance could have--- indicated “they can all independently set, or not”. However the spec+-- indicated “they can all be set independently, or not”. However the spec -- language as written indicated that the 32-bit value could always be set -- independently, and only the 16- and 64-bit controls needed to be the -- same if these values were 'Vulkan.Core10.FundamentalTypes.FALSE'.
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs view
@@ -137,18 +137,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'--- structure describe the following feature:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the features.+-- 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) --
src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs view
@@ -97,7 +97,7 @@ -- version-generic query for SPIR-V version? SPIR-V 1.4 doesn’t need any -- other API changes. ----- RESOLVED: Just expose SPIR-V 1.4.+-- __RESOLVED__: Just expose SPIR-V 1.4. -- -- Most new SPIR-V versions introduce optionally-required capabilities or -- have implementation-defined limits, and would need more API and@@ -118,7 +118,7 @@ -- 2. Can different stages of the same pipeline use shaders with different -- SPIR-V versions? ----- RESOLVED: Yes.+-- __RESOLVED__: Yes. -- -- Mixing SPIR-V versions 1.0-1.3 in the same pipeline has not been -- disallowed, so it would be inconsistent to disallow mixing 1.4 with@@ -129,7 +129,7 @@ -- promoted to core in 1.4 be enabled in order to use that functionality in -- a SPIR-V 1.4 module? ----- RESOLVED: No, with caveats.+-- __RESOLVED__: No, with caveats. -- -- The SPIR-V 1.4 module does not need to declare the SPIR-V extensions, -- since the functionality is now part of core, so there is no need to
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -165,16 +165,16 @@ -- 'Vulkan.Core10.Handles.Device' (and therefore on enabled extensions and -- features) for the queries, Vulkan was released only with the -- 'Vulkan.Core10.Handles.PhysicalDevice' versions. Many cases can be--- resolved by a Valid Usage. And\\or by a separate @pNext@ chain version--- of the query struct specific to a given extension or parameters, via--- extensible versions of the queries:+-- resolved by a Valid Usage statement, and\/or by a separate @pNext@ chain+-- version of the query struct specific to a given extension or parameters,+-- via extensible versions of the queries: -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR',--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR'. -- and--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT'.+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', ----- 3) Should Vulkan include support Xlib or XCB as the API for accessing--- the X Window System platform?+-- 3) Should Vulkan support Xlib or XCB as the API for accessing the X+-- Window System platform? -- -- __RESOLVED__: Both. XCB is a more modern and efficient API, but Xlib -- usage is deeply ingrained in many applications and likely will remain in@@ -262,9 +262,9 @@ -- - Added error section describing when each error is expected to be -- reported. ----- - Replaced the term \"queue node index\" with \"queue family--- index\" in the spec as that is the agreed term to be used in the--- latest version of the core header and spec.+-- - Replaced the term “queue node index” with “queue family index”+-- in the spec as that is the agreed term to be used in the latest+-- version of the core header and spec. -- -- - Replaced bool32_t with VkBool32. --@@ -278,7 +278,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Did miscellaneous cleanup, etc.@@ -287,7 +287,7 @@ -- from James Jones) -- -- - Moved the surface transform enums here from VK_WSI_swapchain so--- they could be re-used by VK_WSI_display.+-- they could be reused by VK_WSI_display. -- -- - Revision 16, 2015-09-01 (James Jones) --@@ -746,12 +746,10 @@ -- return the variable is overwritten with the number of structures -- actually written to @pSurfaceFormats@. If the value of -- @pSurfaceFormatCount@ is less than the number of format pairs supported,--- at most @pSurfaceFormatCount@ structures will be written. If--- @pSurfaceFormatCount@ is smaller than the number of format pairs--- supported for the given @surface@,+-- at most @pSurfaceFormatCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all the--- available values were returned.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available format pairs were returned. -- -- The number of format pairs supported /must/ be greater than or equal to -- 1. @pSurfaceFormats@ /must/ not contain an entry whose value for@@ -864,11 +862,10 @@ -- return the variable is overwritten with the number of values actually -- written to @pPresentModes@. If the value of @pPresentModeCount@ is less -- than the number of presentation modes supported, at most--- @pPresentModeCount@ values will be written. If @pPresentModeCount@ is--- smaller than the number of presentation modes supported for the given--- @surface@, 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned--- instead of 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all--- the available values were returned.+-- @pPresentModeCount@ values will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available modes were returned. -- -- == Valid Usage (Implicit) --@@ -1025,8 +1022,8 @@ -- 'PRESENT_MODE_MAILBOX_KHR', 'PRESENT_MODE_FIFO_KHR' or -- 'PRESENT_MODE_FIFO_RELAXED_KHR' for the surface on the specified device. -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'- -- /must/ be included in the set but implementations /may/ support- -- additional usages.+ -- /must/ be included in the set. Implementations /may/ support additional+ -- usages. supportedUsageFlags :: ImageUsageFlags } deriving (Typeable)@@ -1058,7 +1055,10 @@ poke ((p `plusPtr` 16 :: Ptr Extent2D)) (zero) poke ((p `plusPtr` 24 :: Ptr Extent2D)) (zero) poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 36 :: Ptr SurfaceTransformFlagsKHR)) (zero) poke ((p `plusPtr` 40 :: Ptr SurfaceTransformFlagBitsKHR)) (zero)+ poke ((p `plusPtr` 44 :: Ptr CompositeAlphaFlagsKHR)) (zero)+ poke ((p `plusPtr` 48 :: Ptr ImageUsageFlags)) (zero) f instance FromCStruct SurfaceCapabilitiesKHR where
src/Vulkan/Extensions/VK_KHR_surface.hs-boot view
@@ -165,16 +165,16 @@ -- 'Vulkan.Core10.Handles.Device' (and therefore on enabled extensions and -- features) for the queries, Vulkan was released only with the -- 'Vulkan.Core10.Handles.PhysicalDevice' versions. Many cases can be--- resolved by a Valid Usage. And\\or by a separate @pNext@ chain version--- of the query struct specific to a given extension or parameters, via--- extensible versions of the queries:+-- resolved by a Valid Usage statement, and\/or by a separate @pNext@ chain+-- version of the query struct specific to a given extension or parameters,+-- via extensible versions of the queries: -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR',--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR'. -- and--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT'.+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', ----- 3) Should Vulkan include support Xlib or XCB as the API for accessing--- the X Window System platform?+-- 3) Should Vulkan support Xlib or XCB as the API for accessing the X+-- Window System platform? -- -- __RESOLVED__: Both. XCB is a more modern and efficient API, but Xlib -- usage is deeply ingrained in many applications and likely will remain in@@ -262,9 +262,9 @@ -- - Added error section describing when each error is expected to be -- reported. ----- - Replaced the term \"queue node index\" with \"queue family--- index\" in the spec as that is the agreed term to be used in the--- latest version of the core header and spec.+-- - Replaced the term “queue node index” with “queue family index”+-- in the spec as that is the agreed term to be used in the latest+-- version of the core header and spec. -- -- - Replaced bool32_t with VkBool32. --@@ -278,7 +278,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Did miscellaneous cleanup, etc.@@ -287,7 +287,7 @@ -- from James Jones) -- -- - Moved the surface transform enums here from VK_WSI_swapchain so--- they could be re-used by VK_WSI_display.+-- they could be reused by VK_WSI_display. -- -- - Revision 16, 2015-09-01 (James Jones) --
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -307,7 +307,7 @@ -- __RESOLVED__: Accept a semaphore to signal as an object handle. This -- avoids the need to specify whether the application must destroy the -- semaphore or whether it is owned by the swapchain, and if the latter,--- what its lifetime is and whether it can be re-used for other operations+-- what its lifetime is and whether it can be reused for other operations -- once it is received from 'acquireNextImageKHR'. -- -- 11) What types of swapchain queuing behavior should be exposed? Options@@ -329,7 +329,7 @@ -- single-entry queue is used to hold pending presentation requests. If -- the queue is full when a new presentation request is received, the -- new request replaces the existing entry, and any images associated--- with the prior entry become available for re-use by the application.+-- with the prior entry become available for reuse by the application. -- -- - FIFO queue: Waits for the next vertical blanking period to update -- the current image. No tearing should be observed. An internal queue@@ -340,10 +340,10 @@ -- queue is non-empty -- -- Not all surfaces will support all of these modes, so the modes supported--- will be returned using a surface info query. All surfaces must support--- the FIFO queue mode. Applications must choose one of these modes up--- front when creating a swapchain. Switching modes can be accomplished by--- recreating the swapchain.+-- will be returned using a surface information query. All surfaces must+-- support the FIFO queue mode. Applications must choose one of these modes+-- up front when creating a swapchain. Switching modes can be accomplished+-- by recreating the swapchain. -- -- 12) Can 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' -- provide non-blocking guarantees for 'acquireNextImageKHR'? If so, what@@ -379,11 +379,11 @@ -- to indicate there are no practical limits on the number of images in a -- swapchain? ----- __RESOLVED__: Yes. There where often be cases where there is no--- practical limit to the number of images in a swapchain other than the--- amount of available resources (I.e., memory) in the system. Trying to--- derive a hard limit from things like memory size is prone to failure. It--- is better in such cases to leave it to applications to figure such soft+-- __RESOLVED__: Yes. There will often be cases where there is no practical+-- limit to the number of images in a swapchain other than the amount of+-- available resources (i.e., memory) in the system. Trying to derive a+-- hard limit from things like memory size is prone to failure. It is+-- better in such cases to leave it to applications to figure such soft -- limits out via trial\/failure iterations. -- -- 15) Should there be a special value for@@ -411,7 +411,7 @@ -- __RESOLVED__: Applications can query both the supported and current -- transforms of a surface. Both are specified relative to the device’s -- “natural” display rotation and direction. The supported transforms--- indicates which orientations the presentation engine accepts images in.+-- indicate which orientations the presentation engine accepts images in. -- For example, a presentation engine that does not support transforming -- surfaces as part of presentation, and which is presenting to a surface -- that is displayed with a 90-degree rotation, would return only one@@ -484,7 +484,7 @@ -- obscuring their target surface? -- -- __RESOLVED__: Applications can choose which behavior they prefer.--- Allowing the content to be clipped could enable more optimal+-- Allowing the content to be clipped could enable more efficient -- presentation methods on some platforms, but some applications might rely -- on the content of presentable images to perform techniques such as -- partial updates or motion blurs.@@ -513,9 +513,9 @@ -- using such formats does not guarantee working in a specific color space. -- It merely means that the hardware can directly support applying the -- non-linear transfer functions defined by the sRGB standard color space--- when reading from or writing to images of that these formats. Still, it--- is unlikely that a swapchain will expose a @*_SRGB@ format along with--- any color space other than+-- when reading from or writing to images of those formats. Still, it is+-- unlikely that a swapchain will expose a @*_SRGB@ format along with any+-- color space other than -- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_SRGB_NONLINEAR_KHR'. -- -- On the other hand, non-@*_SRGB@ formats will be very likely exposed in@@ -525,7 +525,7 @@ -- characteristics. In this case the application is responsible for -- applying the transfer function, for instance by using shader math. ----- 25) How are the lifetime of surfaces and swapchains targeting them+-- 25) How are the lifetimes of surfaces and swapchains targeting them -- related? -- -- __RESOLVED__: A surface must outlive any swapchains targeting it. A@@ -665,7 +665,7 @@ -- -- - Renamed VkSurfaceCapabilityPropertiesKHR to -- VkSurfacePropertiesKHR to better convey the mutable nature of--- the info it contains.+-- the information it contains. -- -- - Revision 12, 2015-05-28 (James Jones) --@@ -753,8 +753,8 @@ -- - Revision 24, 2015-06-19 (Ian Elliott) -- -- - Changed special value for VkSurfacePropertiesKHR::currentExtent--- back to \"-1\" from \"0\". This value will never need to be--- unsigned, and \"0\" is actually a legal value.+-- back to “-1” from “0”. This value will never need to be+-- unsigned, and “0” is actually a legal value. -- -- - Revision 25, 2015-06-23 (Ian Elliott) --@@ -773,12 +773,12 @@ -- -- - Revision 28, 2015-06-25 (James Jones) ----- - Added the \"inherit\" bits to the rotation and mirroring flags--- and the associated issue 21.+-- - Added the “inherit” bits to the rotation and mirroring flags and+-- the associated issue 21. -- -- - Revision 29, 2015-06-25 (James Jones) ----- - Added the \"clipped\" flag to VkSwapchainCreateInfoKHR, and the+-- - Added the “clipped” flag to VkSwapchainCreateInfoKHR, and the -- associated issue 22. -- -- - Specified that presenting an image does not modify it.@@ -791,13 +791,13 @@ -- -- - Revision 31, 2015-06-26 (Ian Elliott) ----- - Example of new VkSwapchainCreateInfoKHR members,--- \"oldSwapchain\" and \"clipped\".+-- - Example of new VkSwapchainCreateInfoKHR members, “oldSwapchain”+-- and “clipped”. -- -- - Example of using VkSurfacePropertiesKHR::{min|max}ImageCount to -- set VkSwapchainCreateInfoKHR::minImageCount. ----- - Rename vkGetSurfaceInfoKHR()\'s 4th parameter to \"pDataSize\",+-- - Rename vkGetSurfaceInfoKHR()\'s 4th parameter to “pDataSize”, -- for consistency with other functions. -- -- - Add macro with C-string name of extension (just to header file).@@ -805,7 +805,7 @@ -- - Revision 32, 2015-06-26 (James Jones) -- -- - Minor adjustments to the language describing the behavior of--- \"oldSwapchain\"+-- “oldSwapchain” -- -- - Fixed the version date on my previous two updates. --@@ -815,7 +815,7 @@ -- -- - Revision 34, 2015-06-26 (Ian Elliott) ----- - Rename vkQueuePresentKHR()\'s 2nd parameter to \"pPresentInfo\",+-- - Rename vkQueuePresentKHR()\'s 2nd parameter to “pPresentInfo”, -- for consistency with other functions. -- -- - Revision 35, 2015-06-26 (Jason Ekstrand)@@ -855,8 +855,8 @@ -- -- - Revision 40, 2015-07-10 (Ian Elliott) ----- - Updated to work with version 138 of the \"vulkan.h\" header.--- This includes declaring the VkSwapchainKHR type using the new+-- - Updated to work with version 138 of the @vulkan.h@ header. This+-- includes declaring the VkSwapchainKHR type using the new -- VK_DEFINE_NONDISP_HANDLE macro, and no longer extending -- VkObjectType (which was eliminated). --@@ -869,7 +869,7 @@ -- - Updated query mechanism to reflect the convention changes done -- in the core spec. ----- - Removed \"queue\" from the name of+-- - Removed “queue” from the name of -- VK_STRUCTURE_TYPE_QUEUE_PRESENT_INFO_KHR to be consistent with -- the established naming convention. --@@ -895,7 +895,7 @@ -- VkSwapchainCreateInfoKHR struct). -- -- - Corrected a typo in header file (last parameter in--- PFN_vkGetSurfacePropertiesKHR was missing \"KHR\" at the end of+-- PFN_vkGetSurfacePropertiesKHR was missing “KHR” at the end of -- type: VkSurfacePropertiesKHR). -- -- - Revision 46, 2015-08-20 (Ian Elliott)@@ -904,7 +904,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Made improvements to several descriptions.@@ -918,7 +918,7 @@ -- from James Jones) -- -- - Moved the surface transform enums to VK_WSI_swapchain so they--- could be re-used by VK_WSI_display.+-- could be reused by VK_WSI_display. -- -- - Revision 48, 2015-09-01 (James Jones) --@@ -1029,22 +1029,21 @@ -- -- - Revision 68, 2016-04-05 (Ian Elliott) ----- - Moved the \"validity\" include for vkAcquireNextImage to be in--- its proper place, after the prototype and list of parameters.+-- - Moved the “validity” include for vkAcquireNextImage to be in its+-- proper place, after the prototype and list of parameters. -- -- - Clarified language about presentable images, including how they -- are acquired, when applications can and cannot use them, etc. As--- part of this, removed language about \"ownership\" of--- presentable images, and replaced it with more-consistent--- language about presentable images being \"acquired\" by the--- application.+-- part of this, removed language about “ownership” of presentable+-- images, and replaced it with more-consistent language about+-- presentable images being “acquired” by the application. -- -- - 2016-08-23 (Ian Elliott) -- -- - Update the example code, to use the final API command names, to -- not have so many characters per line, and to split out a new -- example to show how to obtain function pointers. This code is--- more similar to the LunarG \"cube\" demo program.+-- more similar to the LunarG “cube” demo program. -- -- - 2016-08-25 (Ian Elliott) --@@ -1516,11 +1515,10 @@ -- variable is overwritten with the number of structures actually written -- to @pSwapchainImages@. If the value of @pSwapchainImageCount@ is less -- than the number of presentable images for @swapchain@, at most--- @pSwapchainImageCount@ structures will be written. If--- @pSwapchainImageCount@ is smaller than the number of presentable images--- for @swapchain@, 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate--- that not all the available values were returned.+-- @pSwapchainImageCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available presentable images were returned. -- -- == Valid Usage (Implicit) --@@ -2201,11 +2199,10 @@ -- elements in the @pRects@ array, and on return the variable is -- overwritten with the number of structures actually written to @pRects@. -- If the value of @pRectCount@ is less than the number of rectangles, at--- most @pRectCount@ structures will be written. If @pRectCount@ is smaller--- than the number of rectangles used for the given @surface@,+-- most @pRectCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all the--- available values were returned.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available rectangles were returned. -- -- The values returned by this command are not invariant, and /may/ change -- in response to the surface being moved, resized, or occluded.@@ -2288,84 +2285,6 @@ -- -- = Description ----- Note------ On some platforms, it is normal that @maxImageExtent@ /may/ become @(0,--- 0)@, for example when the window is minimized. In such a case, it is not--- possible to create a swapchain due to the Valid Usage requirements.------ - @imageArrayLayers@ is the number of views in a multiview\/stereo--- surface. For non-stereoscopic-3D applications, this value is 1.------ - @imageUsage@ is a bitmask of--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits'--- describing the intended usage of the (acquired) swapchain images.------ - @imageSharingMode@ is the sharing mode used for the image(s) of the--- swapchain.------ - @queueFamilyIndexCount@ is the number of queue families having--- access to the image(s) of the swapchain when @imageSharingMode@ is--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.------ - @pQueueFamilyIndices@ is a pointer to an array of queue family--- indices having access to the images(s) of the swapchain when--- @imageSharingMode@ is--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.------ - @preTransform@ is a--- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagBitsKHR' value--- describing the transform, relative to the presentation engine’s--- natural orientation, applied to the image content prior to--- presentation. If it does not match the @currentTransform@ value--- returned by--- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR',--- the presentation engine will transform the image content as part of--- the presentation operation.------ - @compositeAlpha@ is a--- 'Vulkan.Extensions.VK_KHR_surface.CompositeAlphaFlagBitsKHR' value--- indicating the alpha compositing mode to use when this surface is--- composited together with other surfaces on certain window systems.------ - @presentMode@ is the presentation mode the swapchain will use. A--- swapchain’s present mode determines how incoming present requests--- will be processed and queued internally.------ - @clipped@ specifies whether the Vulkan implementation is allowed to--- discard rendering operations that affect regions of the surface that--- are not visible.------ - If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the presentable--- images associated with the swapchain /may/ not own all of their--- pixels. Pixels in the presentable images that correspond to--- regions of the target surface obscured by another window on the--- desktop, or subject to some other clipping mechanism will have--- undefined content when read back. Fragment shaders /may/ not--- execute for these pixels, and thus any side effects they would--- have had will not occur. 'Vulkan.Core10.FundamentalTypes.TRUE'--- value does not guarantee any clipping will occur, but allows--- more optimal presentation methods to be used on some platforms.------ - If set to 'Vulkan.Core10.FundamentalTypes.FALSE', presentable--- images associated with the swapchain will own all of the pixels--- they contain.------ Note------ Applications /should/ set this value to--- 'Vulkan.Core10.FundamentalTypes.TRUE' if they do not expect to read back--- the content of presentable images before presenting them or after--- reacquiring them, and if their fragment shaders do not have any side--- effects that require them to run for all pixels in the presentable--- image.------ - @oldSwapchain@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or the--- existing non-retired swapchain currently associated with @surface@.--- Providing a valid @oldSwapchain@ /may/ aid in the resource reuse,--- and also allows the application to still present any images that are--- already acquired from it.--- -- Upon calling 'createSwapchainKHR' with an @oldSwapchain@ that is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @oldSwapchain@ is -- retired — even if creation of the new swapchain fails. The new swapchain@@ -2691,24 +2610,78 @@ -- behavior is platform-dependent if the image extent does not match the -- surface’s @currentExtent@ as returned by -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR'.+ --+ -- Note+ --+ -- On some platforms, it is normal that @maxImageExtent@ /may/ become @(0,+ -- 0)@, for example when the window is minimized. In such a case, it is not+ -- possible to create a swapchain due to the Valid Usage requirements. imageExtent :: Extent2D- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "imageArrayLayers"+ , -- | @imageArrayLayers@ is the number of views in a multiview\/stereo+ -- surface. For non-stereoscopic-3D applications, this value is 1. imageArrayLayers :: Word32- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "imageUsage"+ , -- | @imageUsage@ is a bitmask of+ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' describing+ -- the intended usage of the (acquired) swapchain images. imageUsage :: ImageUsageFlags- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "imageSharingMode"+ , -- | @imageSharingMode@ is the sharing mode used for the image(s) of the+ -- swapchain. imageSharingMode :: SharingMode- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "pQueueFamilyIndices"+ , -- | @pQueueFamilyIndices@ is a pointer to an array of queue family indices+ -- having access to the images(s) of the swapchain when @imageSharingMode@+ -- is 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'. queueFamilyIndices :: Vector Word32- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "preTransform"+ , -- | @preTransform@ is a+ -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagBitsKHR' value+ -- describing the transform, relative to the presentation engine’s natural+ -- orientation, applied to the image content prior to presentation. If it+ -- does not match the @currentTransform@ value returned by+ -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR',+ -- the presentation engine will transform the image content as part of the+ -- presentation operation. preTransform :: SurfaceTransformFlagBitsKHR- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "compositeAlpha"+ , -- | @compositeAlpha@ is a+ -- 'Vulkan.Extensions.VK_KHR_surface.CompositeAlphaFlagBitsKHR' value+ -- indicating the alpha compositing mode to use when this surface is+ -- composited together with other surfaces on certain window systems. compositeAlpha :: CompositeAlphaFlagBitsKHR- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "presentMode"+ , -- | @presentMode@ is the presentation mode the swapchain will use. A+ -- swapchain’s present mode determines how incoming present requests will+ -- be processed and queued internally. presentMode :: PresentModeKHR- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "clipped"+ , -- | @clipped@ specifies whether the Vulkan implementation is allowed to+ -- discard rendering operations that affect regions of the surface that are+ -- not visible.+ --+ -- - If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the presentable+ -- images associated with the swapchain /may/ not own all of their+ -- pixels. Pixels in the presentable images that correspond to regions+ -- of the target surface obscured by another window on the desktop, or+ -- subject to some other clipping mechanism will have undefined content+ -- when read back. Fragment shaders /may/ not execute for these pixels,+ -- and thus any side effects they would have had will not occur.+ -- Setting 'Vulkan.Core10.FundamentalTypes.TRUE' does not guarantee any+ -- clipping will occur, but allows more efficient presentation methods+ -- to be used on some platforms.+ --+ -- - If set to 'Vulkan.Core10.FundamentalTypes.FALSE', presentable images+ -- associated with the swapchain will own all of the pixels they+ -- contain.+ --+ -- Note+ --+ -- Applications /should/ set this value to+ -- 'Vulkan.Core10.FundamentalTypes.TRUE' if they do not expect to read+ -- back the content of presentable images before presenting them or+ -- after reacquiring them, and if their fragment shaders do not have+ -- any side effects that require them to run for all pixels in the+ -- presentable image. clipped :: Bool- , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "oldSwapchain"+ , -- | @oldSwapchain@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or the+ -- existing non-retired swapchain currently associated with @surface@.+ -- Providing a valid @oldSwapchain@ /may/ aid in the resource reuse, and+ -- also allows the application to still present any images that are already+ -- acquired from it. oldSwapchain :: SwapchainKHR } deriving (Typeable)@@ -3482,8 +3455,8 @@ { -- | @pDeviceMasks@ is a pointer to an array of device masks, one for each -- element of 'PresentInfoKHR'::pSwapchains. deviceMasks :: Vector Word32- , -- | @mode@ is the device group present mode that will be used for this- -- present.+ , -- | @mode@ is a 'DeviceGroupPresentModeFlagBitsKHR' value specifying the+ -- device group present mode that will be used for this present. mode :: DeviceGroupPresentModeFlagBitsKHR } deriving (Typeable)@@ -3657,7 +3630,7 @@ -- | 'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR' specifies that the images of -- the swapchain /can/ be used to create a -- 'Vulkan.Core10.Handles.ImageView' with a different format than what the--- swapchain was created with. The list of allowed image view formats are+-- swapchain was created with. The list of allowed image view formats is -- specified by adding a -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' -- structure to the @pNext@ chain of 'SwapchainCreateInfoKHR'. In addition,
src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot view
@@ -307,7 +307,7 @@ -- __RESOLVED__: Accept a semaphore to signal as an object handle. This -- avoids the need to specify whether the application must destroy the -- semaphore or whether it is owned by the swapchain, and if the latter,--- what its lifetime is and whether it can be re-used for other operations+-- what its lifetime is and whether it can be reused for other operations -- once it is received from 'acquireNextImageKHR'. -- -- 11) What types of swapchain queuing behavior should be exposed? Options@@ -329,7 +329,7 @@ -- single-entry queue is used to hold pending presentation requests. If -- the queue is full when a new presentation request is received, the -- new request replaces the existing entry, and any images associated--- with the prior entry become available for re-use by the application.+-- with the prior entry become available for reuse by the application. -- -- - FIFO queue: Waits for the next vertical blanking period to update -- the current image. No tearing should be observed. An internal queue@@ -340,10 +340,10 @@ -- queue is non-empty -- -- Not all surfaces will support all of these modes, so the modes supported--- will be returned using a surface info query. All surfaces must support--- the FIFO queue mode. Applications must choose one of these modes up--- front when creating a swapchain. Switching modes can be accomplished by--- recreating the swapchain.+-- will be returned using a surface information query. All surfaces must+-- support the FIFO queue mode. Applications must choose one of these modes+-- up front when creating a swapchain. Switching modes can be accomplished+-- by recreating the swapchain. -- -- 12) Can 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' -- provide non-blocking guarantees for 'acquireNextImageKHR'? If so, what@@ -379,11 +379,11 @@ -- to indicate there are no practical limits on the number of images in a -- swapchain? ----- __RESOLVED__: Yes. There where often be cases where there is no--- practical limit to the number of images in a swapchain other than the--- amount of available resources (I.e., memory) in the system. Trying to--- derive a hard limit from things like memory size is prone to failure. It--- is better in such cases to leave it to applications to figure such soft+-- __RESOLVED__: Yes. There will often be cases where there is no practical+-- limit to the number of images in a swapchain other than the amount of+-- available resources (i.e., memory) in the system. Trying to derive a+-- hard limit from things like memory size is prone to failure. It is+-- better in such cases to leave it to applications to figure such soft -- limits out via trial\/failure iterations. -- -- 15) Should there be a special value for@@ -411,7 +411,7 @@ -- __RESOLVED__: Applications can query both the supported and current -- transforms of a surface. Both are specified relative to the device’s -- “natural” display rotation and direction. The supported transforms--- indicates which orientations the presentation engine accepts images in.+-- indicate which orientations the presentation engine accepts images in. -- For example, a presentation engine that does not support transforming -- surfaces as part of presentation, and which is presenting to a surface -- that is displayed with a 90-degree rotation, would return only one@@ -484,7 +484,7 @@ -- obscuring their target surface? -- -- __RESOLVED__: Applications can choose which behavior they prefer.--- Allowing the content to be clipped could enable more optimal+-- Allowing the content to be clipped could enable more efficient -- presentation methods on some platforms, but some applications might rely -- on the content of presentable images to perform techniques such as -- partial updates or motion blurs.@@ -513,9 +513,9 @@ -- using such formats does not guarantee working in a specific color space. -- It merely means that the hardware can directly support applying the -- non-linear transfer functions defined by the sRGB standard color space--- when reading from or writing to images of that these formats. Still, it--- is unlikely that a swapchain will expose a @*_SRGB@ format along with--- any color space other than+-- when reading from or writing to images of those formats. Still, it is+-- unlikely that a swapchain will expose a @*_SRGB@ format along with any+-- color space other than -- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_SRGB_NONLINEAR_KHR'. -- -- On the other hand, non-@*_SRGB@ formats will be very likely exposed in@@ -525,7 +525,7 @@ -- characteristics. In this case the application is responsible for -- applying the transfer function, for instance by using shader math. ----- 25) How are the lifetime of surfaces and swapchains targeting them+-- 25) How are the lifetimes of surfaces and swapchains targeting them -- related? -- -- __RESOLVED__: A surface must outlive any swapchains targeting it. A@@ -665,7 +665,7 @@ -- -- - Renamed VkSurfaceCapabilityPropertiesKHR to -- VkSurfacePropertiesKHR to better convey the mutable nature of--- the info it contains.+-- the information it contains. -- -- - Revision 12, 2015-05-28 (James Jones) --@@ -753,8 +753,8 @@ -- - Revision 24, 2015-06-19 (Ian Elliott) -- -- - Changed special value for VkSurfacePropertiesKHR::currentExtent--- back to \"-1\" from \"0\". This value will never need to be--- unsigned, and \"0\" is actually a legal value.+-- back to “-1” from “0”. This value will never need to be+-- unsigned, and “0” is actually a legal value. -- -- - Revision 25, 2015-06-23 (Ian Elliott) --@@ -773,12 +773,12 @@ -- -- - Revision 28, 2015-06-25 (James Jones) ----- - Added the \"inherit\" bits to the rotation and mirroring flags--- and the associated issue 21.+-- - Added the “inherit” bits to the rotation and mirroring flags and+-- the associated issue 21. -- -- - Revision 29, 2015-06-25 (James Jones) ----- - Added the \"clipped\" flag to VkSwapchainCreateInfoKHR, and the+-- - Added the “clipped” flag to VkSwapchainCreateInfoKHR, and the -- associated issue 22. -- -- - Specified that presenting an image does not modify it.@@ -791,13 +791,13 @@ -- -- - Revision 31, 2015-06-26 (Ian Elliott) ----- - Example of new VkSwapchainCreateInfoKHR members,--- \"oldSwapchain\" and \"clipped\".+-- - Example of new VkSwapchainCreateInfoKHR members, “oldSwapchain”+-- and “clipped”. -- -- - Example of using VkSurfacePropertiesKHR::{min|max}ImageCount to -- set VkSwapchainCreateInfoKHR::minImageCount. ----- - Rename vkGetSurfaceInfoKHR()\'s 4th parameter to \"pDataSize\",+-- - Rename vkGetSurfaceInfoKHR()\'s 4th parameter to “pDataSize”, -- for consistency with other functions. -- -- - Add macro with C-string name of extension (just to header file).@@ -805,7 +805,7 @@ -- - Revision 32, 2015-06-26 (James Jones) -- -- - Minor adjustments to the language describing the behavior of--- \"oldSwapchain\"+-- “oldSwapchain” -- -- - Fixed the version date on my previous two updates. --@@ -815,7 +815,7 @@ -- -- - Revision 34, 2015-06-26 (Ian Elliott) ----- - Rename vkQueuePresentKHR()\'s 2nd parameter to \"pPresentInfo\",+-- - Rename vkQueuePresentKHR()\'s 2nd parameter to “pPresentInfo”, -- for consistency with other functions. -- -- - Revision 35, 2015-06-26 (Jason Ekstrand)@@ -855,8 +855,8 @@ -- -- - Revision 40, 2015-07-10 (Ian Elliott) ----- - Updated to work with version 138 of the \"vulkan.h\" header.--- This includes declaring the VkSwapchainKHR type using the new+-- - Updated to work with version 138 of the @vulkan.h@ header. This+-- includes declaring the VkSwapchainKHR type using the new -- VK_DEFINE_NONDISP_HANDLE macro, and no longer extending -- VkObjectType (which was eliminated). --@@ -869,7 +869,7 @@ -- - Updated query mechanism to reflect the convention changes done -- in the core spec. ----- - Removed \"queue\" from the name of+-- - Removed “queue” from the name of -- VK_STRUCTURE_TYPE_QUEUE_PRESENT_INFO_KHR to be consistent with -- the established naming convention. --@@ -895,7 +895,7 @@ -- VkSwapchainCreateInfoKHR struct). -- -- - Corrected a typo in header file (last parameter in--- PFN_vkGetSurfacePropertiesKHR was missing \"KHR\" at the end of+-- PFN_vkGetSurfacePropertiesKHR was missing “KHR” at the end of -- type: VkSurfacePropertiesKHR). -- -- - Revision 46, 2015-08-20 (Ian Elliott)@@ -904,7 +904,7 @@ -- functions, etc. This makes it compliant with the proposed -- standard for Vulkan extensions. ----- - Switched from \"revision\" to \"version\", including use of the+-- - Switched from “revision” to “version”, including use of the -- VK_MAKE_VERSION macro in the header file. -- -- - Made improvements to several descriptions.@@ -918,7 +918,7 @@ -- from James Jones) -- -- - Moved the surface transform enums to VK_WSI_swapchain so they--- could be re-used by VK_WSI_display.+-- could be reused by VK_WSI_display. -- -- - Revision 48, 2015-09-01 (James Jones) --@@ -1029,22 +1029,21 @@ -- -- - Revision 68, 2016-04-05 (Ian Elliott) ----- - Moved the \"validity\" include for vkAcquireNextImage to be in--- its proper place, after the prototype and list of parameters.+-- - Moved the “validity” include for vkAcquireNextImage to be in its+-- proper place, after the prototype and list of parameters. -- -- - Clarified language about presentable images, including how they -- are acquired, when applications can and cannot use them, etc. As--- part of this, removed language about \"ownership\" of--- presentable images, and replaced it with more-consistent--- language about presentable images being \"acquired\" by the--- application.+-- part of this, removed language about “ownership” of presentable+-- images, and replaced it with more-consistent language about+-- presentable images being “acquired” by the application. -- -- - 2016-08-23 (Ian Elliott) -- -- - Update the example code, to use the final API command names, to -- not have so many characters per line, and to split out a new -- example to show how to obtain function pointers. This code is--- more similar to the LunarG \"cube\" demo program.+-- more similar to the LunarG “cube” demo program. -- -- - 2016-08-25 (Ian Elliott) --
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -30,12 +30,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]--- 2020-12-03 Interactions and External Dependencies:+-- [__Last Modified Date__]+-- 2020-12-03 --+-- [__Interactions and External Dependencies__]+-- -- - Interacts with @VK_KHR_create_renderpass2@ ----- [Contributors]+-- [__Contributors__] -- -- - Tobias Hector --@@ -719,7 +721,7 @@ -- feature /must/ be enabled -- -- - #VUID-vkCmdSetEvent2KHR-dependencyFlags-03825# The @dependencyFlags@--- member of @dependencyInfo@ /must/ be @0@+-- member of @pDependencyInfo@ /must/ be @0@ -- -- - #VUID-vkCmdSetEvent2KHR-commandBuffer-03826# The current device mask -- of @commandBuffer@ /must/ include exactly one physical device.@@ -827,20 +829,18 @@ -- <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 @stage@ or stages--- that are+-- 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 @stage@.+-- 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--- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' is executed on the--- device, then 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' has no--- effect, no event unsignal operation occurs, and no execution dependency--- is generated.+-- 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 --@@ -962,8 +962,8 @@ CommandBuffer -> -- | @event@ is the event that will be unsignaled. Event- -> -- | @stageMask@ is a is a 'PipelineStageFlags2KHR' mask of pipeline stages- -- used to determine the first+ -> -- | @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 ()@@ -994,10 +994,10 @@ -> -- | @commandBuffer@ is the command buffer into which the command is -- recorded. CommandBuffer- -> -- | @pEvents@ is an array of events to wait on.+ -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on. ("events" ::: Vector Event)- -> -- | @pDependencyInfos@ is an array of 'DependencyInfoKHR' structures,- -- defining the second+ -> -- | @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 ()@@ -1032,7 +1032,7 @@ -- 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 commands that occurred earlier in+-- 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@. --@@ -1056,7 +1056,7 @@ -- 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 commands that occurred later in+-- 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'. --@@ -1108,13 +1108,14 @@ -- - #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--- by a corresponding 'cmdSetEvent2KHR' that occurred earlier in+-- 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--- @pDependencyInfo@ /must/ either include only pipeline stages valid+-- @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'@@ -1122,12 +1123,12 @@ -- - #VUID-vkCmdWaitEvents2KHR-dstStageMask-03843# The @dstStageMask@ -- member of any element of the @pMemoryBarriers@, -- @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of--- @pDependencyInfo@ /must/ only include pipeline stages valid for the+-- @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 @dependencyInfo@ /must/+-- @dependencyFlags@ member of any element of @pDependencyInfo@ /must/ -- be @0@ -- -- - #VUID-vkCmdWaitEvents2KHR-pEvents-03845# If @pEvents@ includes one@@ -1194,10 +1195,10 @@ => -- | @commandBuffer@ is the command buffer into which the command is -- recorded. CommandBuffer- -> -- | @pEvents@ is an array of events to wait on.+ -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on. ("events" ::: Vector Event)- -> -- | @pDependencyInfos@ is an array of 'DependencyInfoKHR' structures,- -- defining the second+ -> -- | @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 ()@@ -1209,10 +1210,10 @@ => -- | @commandBuffer@ is the command buffer into which the command is -- recorded. CommandBuffer- -> -- | @pEvents@ is an array of events to wait on.+ -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on. ("events" ::: Vector Event)- -> -- | @pDependencyInfos@ is an array of 'DependencyInfoKHR' structures,- -- defining the second+ -> -- | @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 ()@@ -1239,7 +1240,7 @@ -- 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 commands that occurred earlier in+-- 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@@ -1247,7 +1248,7 @@ -- 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 commands that occurred later in+-- 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,@@ -1424,6 +1425,15 @@ -- -- == 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@@ -1436,9 +1446,9 @@ -- is still in the /pending state/ -- -- - #VUID-vkQueueSubmit2KHR-semaphore-03868# The @semaphore@ member of--- any 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+-- 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@@ -1626,7 +1636,7 @@ -- 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 @pipelineStage@.+-- specified by @stage@. -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>@@ -1735,6 +1745,9 @@ -- - #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 --@@ -1834,16 +1847,16 @@ -- 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 @pipelineStage@.+-- command’s specified @stage@. ----- While consecutive buffer marker writes with the same @pipelineStage@--- parameter implicitly complete in submission order, memory and execution+-- 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 @pipelineStage@ and+-- both @stage@ and -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'. -- -- Note@@ -2120,23 +2133,6 @@ -- described by this structure include only operations and memory accesses -- specified by @dstStageMask@ and @dstAccessMask@. ----- == 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--- -- == Valid Usage -- -- - #VUID-VkMemoryBarrier2KHR-srcStageMask-03929# If the@@ -2597,6 +2593,23 @@ -- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_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 -- -- 'AccessFlags2KHR', 'DependencyInfoKHR', 'PipelineStageFlags2KHR',@@ -2612,11 +2625,9 @@ , -- | @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@ is a 'AccessFlags2KHR' mask of pipeline- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>. dstStageMask :: PipelineStageFlags2KHR- , -- No documentation found for Nested "VkMemoryBarrier2KHR" "dstAccessMask"+ , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+ -- <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)@@ -2682,14 +2693,14 @@ -- 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 elements @srcStageMask@ and @srcAccessMask@.+-- 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 elements @dstStageMask@ and @dstAccessMask@.+-- 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>@@ -3446,9 +3457,9 @@ -- 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.Extensions.VK_KHR_fragment_shading_rate.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- then @image@ /must/ have been created with--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- set -- -- - #VUID-VkImageMemoryBarrier2KHR-image-01671# If @image@ has a@@ -3498,9 +3509,10 @@ -- 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 a special--- queue family values reserved for external memory transfers, the--- other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+-- 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@@ -3511,15 +3523,16 @@ -- 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 @srcStageMask@--- or @dstStageMask@ include 'PIPELINE_STAGE_2_HOST_BIT_KHR',--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be equal+-- - #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 a+-- 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',@@ -3589,11 +3602,9 @@ , -- | @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@ is a 'AccessFlags2KHR' mask of pipeline- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>. dstStageMask :: PipelineStageFlags2KHR- , -- No documentation found for Nested "VkImageMemoryBarrier2KHR" "dstAccessMask"+ , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+ -- <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>.@@ -3707,14 +3718,14 @@ -- 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 elements @srcStageMask@ and @srcAccessMask@.+-- 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 elements @dstStageMask@ and @dstAccessMask@.+-- 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>@@ -3722,7 +3733,7 @@ -- @offset@ and @size@. -- -- If @buffer@ was created with--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', and+-- '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>.@@ -4270,9 +4281,10 @@ -- 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 a special--- queue family values reserved for external memory transfers, the--- other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+-- 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@@ -4283,8 +4295,8 @@ -- 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--- @srcStageMask@ or @dstStageMask@ include+-- - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03851# If either+-- @srcStageMask@ or @dstStageMask@ includes -- 'PIPELINE_STAGE_2_HOST_BIT_KHR', @srcQueueFamilyIndex@ and -- @dstQueueFamilyIndex@ /must/ be equal --@@ -4331,11 +4343,9 @@ , -- | @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@ is a 'AccessFlags2KHR' mask of pipeline- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>. dstStageMask :: PipelineStageFlags2KHR- , -- No documentation found for Nested "VkBufferMemoryBarrier2KHR" "dstAccessMask"+ , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+ -- <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>.@@ -4936,7 +4946,7 @@ -- | VkQueueFamilyCheckpointProperties2NV - return structure for queue family--- checkpoint info query+-- checkpoint information query -- -- = Description --@@ -5061,18 +5071,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceSynchronization2FeaturesKHR' structure--- describes the following feature:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceSynchronization2FeaturesKHR' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceSynchronization2FeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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) --
src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot view
@@ -30,12 +30,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]--- 2020-12-03 Interactions and External Dependencies:+-- [__Last Modified Date__]+-- 2020-12-03 --+-- [__Interactions and External Dependencies__]+-- -- - Interacts with @VK_KHR_create_renderpass2@ ----- [Contributors]+-- [__Contributors__] -- -- - Tobias Hector --
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -197,7 +197,7 @@ -- -- 4) Does the new synchronization primitive allow resetting its payload? ----- __RESOLVED__: No, allowing the payload value to \"go backwards\" is+-- __RESOLVED__: No, allowing the payload value to “go backwards” is -- problematic. Applications looking for reset behavior should create a new -- instance of the sychronization primitive instead. --
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs view
@@ -147,7 +147,7 @@ -- -- - Adjusted wording of issue #1 to match the agreed-upon solution. ----- - Renamed \"window\" parameters to \"surface\" to match Wayland+-- - Renamed “window” parameters to “surface” to match Wayland -- conventions. -- -- - Revision 3, 2015-10-26 (Ian Elliott)
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot view
@@ -147,7 +147,7 @@ -- -- - Adjusted wording of issue #1 to match the agreed-upon solution. ----- - Renamed \"window\" parameters to \"surface\" to match Wayland+-- - Renamed “window” parameters to “surface” to match Wayland -- conventions. -- -- - Revision 3, 2015-10-26 (Ian Elliott)
src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs view
@@ -187,7 +187,8 @@ -- prior to beginning the submitted work. Entries refer to the keyed mutex -- associated with the corresponding entries in @pAcquireSyncs@. acquireKeys :: Vector Word64- , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "pAcquireTimeouts"+ , -- | @pAcquireTimeouts@ is a pointer to an array of timeout values, in+ -- millisecond units, for each acquire specified in @pAcquireKeys@. acquireTimeouts :: Vector Word32 , -- | @pReleaseSyncs@ is a pointer to an array of -- 'Vulkan.Core10.Handles.DeviceMemory' objects which were imported from
src/Vulkan/Extensions/VK_KHR_win32_surface.hs view
@@ -167,9 +167,9 @@ -- object’s pixel format can be set only one time. -- -- - Creating a 'Vulkan.Extensions.Handles.SwapchainKHR' over a window--- object can alter the object for the remaining life of its lifetime.--- Either of the above alterations may occur as a side-effect of--- 'Vulkan.Extensions.Handles.SwapchainKHR'.+-- object can alter the object for its remaining lifetime. Either of+-- the above alterations may occur as a side effect of+-- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot view
@@ -167,9 +167,9 @@ -- object’s pixel format can be set only one time. -- -- - Creating a 'Vulkan.Extensions.Handles.SwapchainKHR' over a window--- object can alter the object for the remaining life of its lifetime.--- Either of the above alterations may occur as a side-effect of--- 'Vulkan.Extensions.Handles.SwapchainKHR'.+-- object can alter the object for its remaining lifetime. Either of+-- the above alterations may occur as a side effect of+-- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -61,7 +61,7 @@ -- of @Workgroup@ storage class memory and create aliases between variables -- from that storage class in a compute shader. ----- The aliasing feature allows different \"views\" on the same data, so the+-- The aliasing feature allows different “views” on the same data, so the -- shader can bulk copy data from another storage class using one type -- (e.g. an array of large vectors), and then use the data with a more -- specific type. It also enables reducing the amount of workgroup memory@@ -149,19 +149,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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. 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -61,7 +61,7 @@ -- of @Workgroup@ storage class memory and create aliases between variables -- from that storage class in a compute shader. ----- The aliasing feature allows different \"views\" on the same data, so the+-- The aliasing feature allows different “views” on the same data, so the -- shader can bulk copy data from another storage class using one type -- (e.g. an array of large vectors), and then use the data with a more -- specific type. It also enables reducing the amount of workgroup memory
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs view
@@ -133,15 +133,15 @@ -- - Added presentation support query for an (xcb_connection_t*, -- xcb_visualid_t) pair. ----- - Removed \"root\" parameter from CreateXcbSurfaceKHR(), as it is+-- - Removed “root” parameter from CreateXcbSurfaceKHR(), as it is -- redundant when a window on the same screen is specified as well. -- -- - Adjusted wording of issue #1 and added agreed upon resolution. -- -- - Revision 3, 2015-10-14 (Ian Elliott) ----- - Removed \"root\" parameter from CreateXcbSurfaceKHR() in one--- more place.+-- - Removed “root” parameter from CreateXcbSurfaceKHR() in one more+-- place. -- -- - Revision 4, 2015-10-26 (Ian Elliott) --
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot view
@@ -133,15 +133,15 @@ -- - Added presentation support query for an (xcb_connection_t*, -- xcb_visualid_t) pair. ----- - Removed \"root\" parameter from CreateXcbSurfaceKHR(), as it is+-- - Removed “root” parameter from CreateXcbSurfaceKHR(), as it is -- redundant when a window on the same screen is specified as well. -- -- - Adjusted wording of issue #1 and added agreed upon resolution. -- -- - Revision 3, 2015-10-14 (Ian Elliott) ----- - Removed \"root\" parameter from CreateXcbSurfaceKHR() in one--- more place.+-- - Removed “root” parameter from CreateXcbSurfaceKHR() in one more+-- place. -- -- - Revision 4, 2015-10-26 (Ian Elliott) --
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs view
@@ -131,7 +131,7 @@ -- -- - Added presentation support query for (Display*, VisualID) pair. ----- - Removed \"root\" parameter from CreateXlibSurfaceKHR(), as it is+-- - Removed “root” parameter from CreateXlibSurfaceKHR(), as it is -- redundant when a window on the same screen is specified as well. -- -- - Added appropriate X errors.
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot view
@@ -131,7 +131,7 @@ -- -- - Added presentation support query for (Display*, VisualID) pair. ----- - Removed \"root\" parameter from CreateXlibSurfaceKHR(), as it is+-- - Removed “root” parameter from CreateXlibSurfaceKHR(), as it is -- redundant when a window on the same screen is specified as well. -- -- - Added appropriate X errors.
src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -28,6 +28,8 @@ -- - Alan Baker -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] -- 2020-11-18 --@@ -45,6 +47,8 @@ -- -- - 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@@ -121,19 +125,20 @@ -- -- = Members ----- The member of the--- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' structure--- describe the following feature:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the features.+-- 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) --
src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot view
@@ -28,6 +28,8 @@ -- - Alan Baker -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] -- 2020-11-18 --@@ -44,6 +46,8 @@ -- - 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
src/Vulkan/Extensions/VK_NN_vi_surface.hs view
@@ -84,13 +84,13 @@ -- -- 2) 'ViSurfaceCreateInfoNN'::@pWindow@ is intended to store an -- @nn@::@vi@::@NativeWindowHandle@, but its declared type is a bare--- @void@* to store the window handle. Why the discrepancy?+-- @void*@ to store the window handle. Why the discrepancy? -- -- __RESOLVED__: It is for C compatibility. The definition for the VI -- native window handle type is defined inside the @nn@::@vi@ C++ -- namespace. This prevents its use in C source files.--- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void@*, so--- this extension uses @void@* to match.+-- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void*@, so+-- this extension uses @void*@ to match. -- -- == Version History --
src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot view
@@ -84,13 +84,13 @@ -- -- 2) 'ViSurfaceCreateInfoNN'::@pWindow@ is intended to store an -- @nn@::@vi@::@NativeWindowHandle@, but its declared type is a bare--- @void@* to store the window handle. Why the discrepancy?+-- @void*@ to store the window handle. Why the discrepancy? -- -- __RESOLVED__: It is for C compatibility. The definition for the VI -- native window handle type is defined inside the @nn@::@vi@ C++ -- namespace. This prevents its use in C source files.--- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void@*, so--- this extension uses @void@* to match.+-- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void*@, so+-- this extension uses @void*@ to match. -- -- == Version History --
+ src/Vulkan/Extensions/VK_NVX_binary_import.hs view
@@ -0,0 +1,602 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NVX_binary_import - device extension+--+-- == VK_NVX_binary_import+--+-- [__Name String__]+-- @VK_NVX_binary_import@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 30+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- [__Contact__]+--+-- - Eric Werness+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@ewerness%20 >+--+-- - Liam Middlebrook+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@liam-middlebrook%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-09+--+-- [__Contributors__]+--+-- - Eric Werness, NVIDIA+--+-- - Liam Middlebrook, NVIDIA+--+-- == Description+--+-- This extension allows applications to import CuBIN binaries and execute+-- them.+--+-- == New Object Types+--+-- - 'Vulkan.Extensions.Handles.CuFunctionNVX'+--+-- - 'Vulkan.Extensions.Handles.CuModuleNVX'+--+-- == New Commands+--+-- - 'cmdCuLaunchKernelNVX'+--+-- - 'createCuFunctionNVX'+--+-- - 'createCuModuleNVX'+--+-- - 'destroyCuFunctionNVX'+--+-- - 'destroyCuModuleNVX'+--+-- == New Structures+--+-- - 'CuFunctionCreateInfoNVX'+--+-- - 'CuLaunchInfoNVX'+--+-- - 'CuModuleCreateInfoNVX'+--+-- == New Enum Constants+--+-- - 'NVX_BINARY_IMPORT_EXTENSION_NAME'+--+-- - 'NVX_BINARY_IMPORT_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':+--+-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'+--+-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+-- - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_FUNCTION_NVX'+--+-- - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_MODULE_NVX'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'+--+-- == Version History+--+-- - Revision 1, 2021-04-09 (Eric Werness)+--+-- - Internal revisions+--+-- = See Also+--+-- 'CuFunctionCreateInfoNVX', 'Vulkan.Extensions.Handles.CuFunctionNVX',+-- 'CuLaunchInfoNVX', 'CuModuleCreateInfoNVX',+-- 'Vulkan.Extensions.Handles.CuModuleNVX', 'cmdCuLaunchKernelNVX',+-- 'createCuFunctionNVX', 'createCuModuleNVX', 'destroyCuFunctionNVX',+-- 'destroyCuModuleNVX'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NVX_binary_import ( createCuModuleNVX+ , withCuModuleNVX+ , createCuFunctionNVX+ , withCuFunctionNVX+ , destroyCuModuleNVX+ , destroyCuFunctionNVX+ , cmdCuLaunchKernelNVX+ , CuModuleCreateInfoNVX(..)+ , CuFunctionCreateInfoNVX(..)+ , CuLaunchInfoNVX(..)+ , NVX_BINARY_IMPORT_SPEC_VERSION+ , pattern NVX_BINARY_IMPORT_SPEC_VERSION+ , NVX_BINARY_IMPORT_EXTENSION_NAME+ , pattern NVX_BINARY_IMPORT_EXTENSION_NAME+ , CuModuleNVX(..)+ , CuFunctionNVX(..)+ , DebugReportObjectTypeEXT(..)+ ) 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 (allocaBytesAligned)+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 Data.ByteString (useAsCString)+import Data.Coerce (coerce)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.C.Types (CChar)+import Foreign.C.Types (CSize)+import Foreign.C.Types (CSize(..))+import Foreign.C.Types (CSize(CSize))+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.ByteString (ByteString)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Extensions.Handles (CuFunctionNVX)+import Vulkan.Extensions.Handles (CuFunctionNVX(..))+import Vulkan.Extensions.Handles (CuModuleNVX)+import Vulkan.Extensions.Handles (CuModuleNVX(..))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCuLaunchKernelNVX))+import Vulkan.Dynamic (DeviceCmds(pVkCreateCuFunctionNVX))+import Vulkan.Dynamic (DeviceCmds(pVkCreateCuModuleNVX))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyCuFunctionNVX))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyCuModuleNVX))+import Vulkan.Core10.Handles (Device_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_CU_FUNCTION_CREATE_INFO_NVX))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (CuFunctionNVX(..))+import Vulkan.Extensions.Handles (CuModuleNVX(..))+import Vulkan.Extensions.VK_EXT_debug_report (DebugReportObjectTypeEXT(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCreateCuModuleNVX+ :: FunPtr (Ptr Device_T -> Ptr CuModuleCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result) -> Ptr Device_T -> Ptr CuModuleCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result++-- No documentation found for TopLevel "vkCreateCuModuleNVX"+createCuModuleNVX :: forall io+ . (MonadIO io)+ => -- No documentation found for Nested "vkCreateCuModuleNVX" "device"+ Device+ -> -- No documentation found for Nested "vkCreateCuModuleNVX" "pCreateInfo"+ CuModuleCreateInfoNVX+ -> -- No documentation found for Nested "vkCreateCuModuleNVX" "pAllocator"+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io (CuModuleNVX)+createCuModuleNVX device createInfo allocator = liftIO . evalContT $ do+ let vkCreateCuModuleNVXPtr = pVkCreateCuModuleNVX (deviceCmds (device :: Device))+ lift $ unless (vkCreateCuModuleNVXPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateCuModuleNVX is null" Nothing Nothing+ let vkCreateCuModuleNVX' = mkVkCreateCuModuleNVX vkCreateCuModuleNVXPtr+ pCreateInfo <- ContT $ withCStruct (createInfo)+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ pPModule <- ContT $ bracket (callocBytes @CuModuleNVX 8) free+ r <- lift $ traceAroundEvent "vkCreateCuModuleNVX" (vkCreateCuModuleNVX' (deviceHandle (device)) pCreateInfo pAllocator (pPModule))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pModule <- lift $ peek @CuModuleNVX pPModule+ pure $ (pModule)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createCuModuleNVX' and 'destroyCuModuleNVX'+--+-- To ensure that 'destroyCuModuleNVX' 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.+--+withCuModuleNVX :: forall io r . MonadIO io => Device -> CuModuleCreateInfoNVX -> Maybe AllocationCallbacks -> (io CuModuleNVX -> (CuModuleNVX -> io ()) -> r) -> r+withCuModuleNVX device pCreateInfo pAllocator b =+ b (createCuModuleNVX device pCreateInfo pAllocator)+ (\(o0) -> destroyCuModuleNVX device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCreateCuFunctionNVX+ :: FunPtr (Ptr Device_T -> Ptr CuFunctionCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuFunctionNVX -> IO Result) -> Ptr Device_T -> Ptr CuFunctionCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuFunctionNVX -> IO Result++-- No documentation found for TopLevel "vkCreateCuFunctionNVX"+createCuFunctionNVX :: forall io+ . (MonadIO io)+ => -- No documentation found for Nested "vkCreateCuFunctionNVX" "device"+ Device+ -> -- No documentation found for Nested "vkCreateCuFunctionNVX" "pCreateInfo"+ CuFunctionCreateInfoNVX+ -> -- No documentation found for Nested "vkCreateCuFunctionNVX" "pAllocator"+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io (CuFunctionNVX)+createCuFunctionNVX device createInfo allocator = liftIO . evalContT $ do+ let vkCreateCuFunctionNVXPtr = pVkCreateCuFunctionNVX (deviceCmds (device :: Device))+ lift $ unless (vkCreateCuFunctionNVXPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateCuFunctionNVX is null" Nothing Nothing+ let vkCreateCuFunctionNVX' = mkVkCreateCuFunctionNVX vkCreateCuFunctionNVXPtr+ pCreateInfo <- ContT $ withCStruct (createInfo)+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ pPFunction <- ContT $ bracket (callocBytes @CuFunctionNVX 8) free+ r <- lift $ traceAroundEvent "vkCreateCuFunctionNVX" (vkCreateCuFunctionNVX' (deviceHandle (device)) pCreateInfo pAllocator (pPFunction))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pFunction <- lift $ peek @CuFunctionNVX pPFunction+ pure $ (pFunction)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createCuFunctionNVX' and 'destroyCuFunctionNVX'+--+-- To ensure that 'destroyCuFunctionNVX' 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.+--+withCuFunctionNVX :: forall io r . MonadIO io => Device -> CuFunctionCreateInfoNVX -> Maybe AllocationCallbacks -> (io CuFunctionNVX -> (CuFunctionNVX -> io ()) -> r) -> r+withCuFunctionNVX device pCreateInfo pAllocator b =+ b (createCuFunctionNVX device pCreateInfo pAllocator)+ (\(o0) -> destroyCuFunctionNVX device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkDestroyCuModuleNVX+ :: FunPtr (Ptr Device_T -> CuModuleNVX -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> CuModuleNVX -> Ptr AllocationCallbacks -> IO ()++-- No documentation found for TopLevel "vkDestroyCuModuleNVX"+destroyCuModuleNVX :: forall io+ . (MonadIO io)+ => -- No documentation found for Nested "vkDestroyCuModuleNVX" "device"+ Device+ -> -- No documentation found for Nested "vkDestroyCuModuleNVX" "module"+ CuModuleNVX+ -> -- No documentation found for Nested "vkDestroyCuModuleNVX" "pAllocator"+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io ()+destroyCuModuleNVX device module' allocator = liftIO . evalContT $ do+ let vkDestroyCuModuleNVXPtr = pVkDestroyCuModuleNVX (deviceCmds (device :: Device))+ lift $ unless (vkDestroyCuModuleNVXPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyCuModuleNVX is null" Nothing Nothing+ let vkDestroyCuModuleNVX' = mkVkDestroyCuModuleNVX vkDestroyCuModuleNVXPtr+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ lift $ traceAroundEvent "vkDestroyCuModuleNVX" (vkDestroyCuModuleNVX' (deviceHandle (device)) (module') pAllocator)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkDestroyCuFunctionNVX+ :: FunPtr (Ptr Device_T -> CuFunctionNVX -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> CuFunctionNVX -> Ptr AllocationCallbacks -> IO ()++-- No documentation found for TopLevel "vkDestroyCuFunctionNVX"+destroyCuFunctionNVX :: forall io+ . (MonadIO io)+ => -- No documentation found for Nested "vkDestroyCuFunctionNVX" "device"+ Device+ -> -- No documentation found for Nested "vkDestroyCuFunctionNVX" "function"+ CuFunctionNVX+ -> -- No documentation found for Nested "vkDestroyCuFunctionNVX" "pAllocator"+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io ()+destroyCuFunctionNVX device function allocator = liftIO . evalContT $ do+ let vkDestroyCuFunctionNVXPtr = pVkDestroyCuFunctionNVX (deviceCmds (device :: Device))+ lift $ unless (vkDestroyCuFunctionNVXPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyCuFunctionNVX is null" Nothing Nothing+ let vkDestroyCuFunctionNVX' = mkVkDestroyCuFunctionNVX vkDestroyCuFunctionNVXPtr+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ lift $ traceAroundEvent "vkDestroyCuFunctionNVX" (vkDestroyCuFunctionNVX' (deviceHandle (device)) (function) pAllocator)+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCuLaunchKernelNVX+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CuLaunchInfoNVX -> IO ()) -> Ptr CommandBuffer_T -> Ptr CuLaunchInfoNVX -> IO ()++-- No documentation found for TopLevel "vkCmdCuLaunchKernelNVX"+cmdCuLaunchKernelNVX :: forall io+ . (MonadIO io)+ => -- No documentation found for Nested "vkCmdCuLaunchKernelNVX" "commandBuffer"+ CommandBuffer+ -> -- No documentation found for Nested "vkCmdCuLaunchKernelNVX" "pLaunchInfo"+ CuLaunchInfoNVX+ -> io ()+cmdCuLaunchKernelNVX commandBuffer launchInfo = liftIO . evalContT $ do+ let vkCmdCuLaunchKernelNVXPtr = pVkCmdCuLaunchKernelNVX (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdCuLaunchKernelNVXPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCuLaunchKernelNVX is null" Nothing Nothing+ let vkCmdCuLaunchKernelNVX' = mkVkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVXPtr+ pLaunchInfo <- ContT $ withCStruct (launchInfo)+ lift $ traceAroundEvent "vkCmdCuLaunchKernelNVX" (vkCmdCuLaunchKernelNVX' (commandBufferHandle (commandBuffer)) pLaunchInfo)+ pure $ ()+++-- No documentation found for TopLevel "VkCuModuleCreateInfoNVX"+data CuModuleCreateInfoNVX = CuModuleCreateInfoNVX+ { -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "dataSize"+ dataSize :: Word64+ , -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "pData"+ data' :: Ptr ()+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CuModuleCreateInfoNVX)+#endif+deriving instance Show CuModuleCreateInfoNVX++instance ToCStruct CuModuleCreateInfoNVX where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CuModuleCreateInfoNVX{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (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_CU_MODULE_CREATE_INFO_NVX)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (zero))+ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+ f++instance FromCStruct CuModuleCreateInfoNVX where+ peekCStruct p = do+ dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))+ pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+ pure $ CuModuleCreateInfoNVX+ (coerce @CSize @Word64 dataSize) pData++instance Storable CuModuleCreateInfoNVX where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CuModuleCreateInfoNVX where+ zero = CuModuleCreateInfoNVX+ zero+ zero+++-- No documentation found for TopLevel "VkCuFunctionCreateInfoNVX"+data CuFunctionCreateInfoNVX = CuFunctionCreateInfoNVX+ { -- No documentation found for Nested "VkCuFunctionCreateInfoNVX" "module"+ module' :: CuModuleNVX+ , -- No documentation found for Nested "VkCuFunctionCreateInfoNVX" "pName"+ name :: ByteString+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CuFunctionCreateInfoNVX)+#endif+deriving instance Show CuFunctionCreateInfoNVX++instance ToCStruct CuFunctionCreateInfoNVX where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CuFunctionCreateInfoNVX{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr CuModuleNVX)) (module')+ pName'' <- ContT $ useAsCString (name)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr CChar))) pName''+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr CuModuleNVX)) (zero)+ pName'' <- ContT $ useAsCString (mempty)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr CChar))) pName''+ lift $ f++instance FromCStruct CuFunctionCreateInfoNVX where+ peekCStruct p = do+ module' <- peek @CuModuleNVX ((p `plusPtr` 16 :: Ptr CuModuleNVX))+ pName <- packCString =<< peek ((p `plusPtr` 24 :: Ptr (Ptr CChar)))+ pure $ CuFunctionCreateInfoNVX+ module' pName++instance Zero CuFunctionCreateInfoNVX where+ zero = CuFunctionCreateInfoNVX+ zero+ mempty+++-- No documentation found for TopLevel "VkCuLaunchInfoNVX"+data CuLaunchInfoNVX = CuLaunchInfoNVX+ { -- No documentation found for Nested "VkCuLaunchInfoNVX" "function"+ function :: CuFunctionNVX+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "gridDimX"+ gridDimX :: Word32+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "gridDimY"+ gridDimY :: Word32+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "gridDimZ"+ gridDimZ :: Word32+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "blockDimX"+ blockDimX :: Word32+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "blockDimY"+ blockDimY :: Word32+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "blockDimZ"+ blockDimZ :: Word32+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "sharedMemBytes"+ sharedMemBytes :: Word32+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "paramCount"+ paramCount :: Word64+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pParams"+ params :: Ptr (Ptr ())+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "extraCount"+ extraCount :: Word64+ , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pExtras"+ extras :: Ptr (Ptr ())+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CuLaunchInfoNVX)+#endif+deriving instance Show CuLaunchInfoNVX++instance ToCStruct CuLaunchInfoNVX where+ withCStruct x f = allocaBytesAligned 88 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CuLaunchInfoNVX{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr CuFunctionNVX)) (function)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (gridDimX)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (gridDimY)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (gridDimZ)+ poke ((p `plusPtr` 36 :: Ptr Word32)) (blockDimX)+ poke ((p `plusPtr` 40 :: Ptr Word32)) (blockDimY)+ poke ((p `plusPtr` 44 :: Ptr Word32)) (blockDimZ)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (sharedMemBytes)+ poke ((p `plusPtr` 56 :: Ptr CSize)) (CSize (paramCount))+ poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (params)+ poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (extraCount))+ poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (extras)+ f+ cStructSize = 88+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr CuFunctionNVX)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 28 :: Ptr Word32)) (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` 56 :: Ptr CSize)) (CSize (zero))+ poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (zero)+ poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (zero))+ poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (zero)+ f++instance FromCStruct CuLaunchInfoNVX where+ peekCStruct p = do+ function <- peek @CuFunctionNVX ((p `plusPtr` 16 :: Ptr CuFunctionNVX))+ gridDimX <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ gridDimY <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+ gridDimZ <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ blockDimX <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+ blockDimY <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+ blockDimZ <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ sharedMemBytes <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+ paramCount <- peek @CSize ((p `plusPtr` 56 :: Ptr CSize))+ pParams <- peek @(Ptr (Ptr ())) ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ()))))+ extraCount <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize))+ pExtras <- peek @(Ptr (Ptr ())) ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ()))))+ pure $ CuLaunchInfoNVX+ function gridDimX gridDimY gridDimZ blockDimX blockDimY blockDimZ sharedMemBytes (coerce @CSize @Word64 paramCount) pParams (coerce @CSize @Word64 extraCount) pExtras++instance Storable CuLaunchInfoNVX where+ sizeOf ~_ = 88+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CuLaunchInfoNVX where+ zero = CuLaunchInfoNVX+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++type NVX_BINARY_IMPORT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NVX_BINARY_IMPORT_SPEC_VERSION"+pattern NVX_BINARY_IMPORT_SPEC_VERSION :: forall a . Integral a => a+pattern NVX_BINARY_IMPORT_SPEC_VERSION = 1+++type NVX_BINARY_IMPORT_EXTENSION_NAME = "VK_NVX_binary_import"++-- No documentation found for TopLevel "VK_NVX_BINARY_IMPORT_EXTENSION_NAME"+pattern NVX_BINARY_IMPORT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NVX_BINARY_IMPORT_EXTENSION_NAME = "VK_NVX_binary_import"+
+ src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot view
@@ -0,0 +1,153 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NVX_binary_import - device extension+--+-- == VK_NVX_binary_import+--+-- [__Name String__]+-- @VK_NVX_binary_import@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 30+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- [__Contact__]+--+-- - Eric Werness+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@ewerness%20 >+--+-- - Liam Middlebrook+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@liam-middlebrook%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-09+--+-- [__Contributors__]+--+-- - Eric Werness, NVIDIA+--+-- - Liam Middlebrook, NVIDIA+--+-- == Description+--+-- This extension allows applications to import CuBIN binaries and execute+-- them.+--+-- == New Object Types+--+-- - 'Vulkan.Extensions.Handles.CuFunctionNVX'+--+-- - 'Vulkan.Extensions.Handles.CuModuleNVX'+--+-- == New Commands+--+-- - 'cmdCuLaunchKernelNVX'+--+-- - 'createCuFunctionNVX'+--+-- - 'createCuModuleNVX'+--+-- - 'destroyCuFunctionNVX'+--+-- - 'destroyCuModuleNVX'+--+-- == New Structures+--+-- - 'CuFunctionCreateInfoNVX'+--+-- - 'CuLaunchInfoNVX'+--+-- - 'CuModuleCreateInfoNVX'+--+-- == New Enum Constants+--+-- - 'NVX_BINARY_IMPORT_EXTENSION_NAME'+--+-- - 'NVX_BINARY_IMPORT_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':+--+-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'+--+-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+-- - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_FUNCTION_NVX'+--+-- - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_MODULE_NVX'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'+--+-- == Version History+--+-- - Revision 1, 2021-04-09 (Eric Werness)+--+-- - Internal revisions+--+-- = See Also+--+-- 'CuFunctionCreateInfoNVX', 'Vulkan.Extensions.Handles.CuFunctionNVX',+-- 'CuLaunchInfoNVX', 'CuModuleCreateInfoNVX',+-- 'Vulkan.Extensions.Handles.CuModuleNVX', 'cmdCuLaunchKernelNVX',+-- 'createCuFunctionNVX', 'createCuModuleNVX', 'destroyCuFunctionNVX',+-- 'destroyCuModuleNVX'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NVX_binary_import ( CuFunctionCreateInfoNVX+ , CuLaunchInfoNVX+ , CuModuleCreateInfoNVX+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data CuFunctionCreateInfoNVX++instance ToCStruct CuFunctionCreateInfoNVX+instance Show CuFunctionCreateInfoNVX++instance FromCStruct CuFunctionCreateInfoNVX+++data CuLaunchInfoNVX++instance ToCStruct CuLaunchInfoNVX+instance Show CuLaunchInfoNVX++instance FromCStruct CuLaunchInfoNVX+++data CuModuleCreateInfoNVX++instance ToCStruct CuModuleCreateInfoNVX+instance Show CuModuleCreateInfoNVX++instance FromCStruct CuModuleCreateInfoNVX+
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs view
@@ -186,18 +186,15 @@ -- | VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - Structure -- describing multiview limits that can be supported by an implementation ----- = Members------ The members of the--- 'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs view
@@ -152,22 +152,24 @@ -- -- = Members ----- The members of the 'PhysicalDeviceComputeShaderDerivativesFeaturesNV'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad>--- chapter for more information.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope>+-- for more information. ----- If the 'PhysicalDeviceComputeShaderDerivativesFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceComputeShaderDerivativesFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- If the @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.+-- 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. @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs view
@@ -113,7 +113,7 @@ -- -- (1) What matrix properties will be supported in practice? ----- RESOLVED: In NVIDIA’s initial implementation, we will support:+-- __RESOLVED__: In NVIDIA’s initial implementation, we will support: -- -- - AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x16 scope = -- Subgroup@@ -256,11 +256,10 @@ -- variable is overwritten with the number of structures actually written -- to @pProperties@. If @pPropertyCount@ is less than the number of -- cooperative matrix properties available, at most @pPropertyCount@--- structures will be written. If @pPropertyCount@ is smaller than the--- number of cooperative matrix properties available,--- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the--- available cooperative matrix properties were returned.+-- structures will be written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'+-- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to+-- indicate that not all the available cooperative matrix properties were+-- returned. -- -- == Valid Usage (Implicit) --@@ -323,18 +322,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCooperativeMatrixFeaturesNV' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceCooperativeMatrixFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceCooperativeMatrixFeaturesNV' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceCooperativeMatrixFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -397,17 +397,15 @@ -- | VkPhysicalDeviceCooperativeMatrixPropertiesNV - Structure describing -- cooperative matrix properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceCooperativeMatrixPropertiesNV'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceCooperativeMatrixPropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot view
@@ -113,7 +113,7 @@ -- -- (1) What matrix properties will be supported in practice? ----- RESOLVED: In NVIDIA’s initial implementation, we will support:+-- __RESOLVED__: In NVIDIA’s initial implementation, we will support: -- -- - AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x16 scope = -- Subgroup
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs view
@@ -102,7 +102,7 @@ -- -- 1. What should this extension be named? ----- DISCUSSION: While naming this extension, we chose the most+-- __DISCUSSION__: While naming this extension, we chose the most -- distinctive aspect of the image organization and referred to such -- images as “corner-sampled images”. As a result, we decided to name -- the extension NV_corner_sampled_image.@@ -110,7 +110,7 @@ -- 2. Do we need a format feature flag so formats can advertise if they -- support corner-sampling? ----- DISCUSSION: Currently NVIDIA supports this for all 2D and 3D+-- __DISCUSSION__: Currently NVIDIA supports this for all 2D and 3D -- formats, but not for cubemaps or depth-stencil formats. A format -- feature might be useful if other vendors would only support this on -- some formats.@@ -118,18 +118,18 @@ -- 3. Do integer texel coordinates have a different range for -- corner-sampled images? ----- RESOLVED: No, these are unchanged.+-- __RESOLVED__: No, these are unchanged. -- -- 4. Do unnormalized sampler coordinates work with corner-sampled images? -- Are there any functional differences? ----- RESOLVED: Yes they work. Unnormalized coordinates are treated as--- already scaled for corner-sample usage.+-- __RESOLVED__: Yes. Unnormalized coordinates are treated as already+-- scaled for corner-sample usage. -- -- 5. Should we have a diagram in the “Image Operations” chapter -- demonstrating different texel sampling locations? ----- UNRESOLVED: Probaby, but later.+-- __UNRESOLVED__: Probaby, but later. -- -- == Version History --@@ -186,18 +186,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCornerSampledImageFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceCornerSampledImageFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceCornerSampledImageFeaturesNV' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceCornerSampledImageFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot view
@@ -102,7 +102,7 @@ -- -- 1. What should this extension be named? ----- DISCUSSION: While naming this extension, we chose the most+-- __DISCUSSION__: While naming this extension, we chose the most -- distinctive aspect of the image organization and referred to such -- images as “corner-sampled images”. As a result, we decided to name -- the extension NV_corner_sampled_image.@@ -110,7 +110,7 @@ -- 2. Do we need a format feature flag so formats can advertise if they -- support corner-sampling? ----- DISCUSSION: Currently NVIDIA supports this for all 2D and 3D+-- __DISCUSSION__: Currently NVIDIA supports this for all 2D and 3D -- formats, but not for cubemaps or depth-stencil formats. A format -- feature might be useful if other vendors would only support this on -- some formats.@@ -118,18 +118,18 @@ -- 3. Do integer texel coordinates have a different range for -- corner-sampled images? ----- RESOLVED: No, these are unchanged.+-- __RESOLVED__: No, these are unchanged. -- -- 4. Do unnormalized sampler coordinates work with corner-sampled images? -- Are there any functional differences? ----- RESOLVED: Yes they work. Unnormalized coordinates are treated as--- already scaled for corner-sample usage.+-- __RESOLVED__: Yes. Unnormalized coordinates are treated as already+-- scaled for corner-sample usage. -- -- 5. Should we have a diagram in the “Image Operations” chapter -- demonstrating different texel sampling locations? ----- UNRESOLVED: Probaby, but later.+-- __UNRESOLVED__: Probaby, but later. -- -- == Version History --
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -231,9 +231,9 @@ -- return the variable is overwritten with the number of values actually -- written to @pCombinations@. If the value of @pCombinationCount@ is less -- than the number of combinations supported for the given--- @physicalDevice@, at most @pCombinationCount@ values will be written--- @pCombinations@ and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate+-- @physicalDevice@, at most @pCombinationCount@ values will be written to+-- @pCombinations@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate -- that not all the supported values were returned. -- -- == Valid Usage (Implicit)@@ -300,18 +300,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCoverageReductionModeFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceCoverageReductionModeFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceCoverageReductionModeFeaturesNV' /can/ also be included--- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the feature.+-- 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. 'PhysicalDeviceCoverageReductionModeFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -464,8 +465,9 @@ { -- | @coverageReductionMode@ is a 'CoverageReductionModeNV' value specifying -- the coverage reduction mode. coverageReductionMode :: CoverageReductionModeNV- , -- | @rasterizationSamples@ specifies the number of rasterization samples in- -- the supported combination.+ , -- | @rasterizationSamples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying+ -- the number of rasterization samples in the supported combination. rasterizationSamples :: SampleCountFlagBits , -- | @depthStencilSamples@ specifies the number of samples in the depth -- stencil attachment in the supported combination. A value of 0 indicates
src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs view
@@ -121,19 +121,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs view
@@ -295,7 +295,7 @@ -- | VkQueueFamilyCheckpointPropertiesNV - return structure for queue family--- checkpoint info query+-- checkpoint information query -- -- = Description --@@ -367,8 +367,9 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'getQueueCheckpointDataNV' data CheckpointDataNV = CheckpointDataNV- { -- | @stage@ indicates which pipeline stage the checkpoint marker data refers- -- to.+ { -- | @stage@ is a+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value+ -- specifying which pipeline stage the checkpoint marker data refers to. stage :: PipelineStageFlagBits , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker -- executed in the stage that @stage@ refers to.
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs view
@@ -149,18 +149,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDiagnosticsConfigFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDiagnosticsConfigFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceDiagnosticsConfigFeaturesNV' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceDiagnosticsConfigFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -304,7 +304,7 @@ -- the command buffer reservation process, however as the memory -- requirements can be substantial, we want to give developers the ability -- to budget the memory themselves. By lowering the @maxSequencesCount@ the--- memory consumption can be reduced. Furthermore re-use of the memory is+-- memory consumption can be reduced. Furthermore reuse of the memory is -- possible, for example for doing explicit preprocessing and execution in -- a ping-pong fashion. --@@ -334,7 +334,7 @@ -- -- 8) How do we allow re-using already “generated” @indirectCommands@? ----- Expose a @preprocessBuffer@ to re-use implementation-dependencyFlags+-- Expose a @preprocessBuffer@ to reuse implementation-dependencyFlags -- data. Set the @isPreprocessed@ to true in -- 'cmdExecuteGeneratedCommandsNV'. --@@ -506,6 +506,15 @@ -- -- - Initial version --+-- - Revision 2, 2020-03-09 (Christoph Kubisch)+--+-- - Remove VK_EXT_debug_report interactions+--+-- - Revision 3, 2020-03-09 (Christoph Kubisch)+--+-- - Fix naming VkPhysicalDeviceGenerated to+-- VkPhysicalDeviceDeviceGenerated+-- -- = See Also -- -- 'BindIndexBufferIndirectCommandNV', 'BindShaderGroupIndirectCommandNV',@@ -696,8 +705,8 @@ "dynamic" mkVkCmdExecuteGeneratedCommandsNV :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO () --- | vkCmdExecuteGeneratedCommandsNV - Performs the generation and execution--- of commands on the device+-- | vkCmdExecuteGeneratedCommandsNV - Generate and execute commands on the+-- device -- -- == Valid Usage --@@ -801,9 +810,9 @@ -- - #VUID-vkCmdExecuteGeneratedCommandsNV-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02859# There /must/ not -- have been any calls to dynamic state setting commands for any state@@ -973,7 +982,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -987,7 +996,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1003,7 +1012,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -1086,7 +1095,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -1094,6 +1103,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-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-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1105,7 +1155,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -1127,6 +1177,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04884# If the bound+-- graphics pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex -- shader entry point’s interface /must/ have either valid or@@ -1664,18 +1724,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the features.+-- 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. 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -1731,6 +1792,16 @@ -- describing push descriptor limits that can be supported by an -- implementation --+-- = Description+--+-- If the 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV' 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@@ -1882,14 +1953,15 @@ -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data GraphicsShaderGroupCreateInfoNV = GraphicsShaderGroupCreateInfoNV- { -- | @pStages@ is an array of size @stageCount@ structures of type- -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' describing the- -- set of the shader stages to be included in this shader group.+ { -- | @pStages@ is a pointer to an array+ -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures+ -- specifying the set of the shader stages to be included in this shader+ -- group. stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)- , -- | @pVertexInputState@ is a pointer to an instance of the+ , -- | @pVertexInputState@ is a pointer to a -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure. vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)- , -- | @pTessellationState@ is a pointer to an instance of the+ , -- | @pTessellationState@ is a pointer to a -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' structure, -- and is ignored if the shader group does not include a tessellation -- control shader stage and tessellation evaluation shader stage.@@ -2021,14 +2093,14 @@ -- 'GraphicsShaderGroupCreateInfoNV', 'Vulkan.Core10.Handles.Pipeline', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data GraphicsPipelineShaderGroupsCreateInfoNV = GraphicsPipelineShaderGroupsCreateInfoNV- { -- | @pGroups@ is an array of 'GraphicsShaderGroupCreateInfoNV' values- -- specifying which state of the original+ { -- | @pGroups@ is a pointer to an array of 'GraphicsShaderGroupCreateInfoNV'+ -- structures specifying which state of the original -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' each shader group -- overrides. groups :: Vector GraphicsShaderGroupCreateInfoNV- , -- | @pPipelines@ is an array of graphics 'Vulkan.Core10.Handles.Pipeline',- -- which are referenced within the created pipeline, including all their- -- shader groups.+ , -- | @pPipelines@ is a pointer to an array of graphics+ -- 'Vulkan.Core10.Handles.Pipeline' structures which are referenced within+ -- the created pipeline, including all their shader groups. pipelines :: Vector Pipeline } deriving (Typeable)@@ -2463,11 +2535,11 @@ -- @pushconstantSize@ and for each push constant range that overlaps -- that byte, @pushconstantShaderStageFlags@ /must/ include all stages -- in that push constant range’s--- 'Vulkan.Core10.PipelineLayout.PushConstantRange'::@pushconstantShaderStageFlags@+-- 'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@ -- -- - #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984# If -- @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV',--- @indirectStateFlags@ /must/ not be ´0´+-- @indirectStateFlags@ /must/ not be @0@ -- -- == Valid Usage (Implicit) --@@ -2706,9 +2778,6 @@ -- /must/ be a valid combination of -- 'IndirectCommandsLayoutUsageFlagBitsNV' values ----- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-requiredbitmask#--- @flags@ /must/ not be @0@--- -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter# -- @pipelineBindPoint@ /must/ be a valid -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value@@ -2776,7 +2845,6 @@ pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr IndirectCommandsLayoutUsageFlagsNV)) (zero) poke ((p `plusPtr` 20 :: Ptr PipelineBindPoint)) (zero) f @@ -2972,8 +3040,9 @@ -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' that provides the -- command sequence to generate. indirectCommandsLayout :: IndirectCommandsLayoutNV- , -- | @pStreams@ provides an array of 'IndirectCommandsStreamNV' that provide- -- the input data for the tokens used in @indirectCommandsLayout@.+ , -- | @pStreams@ is a pointer to an array of @streamCount@+ -- 'IndirectCommandsStreamNV' structures providing the input data for the+ -- tokens used in @indirectCommandsLayout@. streams :: Vector IndirectCommandsStreamNV , -- | @sequencesCount@ is the maximum number of sequences to reserve. If -- @sequencesCountBuffer@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', this
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot view
@@ -304,7 +304,7 @@ -- the command buffer reservation process, however as the memory -- requirements can be substantial, we want to give developers the ability -- to budget the memory themselves. By lowering the @maxSequencesCount@ the--- memory consumption can be reduced. Furthermore re-use of the memory is+-- memory consumption can be reduced. Furthermore reuse of the memory is -- possible, for example for doing explicit preprocessing and execution in -- a ping-pong fashion. --@@ -334,7 +334,7 @@ -- -- 8) How do we allow re-using already “generated” @indirectCommands@? ----- Expose a @preprocessBuffer@ to re-use implementation-dependencyFlags+-- Expose a @preprocessBuffer@ to reuse implementation-dependencyFlags -- data. Set the @isPreprocessed@ to true in -- 'cmdExecuteGeneratedCommandsNV'. --@@ -505,6 +505,15 @@ -- - Revision 1, 2020-02-20 (Christoph Kubisch) -- -- - Initial version+--+-- - Revision 2, 2020-03-09 (Christoph Kubisch)+--+-- - Remove VK_EXT_debug_report interactions+--+-- - Revision 3, 2020-03-09 (Christoph Kubisch)+--+-- - Fix naming VkPhysicalDeviceGenerated to+-- VkPhysicalDeviceDeviceGenerated -- -- = See Also --
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs view
@@ -215,8 +215,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -225,12 +224,15 @@ -- for more information. -- -- If the 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -43,10 +43,10 @@ -- -- This extension builds on the fragment shading rate functionality -- provided by the VK_KHR_fragment_shading_rate extension, adding support--- for \"supersample\" fragment shading rates that trigger multiple--- fragment shader invocations per pixel as well as a \"no invocations\"--- shading rate that discards any portions of a primitive that would use--- that shading rate.+-- for “supersample” fragment shading rates that trigger multiple fragment+-- shader invocations per pixel as well as a “no invocations” shading rate+-- that discards any portions of a primitive that would use that shading+-- rate. -- -- == New Commands --@@ -93,9 +93,9 @@ -- -- 1. Why was this extension created? How should it be named? ----- RESOLVED: The primary goal of this extension was to expose support--- for supersample and \"no invocations\" shading rates, which are--- supported by the VK_NV_shading_rate_image extension but not by+-- __RESOLVED__: The primary goal of this extension was to expose+-- support for supersample and “no invocations” shading rates, which+-- are supported by the VK_NV_shading_rate_image extension but not by -- VK_KHR_fragment_shading_rate. Because VK_KHR_fragment_shading_rate -- specifies the primitive shading rate using a fragment size in -- pixels, it lacks a good way to specify supersample rates. To deal@@ -109,32 +109,33 @@ -- -- 2. Is this a standalone extension? ----- RESOLVED: No, this extension requires VK_KHR_fragment_shading_rate.--- In order to use the features of this extension, applications must--- enable the relevant features of KHR extension.+-- __RESOLVED__: No, this extension requires+-- VK_KHR_fragment_shading_rate. In order to use the features of this+-- extension, applications must enable the relevant features of KHR+-- extension. -- -- 3. How are the shading rate enums used, and how were the enum values -- assigned? ----- RESOLVED: The shading rates supported by the enums in this extension--- are accepted as pipeline, primitive, and attachment shading rates--- and behave identically. For the shading rates also supported by the--- KHR extension, the values assigned to the corresponding enums are--- identical to the values already used for the primitive and--- attachment shading rates in the KHR extension. For those enums, bits--- 0 and 1 specify the base two logarithm of the fragment height and--- bits 2 and 3 specify the base two logarithm of the fragment width.--- For the new shading rates added by this extension, we chose to use--- 11 through 14 (10 plus the base two logarithm of the invocation--- count) for the supersample rates and 15 for the \"no invocations\"--- rate. None of those values are supported as primitive or attachment--- shading rates by the KHR extension.+-- __RESOLVED__: The shading rates supported by the enums in this+-- extension are accepted as pipeline, primitive, and attachment+-- shading rates and behave identically. For the shading rates also+-- supported by the KHR extension, the values assigned to the+-- corresponding enums are identical to the values already used for the+-- primitive and attachment shading rates in the KHR extension. For+-- those enums, bits 0 and 1 specify the base two logarithm of the+-- fragment height and bits 2 and 3 specify the base two logarithm of+-- the fragment width. For the new shading rates added by this+-- extension, we chose to use 11 through 14 (10 plus the base two+-- logarithm of the invocation count) for the supersample rates and 15+-- for the “no invocations” rate. None of those values are supported as+-- primitive or attachment shading rates by the KHR extension. -- -- 4. Between this extension, VK_KHR_fragment_shading_rate, and -- VK_NV_shading_rate_image, there are three different ways to specify -- shading rate state in a pipeline. How should we handle this? ----- RESOLVED: We don’t allow the concurrent use of+-- __RESOLVED__: We don’t allow the concurrent use of -- VK_NV_shading_rate_image and VK_KHR_fragment_shading_rate; it is an -- error to enable shading rate features from both extensions. But we -- do allow applications to enable this extension together with@@ -373,7 +374,7 @@ -- recorded. CommandBuffer -> -- | @shadingRate@ specifies a 'FragmentShadingRateNV' enum indicating the- -- pipeline fragment shading rate for subsequent draw commands.+ -- pipeline fragment shading rate for subsequent drawing commands. FragmentShadingRateNV -> -- | @combinerOps@ specifies a -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'@@ -407,18 +408,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- these features.+-- 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. 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -492,20 +494,19 @@ -- describing fragment shading rate limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceFragmentShadingRateEnumsPropertiesNV'--- structure describe the following implementation-dependent properties--- related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>:--- -- = Description -- -- If the 'PhysicalDeviceFragmentShadingRateEnumsPropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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 are related to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -514,9 +515,11 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV { -- | #limits-maxFragmentShadingRateInvocationCount#- -- @maxFragmentShadingRateInvocationCount@ indicates the maximum number of- -- fragment shader invocations per fragment supported in pipeline,- -- primitive, and attachment fragment shading rates.+ -- @maxFragmentShadingRateInvocationCount@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- indicating the maximum number of fragment shader invocations per+ -- fragment supported in pipeline, primitive, and attachment fragment+ -- shading rates. -- -- #VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter# -- @maxFragmentShadingRateInvocationCount@ /must/ be a valid
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot view
@@ -43,10 +43,10 @@ -- -- This extension builds on the fragment shading rate functionality -- provided by the VK_KHR_fragment_shading_rate extension, adding support--- for \"supersample\" fragment shading rates that trigger multiple--- fragment shader invocations per pixel as well as a \"no invocations\"--- shading rate that discards any portions of a primitive that would use--- that shading rate.+-- for “supersample” fragment shading rates that trigger multiple fragment+-- shader invocations per pixel as well as a “no invocations” shading rate+-- that discards any portions of a primitive that would use that shading+-- rate. -- -- == New Commands --@@ -93,9 +93,9 @@ -- -- 1. Why was this extension created? How should it be named? ----- RESOLVED: The primary goal of this extension was to expose support--- for supersample and \"no invocations\" shading rates, which are--- supported by the VK_NV_shading_rate_image extension but not by+-- __RESOLVED__: The primary goal of this extension was to expose+-- support for supersample and “no invocations” shading rates, which+-- are supported by the VK_NV_shading_rate_image extension but not by -- VK_KHR_fragment_shading_rate. Because VK_KHR_fragment_shading_rate -- specifies the primitive shading rate using a fragment size in -- pixels, it lacks a good way to specify supersample rates. To deal@@ -109,32 +109,33 @@ -- -- 2. Is this a standalone extension? ----- RESOLVED: No, this extension requires VK_KHR_fragment_shading_rate.--- In order to use the features of this extension, applications must--- enable the relevant features of KHR extension.+-- __RESOLVED__: No, this extension requires+-- VK_KHR_fragment_shading_rate. In order to use the features of this+-- extension, applications must enable the relevant features of KHR+-- extension. -- -- 3. How are the shading rate enums used, and how were the enum values -- assigned? ----- RESOLVED: The shading rates supported by the enums in this extension--- are accepted as pipeline, primitive, and attachment shading rates--- and behave identically. For the shading rates also supported by the--- KHR extension, the values assigned to the corresponding enums are--- identical to the values already used for the primitive and--- attachment shading rates in the KHR extension. For those enums, bits--- 0 and 1 specify the base two logarithm of the fragment height and--- bits 2 and 3 specify the base two logarithm of the fragment width.--- For the new shading rates added by this extension, we chose to use--- 11 through 14 (10 plus the base two logarithm of the invocation--- count) for the supersample rates and 15 for the \"no invocations\"--- rate. None of those values are supported as primitive or attachment--- shading rates by the KHR extension.+-- __RESOLVED__: The shading rates supported by the enums in this+-- extension are accepted as pipeline, primitive, and attachment+-- shading rates and behave identically. For the shading rates also+-- supported by the KHR extension, the values assigned to the+-- corresponding enums are identical to the values already used for the+-- primitive and attachment shading rates in the KHR extension. For+-- those enums, bits 0 and 1 specify the base two logarithm of the+-- fragment height and bits 2 and 3 specify the base two logarithm of+-- the fragment width. For the new shading rates added by this+-- extension, we chose to use 11 through 14 (10 plus the base two+-- logarithm of the invocation count) for the supersample rates and 15+-- for the “no invocations” rate. None of those values are supported as+-- primitive or attachment shading rates by the KHR extension. -- -- 4. Between this extension, VK_KHR_fragment_shading_rate, and -- VK_NV_shading_rate_image, there are three different ways to specify -- shading rate state in a pipeline. How should we handle this? ----- RESOLVED: We don’t allow the concurrent use of+-- __RESOLVED__: We don’t allow the concurrent use of -- VK_NV_shading_rate_image and VK_KHR_fragment_shading_rate; it is an -- error to enable shading rate features from both extensions. But we -- do allow applications to enable this extension together with
+ src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs view
@@ -0,0 +1,457 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_inherited_viewport_scissor - device extension+--+-- == VK_NV_inherited_viewport_scissor+--+-- [__Name String__]+-- @VK_NV_inherited_viewport_scissor@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 279+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- [__Contact__]+--+-- - David Zhao Akeley+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_inherited_viewport_scissor:%20&body=@akeley98%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-02-04+--+-- [__Contributors__]+--+-- - David Zhao Akeley, NVIDIA+--+-- - Jeff Bolz, NVIDIA+--+-- - Piers Daniell, NVIDIA+--+-- - Christoph Kubisch, NVIDIA+--+-- == Description+--+-- This extension adds the ability for a secondary command buffer to+-- inherit the dynamic viewport and scissor state from a primary command+-- buffer, or a previous secondary command buffer executed within the same+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' call. It+-- addresses a frequent scenario in applications that deal with window+-- resizing and want to improve utilization of re-usable secondary command+-- buffers. The functionality is provided through+-- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is+-- effectively limited to the 2D rectangle; secondary command buffers must+-- re-specify the inherited depth range values.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':+--+-- - 'CommandBufferInheritanceViewportScissorInfoNV'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- == New Enum Constants+--+-- - 'NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME'+--+-- - 'NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV'+--+-- == Issues+--+-- (1) Why are viewport depth values configured in the+-- 'CommandBufferInheritanceViewportScissorInfoNV' struct, rather than by a+-- @vkCmd…@ function?+--+-- __DISCUSSION__:+--+-- We considered both adding a new @vkCmdSetViewportDepthNV@ function, and+-- modifying 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' to ignore+-- the @x@, @y@, @width@, and @height@ values when called with a secondary+-- command buffer that activates this extension.+--+-- The primary design considerations for this extension are debuggability+-- and easy integration into existing applications. The main issue with+-- adding a new @vkCmdSetViewportDepthNV@ function is reducing+-- ease-of-integration. A new function pointer will have to be loaded, but+-- more importantly, a new function would require changes to be supported+-- in graphics debuggers; this would delay widespread adoption of the+-- extension.+--+-- The proposal to modify+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' would avoid these+-- issues. However, we expect that the intent of applications using this+-- extension is to have the viewport values used for drawing exactly match+-- the inherited values; thus, it would be better for debuggability if no+-- function for modifying the viewport depth alone is provided. By+-- specifying viewport depth values when starting secondary command buffer+-- recording, and requiring the specified depth values to match the+-- inherited depth values, we allow for validation layers that flag depth+-- changes as errors.+--+-- This design also better matches the hardware model. In fact, there is no+-- need to re-execute a depth-setting command. The graphics device retains+-- the viewport depth state; it’s the CPU-side state of+-- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized.+--+-- (2) Why are viewport depth values specified as a partial+-- 'Vulkan.Core10.Pipeline.Viewport' struct, rather than a leaner+-- depth-only struct?+--+-- __DISCUSSION__:+--+-- We considered adding a new @VkViewportDepthNV@ struct containing only+-- @minDepth@ and @maxDepth@. However, as application developers would need+-- to maintain both a @VK_NV_inherited_viewport_scissor@ code path and a+-- fallback code path (at least in the short term), we ultimately chose to+-- continue using the existing 'Vulkan.Core10.Pipeline.Viewport' structure.+-- Doing so would allow application developers to reuse the same+-- 'Vulkan.Core10.Pipeline.Viewport' array for both code paths, rather than+-- constructing separate @VkViewportDepthNV@ and+-- 'Vulkan.Core10.Pipeline.Viewport' arrays for each code path.+--+-- == Version History+--+-- - Revision 1, 2020-02-04 (David Zhao Akeley)+--+-- - Internal revisions+--+-- = See Also+--+-- 'CommandBufferInheritanceViewportScissorInfoNV',+-- 'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_inherited_viewport_scissor ( PhysicalDeviceInheritedViewportScissorFeaturesNV(..)+ , CommandBufferInheritanceViewportScissorInfoNV(..)+ , NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION+ , pattern NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION+ , NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME+ , pattern NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+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 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 Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Pipeline (Viewport)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV))+-- | VkPhysicalDeviceInheritedViewportScissorFeaturesNV - Structure+-- describing the viewport scissor inheritance behavior for an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceInheritedViewportScissorFeaturesNV' 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. 'PhysicalDeviceInheritedViewportScissorFeaturesNV' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceInheritedViewportScissorFeaturesNV = PhysicalDeviceInheritedViewportScissorFeaturesNV+ { -- | #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_DISCARD_RECTANGLE_EXT',+ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or+ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR', from a primary+ -- command buffer.+ inheritedViewportScissor2D :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInheritedViewportScissorFeaturesNV)+#endif+deriving instance Show PhysicalDeviceInheritedViewportScissorFeaturesNV++instance ToCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceInheritedViewportScissorFeaturesNV{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (inheritedViewportScissor2D))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV where+ peekCStruct p = do+ inheritedViewportScissor2D <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceInheritedViewportScissorFeaturesNV+ (bool32ToBool inheritedViewportScissor2D)++instance Storable PhysicalDeviceInheritedViewportScissorFeaturesNV where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInheritedViewportScissorFeaturesNV where+ zero = PhysicalDeviceInheritedViewportScissorFeaturesNV+ zero+++-- | VkCommandBufferInheritanceViewportScissorInfoNV - Structure specifying+-- command buffer inheritance information+--+-- = Description+--+-- If the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes a+-- 'CommandBufferInheritanceViewportScissorInfoNV' structure, then that+-- structure controls whether a command buffer /can/ inherit the following+-- state from other command buffers:+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR'+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--+-- as well as the following state, with restrictions on inherited depth+-- values and viewport count:+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT'+--+-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--+-- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.FALSE', then+-- the command buffer does not inherit the listed dynamic state, and+-- /should/ set this state itself. If this structure is not present, the+-- behavior is as if @viewportScissor2D@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE'.+--+-- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then+-- the listed dynamic state is inherited, and the command buffer /must/ not+-- set this state, except that the viewport and scissor count /may/ be set+-- by binding a graphics pipeline that does not specify this state as+-- dynamic.+--+-- Note+--+-- Due to this restriction, applications /should/ ensure either all or none+-- of the graphics pipelines bound in this secondary command buffer use+-- dynamic viewport\/scissor counts.+--+-- When the command buffer is executed as part of a the execution of a+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' command, the+-- inherited state (if enabled) is determined by the following procedure,+-- performed separately for each dynamic state, and separately for each+-- value for dynamic state that consists of multiple values (e.g. multiple+-- viewports).+--+-- - With \(i\) being the index of the executed command buffer in the+-- @pCommandBuffers@ array of+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands', if+-- \(i > 0\) and any secondary command buffer from index \(0\) to+-- \(i-1\) modifies the state, the inherited state is provisionally set+-- to the final value set by the last such secondary command buffer.+-- Binding a graphics pipeline that defines the state statically is+-- equivalent to setting the state to an undefined value.+--+-- - Otherwise, the tentatative inherited state is that of the primary+-- command buffer at the point the+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' command was+-- recorded; if the state is undefined, then so is the provisional+-- inherited state.+--+-- - If the provisional inherited state is an undefined value, then the+-- state is not inherited.+--+-- - If the provisional inherited state is a viewport, with \(n\) being+-- its viewport index, then if \(n \ge\) @viewportDepthCount@, or if+-- either 'Vulkan.Core10.Pipeline.Viewport'::@minDepth@ or+-- 'Vulkan.Core10.Pipeline.Viewport'::@maxDepth@ are not equal to the+-- respective values of the \(n^{th}\) element of @pViewportDepths@,+-- then the state is not inherited.+--+-- - If the provisional inherited state passes both checks, then it+-- becomes the actual inherited state.+--+-- Note+--+-- There is no support for inheriting dynamic state from a secondary+-- command buffer executed as part of a different+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' command.+--+-- == Valid Usage+--+-- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-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>+-- feature is not enabled and @viewportScissor2D@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', then @viewportDepthCount@+-- /must/ be @1@+--+-- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784#+-- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE',+-- then @viewportDepthCount@ /must/ be greater than @0@+--+-- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785#+-- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE',+-- then @pViewportDepths@ /must/ be a valid pointer to an array of+-- @viewportDepthCount@ valid 'Vulkan.Core10.Pipeline.Viewport'+-- structures, except any requirements on @x@, @y@, @width@, and+-- @height@ do not apply.+--+-- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04786#+-- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE',+-- then the command buffer /must/ be recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sType#+-- @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV'+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core10.Pipeline.Viewport'+data CommandBufferInheritanceViewportScissorInfoNV = CommandBufferInheritanceViewportScissorInfoNV+ { -- | @viewportScissor2D@ specifies whether the listed dynamic state is+ -- inherited.+ viewportScissor2D :: Bool+ , -- | @viewportDepthCount@ specifies the maximum number of viewports to+ -- inherit. When @viewportScissor2D@ is+ -- 'Vulkan.Core10.FundamentalTypes.FALSE', the behavior is as if this value+ -- is zero.+ viewportDepthCount :: Word32+ , -- | @pViewportDepths@ is a pointer to a 'Vulkan.Core10.Pipeline.Viewport'+ -- structure specifying the expected depth range for each inherited+ -- viewport.+ viewportDepths :: Viewport+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CommandBufferInheritanceViewportScissorInfoNV)+#endif+deriving instance Show CommandBufferInheritanceViewportScissorInfoNV++instance ToCStruct CommandBufferInheritanceViewportScissorInfoNV where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CommandBufferInheritanceViewportScissorInfoNV{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (viewportScissor2D))+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewportDepthCount)+ pViewportDepths'' <- ContT $ withCStruct (viewportDepths)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewportDepths''+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ pViewportDepths'' <- ContT $ withCStruct (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewportDepths''+ lift $ f++instance FromCStruct CommandBufferInheritanceViewportScissorInfoNV where+ peekCStruct p = do+ viewportScissor2D <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ viewportDepthCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pViewportDepths <- peekCStruct @Viewport =<< peek ((p `plusPtr` 24 :: Ptr (Ptr Viewport)))+ pure $ CommandBufferInheritanceViewportScissorInfoNV+ (bool32ToBool viewportScissor2D) viewportDepthCount pViewportDepths++instance Zero CommandBufferInheritanceViewportScissorInfoNV where+ zero = CommandBufferInheritanceViewportScissorInfoNV+ zero+ zero+ zero+++type NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION"+pattern NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION :: forall a . Integral a => a+pattern NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION = 1+++type NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME = "VK_NV_inherited_viewport_scissor"++-- No documentation found for TopLevel "VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME"+pattern NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME = "VK_NV_inherited_viewport_scissor"+
+ src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot view
@@ -0,0 +1,175 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_inherited_viewport_scissor - device extension+--+-- == VK_NV_inherited_viewport_scissor+--+-- [__Name String__]+-- @VK_NV_inherited_viewport_scissor@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 279+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- [__Contact__]+--+-- - David Zhao Akeley+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_inherited_viewport_scissor:%20&body=@akeley98%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-02-04+--+-- [__Contributors__]+--+-- - David Zhao Akeley, NVIDIA+--+-- - Jeff Bolz, NVIDIA+--+-- - Piers Daniell, NVIDIA+--+-- - Christoph Kubisch, NVIDIA+--+-- == Description+--+-- This extension adds the ability for a secondary command buffer to+-- inherit the dynamic viewport and scissor state from a primary command+-- buffer, or a previous secondary command buffer executed within the same+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' call. It+-- addresses a frequent scenario in applications that deal with window+-- resizing and want to improve utilization of re-usable secondary command+-- buffers. The functionality is provided through+-- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is+-- effectively limited to the 2D rectangle; secondary command buffers must+-- re-specify the inherited depth range values.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':+--+-- - 'CommandBufferInheritanceViewportScissorInfoNV'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- == New Enum Constants+--+-- - 'NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME'+--+-- - 'NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV'+--+-- == Issues+--+-- (1) Why are viewport depth values configured in the+-- 'CommandBufferInheritanceViewportScissorInfoNV' struct, rather than by a+-- @vkCmd…@ function?+--+-- __DISCUSSION__:+--+-- We considered both adding a new @vkCmdSetViewportDepthNV@ function, and+-- modifying 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' to ignore+-- the @x@, @y@, @width@, and @height@ values when called with a secondary+-- command buffer that activates this extension.+--+-- The primary design considerations for this extension are debuggability+-- and easy integration into existing applications. The main issue with+-- adding a new @vkCmdSetViewportDepthNV@ function is reducing+-- ease-of-integration. A new function pointer will have to be loaded, but+-- more importantly, a new function would require changes to be supported+-- in graphics debuggers; this would delay widespread adoption of the+-- extension.+--+-- The proposal to modify+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' would avoid these+-- issues. However, we expect that the intent of applications using this+-- extension is to have the viewport values used for drawing exactly match+-- the inherited values; thus, it would be better for debuggability if no+-- function for modifying the viewport depth alone is provided. By+-- specifying viewport depth values when starting secondary command buffer+-- recording, and requiring the specified depth values to match the+-- inherited depth values, we allow for validation layers that flag depth+-- changes as errors.+--+-- This design also better matches the hardware model. In fact, there is no+-- need to re-execute a depth-setting command. The graphics device retains+-- the viewport depth state; it’s the CPU-side state of+-- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized.+--+-- (2) Why are viewport depth values specified as a partial+-- 'Vulkan.Core10.Pipeline.Viewport' struct, rather than a leaner+-- depth-only struct?+--+-- __DISCUSSION__:+--+-- We considered adding a new @VkViewportDepthNV@ struct containing only+-- @minDepth@ and @maxDepth@. However, as application developers would need+-- to maintain both a @VK_NV_inherited_viewport_scissor@ code path and a+-- fallback code path (at least in the short term), we ultimately chose to+-- continue using the existing 'Vulkan.Core10.Pipeline.Viewport' structure.+-- Doing so would allow application developers to reuse the same+-- 'Vulkan.Core10.Pipeline.Viewport' array for both code paths, rather than+-- constructing separate @VkViewportDepthNV@ and+-- 'Vulkan.Core10.Pipeline.Viewport' arrays for each code path.+--+-- == Version History+--+-- - Revision 1, 2020-02-04 (David Zhao Akeley)+--+-- - Internal revisions+--+-- = See Also+--+-- 'CommandBufferInheritanceViewportScissorInfoNV',+-- 'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- = 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>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_inherited_viewport_scissor ( CommandBufferInheritanceViewportScissorInfoNV+ , PhysicalDeviceInheritedViewportScissorFeaturesNV+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data CommandBufferInheritanceViewportScissorInfoNV++instance ToCStruct CommandBufferInheritanceViewportScissorInfoNV+instance Show CommandBufferInheritanceViewportScissorInfoNV++instance FromCStruct CommandBufferInheritanceViewportScissorInfoNV+++data PhysicalDeviceInheritedViewportScissorFeaturesNV++instance ToCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV+instance Show PhysicalDeviceInheritedViewportScissorFeaturesNV++instance FromCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV+
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -180,7 +180,7 @@ -- -- 1. How to name this extension? ----- RESOLVED: VK_NV_mesh_shader+-- __RESOLVED__: VK_NV_mesh_shader -- -- Other options considered: --@@ -194,25 +194,25 @@ -- -- 2. Do we need a new VkPrimitiveTopology? ----- RESOLVED: NO, we skip the InputAssembler stage+-- __RESOLVED__: No. We skip the InputAssembler stage. -- -- 3. Should we allow Instancing? ----- RESOLVED: NO, there is no fixed function input, other than the IDs.--- However, allow offsetting with a \"first\" value.+-- __RESOLVED__: No. There is no fixed function input, other than the+-- IDs. However, allow offsetting with a “first” value. -- -- 4. Should we use existing vkCmdDraw or introduce new functions? ----- RESOLVED: Introduce new functions.+-- __RESOLVED__: Introduce new functions. ----- New functions make it easier to separate from \"programmable--- primitive shading\" chapter, less \"dual use\" language about--- existing functions having alternative behavior. The text around the--- existing \"draws\" is heavily based around emitting vertices.+-- New functions make it easier to separate from “programmable+-- primitive shading” chapter, less “dual use” language about existing+-- functions having alternative behavior. The text around the existing+-- “draws” is heavily based around emitting vertices. -- -- 5. If new functions, how to name? ----- RESOLVED: CmdDrawMeshTasks*+-- __RESOLVED__: CmdDrawMeshTasks* -- -- Other options considered: --@@ -225,13 +225,13 @@ -- 6. Should VK_SHADER_STAGE_ALL_GRAPHICS be updated to include the new -- stages? ----- RESOLVED: No. If an application were to be recompiled with headers--- that include additional shader stage bits in+-- __RESOLVED__: No. If an application were to be recompiled with+-- headers that include additional shader stage bits in -- VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application -- would no longer be valid on implementations that don’t support mesh -- or task shaders. This means the change would not be backwards -- compatible. It’s too bad VkShaderStageFlagBits doesn’t have a--- dedicated \"all supported graphics stages\" bit like+-- dedicated “all supported graphics stages” bit like -- VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this -- problem. --@@ -428,9 +428,9 @@ -- - #VUID-vkCmdDrawMeshTasksNV-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdDrawMeshTasksNV-None-02859# There /must/ not have been -- any calls to dynamic state setting commands for any state not@@ -597,7 +597,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -611,7 +611,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -627,7 +627,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -710,7 +710,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -718,6 +718,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -729,7 +770,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -750,6 +791,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawMeshTasksNV-pStrides-04884# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be -- less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@@@ -933,9 +984,9 @@ -- - #VUID-vkCmdDrawMeshTasksIndirectNV-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02859# There /must/ not have -- been any calls to dynamic state setting commands for any state not@@ -1105,7 +1156,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1119,7 +1170,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1135,7 +1186,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -1218,7 +1269,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -1226,6 +1277,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1237,7 +1329,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -1259,6 +1351,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStrides-04884# If the bound+-- graphics pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1486,9 +1588,9 @@ -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859# There /must/ not -- have been any calls to dynamic state setting commands for any state@@ -1658,7 +1760,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1672,7 +1774,7 @@ -- dynamic state enabled, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @scissorCount@ parameter of+-- drawing command, and the @scissorCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ match the -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1688,7 +1790,7 @@ -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- 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'@@ -1771,7 +1873,7 @@ -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @primitiveTopology@ parameter of+-- 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>@@ -1779,6 +1881,47 @@ -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- state --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552# -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1790,7 +1933,7 @@ -- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ have been called in the current command buffer prior to this--- draw command, and the @viewportCount@ parameter of+-- drawing command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --@@ -1812,6 +1955,16 @@ -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStrides-04884# If the bound+-- graphics pipeline was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_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+-- drawing command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1956,14 +2109,21 @@ -- | VkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading -- features that can be supported by an implementation --+-- = Members+--+-- This structure describes the following features:+-- -- = Description -- -- If the 'PhysicalDeviceMeshShaderFeaturesNV' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceMeshShaderFeaturesNV' /can/ also be included in @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceMeshShaderFeaturesNV' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -2024,17 +2184,15 @@ -- | VkPhysicalDeviceMeshShaderPropertiesNV - Structure describing mesh -- shading properties ----- = Members------ The members of the 'PhysicalDeviceMeshShaderPropertiesNV' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMeshShaderPropertiesNV' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -180,7 +180,7 @@ -- -- 1. How to name this extension? ----- RESOLVED: VK_NV_mesh_shader+-- __RESOLVED__: VK_NV_mesh_shader -- -- Other options considered: --@@ -194,25 +194,25 @@ -- -- 2. Do we need a new VkPrimitiveTopology? ----- RESOLVED: NO, we skip the InputAssembler stage+-- __RESOLVED__: No. We skip the InputAssembler stage. -- -- 3. Should we allow Instancing? ----- RESOLVED: NO, there is no fixed function input, other than the IDs.--- However, allow offsetting with a \"first\" value.+-- __RESOLVED__: No. There is no fixed function input, other than the+-- IDs. However, allow offsetting with a “first” value. -- -- 4. Should we use existing vkCmdDraw or introduce new functions? ----- RESOLVED: Introduce new functions.+-- __RESOLVED__: Introduce new functions. ----- New functions make it easier to separate from \"programmable--- primitive shading\" chapter, less \"dual use\" language about--- existing functions having alternative behavior. The text around the--- existing \"draws\" is heavily based around emitting vertices.+-- New functions make it easier to separate from “programmable+-- primitive shading” chapter, less “dual use” language about existing+-- functions having alternative behavior. The text around the existing+-- “draws” is heavily based around emitting vertices. -- -- 5. If new functions, how to name? ----- RESOLVED: CmdDrawMeshTasks*+-- __RESOLVED__: CmdDrawMeshTasks* -- -- Other options considered: --@@ -225,13 +225,13 @@ -- 6. Should VK_SHADER_STAGE_ALL_GRAPHICS be updated to include the new -- stages? ----- RESOLVED: No. If an application were to be recompiled with headers--- that include additional shader stage bits in+-- __RESOLVED__: No. If an application were to be recompiled with+-- headers that include additional shader stage bits in -- VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application -- would no longer be valid on implementations that don’t support mesh -- or task shaders. This means the change would not be backwards -- compatible. It’s too bad VkShaderStageFlagBits doesn’t have a--- dedicated \"all supported graphics stages\" bit like+-- dedicated “all supported graphics stages” bit like -- VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this -- problem. --
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -857,10 +857,10 @@ -- -- = Description ----- Similar to other objects in Vulkan, the acceleration structure creation--- merely creates an object with a specific “shape” as specified by the--- information in 'AccelerationStructureInfoNV' and @compactedSize@ in--- @pCreateInfo@. Populating the data in the object after allocating and+-- Similarly to other objects in Vulkan, the acceleration structure+-- creation merely creates an object with a specific “shape” as specified+-- by the information in 'AccelerationStructureInfoNV' and @compactedSize@+-- in @pCreateInfo@. Populating the data in the object after allocating and -- binding memory is done with 'cmdBuildAccelerationStructureNV' and -- 'cmdCopyAccelerationStructureNV'. --@@ -1047,8 +1047,9 @@ -- #VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter# -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle Device- -> -- | @pInfo@ specifies the acceleration structure to get memory requirements- -- for.+ -> -- | @pInfo@ is a pointer to a+ -- 'AccelerationStructureMemoryRequirementsInfoNV' structure specifying the+ -- acceleration structure to get memory requirements for. -- -- #VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter# -- @pInfo@ /must/ be a valid pointer to a valid@@ -1706,9 +1707,9 @@ -- - #VUID-vkCmdTraceRaysNV-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 for @commandBuffer@, and done so after any--- previously bound pipeline with the corresponding state not specified--- as dynamic+-- /must/ have been set or inherited for @commandBuffer@, and done so+-- after any previously bound pipeline with the corresponding state not+-- specified as dynamic -- -- - #VUID-vkCmdTraceRaysNV-None-02859# There /must/ not have been any -- calls to dynamic state setting commands for any state not specified@@ -1827,7 +1828,7 @@ -- -- - #VUID-vkCmdTraceRaysNV-None-03429# Any shader group handle -- referenced by this call /must/ have been queried from the currently--- bound ray tracing shader pipeline+-- bound ray tracing pipeline -- -- - #VUID-vkCmdTraceRaysNV-commandBuffer-04624# @commandBuffer@ /must/ -- not be a protected command buffer@@ -2713,13 +2714,15 @@ -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits' -- specifying how the pipeline will be generated. flags :: PipelineCreateFlags- , -- | @pStages@ is an array of size @stageCount@ structures of type- -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' describing the- -- set of the shader stages to be included in the ray tracing pipeline.+ , -- | @pStages@ is a pointer to an array of+ -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures+ -- specifying the set of the shader stages to be included in the ray+ -- tracing pipeline. stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)- , -- | @pGroups@ is an array of size @groupCount@ structures of type- -- 'RayTracingShaderGroupCreateInfoNV' describing the set of the shader- -- stages to be included in each shader group in the ray tracing pipeline.+ , -- | @pGroups@ is a pointer to an array of+ -- 'RayTracingShaderGroupCreateInfoNV' structures describing the set of the+ -- shader stages to be included in each shader group in the ray tracing+ -- 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>@@ -3592,7 +3595,7 @@ -- | VkWriteDescriptorSetAccelerationStructureNV - Structure specifying--- acceleration structure descriptor info+-- acceleration structure descriptor information -- -- == Valid Usage --@@ -3631,7 +3634,9 @@ -- 'Vulkan.Extensions.Handles.AccelerationStructureNV', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureNV- { -- | @pAccelerationStructures@ are the acceleration structures to update.+ { -- | @pAccelerationStructures@ is a pointer to an array of+ -- 'Vulkan.Extensions.Handles.AccelerationStructureNV' structures+ -- specifying the acceleration structures to update. accelerationStructures :: Vector AccelerationStructureNV } deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -3751,9 +3756,12 @@ -- = Description -- -- If the 'PhysicalDeviceRayTracingPropertiesNV' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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. -- -- Limits specified by this structure /must/ match those specified with the -- same name in@@ -3767,7 +3775,7 @@ -- -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceRayTracingPropertiesNV = PhysicalDeviceRayTracingPropertiesNV- { -- | @shaderGroupHandleSize@ size in bytes of the shader header.+ { -- | @shaderGroupHandleSize@ is the size in bytes of the shader header. shaderGroupHandleSize :: Word32 , -- | #limits-maxRecursionDepth# @maxRecursionDepth@ is the maximum number of -- levels of recursion allowed in a trace command.
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs view
@@ -197,18 +197,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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. 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs view
@@ -306,8 +306,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceExclusiveScissorFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -316,12 +315,14 @@ -- for more information. -- -- If the 'PhysicalDeviceExclusiveScissorFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceExclusiveScissorFeaturesNV' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceExclusiveScissorFeaturesNV' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs view
@@ -104,7 +104,7 @@ -- -- When using SPIR-V generated from the OpenGL Shading Language, the new -- instruction will be generated from code using the new--- @textureFootprint@*NV built-in functions from the+-- @textureFootprint*NV@ built-in functions from the -- @GL_NV_shader_texture_footprint@ shading language extension. -- -- == New Structures@@ -299,6 +299,10 @@ -- shader image footprint features that can be supported by an -- implementation --+-- = Members+--+-- This structure describes the following feature:+-- -- = Description -- -- See@@ -306,12 +310,14 @@ -- for more information. -- -- If the 'PhysicalDeviceShaderImageFootprintFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceShaderImageFootprintFeaturesNV' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceShaderImageFootprintFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot view
@@ -104,7 +104,7 @@ -- -- When using SPIR-V generated from the OpenGL Shading Language, the new -- instruction will be generated from code using the new--- @textureFootprint@*NV built-in functions from the+-- @textureFootprint*NV@ built-in functions from the -- @GL_NV_shader_texture_footprint@ shading language extension. -- -- == New Structures
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs view
@@ -103,14 +103,14 @@ -- -- 1. What should we call this extension? ----- RESOLVED: Using NV_shader_sm_builtins. Other options considered+-- __RESOLVED__: @NV_shader_sm_builtins@. Other options considered -- included: ----- - NV_shader_smid - but SMID is really easy to typo\/confuse as+-- - @NV_shader_smid@ - but SMID is really easy to typo\/confuse as -- SIMD. ----- - NV_shader_sm_info - but __Info__ is typically reserved for input--- structures+-- - @NV_shader_sm_info@ - but __Info__ is typically reserved for+-- input structures -- -- == Version History --@@ -165,17 +165,15 @@ -- | VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - Structure describing -- shader SM Builtins properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShaderSMBuiltinsPropertiesNV'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceShaderSMBuiltinsPropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -237,18 +235,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot view
@@ -103,14 +103,14 @@ -- -- 1. What should we call this extension? ----- RESOLVED: Using NV_shader_sm_builtins. Other options considered+-- __RESOLVED__: @NV_shader_sm_builtins@. Other options considered -- included: ----- - NV_shader_smid - but SMID is really easy to typo\/confuse as+-- - @NV_shader_smid@ - but SMID is really easy to typo\/confuse as -- SIMD. ----- - NV_shader_sm_info - but __Info__ is typically reserved for input--- structures+-- - @NV_shader_sm_info@ - but __Info__ is typically reserved for+-- input structures -- -- == Version History --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -142,7 +142,7 @@ -- -- - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': ----- - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV'+-- - 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -152,17 +152,17 @@ -- -- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': ----- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+-- - 'IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': ----- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'+-- - 'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - Extending -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- - 'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -201,8 +201,7 @@ -- perform such a query, it could instead just set its own order, also -- using custom per-pixel sample locations if required. ----- (2) For the pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV',+-- (2) For the pipeline stage 'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV', -- should we specify a precise location in the pipeline the shading rate -- image is accessed (after geometry shading, but before the early fragment -- tests) or leave it under-specified in case there are other@@ -277,6 +276,10 @@ module Vulkan.Extensions.VK_NV_shading_rate_image ( cmdBindShadingRateImageNV , cmdSetViewportShadingRatePaletteNV , cmdSetCoarseSampleOrderNV+ , pattern IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV+ , pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV+ , pattern IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV+ , pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV , ShadingRatePaletteNV(..) , PipelineViewportShadingRateImageStateCreateInfoNV(..) , PhysicalDeviceShadingRateImageFeaturesNV(..)@@ -368,6 +371,13 @@ import Vulkan.Core10.Handles (ImageView) import Vulkan.Core10.Handles (ImageView(..)) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR))+import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)+import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlagBits(IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV))@@ -401,7 +411,7 @@ -- - #VUID-vkCmdBindShadingRateImageNV-imageView-02061# If @imageView@ is -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have been -- created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'+-- 'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdBindShadingRateImageNV-imageView-02062# If @imageView@ is -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@ /must/@@ -411,9 +421,8 @@ -- -- - #VUID-vkCmdBindShadingRateImageNV-imageLayout-02063# If @imageView@ -- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@--- /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+-- /must/ be 'IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- == Valid Usage (Implicit) --@@ -682,6 +691,22 @@ pure $ () +-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV"+pattern IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR+++-- No documentation found for TopLevel "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"+pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR+++-- No documentation found for TopLevel "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"+pattern IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"+pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR++ -- | VkShadingRatePaletteNV - Structure specifying a single shading rate -- palette --@@ -822,8 +847,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShadingRateImageFeaturesNV' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --@@ -832,12 +856,14 @@ -- for more information. -- -- If the 'PhysicalDeviceShadingRateImageFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShadingRateImageFeaturesNV' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceShadingRateImageFeaturesNV' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -901,20 +927,19 @@ -- | VkPhysicalDeviceShadingRateImagePropertiesNV - Structure describing -- shading rate image limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShadingRateImagePropertiesNV'--- structure describe the following implementation-dependent properties--- related to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>--- feature:--- -- = Description -- -- If the 'PhysicalDeviceShadingRateImagePropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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 are related to the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- feature. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot view
@@ -142,7 +142,7 @@ -- -- - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': ----- - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV'+-- - 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' -- -- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -152,17 +152,17 @@ -- -- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': ----- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+-- - 'IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': ----- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'+-- - 'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - Extending -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- - 'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -201,8 +201,7 @@ -- perform such a query, it could instead just set its own order, also -- using custom per-pixel sample locations if required. ----- (2) For the pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV',+-- (2) For the pipeline stage 'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV', -- should we specify a precise location in the pipeline the shading rate -- image is accessed (after geometry shading, but before the early fragment -- tests) or leave it under-specified in case there are other
src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs view
@@ -68,9 +68,9 @@ -- -- == New Enum Constants ----- - 'QCOM_render_pass_store_ops_EXTENSION_NAME'+-- - 'QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME' ----- - 'QCOM_render_pass_store_ops_SPEC_VERSION'+-- - 'QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION' -- -- - Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp': --@@ -97,24 +97,24 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_QCOM_render_pass_store_ops ( QCOM_render_pass_store_ops_SPEC_VERSION- , pattern QCOM_render_pass_store_ops_SPEC_VERSION- , QCOM_render_pass_store_ops_EXTENSION_NAME- , pattern QCOM_render_pass_store_ops_EXTENSION_NAME+module Vulkan.Extensions.VK_QCOM_render_pass_store_ops ( QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION+ , pattern QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION+ , QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME+ , pattern QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME ) where import Data.String (IsString) -type QCOM_render_pass_store_ops_SPEC_VERSION = 2+type QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 --- No documentation found for TopLevel "VK_QCOM_render_pass_store_ops_SPEC_VERSION"-pattern QCOM_render_pass_store_ops_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_render_pass_store_ops_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION"+pattern QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION :: forall a . Integral a => a+pattern QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 -type QCOM_render_pass_store_ops_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops"+type QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" --- No documentation found for TopLevel "VK_QCOM_render_pass_store_ops_EXTENSION_NAME"-pattern QCOM_render_pass_store_ops_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a-pattern QCOM_render_pass_store_ops_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops"+-- No documentation found for TopLevel "VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME"+pattern QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops"
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs view
@@ -15,7 +15,7 @@ -- 283 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --@@ -33,7 +33,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2020-10-15+-- 2021-03-09 -- -- [__Interactions and External Dependencies__] --@@ -41,12 +41,16 @@ -- -- - This extension interacts with @VK_EXT_fragment_density_map@ --+-- - This extension interacts with @VK_KHR_fragment_shading_rate@+-- -- [__Contributors__] -- -- - Jeff Leger, Qualcomm Technologies, Inc. -- -- - Brandon Light, Qualcomm Technologies, Inc. --+-- - Matthew Netsch, Qualcomm Technologies, Inc.+-- -- == Description -- -- This extension provides a mechanism for applications to enable driver@@ -56,13 +60,13 @@ -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation. -- When the current orientation differs from the device’s native--- orientation, a rotation is required so that the \"up\" direction of the+-- orientation, a rotation is required so that the “up” direction of the -- rendered scene matches the current orientation. -- -- If the Display Processing Unit (DPU) doesnt natively support rotation, -- the Vulkan presentation engine can handle this rotation in a separate -- composition pass. Alternatively, the application can render frames--- \"pre-rotated\" to avoid this extra pass. The latter is preferred to+-- “pre-rotated” to avoid this extra pass. The latter is preferred to -- reduce power consumption and achieve the best performance because it -- avoids tasking the GPU with extra work to perform the copy\/rotate -- operation.@@ -70,7 +74,7 @@ -- Unlike OpenGL ES, the burden of pre-rotation in Vulkan falls on the -- application. To implement pre-rotation, applications render into -- swapchain images matching the device native aspect ratio of the display--- and \"pre-rotate\" the rendering content to match the device’s current+-- and “pre-rotate” the rendering content to match the device’s current -- orientation. The burden is more than adjusting the Model View Projection -- (MVP) matrix in the vertex shader to account for rotation and aspect -- ratio. The coordinate systems of scissors, viewports, derivatives and@@ -103,13 +107,15 @@ -- 'CommandBufferInheritanceRenderPassTransformInfoQCOM' specifying the -- render pass transform parameters. ----- - The @renderArea@, viewPorts and scissors are all provided in the--- current (non-rotated) coordinate system. The implementation will--- transform those into the native (rotated) coordinate system.+-- - The @renderArea@, viewports, scissors, and @fragmentSize@ are all+-- provided in the current (non-rotated) coordinate system. The+-- implementation will transform those into the native (rotated)+-- coordinate system. -- -- - The implementation is responsible for transforming shader built-ins--- (@FragCoord@, @PointCoord@, @SamplePosition@, interpolateAt(), dFdx,--- dFdy, fWidth) into the rotated coordinate system.+-- (@FragCoord@, @PointCoord@, @SamplePosition@,+-- @PrimitiveShadingRateKHR@, interpolateAt(), dFdx, dFdy, fWidth) into+-- the rotated coordinate system. -- -- - The implementation is responsible for transforming @position@ to the -- rotated coordinate system.@@ -191,25 +197,49 @@ -- 3) How does this extension interact with VK_EXT_fragment_density_map? -- -- __RESOLVED__ Some implementations may not be able to support a render--- pass that enables both renderpass transform and fragment density maps.+-- pass that enables both render pass transform and fragment density maps. -- For simplicity, this extension disallows enabling both features within a -- single render pass. -- -- 4) What should this extension be named? ----- We considered names such as \"rotated_rendering\", \"pre_rotation\" and+-- We considered names such as “rotated_rendering”, “pre_rotation” and -- others. Since the functionality is limited to a render pass, it seemed--- the name should include \"render_pass\". While the current extension is+-- the name should include “render_pass”. While the current extension is -- limited to rotations, it could be extended to other transforms (like -- mirror) in the future. ----- __RESOLVED__ The name \"render_pass_transform\" seems like the most+-- __RESOLVED__ The name “render_pass_transform” seems like the most -- accurate description of the introduced functionality. --+-- 5) How does this extension interact with VK_KHR_fragment_shading_rate?+--+-- __RESOLVED__: For the same reasons as issue 3, this extension disallows+-- enabling both @pFragmentShadingRateAttachment@ and render pass transform+-- within a single render pass.+--+-- However, pipeline shading rate and primitive shading rate are supported,+-- and their respective @fragmentSize@ and @PrimitiveShadingRateKHR@ are+-- provided in the current (non-rotated) coordinate system. The+-- implementation is responsible for transforming them to the rotated+-- 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>+-- /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+-- application /must/ swap the x\/y of the reported rates to get the set of+-- rates supported for 90 and 270 degree rotation.+-- -- == Version History -- -- - Revision 1, 2020-02-05 (Jeff Leger) --+-- - Revision 2, 2021-03-09 (Matthew Netsch)+--+-- - Adds interactions with VK_KHR_fragment_shading_rate+-- -- = See Also -- -- 'CommandBufferInheritanceRenderPassTransformInfoQCOM',@@ -405,11 +435,11 @@ zero -type QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 1+type QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION" pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 1+pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2 type QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform"
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot view
@@ -15,7 +15,7 @@ -- 283 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --@@ -33,7 +33,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2020-10-15+-- 2021-03-09 -- -- [__Interactions and External Dependencies__] --@@ -41,12 +41,16 @@ -- -- - This extension interacts with @VK_EXT_fragment_density_map@ --+-- - This extension interacts with @VK_KHR_fragment_shading_rate@+-- -- [__Contributors__] -- -- - Jeff Leger, Qualcomm Technologies, Inc. -- -- - Brandon Light, Qualcomm Technologies, Inc. --+-- - Matthew Netsch, Qualcomm Technologies, Inc.+-- -- == Description -- -- This extension provides a mechanism for applications to enable driver@@ -56,13 +60,13 @@ -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation. -- When the current orientation differs from the device’s native--- orientation, a rotation is required so that the \"up\" direction of the+-- orientation, a rotation is required so that the “up” direction of the -- rendered scene matches the current orientation. -- -- If the Display Processing Unit (DPU) doesnt natively support rotation, -- the Vulkan presentation engine can handle this rotation in a separate -- composition pass. Alternatively, the application can render frames--- \"pre-rotated\" to avoid this extra pass. The latter is preferred to+-- “pre-rotated” to avoid this extra pass. The latter is preferred to -- reduce power consumption and achieve the best performance because it -- avoids tasking the GPU with extra work to perform the copy\/rotate -- operation.@@ -70,7 +74,7 @@ -- Unlike OpenGL ES, the burden of pre-rotation in Vulkan falls on the -- application. To implement pre-rotation, applications render into -- swapchain images matching the device native aspect ratio of the display--- and \"pre-rotate\" the rendering content to match the device’s current+-- and “pre-rotate” the rendering content to match the device’s current -- orientation. The burden is more than adjusting the Model View Projection -- (MVP) matrix in the vertex shader to account for rotation and aspect -- ratio. The coordinate systems of scissors, viewports, derivatives and@@ -103,13 +107,15 @@ -- 'CommandBufferInheritanceRenderPassTransformInfoQCOM' specifying the -- render pass transform parameters. ----- - The @renderArea@, viewPorts and scissors are all provided in the--- current (non-rotated) coordinate system. The implementation will--- transform those into the native (rotated) coordinate system.+-- - The @renderArea@, viewports, scissors, and @fragmentSize@ are all+-- provided in the current (non-rotated) coordinate system. The+-- implementation will transform those into the native (rotated)+-- coordinate system. -- -- - The implementation is responsible for transforming shader built-ins--- (@FragCoord@, @PointCoord@, @SamplePosition@, interpolateAt(), dFdx,--- dFdy, fWidth) into the rotated coordinate system.+-- (@FragCoord@, @PointCoord@, @SamplePosition@,+-- @PrimitiveShadingRateKHR@, interpolateAt(), dFdx, dFdy, fWidth) into+-- the rotated coordinate system. -- -- - The implementation is responsible for transforming @position@ to the -- rotated coordinate system.@@ -191,24 +197,48 @@ -- 3) How does this extension interact with VK_EXT_fragment_density_map? -- -- __RESOLVED__ Some implementations may not be able to support a render--- pass that enables both renderpass transform and fragment density maps.+-- pass that enables both render pass transform and fragment density maps. -- For simplicity, this extension disallows enabling both features within a -- single render pass. -- -- 4) What should this extension be named? ----- We considered names such as \"rotated_rendering\", \"pre_rotation\" and+-- We considered names such as “rotated_rendering”, “pre_rotation” and -- others. Since the functionality is limited to a render pass, it seemed--- the name should include \"render_pass\". While the current extension is+-- the name should include “render_pass”. While the current extension is -- limited to rotations, it could be extended to other transforms (like -- mirror) in the future. ----- __RESOLVED__ The name \"render_pass_transform\" seems like the most+-- __RESOLVED__ The name “render_pass_transform” seems like the most -- accurate description of the introduced functionality. --+-- 5) How does this extension interact with VK_KHR_fragment_shading_rate?+--+-- __RESOLVED__: For the same reasons as issue 3, this extension disallows+-- enabling both @pFragmentShadingRateAttachment@ and render pass transform+-- within a single render pass.+--+-- However, pipeline shading rate and primitive shading rate are supported,+-- and their respective @fragmentSize@ and @PrimitiveShadingRateKHR@ are+-- provided in the current (non-rotated) coordinate system. The+-- implementation is responsible for transforming them to the rotated+-- 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>+-- /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+-- application /must/ swap the x\/y of the reported rates to get the set of+-- rates supported for 90 and 270 degree rotation.+-- -- == Version History -- -- - Revision 1, 2020-02-05 (Jeff Leger)+--+-- - Revision 2, 2021-03-09 (Matthew Netsch)+--+-- - Adds interactions with VK_KHR_fragment_shading_rate -- -- = See Also --
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs view
@@ -15,7 +15,7 @@ -- 334 -- -- [__Revision__]--- 0+-- 1 -- -- [__Extension and Version Dependencies__] --@@ -32,14 +32,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] -- 2020-09-18 -- -- [__Interactions and External Dependencies__] -- -- - None ----- [Contributors]+-- [__Contributors__] -- -- - Jeff Leger, Qualcomm Technologies, Inc. --@@ -61,12 +61,13 @@ -- == Issues -- -- 1) What is an appropriate name for the added extension structure? The--- style guide says \"Structures which extend other structures through the--- pNext chain should reflect the name of the base structure they--- extend.\", but in this case a single extension structure is used to--- extend three base structures (vkCmdBlitImage2KHR,--- vkCmdCopyImageToBuffer2KHR and vkCmdCopyBufferToImage2KHR). Creating--- three identical structures with unique names seemed undesirable.+-- style guide says “Structures which extend other structures through the+-- pNext chain should reflect the name of the base structure they extend.”,+-- but in this case a single extension structure is used to extend three+-- base structures (vkCmdBlitImage2KHR, vkCmdCopyImageToBuffer2KHR and+-- vkCmdCopyBufferToImage2KHR). Creating three identical structures with+-- unique names seemed undesirable.+-- -- __RESOLVED__: Deviate from the style guide for extension structure -- naming. --@@ -209,11 +210,11 @@ zero -type QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0+type QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 1 -- No documentation found for TopLevel "VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION" pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0+pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 1 type QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot view
@@ -15,7 +15,7 @@ -- 334 -- -- [__Revision__]--- 0+-- 1 -- -- [__Extension and Version Dependencies__] --@@ -32,14 +32,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] -- 2020-09-18 -- -- [__Interactions and External Dependencies__] -- -- - None ----- [Contributors]+-- [__Contributors__] -- -- - Jeff Leger, Qualcomm Technologies, Inc. --@@ -61,12 +61,13 @@ -- == Issues -- -- 1) What is an appropriate name for the added extension structure? The--- style guide says \"Structures which extend other structures through the--- pNext chain should reflect the name of the base structure they--- extend.\", but in this case a single extension structure is used to--- extend three base structures (vkCmdBlitImage2KHR,--- vkCmdCopyImageToBuffer2KHR and vkCmdCopyBufferToImage2KHR). Creating--- three identical structures with unique names seemed undesirable.+-- style guide says “Structures which extend other structures through the+-- pNext chain should reflect the name of the base structure they extend.”,+-- but in this case a single extension structure is used to extend three+-- base structures (vkCmdBlitImage2KHR, vkCmdCopyImageToBuffer2KHR and+-- vkCmdCopyBufferToImage2KHR). Creating three identical structures with+-- unique names seemed undesirable.+-- -- __RESOLVED__: Deviate from the style guide for extension structure -- naming. --
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs view
@@ -3,123 +3,8 @@ -- -- VK_VALVE_mutable_descriptor_type - device extension ----- == VK_VALVE_mutable_descriptor_type------ [__Name String__]--- @VK_VALVE_mutable_descriptor_type@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 352------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_maintenance3@------ [__Special Use__]------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>------ [__Contact__]------ - Joshua Ashton--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 >------ - Hans-Kristian Arntzen--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@HansKristian-Work%20 >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-12-02------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Joshua Ashton, Valve------ - Hans-Kristian Arntzen, Valve------ == Description------ This extension allows applications to reduce descriptor memory footprint--- by allowing a descriptor to be able to mutate to a given list of--- descriptor types depending on which descriptor types are written into,--- or copied into a descriptor set.------ The main use case this extension intends to address is descriptor--- indexing with--- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'--- where the descriptor types are completely generic, as this means--- applications can allocate one large descriptor set, rather than having--- one large descriptor set per descriptor type, which significantly bloats--- descriptor memory usage and causes performance issues.------ This extension also adds a mechanism to declare that a descriptor pool,--- and therefore the descriptor sets that are allocated from it, reside--- only in host memory; as such these descriptors can only be--- updated\/copied, but not bound.------ These features together allow much more efficient emulation of the raw--- D3D12 binding model. This extension is primarily intended to be useful--- for API layering efforts.------ == New Structures------ - 'MutableDescriptorTypeListVALVE'------ - Extending--- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',--- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':------ - 'MutableDescriptorTypeCreateInfoVALVE'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'------ == New Enum Constants------ - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME'------ - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':------ - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'------ - Extending--- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':------ - 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'------ - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':------ - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE'------ == Version History------ - Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen)------ - Initial specification, squashed from public draft.+-- - Joshua Ashton+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 > -- -- = See Also --@@ -181,11 +66,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description --+-- - @sType@ is the type of this structure.+--+-- - @pNext@ is @NULL@ or a pointer to a structure extending this+-- structure.+-- -- - #features-mutableDescriptorType# @mutableDescriptorType@ indicates -- that the implementation /must/ support using the -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' of@@ -231,6 +120,16 @@ -- -- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE' -- /must/ be supported.+--+-- If the 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE' 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. 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot view
@@ -3,123 +3,8 @@ -- -- VK_VALVE_mutable_descriptor_type - device extension ----- == VK_VALVE_mutable_descriptor_type------ [__Name String__]--- @VK_VALVE_mutable_descriptor_type@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 352------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_maintenance3@------ [__Special Use__]------ - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>------ [__Contact__]------ - Joshua Ashton--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 >------ - Hans-Kristian Arntzen--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@HansKristian-Work%20 >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2020-12-02------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Joshua Ashton, Valve------ - Hans-Kristian Arntzen, Valve------ == Description------ This extension allows applications to reduce descriptor memory footprint--- by allowing a descriptor to be able to mutate to a given list of--- descriptor types depending on which descriptor types are written into,--- or copied into a descriptor set.------ The main use case this extension intends to address is descriptor--- indexing with--- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'--- where the descriptor types are completely generic, as this means--- applications can allocate one large descriptor set, rather than having--- one large descriptor set per descriptor type, which significantly bloats--- descriptor memory usage and causes performance issues.------ This extension also adds a mechanism to declare that a descriptor pool,--- and therefore the descriptor sets that are allocated from it, reside--- only in host memory; as such these descriptors can only be--- updated\/copied, but not bound.------ These features together allow much more efficient emulation of the raw--- D3D12 binding model. This extension is primarily intended to be useful--- for API layering efforts.------ == New Structures------ - 'MutableDescriptorTypeListVALVE'------ - Extending--- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',--- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':------ - 'MutableDescriptorTypeCreateInfoVALVE'------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'------ == New Enum Constants------ - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME'------ - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':------ - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'------ - Extending--- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':------ - 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'------ - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':------ - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE'------ == Version History------ - Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen)------ - Initial specification, squashed from public draft.+-- - Joshua Ashton+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 > -- -- = See Also --
src/Vulkan/SPIRVRequirements.hs view
@@ -122,7 +122,7 @@ import Vulkan.Extensions.VK_KHR_variable_pointers (pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_vulkan_memory_model (pattern KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_cooperative_matrix (pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME)@@ -161,7 +161,7 @@ spirvExtensionRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement]) spirvExtensionRequirements = \case "SPV_KHR_variable_pointers" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0] "SPV_AMD_shader_explicit_vertex_parameter" -> (,) [] [ RequireDeviceExtension { deviceExtensionLayerName = Nothing@@ -230,11 +230,11 @@ } ] "SPV_KHR_shader_draw_parameters" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0] "SPV_KHR_8bit_storage" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0] "SPV_KHR_16bit_storage" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0] "SPV_KHR_shader_clock" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -247,9 +247,9 @@ } ] "SPV_KHR_float_controls" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0] "SPV_KHR_storage_buffer_storage_class" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0] "SPV_KHR_post_depth_coverage" -> (,) [] [ RequireDeviceExtension { deviceExtensionLayerName = Nothing@@ -318,7 +318,7 @@ } ] "SPV_EXT_shader_viewport_index_layer" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0] "SPV_NVX_multiview_per_view_attributes" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -335,9 +335,9 @@ } ] "SPV_EXT_descriptor_indexing" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0] "SPV_KHR_vulkan_memory_model" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0] "SPV_NV_compute_shader_derivatives" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -508,7 +508,7 @@ } ] "SPV_KHR_physical_storage_buffer" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0] "SPV_EXT_physical_storage_buffer" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -612,7 +612,8 @@ , deviceExtensionMinVersion = 0 } ]- "SPV_KHR_multiview" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+ "SPV_KHR_multiview" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0] "SPV_KHR_workgroup_memory_explicit_layout" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -639,16 +640,20 @@ spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement]) spirvCapabilityRequirements = \case- "Matrix" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "Shader" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "InputAttachment" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "Sampled1D" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "Image1D" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "SampledBuffer" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "ImageBuffer" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "ImageQuery" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "DerivativeControl" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]- "Geometry" -> (,)+ "Matrix" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "Shader" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "InputAttachment" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "Sampled1D" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "Image1D" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "SampledBuffer" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "ImageBuffer" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "ImageQuery" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "DerivativeControl" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+ "Geometry" -> (,) [] [ RequireDeviceFeature { featureName = "geometryShader" , checkFeature = geometryShader :: PhysicalDeviceFeatures -> Bool@@ -677,7 +682,7 @@ } ] "Int64Atomics" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -688,7 +693,7 @@ , checkFeature = shaderBufferInt64Atomics :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderBufferInt64Atomics = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -868,7 +873,7 @@ } ] "StorageImageExtendedFormats" ->- (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0] "InterpolationFunction" -> (,) [] [ RequireDeviceFeature { featureName = "sampleRateShading"@@ -900,38 +905,39 @@ } ] "DrawParameters" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "shaderDrawParameters" , checkFeature = shaderDrawParameters :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { shaderDrawParameters = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "MultiView" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "multiview" , checkFeature = multiview :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { multiview = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ]- "DeviceGroup" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+ "DeviceGroup" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0] "VariablePointersStorageBuffer" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "variablePointersStorageBuffer" , checkFeature = variablePointersStorageBuffer :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { variablePointersStorageBuffer = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "VariablePointers" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "variablePointers" , checkFeature = variablePointers :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { variablePointers = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "ShaderClockKHR" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing@@ -1005,21 +1011,21 @@ } ] "ShaderViewportIndex" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "shaderOutputViewportIndex" , checkFeature = shaderOutputViewportIndex :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderOutputViewportIndex = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "ShaderLayer" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "shaderOutputLayer" , checkFeature = shaderOutputLayer :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderOutputLayer = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "ShaderViewportIndexLayerEXT" -> (,) []@@ -1058,110 +1064,110 @@ } ] "StorageBuffer16BitAccess" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "storageBuffer16BitAccess" , checkFeature = storageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { storageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "UniformAndStorageBuffer16BitAccess" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "uniformAndStorageBuffer16BitAccess" , checkFeature = uniformAndStorageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { uniformAndStorageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "StoragePushConstant16" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "storagePushConstant16" , checkFeature = storagePushConstant16 :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { storagePushConstant16 = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "StorageInputOutput16" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "storageInputOutput16" , checkFeature = storageInputOutput16 :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { storageInputOutput16 = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 ] "GroupNonUniform" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_BASIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformVote" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_VOTE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformArithmetic" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_ARITHMETIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformBallot" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_BALLOT_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformShuffle" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_SHUFFLE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformShuffleRelative" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformClustered" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_CLUSTERED_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformQuad" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan11Properties" , checkProperty = \p -> SUBGROUP_FEATURE_QUAD_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0 ] "GroupNonUniformPartitionedNV" -> (,) []@@ -1182,9 +1188,10 @@ , deviceExtensionMinVersion = 0 } ]- "ShaderNonUniform" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+ "ShaderNonUniform" ->+ (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0] "RuntimeDescriptorArray" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1194,7 +1201,7 @@ , checkFeature = runtimeDescriptorArray :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { runtimeDescriptorArray = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1205,7 +1212,7 @@ } ] "InputAttachmentArrayDynamicIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1216,7 +1223,7 @@ , checkFeature = shaderInputAttachmentArrayDynamicIndexing :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderInputAttachmentArrayDynamicIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1227,7 +1234,7 @@ } ] "UniformTexelBufferArrayDynamicIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1239,7 +1246,7 @@ , enableFeature = \f -> f { shaderUniformTexelBufferArrayDynamicIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1250,7 +1257,7 @@ } ] "StorageTexelBufferArrayDynamicIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1262,7 +1269,7 @@ , enableFeature = \f -> f { shaderStorageTexelBufferArrayDynamicIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1273,7 +1280,7 @@ } ] "UniformBufferArrayNonUniformIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1284,7 +1291,7 @@ , checkFeature = shaderUniformBufferArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderUniformBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1295,7 +1302,7 @@ } ] "SampledImageArrayNonUniformIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1306,7 +1313,7 @@ , checkFeature = shaderSampledImageArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderSampledImageArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1317,7 +1324,7 @@ } ] "StorageBufferArrayNonUniformIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1328,7 +1335,7 @@ , checkFeature = shaderStorageBufferArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderStorageBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1339,7 +1346,7 @@ } ] "StorageImageArrayNonUniformIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1350,7 +1357,7 @@ , checkFeature = shaderStorageImageArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderStorageImageArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1361,7 +1368,7 @@ } ] "InputAttachmentArrayNonUniformIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1373,7 +1380,7 @@ , enableFeature = \f -> f { shaderInputAttachmentArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1384,7 +1391,7 @@ } ] "UniformTexelBufferArrayNonUniformIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1396,7 +1403,7 @@ , enableFeature = \f -> f { shaderUniformTexelBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1407,7 +1414,7 @@ } ] "StorageTexelBufferArrayNonUniformIndexing" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1419,7 +1426,7 @@ , enableFeature = \f -> f { shaderStorageTexelBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1430,7 +1437,7 @@ } ] "Float16" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1440,14 +1447,14 @@ , checkFeature = shaderFloat16 :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderFloat16 = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "Int8" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1457,14 +1464,14 @@ , checkFeature = shaderInt8 :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { shaderInt8 = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "StorageBuffer8BitAccess" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1475,7 +1482,7 @@ , checkFeature = storageBuffer8BitAccess :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { storageBuffer8BitAccess = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_8BIT_STORAGE_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1486,7 +1493,7 @@ } ] "UniformAndStorageBuffer8BitAccess" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1497,7 +1504,7 @@ , checkFeature = uniformAndStorageBuffer8BitAccess :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { uniformAndStorageBuffer8BitAccess = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_8BIT_STORAGE_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1508,7 +1515,7 @@ } ] "StoragePushConstant8" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1518,7 +1525,7 @@ , checkFeature = storagePushConstant8 :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { storagePushConstant8 = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_8BIT_STORAGE_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1529,32 +1536,32 @@ } ] "VulkanMemoryModel" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "vulkanMemoryModel" , checkFeature = vulkanMemoryModel :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { vulkanMemoryModel = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "VulkanMemoryModelDeviceScope" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+ [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "vulkanMemoryModelDeviceScope" , checkFeature = vulkanMemoryModelDeviceScope :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { vulkanMemoryModelDeviceScope = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "DenormPreserve" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1563,14 +1570,14 @@ [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan12Properties" , checkProperty = \p -> shaderDenormPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "DenormFlushToZero" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1580,14 +1587,14 @@ { propertyName = "VkPhysicalDeviceVulkan12Properties" , checkProperty = \p -> shaderDenormFlushToZeroFloat16 (p :: PhysicalDeviceVulkan12Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "SignedZeroInfNanPreserve" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1597,14 +1604,14 @@ { propertyName = "VkPhysicalDeviceVulkan12Properties" , checkProperty = \p -> shaderSignedZeroInfNanPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "RoundingModeRTE" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1613,14 +1620,14 @@ [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan12Properties" , checkProperty = \p -> shaderRoundingModeRTEFloat16 (p :: PhysicalDeviceVulkan12Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ] "RoundingModeRTZ" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1629,7 +1636,7 @@ [ RequireDeviceProperty { propertyName = "VkPhysicalDeviceVulkan12Properties" , checkProperty = \p -> shaderRoundingModeRTZFloat16 (p :: PhysicalDeviceVulkan12Properties) }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME , deviceExtensionMinVersion = 0@@ -1924,7 +1931,7 @@ } ] "PhysicalStorageBufferAddresses" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+ [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0 , RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME , instanceExtensionMinVersion = 0@@ -1934,7 +1941,7 @@ , checkFeature = bufferDeviceAddress :: PhysicalDeviceVulkan12Features -> Bool , enableFeature = \f -> f { bufferDeviceAddress = True } :: PhysicalDeviceVulkan12Features }- , RequireDeviceVersion $ MAKE_VERSION 1 2 0+ , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME , deviceExtensionMinVersion = 0
src/Vulkan/Version.hs view
@@ -2,10 +2,14 @@ -- No documentation found for Chapter "Version" module Vulkan.Version ( pattern HEADER_VERSION , pattern HEADER_VERSION_COMPLETE+ , pattern MAKE_API_VERSION , pattern MAKE_VERSION , _VERSION_MAJOR , _VERSION_MINOR , _VERSION_PATCH+ , _API_VERSION_MAJOR+ , _API_VERSION_MINOR+ , _API_VERSION_PATCH ) where import Data.Bits ((.&.))@@ -15,26 +19,44 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 174+pattern HEADER_VERSION = 179 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 174+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 179 -pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32-pattern MAKE_VERSION major minor patch <-+pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32+pattern MAKE_API_VERSION major minor patch <- (\v -> (_VERSION_MAJOR v, _VERSION_MINOR v, _VERSION_PATCH v) -> (major, minor, patch))- where MAKE_VERSION major minor patch = major `shiftL` 22 .|. minor `shiftL` 12 .|. patch+ where MAKE_API_VERSION major minor patch = major `shiftL` 22 .|. minor `shiftL` 12 .|. patch +{-# complete MAKE_API_VERSION #-}++{-# deprecated MAKE_VERSION "This pattern is deprecated. MAKE_API_VERSION should be used instead." #-}+pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32+pattern MAKE_VERSION major minor patch = MAKE_API_VERSION major minor patch+ {-# complete MAKE_VERSION #-} +{-# deprecated _VERSION_MAJOR "This function is deprecated. _API_VERSION_MAJOR should be used instead." #-} _VERSION_MAJOR :: Word32 -> Word32-_VERSION_MAJOR v = v `shiftR` 22+_VERSION_MAJOR = _API_VERSION_MAJOR +{-# deprecated _VERSION_MINOR "This function is deprecated. _API_VERSION_MINOR should be used instead." #-} _VERSION_MINOR :: Word32 -> Word32-_VERSION_MINOR v = v `shiftR` 12 .&. 0x3ff+_VERSION_MINOR = _API_VERSION_MINOR +{-# deprecated _VERSION_PATCH "This function is deprecated. _API_VERSION_PATCH should be used instead." #-} _VERSION_PATCH :: Word32 -> Word32-_VERSION_PATCH v = v .&. 0xfff+_VERSION_PATCH = _API_VERSION_PATCH++_API_VERSION_MAJOR :: Word32 -> Word32+_API_VERSION_MAJOR v = v `shiftR` 22++_API_VERSION_MINOR :: Word32 -> Word32+_API_VERSION_MINOR v = v `shiftR` 12 .&. 0x3ff++_API_VERSION_PATCH :: Word32 -> Word32+_API_VERSION_PATCH v = v .&. 0xfff
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: vulkan-version: 3.10.1+version: 3.10.2 synopsis: Bindings to the Vulkan graphics API. category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme@@ -281,6 +281,7 @@ Vulkan.Extensions.VK_EXT_blend_operation_advanced Vulkan.Extensions.VK_EXT_buffer_device_address Vulkan.Extensions.VK_EXT_calibrated_timestamps+ Vulkan.Extensions.VK_EXT_color_write_enable Vulkan.Extensions.VK_EXT_conditional_rendering Vulkan.Extensions.VK_EXT_conservative_rasterization Vulkan.Extensions.VK_EXT_custom_border_color@@ -297,6 +298,7 @@ Vulkan.Extensions.VK_EXT_display_control Vulkan.Extensions.VK_EXT_display_surface_counter Vulkan.Extensions.VK_EXT_extended_dynamic_state+ Vulkan.Extensions.VK_EXT_extended_dynamic_state2 Vulkan.Extensions.VK_EXT_external_memory_dma_buf Vulkan.Extensions.VK_EXT_external_memory_host Vulkan.Extensions.VK_EXT_filter_cubic@@ -321,6 +323,7 @@ Vulkan.Extensions.VK_EXT_pipeline_creation_feedback Vulkan.Extensions.VK_EXT_post_depth_coverage Vulkan.Extensions.VK_EXT_private_data+ Vulkan.Extensions.VK_EXT_provoking_vertex Vulkan.Extensions.VK_EXT_queue_family_foreign Vulkan.Extensions.VK_EXT_robustness2 Vulkan.Extensions.VK_EXT_sample_locations@@ -344,6 +347,8 @@ Vulkan.Extensions.VK_EXT_validation_features Vulkan.Extensions.VK_EXT_validation_flags Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+ Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state+ Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats Vulkan.Extensions.VK_EXT_ycbcr_image_arrays Vulkan.Extensions.VK_FUCHSIA_external_memory Vulkan.Extensions.VK_FUCHSIA_external_semaphore@@ -462,6 +467,7 @@ Vulkan.Extensions.VK_NV_framebuffer_mixed_samples Vulkan.Extensions.VK_NV_geometry_shader_passthrough Vulkan.Extensions.VK_NV_glsl_shader+ Vulkan.Extensions.VK_NV_inherited_viewport_scissor Vulkan.Extensions.VK_NV_mesh_shader Vulkan.Extensions.VK_NV_ray_tracing Vulkan.Extensions.VK_NV_representative_fragment_test@@ -474,6 +480,7 @@ Vulkan.Extensions.VK_NV_viewport_array2 Vulkan.Extensions.VK_NV_viewport_swizzle Vulkan.Extensions.VK_NV_win32_keyed_mutex+ Vulkan.Extensions.VK_NVX_binary_import Vulkan.Extensions.VK_NVX_image_view_handle Vulkan.Extensions.VK_NVX_multiview_per_view_attributes Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve