vulkan 3.11.2 → 3.11.3
raw patch · 118 files changed
+2903/−412 lines, 118 files
Files
- changelog.md +3/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +24/−0
- src/Vulkan/Core10/CommandBuffer.hs +3/−4
- src/Vulkan/Core10/CommandBufferBuilding.hs +0/−12
- src/Vulkan/Core10/Device.hs +19/−1
- src/Vulkan/Core10/DeviceInitialization.hs +5/−3
- src/Vulkan/Core10/Enums/AccessFlagBits.hs +101/−99
- src/Vulkan/Core10/Enums/BorderColor.hs +2/−2
- src/Vulkan/Core10/Enums/Format.hs +2/−2
- src/Vulkan/Core10/Enums/ImageLayout.hs +1/−0
- src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs +4/−0
- src/Vulkan/Core10/Enums/StructureType.hs +41/−9
- src/Vulkan/Core10/FundamentalTypes.hs +4/−0
- src/Vulkan/Core10/Handles.hs +3/−0
- src/Vulkan/Core10/Image.hs +5/−0
- src/Vulkan/Core10/ImageView.hs +22/−19
- src/Vulkan/Core10/Pass.hs +8/−0
- src/Vulkan/Core10/Sampler.hs +1/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +8/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs +4/−1
- src/Vulkan/Core12.hs +4/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +8/−0
- src/Vulkan/Dynamic.hs +9/−2
- src/Vulkan/Extensions.hs +8/−0
- src/Vulkan/Extensions/Dependencies.hs +31/−8
- src/Vulkan/Extensions/Handles.hs +2/−1
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs +1/−1
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +6/−4
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot +6/−4
- src/Vulkan/Extensions/VK_EXT_color_write_enable.hs +9/−6
- src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs +16/−15
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +5/−5
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot +5/−5
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs +22/−22
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot +22/−22
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_global_priority.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_global_priority_query.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_robustness2.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs +329/−0
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot +137/−0
- src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot +1/−1
- src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs +411/−0
- src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot +162/−0
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs +10/−10
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_performance_query.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs +2/−0
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot +2/−0
- src/Vulkan/Extensions/VK_KHR_present_id.hs +346/−0
- src/Vulkan/Extensions/VK_KHR_present_id.hs-boot +121/−0
- src/Vulkan/Extensions/VK_KHR_present_wait.hs +428/−0
- src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot +154/−0
- src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs +2/−0
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot +2/−0
- src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs +10/−10
- src/Vulkan/Extensions/VK_KHR_swapchain.hs +7/−1
- src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs +94/−2
- src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs +3/−2
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +1/−1
- src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs +10/−7
- src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs +3/−2
- src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs +1/−1
- src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs +3/−3
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot +3/−3
- src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs +2/−2
- src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs +1/−1
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs +1/−1
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +2/−2
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs +8/−6
- src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs +7/−6
- src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot +3/−3
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +1/−1
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs +3/−3
- src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot +3/−3
- src/Vulkan/SPIRVRequirements.hs +116/−0
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +5/−1
changelog.md view
@@ -2,6 +2,9 @@ ## WIP +## [3.11.3] - 2021-07-21+- Bump API version to v1.2.185+ ## [3.11.2] - 2021-07-07 - Bump API version to v1.2.184
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.11.2"+version: "3.11.3" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -412,6 +412,7 @@ 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_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT)@@ -436,6 +437,8 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2)@@ -457,6 +460,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)@@ -552,6 +556,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (PipelineViewportSwizzleStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (PipelineViewportWScalingStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_frame_token (PresentFrameTokenGGP)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PresentIdKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (PresentInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionsKHR)@@ -821,6 +826,8 @@ Extends DeviceCreateInfo PhysicalDeviceVariablePointersFeatures = () Extends DeviceCreateInfo PhysicalDeviceMultiviewFeatures = () Extends DeviceCreateInfo DeviceGroupDeviceCreateInfo = ()+ Extends DeviceCreateInfo PhysicalDevicePresentIdFeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDevicePresentWaitFeaturesKHR = () Extends DeviceCreateInfo PhysicalDevice16BitStorageFeatures = () Extends DeviceCreateInfo PhysicalDeviceShaderSubgroupExtendedTypesFeatures = () Extends DeviceCreateInfo PhysicalDeviceSamplerYcbcrConversionFeatures = ()@@ -841,6 +848,7 @@ Extends DeviceCreateInfo PhysicalDeviceVulkanMemoryModelFeatures = () Extends DeviceCreateInfo PhysicalDeviceShaderAtomicInt64Features = () Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloat2FeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceASTCDecodeFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceTransformFeedbackFeaturesEXT = ()@@ -852,6 +860,7 @@ Extends DeviceCreateInfo PhysicalDeviceShaderImageFootprintFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceShadingRateImageFeaturesNV = ()+ Extends DeviceCreateInfo PhysicalDeviceInvocationMaskFeaturesHUAWEI = () Extends DeviceCreateInfo PhysicalDeviceMeshShaderFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceAccelerationStructureFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceRayTracingPipelineFeaturesKHR = ()@@ -969,6 +978,8 @@ Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = ()+ Extends PhysicalDeviceFeatures2 PhysicalDevicePresentIdFeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDevicePresentWaitFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDevice16BitStorageFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSubgroupExtendedTypesFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceSamplerYcbcrConversionFeatures = ()@@ -988,6 +999,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkanMemoryModelFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicInt64Features = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloat2FeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceASTCDecodeFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceTransformFeedbackFeaturesEXT = ()@@ -999,6 +1011,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageFootprintFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShadingRateImageFeaturesNV = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceInvocationMaskFeaturesHUAWEI = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMeshShaderFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceAccelerationStructureFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingPipelineFeaturesKHR = ()@@ -1136,6 +1149,7 @@ Extends PresentInfoKHR DisplayPresentInfoKHR = () Extends PresentInfoKHR PresentRegionsKHR = () Extends PresentInfoKHR DeviceGroupPresentInfoKHR = ()+ Extends PresentInfoKHR PresentIdKHR = () Extends PresentInfoKHR PresentTimesInfoGOOGLE = () Extends PresentInfoKHR PresentFrameTokenGGP = () Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = ()@@ -1345,6 +1359,9 @@ STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR -> go @DeviceGroupPresentInfoKHR STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO -> go @DeviceGroupDeviceCreateInfo STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR -> go @DeviceGroupSwapchainCreateInfoKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR -> go @PhysicalDevicePresentIdFeaturesKHR+ STRUCTURE_TYPE_PRESENT_ID_KHR -> go @PresentIdKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR -> go @PhysicalDevicePresentWaitFeaturesKHR STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD -> go @DisplayNativeHdrSurfaceCapabilitiesAMD STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD -> go @SwapchainDisplayNativeHdrCreateInfoAMD STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE -> go @PresentTimesInfoGOOGLE@@ -1429,6 +1446,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES -> go @PhysicalDeviceVulkanMemoryModelFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES -> go @PhysicalDeviceShaderAtomicInt64Features STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloatFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloat2FeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT -> go @PhysicalDeviceVertexAttributeDivisorFeaturesEXT STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV -> go @QueueFamilyCheckpointPropertiesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES -> go @PhysicalDeviceDepthStencilResolveProperties@@ -1450,6 +1468,7 @@ STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV -> go @PipelineViewportShadingRateImageStateCreateInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV -> go @PhysicalDeviceShadingRateImageFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV -> go @PhysicalDeviceShadingRateImagePropertiesNV+ STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI -> go @PhysicalDeviceInvocationMaskFeaturesHUAWEI STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV -> go @PipelineViewportCoarseSampleOrderStateCreateInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV -> go @PhysicalDeviceMeshShaderFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV -> go @PhysicalDeviceMeshShaderPropertiesNV@@ -1688,6 +1707,9 @@ {-# complete (::&) :: DeviceGroupPresentInfoKHR #-} {-# complete (::&) :: DeviceGroupDeviceCreateInfo #-} {-# complete (::&) :: DeviceGroupSwapchainCreateInfoKHR #-}+{-# complete (::&) :: PhysicalDevicePresentIdFeaturesKHR #-}+{-# complete (::&) :: PresentIdKHR #-}+{-# complete (::&) :: PhysicalDevicePresentWaitFeaturesKHR #-} {-# complete (::&) :: DisplayNativeHdrSurfaceCapabilitiesAMD #-} {-# complete (::&) :: SwapchainDisplayNativeHdrCreateInfoAMD #-} {-# complete (::&) :: PresentTimesInfoGOOGLE #-}@@ -1772,6 +1794,7 @@ {-# complete (::&) :: PhysicalDeviceVulkanMemoryModelFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderAtomicInt64Features #-} {-# complete (::&) :: PhysicalDeviceShaderAtomicFloatFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesEXT #-} {-# complete (::&) :: QueueFamilyCheckpointPropertiesNV #-} {-# complete (::&) :: PhysicalDeviceDepthStencilResolveProperties #-}@@ -1793,6 +1816,7 @@ {-# complete (::&) :: PipelineViewportShadingRateImageStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceShadingRateImageFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceShadingRateImagePropertiesNV #-}+{-# complete (::&) :: PhysicalDeviceInvocationMaskFeaturesHUAWEI #-} {-# complete (::&) :: PipelineViewportCoarseSampleOrderStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceMeshShaderFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceMeshShaderPropertiesNV #-}
src/Vulkan/Core10/CommandBuffer.hs view
@@ -728,10 +728,9 @@ -- If the 'Vulkan.Core10.Handles.CommandBuffer' will not be executed within -- a render pass instance, @subpass@ is ignored. subpass :: Word32- , -- | @framebuffer@ optionally refers to the- -- 'Vulkan.Core10.Handles.Framebuffer' object that the- -- 'Vulkan.Core10.Handles.CommandBuffer' will be rendering to if it is- -- executed within a render pass instance. It /can/ be+ , -- | @framebuffer@ /can/ refer to the 'Vulkan.Core10.Handles.Framebuffer'+ -- object that the 'Vulkan.Core10.Handles.CommandBuffer' will be rendering+ -- to if it is executed within a render pass instance. It /can/ be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' if the framebuffer is not -- known, or if the 'Vulkan.Core10.Handles.CommandBuffer' will not be -- executed within a render pass instance.
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -7973,9 +7973,6 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- values ----- - #VUID-vkCmdSetEvent-stageMask-requiredbitmask# @stageMask@ /must/--- not be @0@--- -- - #VUID-vkCmdSetEvent-commandBuffer-recording# @commandBuffer@ /must/ -- be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>@@ -8134,9 +8131,6 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- values ----- - #VUID-vkCmdResetEvent-stageMask-requiredbitmask# @stageMask@ /must/--- not be @0@--- -- - #VUID-vkCmdResetEvent-commandBuffer-recording# @commandBuffer@ -- /must/ be in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>@@ -8938,16 +8932,10 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- values ----- - #VUID-vkCmdPipelineBarrier-srcStageMask-requiredbitmask#--- @srcStageMask@ /must/ not be @0@--- -- - #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@ -- /must/ be a valid combination of -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- values------ - #VUID-vkCmdPipelineBarrier-dstStageMask-requiredbitmask#--- @dstStageMask@ /must/ not be @0@ -- -- - #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter# -- @dependencyFlags@ /must/ be a valid combination of
src/Vulkan/Core10/Device.hs view
@@ -128,6 +128,7 @@ 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_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV)@@ -138,6 +139,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)@@ -149,6 +152,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)@@ -230,7 +234,7 @@ -- == Valid Usage -- -- - #VUID-vkCreateDevice-ppEnabledExtensionNames-01387# All--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required extensions>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required device extensions> -- for each extension in the -- 'DeviceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also be -- present in that list@@ -702,6 +706,12 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd> -- /must/ be enabled --+-- - #VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax>+-- is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax>+-- /must/ be enabled+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkDeviceCreateInfo-sType-sType# @sType@ /must/ be@@ -755,6 +765,7 @@ -- '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_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',@@ -765,6 +776,8 @@ -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',@@ -776,6 +789,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',@@ -947,6 +961,7 @@ | Just Refl <- eqT @e @PhysicalDeviceRayTracingPipelineFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceAccelerationStructureFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesNV = Just f+ | Just Refl <- eqT @e @PhysicalDeviceInvocationMaskFeaturesHUAWEI = Just f | Just Refl <- eqT @e @PhysicalDeviceShadingRateImageFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f@@ -958,6 +973,7 @@ | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkanMemoryModelFeatures = Just f@@ -978,6 +994,8 @@ | Just Refl <- eqT @e @PhysicalDeviceSamplerYcbcrConversionFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupExtendedTypesFeatures = Just f | Just Refl <- eqT @e @PhysicalDevice16BitStorageFeatures = Just f+ | Just Refl <- eqT @e @PhysicalDevicePresentWaitFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDevicePresentIdFeaturesKHR = Just f | Just Refl <- eqT @e @DeviceGroupDeviceCreateInfo = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -507,7 +507,8 @@ -- = Parameters -- -- The table below defines the various use cases for 'getDeviceProcAddr'--- and expected return value for each case.+-- and expected return value (“fp” is “function pointer”) for each case. A+-- valid returned function pointer (“fp”) /must/ not be @NULL@. -- -- = Description --@@ -600,7 +601,8 @@ -- platform-specific APIs. -- -- The table below defines the various use cases for 'getInstanceProcAddr'--- and expected return value (“fp” is “function pointer”) for each case.+-- and expected return value (“fp” is “function pointer”) for each case. A+-- valid returned function pointer (“fp”) /must/ not be @NULL@. -- -- The returned function pointer is of type -- 'Vulkan.Core10.FuncPointers.PFN_vkVoidFunction', and /must/ be cast to@@ -4223,7 +4225,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes> -- members of -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentPropertiesEXT',- -- but smaller alignment is optionally: allowed by+ -- but smaller alignment is /optionally/ allowed by -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment> -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -66,105 +66,107 @@ -- 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' |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | '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' |--- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 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' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' |+-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- -- Supported access types --
src/Vulkan/Core10/Enums/BorderColor.hs view
@@ -53,13 +53,13 @@ pattern BORDER_COLOR_INT_OPAQUE_WHITE = BorderColor 5 -- | 'BORDER_COLOR_INT_CUSTOM_EXT' indicates that a -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'--- structure is present in the+-- structure is included in the -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain which contains -- the color data in integer format. pattern BORDER_COLOR_INT_CUSTOM_EXT = BorderColor 1000287004 -- | 'BORDER_COLOR_FLOAT_CUSTOM_EXT' indicates that a -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'--- structure is present in the+-- structure is included in the -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain which contains -- the color data in floating-point format. pattern BORDER_COLOR_FLOAT_CUSTOM_EXT = BorderColor 1000287003
src/Vulkan/Core10/Enums/Format.hs view
@@ -844,7 +844,7 @@ pattern FORMAT_D16_UNORM = Format 124 -- | 'FORMAT_X8_D24_UNORM_PACK32' specifies a two-component, 32-bit format -- that has 24 unsigned normalized bits in the depth component and,--- optionally:, 8 bits that are unused.+-- /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.@@ -862,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
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -73,6 +73,7 @@ -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Extensions.VK_KHR_synchronization2.ImageMemoryBarrier2KHR', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR',+-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage',
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -9,6 +9,7 @@ , IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT , IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT , IMAGE_USAGE_INPUT_ATTACHMENT_BIT+ , IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI , IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT , ..@@ -79,6 +80,8 @@ -- be read from a shader as an input attachment; and be used as an input -- attachment in a framebuffer. pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000080+-- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"+pattern IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = ImageUsageFlagBits 0x00040000 -- | '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@@ -108,6 +111,7 @@ , (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_INVOCATION_MASK_BIT_HUAWEI , "INVOCATION_MASK_BIT_HUAWEI") , (IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR") , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT , "FRAGMENT_DENSITY_MAP_BIT_EXT") ]
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -59,6 +59,7 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA@@ -113,6 +114,8 @@ , STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT , STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR+ , STRUCTURE_TYPE_PRESENT_ID_KHR , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT@@ -137,6 +140,7 @@ , STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR@@ -164,6 +168,7 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT@@ -833,6 +838,7 @@ -- '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_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',@@ -855,6 +861,8 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures',@@ -875,6 +883,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',@@ -969,6 +978,7 @@ -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV', -- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',+-- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',@@ -1217,6 +1227,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV" pattern STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = StructureType 1000371000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = StructureType 1000370000 -- 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"@@ -1325,6 +1337,10 @@ pattern STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = StructureType 1000295001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = StructureType 1000295000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = StructureType 1000294001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"+pattern STRUCTURE_TYPE_PRESENT_ID_KHR = StructureType 1000294000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR" pattern STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = StructureType 1000290000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"@@ -1373,6 +1389,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = StructureType 1000277000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = StructureType 1000276000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR" pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = StructureType 1000269005 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"@@ -1427,6 +1445,8 @@ pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = StructureType 1000249000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT" pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = StructureType 1000247000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT"@@ -2192,6 +2212,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA, STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA, STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,@@ -2246,6 +2267,8 @@ STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT, STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,+ STRUCTURE_TYPE_PRESENT_ID_KHR, STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,@@ -2270,6 +2293,7 @@ STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR, STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR, STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,@@ -2297,6 +2321,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, STRUCTURE_TYPE_VALIDATION_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT, STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,@@ -2723,15 +2748,16 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV" )- , (STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV")- , (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_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT")- , (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_MEMORY_GET_REMOTE_ADDRESS_INFO_NV , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, "PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI")+ , (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_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT")+ , (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" )@@ -2806,6 +2832,8 @@ , (STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT , "PRIVATE_DATA_SLOT_CREATE_INFO_EXT") , (STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT , "DEVICE_PRIVATE_DATA_CREATE_INFO_EXT") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, "PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")+ , (STRUCTURE_TYPE_PRESENT_ID_KHR , "PRESENT_ID_KHR") , (STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR , "PIPELINE_LIBRARY_CREATE_INFO_KHR") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"@@ -2852,6 +2880,9 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT , "PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT" )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT+ , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"+ ) , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR, "PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR") , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR , "PIPELINE_EXECUTABLE_STATISTIC_KHR") , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR , "PIPELINE_EXECUTABLE_INFO_KHR")@@ -2899,6 +2930,7 @@ ) , (STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV , "COOPERATIVE_MATRIX_PROPERTIES_NV") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR") , (STRUCTURE_TYPE_VALIDATION_FEATURES_EXT , "VALIDATION_FEATURES_EXT") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT , "PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT") , (STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT , "BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT")
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -457,6 +457,7 @@ -- '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_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',@@ -470,6 +471,8 @@ -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',@@ -485,6 +488,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features', -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',
src/Vulkan/Core10/Handles.hs view
@@ -436,6 +436,7 @@ -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR>, -- 'Vulkan.Core10.Fence.waitForFences',+-- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.waitSemaphores', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.waitSemaphoresKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'@@ -503,6 +504,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',+-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV',@@ -845,6 +847,7 @@ -- '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_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.ImageView.createImageView', -- 'Vulkan.Core10.ImageView.destroyImageView',
src/Vulkan/Core10/Image.hs view
@@ -1297,6 +1297,11 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT', -- @mipLevels@ /must/ be @1@ --+-- - #VUID-VkImageCreateInfo-usage-04992# If @usage@ includes+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI',+-- @tiling@ /must/ be+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR'+-- -- - #VUID-VkImageCreateInfo-imageView2DOn3DImage-04459# If the -- @VK_KHR_portability_subset@ extension is enabled, and -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageView2DOn3DImage@
src/Vulkan/Core10/ImageView.hs view
@@ -646,9 +646,11 @@ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' | -- +----------------------------------------------------------------+-----------------------------------------------+ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- | | , | -- | | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' | -- +----------------------------------------------------------------+-----------------------------------------------+ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- | | , | -- | | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' | -- +----------------------------------------------------------------+-----------------------------------------------+ -- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |@@ -662,10 +664,6 @@ -- -- == Valid Usage ----- - #VUID-VkImageViewCreateInfo-imageViewType-04969# @imageViewType@--- /must/ be compatible with the type of @image@ as shown in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table>--- -- - #VUID-VkImageViewCreateInfo-image-01003# If @image@ was not created -- with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'@@ -686,13 +684,13 @@ -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' -- -- - #VUID-VkImageViewCreateInfo-image-04970# If @image@ was created with--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @imageViewType@ is+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @viewType@ is -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then -- @subresourceRange.levelCount@ /must/ be 1 -- -- - #VUID-VkImageViewCreateInfo-image-04971# If @image@ was created with--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @imageViewType@ is+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @viewType@ is -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then -- @flags@ /must/ not contain any of@@ -704,7 +702,7 @@ -- - #VUID-VkImageViewCreateInfo-image-04972# If @image@ was created with -- a @samples@ value not equal to -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' then--- @imageViewType@ /must/ be either+-- @viewType@ /must/ be either -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' --@@ -913,10 +911,9 @@ -- then it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object ----- - #VUID-VkImageViewCreateInfo-subResourceRange-01021#--- @subresourceRange@ and @viewType@ /must/ be compatible with the--- image, as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility compatibility table>+-- - #VUID-VkImageViewCreateInfo-subResourceRange-01021# @viewType@+-- /must/ be compatible with the type of @image@ as shown in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table> -- -- - #VUID-VkImageViewCreateInfo-image-02399# If @image@ has an -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,@@ -988,6 +985,12 @@ -- @subresourceRange.layerCount@ /must/ be less than or equal to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers> --+-- - #VUID-VkImageViewCreateInfo-invocationMask-04993# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask feature>+-- is enabled, and if @image@ was created with @usage@ containing+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI',+-- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'+-- -- - #VUID-VkImageViewCreateInfo-flags-04116# If @flags@ does not contain -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' -- and @image@ was created with @usage@ containing@@ -1017,7 +1020,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo' -- structure included in the @pNext@ chain of -- 'Vulkan.Core10.Image.ImageCreateInfo', and--- @subResourceRange.aspectMask@ includes+-- @subresourceRange.aspectMask@ includes -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT', -- the @usage@ member of the -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo'@@ -1033,7 +1036,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo' -- structure included in the @pNext@ chain of -- 'Vulkan.Core10.Image.ImageCreateInfo', and--- @subResourceRange.aspectMask@ includes bits other than+-- @subresourceRange.aspectMask@ includes bits other than -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT', -- the @usage@ member of the -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo'@@ -1041,16 +1044,16 @@ -- @usage@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' -- structure used to create @image@ ----- - #VUID-VkImageViewCreateInfo-imageViewType-04973# If @imageViewType@--- is 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D',+-- - #VUID-VkImageViewCreateInfo-imageViewType-04973# If @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D', -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D', or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'; and -- @subresourceRange.layerCount@ is not -- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then -- @subresourceRange.layerCount@ /must/ be 1 ----- - #VUID-VkImageViewCreateInfo-imageViewType-04974# If @imageViewType@--- is 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D',+-- - #VUID-VkImageViewCreateInfo-imageViewType-04974# If @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D', -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D', or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'; and -- @subresourceRange.layerCount@ is@@ -1085,8 +1088,8 @@ -- @VK_KHR_portability_subset@ extension is enabled, and -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageViewFormatSwizzle@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE', all elements of--- @components@ /must/ be--- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'.+-- @components@ /must/ have the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- - #VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466# -- If the @VK_KHR_portability_subset@ extension is enabled, and
src/Vulkan/Core10/Pass.hs view
@@ -1589,6 +1589,14 @@ -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' --+-- - #VUID-VkSubpassDependency-synchronization2-04984# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- - #VUID-VkSubpassDependency-synchronization2-04985# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @dstStageMask@ /must/ not be @0@+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkSubpassDependency-srcStageMask-parameter# @srcStageMask@
src/Vulkan/Core10/Sampler.hs view
@@ -456,7 +456,7 @@ -- or 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT', -- then a -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT'--- /must/ be present in the @pNext@ chain+-- /must/ be included in the @pNext@ chain -- -- - #VUID-VkSamplerCreateInfo-customBorderColors-04085# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-customBorderColors customBorderColors>
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -151,6 +151,7 @@ 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_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)@@ -173,6 +174,8 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)@@ -193,6 +196,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)@@ -744,6 +748,7 @@ | Just Refl <- eqT @e @PhysicalDeviceRayTracingPipelineFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceAccelerationStructureFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesNV = Just f+ | Just Refl <- eqT @e @PhysicalDeviceInvocationMaskFeaturesHUAWEI = Just f | Just Refl <- eqT @e @PhysicalDeviceShadingRateImageFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f@@ -755,6 +760,7 @@ | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkanMemoryModelFeatures = Just f@@ -774,6 +780,8 @@ | Just Refl <- eqT @e @PhysicalDeviceSamplerYcbcrConversionFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupExtendedTypesFeatures = Just f | Just Refl <- eqT @e @PhysicalDevice16BitStorageFeatures = Just f+ | Just Refl <- eqT @e @PhysicalDevicePresentWaitFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDevicePresentIdFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeaturesEXT = Just f
src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs view
@@ -60,7 +60,10 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceShaderDrawParametersFeatures = PhysicalDeviceShaderDrawParametersFeatures { -- | #extension-features-shaderDrawParameters# @shaderDrawParameters@- -- specifies whether shader draw parameters are supported.+ -- specifies whether the implementation supports the SPIR-V+ -- @DrawParameters@ capability. When this feature is not enabled, shader+ -- modules /must/ not declare the @SPV_KHR_shader_draw_parameters@+ -- extension or the @DrawParameters@ capability. shaderDrawParameters :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12.hs view
@@ -202,7 +202,10 @@ -- Y′CBCR conversion /must/ not be used. samplerYcbcrConversion :: Bool , -- | #features-shaderDrawParameters# @shaderDrawParameters@ specifies whether- -- shader draw parameters are supported.+ -- the implementation supports the SPIR-V @DrawParameters@ capability. When+ -- this feature is not enabled, shader modules /must/ not declare the+ -- @SPV_KHR_shader_draw_parameters@ extension or the @DrawParameters@+ -- capability. shaderDrawParameters :: Bool } deriving (Typeable, Eq)
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -1580,6 +1580,14 @@ -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV' --+-- - #VUID-VkSubpassDependency2-synchronization2-04988# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- - #VUID-VkSubpassDependency2-synchronization2-04989# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @dstStageMask@ /must/ not be @0@+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkSubpassDependency2-sType-sType# @sType@ /must/ be
src/Vulkan/Dynamic.hs view
@@ -825,7 +825,7 @@ , pVkGetMemoryFdPropertiesKHR :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr MemoryFdPropertiesKHR) -> IO Result) , pVkGetMemoryZirconHandleFUCHSIA :: FunPtr (Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr MemoryGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result) , pVkGetMemoryZirconHandlePropertiesFUCHSIA :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("zirconHandle" ::: Zx_handle_t) -> ("pMemoryZirconHandleProperties" ::: Ptr MemoryZirconHandlePropertiesFUCHSIA) -> IO Result)- , pVkGetMemoryRemoteAddressNV :: FunPtr (Ptr Device_T -> ("getMemoryRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result)+ , pVkGetMemoryRemoteAddressNV :: FunPtr (Ptr Device_T -> ("pMemoryGetRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result) , pVkGetSemaphoreWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr SemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) , pVkImportSemaphoreWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr ImportSemaphoreWin32HandleInfoKHR) -> IO Result) , pVkGetSemaphoreFdKHR :: FunPtr (Ptr Device_T -> ("pGetFdInfo" ::: Ptr SemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result)@@ -911,6 +911,7 @@ , pVkCmdDrawMeshTasksIndirectCountNV :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) , pVkCompileDeferredNV :: FunPtr (Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result) , pVkCreateAccelerationStructureNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result)+ , pVkCmdBindInvocationMaskHUAWEI :: FunPtr (Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()) , pVkDestroyAccelerationStructureKHR :: FunPtr (Ptr Device_T -> AccelerationStructureKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkDestroyAccelerationStructureNV :: FunPtr (Ptr Device_T -> AccelerationStructureNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkGetAccelerationStructureMemoryRequirementsNV :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr AccelerationStructureMemoryRequirementsInfoNV) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2KHR)) -> IO ())@@ -1016,6 +1017,7 @@ , 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 ())+ , pVkWaitForPresentKHR :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("presentId" ::: Word64) -> ("timeout" ::: Word64) -> IO Result) } deriving instance Eq DeviceCmds@@ -1065,6 +1067,7 @@ 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)@@ -1323,6 +1326,7 @@ vkCmdDrawMeshTasksIndirectCountNV <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksIndirectCountNV"#) vkCompileDeferredNV <- getDeviceProcAddr' handle (Ptr "vkCompileDeferredNV"#) vkCreateAccelerationStructureNV <- getDeviceProcAddr' handle (Ptr "vkCreateAccelerationStructureNV"#)+ vkCmdBindInvocationMaskHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdBindInvocationMaskHUAWEI"#) vkDestroyAccelerationStructureKHR <- getDeviceProcAddr' handle (Ptr "vkDestroyAccelerationStructureKHR"#) vkDestroyAccelerationStructureNV <- getDeviceProcAddr' handle (Ptr "vkDestroyAccelerationStructureNV"#) vkGetAccelerationStructureMemoryRequirementsNV <- getDeviceProcAddr' handle (Ptr "vkGetAccelerationStructureMemoryRequirementsNV"#)@@ -1428,6 +1432,7 @@ vkDestroyCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuModuleNVX"#) vkDestroyCuFunctionNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuFunctionNVX"#) vkCmdCuLaunchKernelNVX <- getDeviceProcAddr' handle (Ptr "vkCmdCuLaunchKernelNVX"#)+ vkWaitForPresentKHR <- getDeviceProcAddr' handle (Ptr "vkWaitForPresentKHR"#) pure $ DeviceCmds handle (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr) (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1581,7 +1586,7 @@ (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr MemoryFdPropertiesKHR) -> IO Result) vkGetMemoryFdPropertiesKHR) (castFunPtr @_ @(Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr MemoryGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result) vkGetMemoryZirconHandleFUCHSIA) (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("zirconHandle" ::: Zx_handle_t) -> ("pMemoryZirconHandleProperties" ::: Ptr MemoryZirconHandlePropertiesFUCHSIA) -> IO Result) vkGetMemoryZirconHandlePropertiesFUCHSIA)- (castFunPtr @_ @(Ptr Device_T -> ("getMemoryRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result) vkGetMemoryRemoteAddressNV)+ (castFunPtr @_ @(Ptr Device_T -> ("pMemoryGetRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result) vkGetMemoryRemoteAddressNV) (castFunPtr @_ @(Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr SemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) vkGetSemaphoreWin32HandleKHR) (castFunPtr @_ @(Ptr Device_T -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr ImportSemaphoreWin32HandleInfoKHR) -> IO Result) vkImportSemaphoreWin32HandleKHR) (castFunPtr @_ @(Ptr Device_T -> ("pGetFdInfo" ::: Ptr SemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) vkGetSemaphoreFdKHR)@@ -1667,6 +1672,7 @@ (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectCountNV) (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result) vkCompileDeferredNV) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result) vkCreateAccelerationStructureNV)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()) vkCmdBindInvocationMaskHUAWEI) (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureKHR -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyAccelerationStructureKHR) (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyAccelerationStructureNV) (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr AccelerationStructureMemoryRequirementsInfoNV) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2KHR)) -> IO ()) vkGetAccelerationStructureMemoryRequirementsNV)@@ -1772,4 +1778,5 @@ (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)+ (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("presentId" ::: Word64) -> ("timeout" ::: Word64) -> IO Result) vkWaitForPresentKHR)
src/Vulkan/Extensions.hs view
@@ -84,6 +84,7 @@ , module Vulkan.Extensions.VK_EXT_scalar_block_layout , module Vulkan.Extensions.VK_EXT_separate_stencil_usage , module Vulkan.Extensions.VK_EXT_shader_atomic_float+ , module Vulkan.Extensions.VK_EXT_shader_atomic_float2 , module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation , module Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 , module Vulkan.Extensions.VK_EXT_shader_stencil_export@@ -112,6 +113,7 @@ , module Vulkan.Extensions.VK_GOOGLE_display_timing , module Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 , module Vulkan.Extensions.VK_GOOGLE_user_type+ , module Vulkan.Extensions.VK_HUAWEI_invocation_mask , module Vulkan.Extensions.VK_IMG_filter_cubic , module Vulkan.Extensions.VK_IMG_format_pvrtc , module Vulkan.Extensions.VK_INTEL_performance_query@@ -162,6 +164,8 @@ , module Vulkan.Extensions.VK_KHR_pipeline_executable_properties , module Vulkan.Extensions.VK_KHR_pipeline_library , module Vulkan.Extensions.VK_KHR_portability_subset+ , module Vulkan.Extensions.VK_KHR_present_id+ , module Vulkan.Extensions.VK_KHR_present_wait , module Vulkan.Extensions.VK_KHR_push_descriptor , module Vulkan.Extensions.VK_KHR_ray_query , module Vulkan.Extensions.VK_KHR_ray_tracing_pipeline@@ -330,6 +334,7 @@ import Vulkan.Extensions.VK_EXT_scalar_block_layout import Vulkan.Extensions.VK_EXT_separate_stencil_usage import Vulkan.Extensions.VK_EXT_shader_atomic_float+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 import Vulkan.Extensions.VK_EXT_shader_stencil_export@@ -358,6 +363,7 @@ import Vulkan.Extensions.VK_GOOGLE_display_timing import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 import Vulkan.Extensions.VK_GOOGLE_user_type+import Vulkan.Extensions.VK_HUAWEI_invocation_mask import Vulkan.Extensions.VK_IMG_filter_cubic import Vulkan.Extensions.VK_IMG_format_pvrtc import Vulkan.Extensions.VK_INTEL_performance_query@@ -408,6 +414,8 @@ import Vulkan.Extensions.VK_KHR_pipeline_executable_properties import Vulkan.Extensions.VK_KHR_pipeline_library import Vulkan.Extensions.VK_KHR_portability_subset+import Vulkan.Extensions.VK_KHR_present_id+import Vulkan.Extensions.VK_KHR_present_wait import Vulkan.Extensions.VK_KHR_push_descriptor import Vulkan.Extensions.VK_KHR_ray_query import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline
src/Vulkan/Extensions/Dependencies.hs view
@@ -18,6 +18,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_calibrated_timestamps (pattern EXT_CALIBRATED_TIMESTAMPS_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)@@ -56,6 +57,7 @@ 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) import Vulkan.Extensions.VK_EXT_scalar_block_layout (pattern EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)@@ -74,6 +76,7 @@ import Vulkan.Extensions.VK_GGP_frame_token (pattern GGP_FRAME_TOKEN_EXTENSION_NAME) import Vulkan.Extensions.VK_GGP_stream_descriptor_surface (pattern GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_GOOGLE_display_timing (pattern GOOGLE_DISPLAY_TIMING_EXTENSION_NAME)+import Vulkan.Extensions.VK_HUAWEI_invocation_mask (pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME) import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_16bit_storage (pattern KHR_16BIT_STORAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_8bit_storage (pattern KHR_8BIT_STORAGE_EXTENSION_NAME)@@ -118,6 +121,8 @@ import Vulkan.Extensions.VK_KHR_performance_query (pattern KHR_PERFORMANCE_QUERY_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_pipeline_executable_properties (pattern KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_portability_subset (pattern KHR_PORTABILITY_SUBSET_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_present_id (pattern KHR_PRESENT_ID_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_present_wait (pattern KHR_PRESENT_WAIT_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_push_descriptor (pattern KHR_PUSH_DESCRIPTOR_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME)@@ -379,6 +384,7 @@ ] KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_SHADER_CLOCK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] GGP_FRAME_TOKEN_EXTENSION_NAME ->@@ -440,7 +446,9 @@ , KHR_MULTIVIEW_EXTENSION_NAME , KHR_MAINTENANCE2_EXTENSION_NAME ]- EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ KHR_PRESENT_WAIT_EXTENSION_NAME ->+ [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_PRESENT_ID_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME] NV_COOPERATIVE_MATRIX_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME -> [NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME] EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]@@ -459,19 +467,22 @@ , KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME , KHR_SWAPCHAIN_EXTENSION_NAME ]- EXT_HEADLESS_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]- KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- EXT_LINE_RASTERIZATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- EXT_HOST_QUERY_RESET_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_HEADLESS_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_LINE_RASTERIZATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_HOST_QUERY_RESET_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME ->+ [EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME] EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME -> [EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+ KHR_PRESENT_ID_EXTENSION_NAME -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME] NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_SYNCHRONIZATION_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]@@ -523,6 +534,18 @@ [ KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME , KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ ]+ HUAWEI_INVOCATION_MASK_EXTENSION_NAME ->+ [ KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME+ , KHR_SYNCHRONIZATION_2_EXTENSION_NAME+ , KHR_SPIRV_1_4_EXTENSION_NAME+ , KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+ , KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+ , KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+ , KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+ , KHR_MAINTENANCE3_EXTENSION_NAME ] NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME -> [ KHR_EXTERNAL_MEMORY_EXTENSION_NAME
src/Vulkan/Extensions/Handles.hs view
@@ -424,7 +424,8 @@ -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.releaseFullScreenExclusiveModeEXT', -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT',--- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD'+-- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',+-- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR' newtype SwapchainKHR = SwapchainKHR Word64 deriving newtype (Eq, Ord, Storable, Zero) deriving anyclass (IsHandle)
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -174,7 +174,7 @@ -- __RESOLVED__: This would be desirable, so that apps converting from -- OpenGL ES to Vulkan could get the same output given the same input. But -- since sampling and conversion from Y′CBCR images is so loosely defined--- in OpenGL ES, multiple implementations do it in a way that doesn’t+-- in OpenGL ES, multiple implementations do it in a way that does not -- conform to Vulkan’s requirements. Modifying the OpenGL ES implementation -- would be difficult, and would change the output of existing unmodified -- applications. Changing the output only for applications that are being
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -174,7 +174,7 @@ -- __RESOLVED__: This would be desirable, so that apps converting from -- OpenGL ES to Vulkan could get the same output given the same input. But -- since sampling and conversion from Y′CBCR images is so loosely defined--- in OpenGL ES, multiple implementations do it in a way that doesn’t+-- in OpenGL ES, multiple implementations do it in a way that does not -- conform to Vulkan’s requirements. Modifying the OpenGL ES implementation -- would be difficult, and would change the output of existing unmodified -- applications. Changing the output only for applications that are being
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -21,6 +21,8 @@ -- -- - Requires Vulkan 1.0 --+-- - Requires @VK_KHR_get_physical_device_properties2@+-- -- [__Contact__] -- -- - Daniel Rakos@@ -100,7 +102,7 @@ -- type. The proposed API chooses the general approach for the sake of -- extensibility. ----- 4) Shouldn’t we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC?+-- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC? -- -- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations, -- however, it is subject to NTP adjustments so some use cases may prefer@@ -126,13 +128,13 @@ -- -- __RESOLVED__: Yes, especially as some time domains by definition allow -- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments).--- Thus it’s recommended that applications re-calibrate from time to time.+-- Thus it is recommended that applications re-calibrate from time to time. -- -- 7) Should we add a query for reporting the maximum deviation of the -- timestamp values returned by calibrated timestamp queries? -- -- __RESOLVED__: A global query seems inappropriate and difficult to--- enforce. However, it’s possible to return the maximum deviation any+-- enforce. However, it is possible to return the maximum deviation any -- single calibrated timestamp query can have by sampling one of the time -- domains twice as follows: --@@ -146,7 +148,7 @@ -- -- __RESOLVED__: Unless the tick of each clock corresponding to the set of -- time domains coincides and all clocks can literally be sampled--- simutaneously, there isn’t really a possibility for the maximum+-- simutaneously, there is not really a possibility for the maximum -- deviation to be zero, so by convention the maximum deviation is always -- at least the maximum of the length of the ticks of the set of time -- domains calibrated and thus can never be zero.
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -21,6 +21,8 @@ -- -- - Requires Vulkan 1.0 --+-- - Requires @VK_KHR_get_physical_device_properties2@+-- -- [__Contact__] -- -- - Daniel Rakos@@ -100,7 +102,7 @@ -- type. The proposed API chooses the general approach for the sake of -- extensibility. ----- 4) Shouldn’t we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC?+-- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC? -- -- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations, -- however, it is subject to NTP adjustments so some use cases may prefer@@ -126,13 +128,13 @@ -- -- __RESOLVED__: Yes, especially as some time domains by definition allow -- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments).--- Thus it’s recommended that applications re-calibrate from time to time.+-- Thus it is recommended that applications re-calibrate from time to time. -- -- 7) Should we add a query for reporting the maximum deviation of the -- timestamp values returned by calibrated timestamp queries? -- -- __RESOLVED__: A global query seems inappropriate and difficult to--- enforce. However, it’s possible to return the maximum deviation any+-- enforce. However, it is possible to return the maximum deviation any -- single calibrated timestamp query can have by sampling one of the time -- domains twice as follows: --@@ -146,7 +148,7 @@ -- -- __RESOLVED__: Unless the tick of each clock corresponding to the set of -- time domains coincides and all clocks can literally be sampled--- simutaneously, there isn’t really a possibility for the maximum+-- simutaneously, there is not really a possibility for the maximum -- deviation to be zero, so by convention the maximum deviation is always -- at least the maximum of the length of the ticks of the set of time -- domains calibrated and thus can never be zero.
src/Vulkan/Extensions/VK_EXT_color_write_enable.hs view
@@ -352,12 +352,15 @@ -- -- 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.+-- 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 --
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -266,22 +266,23 @@ -- primitives. conservativePointAndLineRasterization :: Bool , -- | #limits-degenerateTrianglesRasterized# @degenerateTrianglesRasterized@- -- is false if the implementation culls primitives generated from triangles- -- that become zero area after they are quantized to the fixed-point- -- rasterization pixel grid. @degenerateTrianglesRasterized@ is- -- 'Vulkan.Core10.FundamentalTypes.TRUE' if these primitives are not culled- -- and the provoking vertex attributes and depth value are used for the- -- fragments. The primitive area calculation is done on the primitive- -- generated from the clipped triangle if applicable. Zero area primitives- -- are backfacing and the application /can/ enable backface culling if- -- desired.- degenerateTrianglesRasterized :: Bool- , -- | #limits-degenerateLinesRasterized# @degenerateLinesRasterized@ is false- -- if the implementation culls lines that become zero length after they are+ -- is 'Vulkan.Core10.FundamentalTypes.FALSE' if the implementation culls+ -- primitives generated from triangles that become zero area after they are -- quantized to the fixed-point rasterization pixel grid.- -- @degenerateLinesRasterized@ is 'Vulkan.Core10.FundamentalTypes.TRUE' if- -- zero length lines are not culled and the provoking vertex attributes and- -- depth value are used for the fragments.+ -- @degenerateTrianglesRasterized@ is 'Vulkan.Core10.FundamentalTypes.TRUE'+ -- if these primitives are not culled and the provoking vertex attributes+ -- and depth value are used for the fragments. The primitive area+ -- calculation is done on the primitive generated from the clipped triangle+ -- if applicable. Zero area primitives are backfacing and the application+ -- /can/ enable backface culling if desired.+ degenerateTrianglesRasterized :: Bool+ , -- | #limits-degenerateLinesRasterized# @degenerateLinesRasterized@ is+ -- 'Vulkan.Core10.FundamentalTypes.FALSE' if the implementation culls lines+ -- that become zero length after they are quantized to the fixed-point+ -- rasterization pixel grid. @degenerateLinesRasterized@ is+ -- 'Vulkan.Core10.FundamentalTypes.TRUE' if zero length lines are not+ -- culled and the provoking vertex attributes and depth value are used for+ -- the fragments. degenerateLinesRasterized :: Bool , -- | #limits-fullyCoveredFragmentShaderInputVariable# -- @fullyCoveredFragmentShaderInputVariable@ is
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -167,8 +167,8 @@ -- 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+-- __RESOLVED__: Separating these does not make much sense as the existing+-- fixed border color types do not 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. --
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot view
@@ -167,8 +167,8 @@ -- 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+-- __RESOLVED__: Separating these does not make much sense as the existing+-- fixed border color types do not 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. --
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -423,8 +423,8 @@ -- statements, it may take a while before the new functionality is fully -- exposed. ----- 3) If the validation layers won’t expose the new functionality--- immediately, then what’s the point of this extension?+-- 3) If the validation layers will not expose the new functionality+-- immediately, then what is the point of this extension? -- -- __RESOLVED__: We needed a replacement for @VK_EXT_debug_report@ because -- the 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT'@@ -440,9 +440,9 @@ -- related. If we did split up the extension, where would the structures -- and enums live, and how would you define that the device behavior in the -- instance extension is really only valid if the device extension is--- enabled, and the functionality is passed in. It’s cleaner to just define--- this all as an instance extension, plus it allows the application to--- enable all debug functionality provided with one enable string during+-- enabled, and the functionality is passed in. It is cleaner to just+-- define this all as an instance extension, plus it allows the application+-- to enable all debug functionality provided with one enable string during -- 'Vulkan.Core10.DeviceInitialization.createInstance'. -- -- == Version History
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -423,8 +423,8 @@ -- statements, it may take a while before the new functionality is fully -- exposed. ----- 3) If the validation layers won’t expose the new functionality--- immediately, then what’s the point of this extension?+-- 3) If the validation layers will not expose the new functionality+-- immediately, then what is the point of this extension? -- -- __RESOLVED__: We needed a replacement for @VK_EXT_debug_report@ because -- the 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT'@@ -440,9 +440,9 @@ -- related. If we did split up the extension, where would the structures -- and enums live, and how would you define that the device behavior in the -- instance extension is really only valid if the device extension is--- enabled, and the functionality is passed in. It’s cleaner to just define--- this all as an instance extension, plus it allows the application to--- enable all debug functionality provided with one enable string during+-- enabled, and the functionality is passed in. It is cleaner to just+-- define this all as an instance extension, plus it allows the application+-- to enable all debug functionality provided with one enable string during -- 'Vulkan.Core10.DeviceInitialization.createInstance'. -- -- == Version History
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -118,18 +118,18 @@ -- 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--- don’t. The proposal would work fine in the face of most unknown--- extensions. But even for ones we know about, since apps can provide a--- different set of callbacks and userdata and those can be retained by the--- driver and used later (esp. for pool object, but not just those), we’d--- have to dynamically allocate the interception trampoline every time.--- That’s getting to be an unreasonably large amount of complexity and--- (possibly) overhead.+-- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That may+-- be doable for the extensions we know about, but not for ones we do not.+-- The proposal would work fine in the face of most unknown extensions. But+-- even for ones we know about, since apps can provide a different set of+-- callbacks and userdata and those can be retained by the driver and used+-- later (esp. for pool object, but not just those), we would have to+-- dynamically allocate the interception trampoline every time. That is+-- getting to be an unreasonably large amount of complexity and (possibly)+-- overhead. ----- We’re interested in both alloc\/free and import\/unimport. The latter is--- fairly important for tracking (and avoiding double-counting) of+-- We are 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@@ -140,10 +140,10 @@ -- The internal alloc\/free callbacks are not extensible except via new -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values. The 'DeviceMemoryReportCallbackDataEXT' in this extension is--- extensible. That was deliberate: there’s a real possibility we’ll want--- to get extra information in the future. As one example, currently this--- reports only physical allocations, but we believe there are interesting--- cases for tracking how populated that VA region is.+-- extensible. That was deliberate: there is a real possibility we will+-- want to get extra information in the future. As one example, currently+-- this reports only physical allocations, but we believe there are+-- interesting cases for tracking how populated that VA region is. -- -- The callbacks are clearly specified as only callable within the context -- of a call from the app into Vulkan. We believe there are some cases@@ -159,12 +159,12 @@ -- -- 3) Should the callback be reporting which heap is used? ----- __RESOLVED__: Yes. It’s important for non-UMA systems to have all the+-- __RESOLVED__: Yes. It is important for non-UMA systems to have all the -- device memory allocations attributed to the corresponding device memory -- heaps. For internally-allocated device memory, @heapIndex@ will always -- correspond to an advertised heap, rather than having a magic value--- indicating a non-advertised heap. Drivers can advertise heaps that don’t--- have any corresponding memory types if they need to.+-- indicating a non-advertised heap. Drivers can advertise heaps that do+-- not have any corresponding memory types if they need to. -- -- 4) Should we use an array of callback for the layers to intercept -- instead of chaining multiple of the@@ -173,9 +173,9 @@ -- -- __RESOLVED__ No. The pointer to the -- 'DeviceDeviceMemoryReportCreateInfoEXT' structure itself is const and--- you can’t just cast it away. Thus we can’t update the callback array--- inside the structure. In addition, we can’t drop this @pNext@ chain--- either, so making a copy of this whole structure doesn’t work either.+-- you cannot just cast it away. Thus we cannot update the callback array+-- inside the structure. In addition, we cannot drop this @pNext@ chain+-- either, so making a copy of this whole structure does not work either. -- -- 5) Should we track bulk allocations shared among multiple objects? --@@ -197,7 +197,7 @@ -- __RESOLVED__ No. Some implementations might choose to multiplex work -- from multiple application threads into a single backend thread and -- perform JIT allocations as a part of that flow. Since this behavior is--- theoretically legit, we can’t require the callbacks to be always called+-- theoretically legit, we cannot require the callbacks to be always called -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. --
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -118,18 +118,18 @@ -- 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--- don’t. The proposal would work fine in the face of most unknown--- extensions. But even for ones we know about, since apps can provide a--- different set of callbacks and userdata and those can be retained by the--- driver and used later (esp. for pool object, but not just those), we’d--- have to dynamically allocate the interception trampoline every time.--- That’s getting to be an unreasonably large amount of complexity and--- (possibly) overhead.+-- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That may+-- be doable for the extensions we know about, but not for ones we do not.+-- The proposal would work fine in the face of most unknown extensions. But+-- even for ones we know about, since apps can provide a different set of+-- callbacks and userdata and those can be retained by the driver and used+-- later (esp. for pool object, but not just those), we would have to+-- dynamically allocate the interception trampoline every time. That is+-- getting to be an unreasonably large amount of complexity and (possibly)+-- overhead. ----- We’re interested in both alloc\/free and import\/unimport. The latter is--- fairly important for tracking (and avoiding double-counting) of+-- We are 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@@ -140,10 +140,10 @@ -- The internal alloc\/free callbacks are not extensible except via new -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values. The 'DeviceMemoryReportCallbackDataEXT' in this extension is--- extensible. That was deliberate: there’s a real possibility we’ll want--- to get extra information in the future. As one example, currently this--- reports only physical allocations, but we believe there are interesting--- cases for tracking how populated that VA region is.+-- extensible. That was deliberate: there is a real possibility we will+-- want to get extra information in the future. As one example, currently+-- this reports only physical allocations, but we believe there are+-- interesting cases for tracking how populated that VA region is. -- -- The callbacks are clearly specified as only callable within the context -- of a call from the app into Vulkan. We believe there are some cases@@ -159,12 +159,12 @@ -- -- 3) Should the callback be reporting which heap is used? ----- __RESOLVED__: Yes. It’s important for non-UMA systems to have all the+-- __RESOLVED__: Yes. It is important for non-UMA systems to have all the -- device memory allocations attributed to the corresponding device memory -- heaps. For internally-allocated device memory, @heapIndex@ will always -- correspond to an advertised heap, rather than having a magic value--- indicating a non-advertised heap. Drivers can advertise heaps that don’t--- have any corresponding memory types if they need to.+-- indicating a non-advertised heap. Drivers can advertise heaps that do+-- not have any corresponding memory types if they need to. -- -- 4) Should we use an array of callback for the layers to intercept -- instead of chaining multiple of the@@ -173,9 +173,9 @@ -- -- __RESOLVED__ No. The pointer to the -- 'DeviceDeviceMemoryReportCreateInfoEXT' structure itself is const and--- you can’t just cast it away. Thus we can’t update the callback array--- inside the structure. In addition, we can’t drop this @pNext@ chain--- either, so making a copy of this whole structure doesn’t work either.+-- you cannot just cast it away. Thus we cannot update the callback array+-- inside the structure. In addition, we cannot drop this @pNext@ chain+-- either, so making a copy of this whole structure does not work either. -- -- 5) Should we track bulk allocations shared among multiple objects? --@@ -197,7 +197,7 @@ -- __RESOLVED__ No. Some implementations might choose to multiplex work -- from multiple application threads into a single backend thread and -- perform JIT allocations as a part of that flow. Since this behavior is--- theoretically legit, we can’t require the callbacks to be always called+-- theoretically legit, we cannot require the callbacks to be always called -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -756,7 +756,8 @@ -- 'Vulkan.Core10.Handles.CommandBuffer' handle -- -- - #VUID-vkCmdBindVertexBuffers2EXT-pBuffers-parameter# @pBuffers@--- /must/ be a valid pointer to an array of @bindingCount@ valid+-- /must/ be a valid pointer to an array of @bindingCount@ valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- 'Vulkan.Core10.Handles.Buffer' handles -- -- - #VUID-vkCmdBindVertexBuffers2EXT-pOffsets-parameter# @pOffsets@@@ -784,9 +785,9 @@ -- greater than @0@ -- -- - #VUID-vkCmdBindVertexBuffers2EXT-commonparent# Both of--- @commandBuffer@, and the elements of @pBuffers@ /must/ have been--- created, allocated, or retrieved from the same--- 'Vulkan.Core10.Handles.Device'+-- @commandBuffer@, and the elements of @pBuffers@ that are valid+-- handles of non-ignored parameters /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device' -- -- == Host Synchronization --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -175,8 +175,8 @@ "dynamic" mkVkCmdSetPatchControlPointsEXT :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO () --- | vkCmdSetPatchControlPointsEXT - specifies the number of control points--- per patch+-- | vkCmdSetPatchControlPointsEXT - Specify the number of control points per+-- patch -- -- = Description --@@ -411,7 +411,7 @@ "dynamic" mkVkCmdSetLogicOpEXT :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ()) -> Ptr CommandBuffer_T -> LogicOp -> IO () --- | vkCmdSetLogicOpEXT - selects which logical operation to apply for blend+-- | vkCmdSetLogicOpEXT - Select which logical operation to apply for blend -- state -- -- = Description@@ -489,7 +489,7 @@ "dynamic" mkVkCmdSetPrimitiveRestartEnableEXT :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO () --- | vkCmdSetPrimitiveRestartEnableEXT - controls whether a special vertex+-- | vkCmdSetPrimitiveRestartEnableEXT - Control whether a special vertex -- index value is treated as restarting the assembly of primitives -- -- = Description
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -112,14 +112,14 @@ -- 3) Can the application free the host allocation? -- -- __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.+-- object imported from a host allocation that is 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+-- but it is not required. Some implementations might return a different -- virtual mapping of the allocation, although the same physical pages will -- be used. --@@ -312,7 +312,7 @@ pure $ (pMemoryHostPointerProperties) --- | VkImportMemoryHostPointerInfoEXT - import memory from a host pointer+-- | VkImportMemoryHostPointerInfoEXT - Import memory from a host pointer -- -- = Description --
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot view
@@ -112,14 +112,14 @@ -- 3) Can the application free the host allocation? -- -- __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.+-- object imported from a host allocation that is 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+-- but it is not required. Some implementations might return a different -- virtual mapping of the allocation, although the same physical pages will -- be used. --
src/Vulkan/Extensions/VK_EXT_global_priority.hs view
@@ -48,8 +48,8 @@ -- -- In Vulkan, users can specify device-scope queue priorities. In some -- cases it may be useful to extend this concept to a system-wide scope.--- This extension provides a mechanism for caller’s to set their--- system-wide priority. The default queue priority is+-- This extension provides a mechanism for callers to set their system-wide+-- priority. The default queue priority is -- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'. -- -- The driver implementation will attempt to skew hardware resource
src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot view
@@ -48,8 +48,8 @@ -- -- In Vulkan, users can specify device-scope queue priorities. In some -- cases it may be useful to extend this concept to a system-wide scope.--- This extension provides a mechanism for caller’s to set their--- system-wide priority. The default queue priority is+-- This extension provides a mechanism for callers to set their system-wide+-- priority. The default queue priority is -- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT'. -- -- The driver implementation will attempt to skew hardware resource
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs view
@@ -86,13 +86,14 @@ -- specific global queue priority in this extension? -- -- __RESOLVED__: No. Whether a caller has enough privilege goes with the--- OS, and the Vulkan driver can’t really guarantee that the privilege--- won’t change in between this query and the actual queue creation call.+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call. -- -- 2) If more than 1 queue using global priority is requested, is there a -- good way to know which queue is failing the device creation? ----- __RESOLVED__: No. There isn’t a good way at this moment and it’s also+-- __RESOLVED__: No. There is not a good way at this moment, and it is also -- not quite actionable for the applications to know that because the -- information may not be accurate. Queue creation can fail because of -- runtime constraints like insufficient privilege or lack of resource, and@@ -237,8 +238,8 @@ zero --- | VkQueueFamilyGlobalPriorityPropertiesEXT - return structure for queue--- family global priority info query+-- | VkQueueFamilyGlobalPriorityPropertiesEXT - Return structure for queue+-- family global priority information query -- -- = Description --
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot view
@@ -86,13 +86,14 @@ -- specific global queue priority in this extension? -- -- __RESOLVED__: No. Whether a caller has enough privilege goes with the--- OS, and the Vulkan driver can’t really guarantee that the privilege--- won’t change in between this query and the actual queue creation call.+-- OS, and the Vulkan driver cannot really guarantee that the privilege+-- will not change in between this query and the actual queue creation+-- call. -- -- 2) If more than 1 queue using global priority is requested, is there a -- good way to know which queue is failing the device creation? ----- __RESOLVED__: No. There isn’t a good way at this moment and it’s also+-- __RESOLVED__: No. There is not a good way at this moment, and it is also -- not quite actionable for the applications to know that because the -- information may not be accurate. Queue creation can fail because of -- runtime constraints like insufficient privilege or lack of resource, and
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -181,7 +181,7 @@ "dynamic" mkVkSetHdrMetadataEXT :: FunPtr (Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr HdrMetadataEXT -> IO ()) -> Ptr Device_T -> Word32 -> Ptr SwapchainKHR -> Ptr HdrMetadataEXT -> IO () --- | vkSetHdrMetadataEXT - function to set Hdr metadata+-- | vkSetHdrMetadataEXT - Set Hdr metadata -- -- == Valid Usage (Implicit) --@@ -234,7 +234,7 @@ pure $ () --- | VkXYColorEXT - structure to specify X,Y chromaticity coordinates+-- | VkXYColorEXT - Specify X,Y chromaticity coordinates -- -- = See Also --@@ -283,7 +283,7 @@ zero --- | VkHdrMetadataEXT - structure to specify Hdr metadata+-- | VkHdrMetadataEXT - Specify Hdr metadata -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -783,7 +783,7 @@ -- recorded. CommandBuffer -> -- | @pVertexInfo@ is a pointer to an array of 'MultiDrawInfoEXT' with vertex- -- info to be drawn.+ -- information to be drawn. ("vertexInfo" ::: Vector MultiDrawInfoEXT) -> -- | @instanceCount@ is the number of instances to draw. ("instanceCount" ::: Word32)@@ -1425,7 +1425,7 @@ -- recorded. CommandBuffer -> -- | @pIndexInfo@ is a pointer to an array of 'MultiDrawIndexedInfoEXT' with- -- index info to be drawn.+ -- index information to be drawn. ("indexInfo" ::: Vector MultiDrawIndexedInfoEXT) -> -- | @instanceCount@ is the number of instances to draw. ("instanceCount" ::: Word32)
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs view
@@ -53,9 +53,9 @@ -- -- DRM defines multiple device node types. Each physical device may have -- one primary node and one render node associated. Physical devices may--- have no primary node (e.g. if the device doesn’t have a display--- subsystem), may have no render node (e.g. if it’s a software rendering--- engine), or may have neither (e.g. if it’s a software rendering engine+-- have no primary node (e.g. if the device does not have a display+-- subsystem), may have no render node (e.g. if it is a software rendering+-- engine), or may have neither (e.g. if it is a software rendering engine -- without a display subsystem). -- -- To query DRM properties for a physical device, chain
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot view
@@ -53,9 +53,9 @@ -- -- DRM defines multiple device node types. Each physical device may have -- one primary node and one render node associated. Physical devices may--- have no primary node (e.g. if the device doesn’t have a display--- subsystem), may have no render node (e.g. if it’s a software rendering--- engine), or may have neither (e.g. if it’s a software rendering engine+-- have no primary node (e.g. if the device does not have a display+-- subsystem), may have no render node (e.g. if it is a software rendering+-- engine), or may have neither (e.g. if it is a software rendering engine -- without a display subsystem). -- -- To query DRM properties for a physical device, chain
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -143,7 +143,7 @@ -- 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,+-- buffer was written (assuming the provoking vertex mode has not changed, -- in APIs that support more than one mode). -- -- == Version History@@ -152,7 +152,7 @@ -- -- - Added -- VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex--- to accommodate implementations that can’t change the transform+-- to accommodate implementations that cannot change the transform -- feedback vertex order for triangle fans. -- -- - Revision 1(b), 2020-06-14 (Jesse Hall)
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot view
@@ -143,7 +143,7 @@ -- 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,+-- buffer was written (assuming the provoking vertex mode has not changed, -- in APIs that support more than one mode). -- -- == Version History@@ -152,7 +152,7 @@ -- -- - Added -- VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex--- to accommodate implementations that can’t change the transform+-- to accommodate implementations that cannot change the transform -- feedback vertex order for triangle fans. -- -- - Revision 1(b), 2020-06-14 (Jesse Hall)
src/Vulkan/Extensions/VK_EXT_robustness2.hs view
@@ -58,7 +58,7 @@ -- 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.+-- and do not rely on robustness. -- -- == New Structures --@@ -93,7 +93,7 @@ -- 'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ -- exist? ----- __RESOLVED__: Some implementations can’t efficiently tightly+-- __RESOLVED__: Some implementations cannot 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
src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot view
@@ -58,7 +58,7 @@ -- 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.+-- and do not rely on robustness. -- -- == New Structures --@@ -93,7 +93,7 @@ -- 'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ -- exist? ----- __RESOLVED__: Some implementations can’t efficiently tightly+-- __RESOLVED__: Some implementations cannot 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
+ src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs view
@@ -0,0 +1,329 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_shader_atomic_float2 - device extension+--+-- == VK_EXT_shader_atomic_float2+--+-- [__Name String__]+-- @VK_EXT_shader_atomic_float2@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 274+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_EXT_shader_atomic_float@+--+-- [__Contact__]+--+-- - Jason Ekstrand+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_shader_atomic_float2:%20&body=@jekstrand%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-08-14+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires the VK_EXT_shader_atomic_float+-- extension.+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float_min_max.html SPV_EXT_shader_atomic_float_min_max>+-- and+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float16_add.html SPV_EXT_shader_atomic_float16_add>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>+--+-- [__Contributors__]+--+-- - Jason Ekstrand, Intel+--+-- == Description+--+-- This extension allows a shader to perform 16-bit floating-point atomic+-- operations on buffer and workgroup memory as well as floating-point+-- atomic minimum and maximum operations on buffer, workgroup, and image+-- memory. It advertises the SPIR-V @AtomicFloat16AddEXT@ capability which+-- allows atomic add operations on 16-bit floating-point numbers and the+-- SPIR-V @AtomicFloat16MinMaxEXT@, @AtomicFloat32MinMaxEXT@ and+-- @AtomicFloat64MinMaxEXT@ capabilities which allow atomic minimum and+-- maximum operations on floating-point numbers. The supported operations+-- include @OpAtomicFAddEXT@, @OpAtomicFMinEXT@ and @OpAtomicFMaxEXT@.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME'+--+-- - 'EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT'+--+-- == Issues+--+-- 1) Should this extension add support for 16-bit image atomics?+--+-- __RESOLVED__: No. While Vulkan supports creating storage images with+-- 'Vulkan.Core10.Enums.Format.FORMAT_R16_SFLOAT' and doing load and store+-- on them, the data in the shader has a 32-bit representation. Vulkan+-- currently has no facility for even basic reading or writing such images+-- using 16-bit float values in the shader. Adding such functionality would+-- be required before 16-bit image atomics would make sense and is outside+-- the scope of this extension.+--+-- == New SPIR-V Capabilities+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+--+-- == Version History+--+-- - Revision 1, 2020-08-14 (Jason Ekstrand)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_shader_atomic_float2 ( PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..)+ , EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION+ , pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION+ , EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ , pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT))+-- | VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT - Structure describing+-- features supported by VK_EXT_shader_atomic_float2+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT' 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. 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT' /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 PhysicalDeviceShaderAtomicFloat2FeaturesEXT = PhysicalDeviceShaderAtomicFloat2FeaturesEXT+ { -- | #features-shaderBufferFloat16Atomics# @shaderBufferFloat16Atomics@+ -- indicates whether shaders /can/ perform 16-bit floating-point load,+ -- store, and exchange atomic operations on storage buffers.+ shaderBufferFloat16Atomics :: Bool+ , -- | #features-shaderBufferFloat16AtomicAdd# @shaderBufferFloat16AtomicAdd@+ -- indicates whether shaders /can/ perform 16-bit floating-point add atomic+ -- operations on storage buffers.+ shaderBufferFloat16AtomicAdd :: Bool+ , -- | #features-shaderBufferFloat16AtomicMinMax#+ -- @shaderBufferFloat16AtomicMinMax@ indicates whether shaders /can/+ -- perform 16-bit floating-point min and max atomic operations on storage+ -- buffers.+ shaderBufferFloat16AtomicMinMax :: Bool+ , -- | #features-shaderBufferFloat32AtomicMinMax#+ -- @shaderBufferFloat32AtomicMinMax@ indicates whether shaders /can/+ -- perform 32-bit floating-point min and max atomic operations on storage+ -- buffers.+ shaderBufferFloat32AtomicMinMax :: Bool+ , -- | #features-shaderBufferFloat64AtomicMinMax#+ -- @shaderBufferFloat64AtomicMinMax@ indicates whether shaders /can/+ -- perform 64-bit floating-point min and max atomic operations on storage+ -- buffers.+ shaderBufferFloat64AtomicMinMax :: Bool+ , -- | #features-shaderSharedFloat16Atomics# @shaderSharedFloat16Atomics@+ -- indicates whether shaders /can/ perform 16-bit floating-point load,+ -- store and exchange atomic operations on shared memory.+ shaderSharedFloat16Atomics :: Bool+ , -- | #features-shaderSharedFloat16AtomicAdd# @shaderSharedFloat16AtomicAdd@+ -- indicates whether shaders /can/ perform 16-bit floating-point add atomic+ -- operations on shared memory.+ shaderSharedFloat16AtomicAdd :: Bool+ , -- | #features-shaderSharedFloat16AtomicMinMax#+ -- @shaderSharedFloat16AtomicMinMax@ indicates whether shaders /can/+ -- perform 16-bit floating-point min and max atomic operations on shared+ -- memory.+ shaderSharedFloat16AtomicMinMax :: Bool+ , -- | #features-shaderSharedFloat32AtomicMinMax#+ -- @shaderSharedFloat32AtomicMinMax@ indicates whether shaders /can/+ -- perform 32-bit floating-point min and max atomic operations on shared+ -- memory.+ shaderSharedFloat32AtomicMinMax :: Bool+ , -- | #features-shaderSharedFloat64AtomicMinMax#+ -- @shaderSharedFloat64AtomicMinMax@ indicates whether shaders /can/+ -- perform 64-bit floating-point min and max atomic operations on shared+ -- memory.+ shaderSharedFloat64AtomicMinMax :: Bool+ , -- | #features-shaderImageFloat32AtomicMinMax#+ -- @shaderImageFloat32AtomicMinMax@ indicates whether shaders /can/ perform+ -- 32-bit floating-point min and max atomic image operations.+ shaderImageFloat32AtomicMinMax :: Bool+ , -- | #features-sparseImageFloat32AtomicMinMax#+ -- @sparseImageFloat32AtomicMinMax@ indicates whether 32-bit floating-point+ -- min and max atomic operations /can/ be used on sparse images.+ sparseImageFloat32AtomicMinMax :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)+#endif+deriving instance Show PhysicalDeviceShaderAtomicFloat2FeaturesEXT++instance ToCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+ withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderAtomicFloat2FeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat16Atomics))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat16AtomicAdd))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat16AtomicMinMax))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat32AtomicMinMax))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat64AtomicMinMax))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat16Atomics))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat16AtomicAdd))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat16AtomicMinMax))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat32AtomicMinMax))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat64AtomicMinMax))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (shaderImageFloat32AtomicMinMax))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (sparseImageFloat32AtomicMinMax))+ f+ cStructSize = 64+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_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))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+ peekCStruct p = do+ shaderBufferFloat16Atomics <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ shaderBufferFloat16AtomicAdd <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ shaderBufferFloat16AtomicMinMax <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ shaderBufferFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+ shaderBufferFloat64AtomicMinMax <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+ shaderSharedFloat16Atomics <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+ shaderSharedFloat16AtomicAdd <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+ shaderSharedFloat16AtomicMinMax <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+ shaderSharedFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+ shaderSharedFloat64AtomicMinMax <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+ shaderImageFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+ sparseImageFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+ pure $ PhysicalDeviceShaderAtomicFloat2FeaturesEXT+ (bool32ToBool shaderBufferFloat16Atomics) (bool32ToBool shaderBufferFloat16AtomicAdd) (bool32ToBool shaderBufferFloat16AtomicMinMax) (bool32ToBool shaderBufferFloat32AtomicMinMax) (bool32ToBool shaderBufferFloat64AtomicMinMax) (bool32ToBool shaderSharedFloat16Atomics) (bool32ToBool shaderSharedFloat16AtomicAdd) (bool32ToBool shaderSharedFloat16AtomicMinMax) (bool32ToBool shaderSharedFloat32AtomicMinMax) (bool32ToBool shaderSharedFloat64AtomicMinMax) (bool32ToBool shaderImageFloat32AtomicMinMax) (bool32ToBool sparseImageFloat32AtomicMinMax)++instance Storable PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+ sizeOf ~_ = 64+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderAtomicFloat2FeaturesEXT where+ zero = PhysicalDeviceShaderAtomicFloat2FeaturesEXT+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++type EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION"+pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1+++type EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2"++-- No documentation found for TopLevel "VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME"+pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2"+
+ src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot view
@@ -0,0 +1,137 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_shader_atomic_float2 - device extension+--+-- == VK_EXT_shader_atomic_float2+--+-- [__Name String__]+-- @VK_EXT_shader_atomic_float2@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 274+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_EXT_shader_atomic_float@+--+-- [__Contact__]+--+-- - Jason Ekstrand+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_shader_atomic_float2:%20&body=@jekstrand%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-08-14+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires the VK_EXT_shader_atomic_float+-- extension.+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float_min_max.html SPV_EXT_shader_atomic_float_min_max>+-- and+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_atomic_float16_add.html SPV_EXT_shader_atomic_float16_add>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float2.txt GLSL_EXT_shader_atomic_float2>+--+-- [__Contributors__]+--+-- - Jason Ekstrand, Intel+--+-- == Description+--+-- This extension allows a shader to perform 16-bit floating-point atomic+-- operations on buffer and workgroup memory as well as floating-point+-- atomic minimum and maximum operations on buffer, workgroup, and image+-- memory. It advertises the SPIR-V @AtomicFloat16AddEXT@ capability which+-- allows atomic add operations on 16-bit floating-point numbers and the+-- SPIR-V @AtomicFloat16MinMaxEXT@, @AtomicFloat32MinMaxEXT@ and+-- @AtomicFloat64MinMaxEXT@ capabilities which allow atomic minimum and+-- maximum operations on floating-point numbers. The supported operations+-- include @OpAtomicFAddEXT@, @OpAtomicFMinEXT@ and @OpAtomicFMaxEXT@.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME'+--+-- - 'EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT'+--+-- == Issues+--+-- 1) Should this extension add support for 16-bit image atomics?+--+-- __RESOLVED__: No. While Vulkan supports creating storage images with+-- 'Vulkan.Core10.Enums.Format.FORMAT_R16_SFLOAT' and doing load and store+-- on them, the data in the shader has a 32-bit representation. Vulkan+-- currently has no facility for even basic reading or writing such images+-- using 16-bit float values in the shader. Adding such functionality would+-- be required before 16-bit image atomics would make sense and is outside+-- the scope of this extension.+--+-- == New SPIR-V Capabilities+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+--+-- == Version History+--+-- - Revision 1, 2020-08-14 (Jason Ekstrand)+--+-- - Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceShaderAtomicFloat2FeaturesEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderAtomicFloat2FeaturesEXT++instance ToCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT+instance Show PhysicalDeviceShaderAtomicFloat2FeaturesEXT++instance FromCStruct PhysicalDeviceShaderAtomicFloat2FeaturesEXT+
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs view
@@ -44,7 +44,7 @@ -- -- This extension adds more expressive alignment requirements for uniform -- and storage texel buffers. Some implementations have single texel--- alignment requirements that can’t be expressed via+-- alignment requirements that cannot be expressed via -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@. -- -- == New Structures
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot view
@@ -44,7 +44,7 @@ -- -- This extension adds more expressive alignment requirements for uniform -- and storage texel buffers. Some implementations have single texel--- alignment requirements that can’t be expressed via+-- alignment requirements that cannot be expressed via -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@. -- -- == New Structures
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs view
@@ -112,7 +112,7 @@ -- 2) Should we introduce new format enums for HDR? -- -- Yes. Vulkan 1.0 describes the ASTC format enums as UNORM, e.g.--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it’s+-- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it is -- confusing to make these contain HDR data. Note that the OpenGL (ES) -- extensions did not make this distinction because a single ASTC HDR -- texture may contain both unorm and float blocks. Implementations /may/
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot view
@@ -112,7 +112,7 @@ -- 2) Should we introduce new format enums for HDR? -- -- Yes. Vulkan 1.0 describes the ASTC format enums as UNORM, e.g.--- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it’s+-- 'Vulkan.Core10.Enums.Format.FORMAT_ASTC_4x4_UNORM_BLOCK', so it is -- confusing to make these contain HDR data. Note that the OpenGL (ES) -- extensions did not make this distinction because a single ASTC HDR -- texture may contain both unorm and float blocks. Implementations /may/
+ src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs view
@@ -0,0 +1,411 @@+{-# language CPP #-}+-- | = Name+--+-- VK_HUAWEI_invocation_mask - device extension+--+-- == VK_HUAWEI_invocation_mask+--+-- [__Name String__]+-- @VK_HUAWEI_invocation_mask@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 371+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_ray_tracing_pipeline@+--+-- - Requires @VK_KHR_synchronization2@+--+-- [__Contact__]+--+-- - Yunpeng Zhu+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_HUAWEI_invocation_mask:%20&body=@yunxingzhu%20 >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.asciidoc VK_HUAWEI_invocation_mask>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-05-27+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <VK_KHR_ray_tracing_pipeline.html VK_KHR_ray_tracing_pipeline>,+-- which allow to bind an invocation mask image before the trace+-- ray command+--+-- - This extension requires+-- <VK_KHR_synchronization2.html VK_KHR_synchronization2>, which+-- allows new pipeline stage for the invocation mask image+--+-- [__Contributors__]+--+-- - Yunpeng Zhu, HuaWei+--+-- == Description+--+-- The rays to trace may be sparse in some use cases. For example, the+-- scene only have a few regions to reflect. Providing an invocation mask+-- image to the trace ray commands could potentially give the hardware the+-- hint to do certain optimization without invoking an additional pass to+-- compact the ray buffer.+--+-- == New Commands+--+-- - 'cmdBindInvocationMaskHUAWEI'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceInvocationMaskFeaturesHUAWEI'+--+-- == New Enum Constants+--+-- - 'HUAWEI_INVOCATION_MASK_EXTENSION_NAME'+--+-- - 'HUAWEI_INVOCATION_MASK_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+--+-- - 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI'+--+-- - Extending+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--+-- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI'+--+-- == Examples+--+-- RT mask is updated before each traceRay.+--+-- Step 1. Generate InvocationMask.+--+-- > //the rt mask image bind as color attachment in the fragment shader+-- > Layout(location = 2) out vec4 outRTmask+-- > vec4 mask = vec4(x,x,x,x);+-- > outRTmask = mask;+--+-- Step 2. traceRay with InvocationMask+--+-- > vkCmdBindPipeline(+-- > commandBuffers[imageIndex],+-- > VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, m_rtPipeline);+-- > vkCmdBindDescriptorSets(commandBuffers[imageIndex],+-- > VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,+-- > m_rtPipelineLayout, 0, 1, &m_rtDescriptorSet,+-- > 0, nullptr);+-- >+-- > vkCmdBindInvocationMaskHUAWEI(+-- > commandBuffers[imageIndex],+-- > InvocationMaskimageView,+-- > InvocationMaskimageLayout);+-- > vkCmdTraceRaysKHR(commandBuffers[imageIndex],+-- > pRaygenShaderBindingTable,+-- > pMissShaderBindingTable,+-- > swapChainExtent.width,+-- > swapChainExtent.height, 1);+--+-- == Version History+--+-- - Revision 1, 2021-05-27 (Yunpeng Zhu)+--+-- - Initial draft.+--+-- = See Also+--+-- 'PhysicalDeviceInvocationMaskFeaturesHUAWEI',+-- 'cmdBindInvocationMaskHUAWEI'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_HUAWEI_invocation_mask ( cmdBindInvocationMaskHUAWEI+ , PhysicalDeviceInvocationMaskFeaturesHUAWEI(..)+ , HUAWEI_INVOCATION_MASK_SPEC_VERSION+ , pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION+ , HUAWEI_INVOCATION_MASK_EXTENSION_NAME+ , pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME+ , AccessFlagBits2KHR(..)+ , AccessFlags2KHR+ , PipelineStageFlagBits2KHR(..)+ , PipelineStageFlags2KHR+ , Flags64+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+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(pVkCmdBindInvocationMaskHUAWEI))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(..))+import Vulkan.Core10.Handles (ImageView)+import Vulkan.Core10.Handles (ImageView(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI))+import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlagBits2KHR(..))+import Vulkan.Extensions.VK_KHR_synchronization2 (AccessFlags2KHR)+import Vulkan.Core10.FundamentalTypes (Flags64)+import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlagBits2KHR(..))+import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBindInvocationMaskHUAWEI+ :: FunPtr (Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()) -> Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()++-- | vkCmdBindInvocationMaskHUAWEI - Bind an invocation mask image on a+-- command buffer+--+-- == Valid Usage+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-None-04976# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977# If @imageView@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be a+-- valid 'Vulkan.Core10.Handles.ImageView' handle of type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978# If @imageView@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have a+-- format of 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979# If @imageView@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI'+-- set+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980# If @imageView@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@+-- /must/ be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-width-04981# Thread mask image+-- resolution must match the @width@ and @height@ in+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-None-04982# Each element in the+-- invocation mask image /must/ have the value @0@ or @1@. The value 1+-- means the invocation is active+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-width-04983# @width@ in+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'+-- should be 1+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameter# If+-- @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'+-- handle+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameter#+-- @imageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-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-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-renderpass# This command /must/+-- only be called outside of a render pass instance+--+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-commonparent# Both of+-- @commandBuffer@, and @imageView@ that are valid handles of+-- non-ignored parameters /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Compute |+-- | Secondary | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView'+cmdBindInvocationMaskHUAWEI :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded+ CommandBuffer+ -> -- | @imageView@ is an image view handle that specifies the invocation mask+ -- image @imageView@ /may/ be set to+ -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', which is equivalent to+ -- specifying a view of an image filled with ones value.+ ImageView+ -> -- | @imageLayout@ is the layout that the image subresources accessible from+ -- @imageView@ will be in when the invocation mask image is accessed+ ImageLayout+ -> io ()+cmdBindInvocationMaskHUAWEI commandBuffer imageView imageLayout = liftIO $ do+ let vkCmdBindInvocationMaskHUAWEIPtr = pVkCmdBindInvocationMaskHUAWEI (deviceCmds (commandBuffer :: CommandBuffer))+ unless (vkCmdBindInvocationMaskHUAWEIPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindInvocationMaskHUAWEI is null" Nothing Nothing+ let vkCmdBindInvocationMaskHUAWEI' = mkVkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEIPtr+ traceAroundEvent "vkCmdBindInvocationMaskHUAWEI" (vkCmdBindInvocationMaskHUAWEI' (commandBufferHandle (commandBuffer)) (imageView) (imageLayout))+ pure $ ()+++-- | VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - Structure describing+-- invocation mask features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceInvocationMaskFeaturesHUAWEI' 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. 'PhysicalDeviceInvocationMaskFeaturesHUAWEI' /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 PhysicalDeviceInvocationMaskFeaturesHUAWEI = PhysicalDeviceInvocationMaskFeaturesHUAWEI+ { -- | #features-invocationMask# @invocationMask@ indicates that the+ -- implementation supports the use of an invocation mask image to optimize+ -- the ray dispatch.+ invocationMask :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInvocationMaskFeaturesHUAWEI)+#endif+deriving instance Show PhysicalDeviceInvocationMaskFeaturesHUAWEI++instance ToCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceInvocationMaskFeaturesHUAWEI{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (invocationMask))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI where+ peekCStruct p = do+ invocationMask <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceInvocationMaskFeaturesHUAWEI+ (bool32ToBool invocationMask)++instance Storable PhysicalDeviceInvocationMaskFeaturesHUAWEI where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInvocationMaskFeaturesHUAWEI where+ zero = PhysicalDeviceInvocationMaskFeaturesHUAWEI+ zero+++type HUAWEI_INVOCATION_MASK_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION"+pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION :: forall a . Integral a => a+pattern HUAWEI_INVOCATION_MASK_SPEC_VERSION = 1+++type HUAWEI_INVOCATION_MASK_EXTENSION_NAME = "VK_HUAWEI_invocation_mask"++-- No documentation found for TopLevel "VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME"+pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME = "VK_HUAWEI_invocation_mask"+
+ src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot view
@@ -0,0 +1,162 @@+{-# language CPP #-}+-- | = Name+--+-- VK_HUAWEI_invocation_mask - device extension+--+-- == VK_HUAWEI_invocation_mask+--+-- [__Name String__]+-- @VK_HUAWEI_invocation_mask@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 371+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_ray_tracing_pipeline@+--+-- - Requires @VK_KHR_synchronization2@+--+-- [__Contact__]+--+-- - Yunpeng Zhu+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_HUAWEI_invocation_mask:%20&body=@yunxingzhu%20 >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.asciidoc VK_HUAWEI_invocation_mask>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-05-27+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <VK_KHR_ray_tracing_pipeline.html VK_KHR_ray_tracing_pipeline>,+-- which allow to bind an invocation mask image before the trace+-- ray command+--+-- - This extension requires+-- <VK_KHR_synchronization2.html VK_KHR_synchronization2>, which+-- allows new pipeline stage for the invocation mask image+--+-- [__Contributors__]+--+-- - Yunpeng Zhu, HuaWei+--+-- == Description+--+-- The rays to trace may be sparse in some use cases. For example, the+-- scene only have a few regions to reflect. Providing an invocation mask+-- image to the trace ray commands could potentially give the hardware the+-- hint to do certain optimization without invoking an additional pass to+-- compact the ray buffer.+--+-- == New Commands+--+-- - 'cmdBindInvocationMaskHUAWEI'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceInvocationMaskFeaturesHUAWEI'+--+-- == New Enum Constants+--+-- - 'HUAWEI_INVOCATION_MASK_EXTENSION_NAME'+--+-- - 'HUAWEI_INVOCATION_MASK_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlagBits2KHR':+--+-- - 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI'+--+-- - Extending+-- 'Vulkan.Extensions.VK_KHR_synchronization2.PipelineStageFlagBits2KHR':+--+-- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI'+--+-- == Examples+--+-- RT mask is updated before each traceRay.+--+-- Step 1. Generate InvocationMask.+--+-- > //the rt mask image bind as color attachment in the fragment shader+-- > Layout(location = 2) out vec4 outRTmask+-- > vec4 mask = vec4(x,x,x,x);+-- > outRTmask = mask;+--+-- Step 2. traceRay with InvocationMask+--+-- > vkCmdBindPipeline(+-- > commandBuffers[imageIndex],+-- > VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, m_rtPipeline);+-- > vkCmdBindDescriptorSets(commandBuffers[imageIndex],+-- > VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,+-- > m_rtPipelineLayout, 0, 1, &m_rtDescriptorSet,+-- > 0, nullptr);+-- >+-- > vkCmdBindInvocationMaskHUAWEI(+-- > commandBuffers[imageIndex],+-- > InvocationMaskimageView,+-- > InvocationMaskimageLayout);+-- > vkCmdTraceRaysKHR(commandBuffers[imageIndex],+-- > pRaygenShaderBindingTable,+-- > pMissShaderBindingTable,+-- > swapChainExtent.width,+-- > swapChainExtent.height, 1);+--+-- == Version History+--+-- - Revision 1, 2021-05-27 (Yunpeng Zhu)+--+-- - Initial draft.+--+-- = See Also+--+-- 'PhysicalDeviceInvocationMaskFeaturesHUAWEI',+-- 'cmdBindInvocationMaskHUAWEI'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceInvocationMaskFeaturesHUAWEI++instance ToCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI+instance Show PhysicalDeviceInvocationMaskFeaturesHUAWEI++instance FromCStruct PhysicalDeviceInvocationMaskFeaturesHUAWEI+
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -788,7 +788,7 @@ -- -- __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+-- and you do not 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 time instead. Applications which are written
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -788,7 +788,7 @@ -- -- __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+-- and you do not 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 time instead. Applications which are written
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -158,8 +158,8 @@ -- > [ 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+-- > // in a job system, a return of VK_THREAD_IDLE_KHR should queue another+-- > // job, but it is not functionally required -- > } -- > ); -- > }
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -100,7 +100,7 @@ -- 'Vulkan.Core10.Handles.Semaphore' instead of a -- 'Vulkan.Core10.Handles.Fence', and applications can check status or wait -- on the D3D12 fence using non-Vulkan APIs. The convenience of being able--- to do these operations on 'Vulkan.Core10.Handles.Fence' objects doesn’t+-- to do these operations on 'Vulkan.Core10.Handles.Fence' objects does not -- justify the extra API complexity. -- -- == Version History@@ -469,18 +469,18 @@ -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo'--- is not present in the same @pNext@ chain, this structure is ignored.+-- is not inluded in the same @pNext@ chain, this structure is ignored. -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo'--- is present in the @pNext@ chain of 'Vulkan.Core10.Fence.FenceCreateInfo'--- with a Windows @handleType@, but either 'ExportFenceWin32HandleInfoKHR'--- is not present in the @pNext@ chain, or if it is but @pAttributes@ is--- set to @NULL@, default security descriptor values will be used, and--- child processes created by the application will not inherit the handle,--- as described in the MSDN documentation for “Synchronization Object--- Security and Access Rights”1. Further, if the structure is not present,--- the access rights will be+-- is included in the @pNext@ chain of+-- 'Vulkan.Core10.Fence.FenceCreateInfo' with a Windows @handleType@, but+-- either 'ExportFenceWin32HandleInfoKHR' is not included in the @pNext@+-- chain, or if it is but @pAttributes@ is set to @NULL@, default security+-- descriptor values will be used, and child processes created by the+-- application will not inherit the handle, as described in the MSDN+-- documentation for “Synchronization Object Security and Access Rights”1.+-- Further, if the structure is not present, the access rights will be -- -- @DXGI_SHARED_RESOURCE_READ@ | @DXGI_SHARED_RESOURCE_WRITE@ --
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot view
@@ -100,7 +100,7 @@ -- 'Vulkan.Core10.Handles.Semaphore' instead of a -- 'Vulkan.Core10.Handles.Fence', and applications can check status or wait -- on the D3D12 fence using non-Vulkan APIs. The convenience of being able--- to do these operations on 'Vulkan.Core10.Handles.Fence' objects doesn’t+-- to do these operations on 'Vulkan.Core10.Handles.Fence' objects does not -- justify the extra API complexity. -- -- == Version History
src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -174,7 +174,7 @@ -- 'ExternalBufferPropertiesKHR' structs need to include a list of memory -- type bits that support the given handle type? ----- __PROPOSED RESOLUTION__: No. The memory types that don’t support the+-- __PROPOSED RESOLUTION__: No. The memory types that do not support the -- handle types will simply be filtered out of the results returned by -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' and -- 'Vulkan.Core10.MemoryManagement.getBufferMemoryRequirements' when a set@@ -184,7 +184,7 @@ -- -- __PROPOSED RESOLUTION__: Perhaps. However, defining the handle type bits -- does very little and does not require any platform-specific types on its--- own, and it’s easier to maintain the bitfield values in a single+-- own, and it is easier to maintain the bitfield values in a single -- extension for now. Presumably more handle types could be added by -- separate extensions though, and it would be midly weird to have some -- platform-specific ones defined in the core spec and some in extensions
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -320,7 +320,7 @@ pure $ (pMemoryFdProperties) --- | VkImportMemoryFdInfoKHR - import memory created on the same physical+-- | VkImportMemoryFdInfoKHR - Import memory created on the same physical -- device from a file descriptor -- -- = Description
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -340,7 +340,7 @@ pure $ (pMemoryWin32HandleProperties) --- | VkImportMemoryWin32HandleInfoKHR - import Win32 memory created on the+-- | VkImportMemoryWin32HandleInfoKHR - Import Win32 memory created on the -- same physical device -- -- = Description@@ -486,13 +486,13 @@ -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo'--- is not present in the same @pNext@ chain, this structure is ignored.+-- is not included in the same @pNext@ chain, this structure is ignored. -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo'--- is present in the @pNext@ chain of+-- is included in the @pNext@ chain of -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' with a Windows @handleType@,--- but either 'ExportMemoryWin32HandleInfoKHR' is not present in the+-- but either 'ExportMemoryWin32HandleInfoKHR' is not included in the -- @pNext@ chain, or if it is but @pAttributes@ is set to @NULL@, default -- security descriptor values will be used, and child processes created by -- the application will not inherit the handle, as described in the MSDN
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -543,14 +543,14 @@ -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo'--- is not present in the same @pNext@ chain, this structure is ignored.+-- is not included in the same @pNext@ chain, this structure is ignored. -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo'--- is present in the @pNext@ chain of+-- is included in the @pNext@ chain of -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' with a Windows -- @handleType@, but either 'ExportSemaphoreWin32HandleInfoKHR' is not--- present in the @pNext@ chain, or if it is but @pAttributes@ is set to+-- included in the @pNext@ chain, or if it is but @pAttributes@ is set to -- @NULL@, default security descriptor values will be used, and child -- processes created by the application will not inherit the handle, as -- described in the MSDN documentation for “Synchronization Object Security
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -1008,9 +1008,10 @@ -- attachment. @maxFragmentShadingRateAttachmentTexelSizeAspectRatio@ -- /must/ be a power-of-two value, and /must/ be less than or equal to -- max(@maxFragmentShadingRateAttachmentTexelSize.width@ \/- -- minFragmentShadingRateAttachmentTexelSize.height,+ -- @minFragmentShadingRateAttachmentTexelSize.height@, -- @maxFragmentShadingRateAttachmentTexelSize.height@ \/- -- minFragmentShadingRateAttachmentTexelSize.width). It /must/ be 0 if the+ -- @minFragmentShadingRateAttachmentTexelSize.width@). It /must/ be 0 if+ -- the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: Word32@@ -1082,7 +1083,7 @@ -- and the sample count reported by -- @maxFragmentShadingRateRasterizationSamples@. -- @maxFragmentShadingRateCoverageSamples@ /must/ be less than or equal to- -- @maxSampleMaskWords@ * 32 if @fragmentShadingRateWithShaderSampleMask@+ -- @maxSampleMaskWords@ × 32 if @fragmentShadingRateWithShaderSampleMask@ -- is supported. This limit is purely informational, and is not validated. maxFragmentShadingRateCoverageSamples :: Word32 , -- | #limits-maxFragmentShadingRateRasterizationSamples#@@ -1148,7 +1149,7 @@ fragmentShadingRateWithCustomSampleLocations :: Bool , -- | #limits-fragmentShadingRateStrictMultiplyCombiner# -- @fragmentShadingRateStrictMultiplyCombiner@ specifies whether- -- VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR accurately performs a+ -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' accurately performs a -- multiplication or not. Implementations where this value is -- 'Vulkan.Core10.FundamentalTypes.FALSE' will instead combine rates with -- an addition. If @fragmentShadingRateNonTrivialCombinerOps@ is
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs view
@@ -105,7 +105,7 @@ -- __RESOLVED__: -- -- - 'getPhysicalDeviceDisplayProperties2KHR': No. The only current input--- is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs wouldn’t+-- is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs would not -- make sense. -- -- - 'getPhysicalDeviceDisplayPlaneProperties2KHR': No. The only current
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot view
@@ -105,7 +105,7 @@ -- __RESOLVED__: -- -- - 'getPhysicalDeviceDisplayProperties2KHR': No. The only current input--- is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs wouldn’t+-- is a 'Vulkan.Core10.Handles.PhysicalDevice'. Other inputs would not -- make sense. -- -- - 'getPhysicalDeviceDisplayPlaneProperties2KHR': No. The only current
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -427,7 +427,7 @@ -- > sizeof(VkPerformanceCounterResultKHR), -- > NULL); -- >--- > // recordedCounters is filled with our counters, we'll look at one for posterity+-- > // recordedCounters is filled with our counters, we will look at one for posterity -- > switch (counters[0].storage) { -- > case VK_PERFORMANCE_COUNTER_STORAGE_INT32: -- > // use recordCounters[0].int32 to get at the counter result!
src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot view
@@ -427,7 +427,7 @@ -- > sizeof(VkPerformanceCounterResultKHR), -- > NULL); -- >--- > // recordedCounters is filled with our counters, we'll look at one for posterity+-- > // recordedCounters is filled with our counters, we will look at one for posterity -- > switch (counters[0].storage) { -- > case VK_PERFORMANCE_COUNTER_STORAGE_INT32: -- > // use recordCounters[0].int32 to get at the counter result!
src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -34,6 +34,8 @@ -- - Bill Hollings -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_portability_subset:%20&body=@billhollings%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] -- 2020-07-21 --
src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot view
@@ -34,6 +34,8 @@ -- - Bill Hollings -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_portability_subset:%20&body=@billhollings%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] -- 2020-07-21 --
+ src/Vulkan/Extensions/VK_KHR_present_id.hs view
@@ -0,0 +1,346 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_id - device extension+--+-- == VK_KHR_present_id+--+-- [__Name String__]+-- @VK_KHR_present_id@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 295+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_swapchain@+--+-- [__Contact__]+--+-- - Keith Packard+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_id:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2019-05-15+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Keith Packard, Valve+--+-- - Ian Elliott, Google+--+-- - Alon Or-bach, Samsung+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to provide an identifier for present+-- operations on a swapchain. An application /can/ use this to reference+-- specific present operations in other extensions.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePresentIdFeaturesKHR'+--+-- - Extending 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR':+--+-- - 'PresentIdKHR'+--+-- == New Enum Constants+--+-- - 'KHR_PRESENT_ID_EXTENSION_NAME'+--+-- - 'KHR_PRESENT_ID_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRESENT_ID_KHR'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- - Revision 1, 2019-05-15 (Keith Packard)+--+-- - Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentIdFeaturesKHR', 'PresentIdKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_id ( PhysicalDevicePresentIdFeaturesKHR(..)+ , PresentIdKHR(..)+ , KHR_PRESENT_ID_SPEC_VERSION+ , pattern KHR_PRESENT_ID_SPEC_VERSION+ , KHR_PRESENT_ID_EXTENSION_NAME+ , pattern KHR_PRESENT_ID_EXTENSION_NAME+ ) where++import Control.Monad (unless)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+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 qualified Data.Vector (null)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word64)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRESENT_ID_KHR))+-- | VkPhysicalDevicePresentIdFeaturesKHR - Structure indicating support for+-- present id+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePresentIdFeaturesKHR' 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. 'PhysicalDevicePresentIdFeaturesKHR' /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 PhysicalDevicePresentIdFeaturesKHR = PhysicalDevicePresentIdFeaturesKHR+ { -- | #features-presentId# @presentId@ indicates that the implementation+ -- supports specifying present ID values in the 'PresentIdKHR' extension to+ -- the 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' struct.+ presentId :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePresentIdFeaturesKHR)+#endif+deriving instance Show PhysicalDevicePresentIdFeaturesKHR++instance ToCStruct PhysicalDevicePresentIdFeaturesKHR where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePresentIdFeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentId))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDevicePresentIdFeaturesKHR where+ peekCStruct p = do+ presentId <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDevicePresentIdFeaturesKHR+ (bool32ToBool presentId)++instance Storable PhysicalDevicePresentIdFeaturesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePresentIdFeaturesKHR where+ zero = PhysicalDevicePresentIdFeaturesKHR+ zero+++-- | VkPresentIdKHR - The list of presentation identifiers+--+-- = Description+--+-- For applications to be able to reference specific presentation events+-- queued by a call to+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', an identifier+-- needs to be associated with them. When the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-presentId presentId>+-- feature is enabled, applications /can/ include the 'PresentIdKHR'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure to supply+-- identifiers.+--+-- Each 'Vulkan.Extensions.Handles.SwapchainKHR' has a presentId associated+-- with it. This value is initially set to zero when the+-- 'Vulkan.Extensions.Handles.SwapchainKHR' is created.+--+-- When a 'PresentIdKHR' structure with a non-NULL @pPresentIds@ is+-- included in the @pNext@ chain of a+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure, each+-- @pSwapchains@ entry has a presentId associated in the @pPresentIds@+-- array at the same index as the swapchain in the @pSwapchains@ array. If+-- this presentId is non-zero, then the application /can/ later use this+-- value to refer to that image presentation. A value of zero indicates+-- that this presentation has no associated presentId. A non-zero presentId+-- /must/ be greater than any non-zero presentId passed previously by the+-- application for the same swapchain.+--+-- There is no requirement for any precise timing relationship between the+-- presentation of the image to the user and the update of the presentId+-- value, but implementations /should/ make this as close as possible to+-- the presentation of the first pixel in the new image to the user.+--+-- == Valid Usage+--+-- - #VUID-VkPresentIdKHR-swapchainCount-04998# @swapchainCount@ /must/+-- be the same value as+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR'::@swapchainCount@,+-- where this 'PresentIdKHR' is in the pNext-chain of the+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure+--+-- - #VUID-VkPresentIdKHR-presentIds-04999# Each @presentIds@ entry+-- /must/ be greater than any previous @presentIds@ entry passed for+-- the associated @pSwapchains@ entry+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPresentIdKHR-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRESENT_ID_KHR'+--+-- - #VUID-VkPresentIdKHR-pPresentIds-parameter# If @pPresentIds@ is not+-- @NULL@, @pPresentIds@ /must/ be a valid pointer to an array of+-- @swapchainCount@ @uint64_t@ values+--+-- - #VUID-VkPresentIdKHR-swapchainCount-arraylength# @swapchainCount@+-- /must/ be greater than @0@+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PresentIdKHR = PresentIdKHR+ { -- | @swapchainCount@ is the number of swapchains being presented to the+ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' command.+ swapchainCount :: Word32+ , -- | @pPresentIds@ is @NULL@ or a pointer to an array of uint64_t with+ -- @swapchainCount@ entries. If not @NULL@, each non-zero value in+ -- @pPresentIds@ specifies the present id to be associated with the+ -- presentation of the swapchain with the same index in the+ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' call.+ presentIds :: Vector Word64+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PresentIdKHR)+#endif+deriving instance Show PresentIdKHR++instance ToCStruct PresentIdKHR where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PresentIdKHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRESENT_ID_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ let pPresentIdsLength = Data.Vector.length $ (presentIds)+ swapchainCount'' <- lift $ if (swapchainCount) == 0+ then pure $ fromIntegral pPresentIdsLength+ else do+ unless (fromIntegral pPresentIdsLength == (swapchainCount) || pPresentIdsLength == 0) $+ throwIO $ IOError Nothing InvalidArgument "" "pPresentIds must be empty or have 'swapchainCount' elements" Nothing Nothing+ pure (swapchainCount)+ lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (swapchainCount'')+ pPresentIds'' <- if Data.Vector.null (presentIds)+ then pure nullPtr+ else do+ pPPresentIds <- ContT $ allocaBytes @Word64 (((Data.Vector.length (presentIds))) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPPresentIds `plusPtr` (8 * (i)) :: Ptr Word64) (e)) ((presentIds))+ pure $ pPPresentIds+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Word64))) pPresentIds''+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRESENT_ID_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct PresentIdKHR where+ peekCStruct p = do+ swapchainCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pPresentIds <- peek @(Ptr Word64) ((p `plusPtr` 24 :: Ptr (Ptr Word64)))+ let pPresentIdsLength = if pPresentIds == nullPtr then 0 else (fromIntegral swapchainCount)+ pPresentIds' <- generateM pPresentIdsLength (\i -> peek @Word64 ((pPresentIds `advancePtrBytes` (8 * (i)) :: Ptr Word64)))+ pure $ PresentIdKHR+ swapchainCount pPresentIds'++instance Zero PresentIdKHR where+ zero = PresentIdKHR+ zero+ mempty+++type KHR_PRESENT_ID_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_PRESENT_ID_SPEC_VERSION"+pattern KHR_PRESENT_ID_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_PRESENT_ID_SPEC_VERSION = 1+++type KHR_PRESENT_ID_EXTENSION_NAME = "VK_KHR_present_id"++-- No documentation found for TopLevel "VK_KHR_PRESENT_ID_EXTENSION_NAME"+pattern KHR_PRESENT_ID_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_PRESENT_ID_EXTENSION_NAME = "VK_KHR_present_id"+
+ src/Vulkan/Extensions/VK_KHR_present_id.hs-boot view
@@ -0,0 +1,121 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_id - device extension+--+-- == VK_KHR_present_id+--+-- [__Name String__]+-- @VK_KHR_present_id@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 295+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_swapchain@+--+-- [__Contact__]+--+-- - Keith Packard+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_id:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2019-05-15+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Keith Packard, Valve+--+-- - Ian Elliott, Google+--+-- - Alon Or-bach, Samsung+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to provide an identifier for present+-- operations on a swapchain. An application /can/ use this to reference+-- specific present operations in other extensions.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePresentIdFeaturesKHR'+--+-- - Extending 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR':+--+-- - 'PresentIdKHR'+--+-- == New Enum Constants+--+-- - 'KHR_PRESENT_ID_EXTENSION_NAME'+--+-- - 'KHR_PRESENT_ID_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PRESENT_ID_KHR'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- - Revision 1, 2019-05-15 (Keith Packard)+--+-- - Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentIdFeaturesKHR', 'PresentIdKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_id ( PhysicalDevicePresentIdFeaturesKHR+ , PresentIdKHR+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePresentIdFeaturesKHR++instance ToCStruct PhysicalDevicePresentIdFeaturesKHR+instance Show PhysicalDevicePresentIdFeaturesKHR++instance FromCStruct PhysicalDevicePresentIdFeaturesKHR+++data PresentIdKHR++instance ToCStruct PresentIdKHR+instance Show PresentIdKHR++instance FromCStruct PresentIdKHR+
+ src/Vulkan/Extensions/VK_KHR_present_wait.hs view
@@ -0,0 +1,428 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_wait - device extension+--+-- == VK_KHR_present_wait+--+-- [__Name String__]+-- @VK_KHR_present_wait@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 249+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_swapchain@+--+-- - Requires @VK_KHR_present_id@+--+-- [__Contact__]+--+-- - Keith Packard+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_wait:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2019-05-15+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Keith Packard, Valve+--+-- - Ian Elliott, Google+--+-- - Tobias Hector, AMD+--+-- - Daniel Stone, Collabora+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to wait for present operations to complete.+-- An application can use this to monitor and control the pacing of the+-- application by managing the number of outstanding images yet to be+-- presented.+--+-- == New Commands+--+-- - 'waitForPresentKHR'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePresentWaitFeaturesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_PRESENT_WAIT_EXTENSION_NAME'+--+-- - 'KHR_PRESENT_WAIT_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR'+--+-- == Issues+--+-- 1) When does the wait finish?+--+-- __RESOLVED__. The wait will finish when the present is visible to the+-- user. There is no requirement for any precise timing relationship+-- between the presentation of the image to the user, but implementations+-- /should/ signal the wait as close as possible to the presentation of the+-- first pixel in the new image to the user.+--+-- 2) Should this use fences or other existing synchronization mechanism.+--+-- __RESOLVED__. Because display and rendering are often implemented in+-- separate drivers, this extension will provide a separate synchronization+-- API.+--+-- 3) Should this extension share present identification with other+-- extensions?+--+-- __RESOLVED__. Yes. A new extension, VK_KHR_present_id, should be created+-- to provide a shared structure for presentation identifiers.+--+-- 4) What happens when presentations complete out of order wrt calls to+-- vkQueuePresent? This could happen if the semaphores for the+-- presentations were ready out of order.+--+-- __OPTION A__: Require that when a PresentId is set that the driver+-- ensure that images are always presented in the order of calls to+-- vkQueuePresent.+--+-- __OPTION B__: Finish both waits when the earliest present completes.+-- This will complete the later present wait earlier than the actual+-- presentation. This should be the easiest to implement as the driver need+-- only track the largest present ID completed. This is also the+-- \'natural\' consequence of interpreting the existing vkWaitForPresentKHR+-- specificationn.+--+-- __OPTION C__: Finish both waits when both have completed. This will+-- complete the earlier presentation later than the actual presentation+-- time. This is allowed by the current specification as there is no+-- precise timing requirement for when the presentId value is updated. This+-- requires slightly more complexity in the driver as it will need to track+-- all outstanding presentId values.+--+-- == Version History+--+-- - Revision 1, 2019-02-19 (Keith Packard)+--+-- - Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentWaitFeaturesKHR', 'waitForPresentKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_wait ( waitForPresentKHR+ , waitForPresentKHRSafe+ , PhysicalDevicePresentWaitFeaturesKHR(..)+ , KHR_PRESENT_WAIT_SPEC_VERSION+ , pattern KHR_PRESENT_WAIT_SPEC_VERSION+ , KHR_PRESENT_WAIT_EXTENSION_NAME+ , pattern KHR_PRESENT_WAIT_EXTENSION_NAME+ , SwapchainKHR(..)+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import 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 (Word64)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkWaitForPresentKHR))+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.Extensions.Handles (SwapchainKHR)+import Vulkan.Extensions.Handles (SwapchainKHR(..))+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (SwapchainKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkWaitForPresentKHRUnsafe+ :: FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result++foreign import ccall+ "dynamic" mkVkWaitForPresentKHRSafe+ :: FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result++-- | waitForPresentKHR with selectable safeness+waitForPresentKHRSafeOrUnsafe :: forall io+ . (MonadIO io)+ => (FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Word64 -> IO Result)+ -> -- | @device@ is the device associated with @swapchain@.+ Device+ -> -- | @swapchain@ is the non-retired swapchain on which an image was queued+ -- for presentation.+ SwapchainKHR+ -> -- | @presentId@ is the presentation presentId to wait for.+ ("presentId" ::: Word64)+ -> -- | @timeout@ is the timeout period in units of nanoseconds. @timeout@ is+ -- adjusted to the closest value allowed by the implementation-dependent+ -- timeout accuracy, which /may/ be substantially longer than one+ -- nanosecond, and /may/ be longer than the requested period.+ ("timeout" ::: Word64)+ -> io (Result)+waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHR device swapchain presentId timeout = liftIO $ do+ let vkWaitForPresentKHRPtr = pVkWaitForPresentKHR (deviceCmds (device :: Device))+ unless (vkWaitForPresentKHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWaitForPresentKHR is null" Nothing Nothing+ let vkWaitForPresentKHR' = mkVkWaitForPresentKHR vkWaitForPresentKHRPtr+ r <- traceAroundEvent "vkWaitForPresentKHR" (vkWaitForPresentKHR' (deviceHandle (device)) (swapchain) (presentId) (timeout))+ when (r < SUCCESS) (throwIO (VulkanException r))+ pure $ (r)++-- | vkWaitForPresentKHR - Wait for presentation+--+-- = Description+--+-- 'waitForPresentKHR' waits for the presentId associated with @swapchain@+-- to be increased in value so that it is at least equal to @presentId@.+--+-- For 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' (or+-- other present mode where images may be replaced in the presentation+-- queue) any wait of this type associated with such an image /must/ be+-- signaled no later than a wait associated with the replacing image would+-- be signaled.+--+-- When the presentation has completed, the presentId associated with the+-- related @pSwapChains@ entry will be increased in value so that it is at+-- least equal to the value provided in the+-- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR' structure.+--+-- There is no requirement for any precise timing relationship between the+-- presentation of the image to the user and the update of the presentId+-- value, but implementations /should/ make this as close as possible to+-- the presentation of the first pixel in the new image to the user.+--+-- The call to 'waitForPresentKHR' will block until either the presentId+-- associated with @swapchain@ is greater than or equal to @presentId@, or+-- @timeout@ nanoseconds passes. When the swapchain becomes OUT_OF_DATE,+-- the call will either return 'Vulkan.Core10.Enums.Result.SUCCESS' (if the+-- image was delivered to the presentation engine and may have been+-- presented to the user) or will return early with status+-- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR' (if the image was not+-- presented to the user).+--+-- As an exception to the normal rules for objects which are externally+-- synchronized, the @swapchain@ passed to 'waitForPresentKHR' /may/ be+-- simultaneously used by other threads in calls to functions other than+-- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR'. Access to the+-- swapchain data associated with this extension /must/ be atomic within+-- the implementation.+--+-- == Valid Usage+--+-- - #VUID-vkWaitForPresentKHR-swapchain-04997# @swapchain@ /must/ not be+-- in the retired state+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkWaitForPresentKHR-device-parameter# @device@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkWaitForPresentKHR-swapchain-parameter# @swapchain@ /must/ be+-- a valid 'Vulkan.Extensions.Handles.SwapchainKHR' handle+--+-- - #VUID-vkWaitForPresentKHR-commonparent# Both of @device@, and+-- @swapchain@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Instance'+--+-- == Host Synchronization+--+-- - Host access to @swapchain@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- - 'Vulkan.Core10.Enums.Result.TIMEOUT'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Extensions.Handles.SwapchainKHR'+waitForPresentKHR :: forall io+ . (MonadIO io)+ => -- | @device@ is the device associated with @swapchain@.+ Device+ -> -- | @swapchain@ is the non-retired swapchain on which an image was queued+ -- for presentation.+ SwapchainKHR+ -> -- | @presentId@ is the presentation presentId to wait for.+ ("presentId" ::: Word64)+ -> -- | @timeout@ is the timeout period in units of nanoseconds. @timeout@ is+ -- adjusted to the closest value allowed by the implementation-dependent+ -- timeout accuracy, which /may/ be substantially longer than one+ -- nanosecond, and /may/ be longer than the requested period.+ ("timeout" ::: Word64)+ -> io (Result)+waitForPresentKHR = waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHRUnsafe++-- | A variant of 'waitForPresentKHR' which makes a *safe* FFI call+waitForPresentKHRSafe :: forall io+ . (MonadIO io)+ => -- | @device@ is the device associated with @swapchain@.+ Device+ -> -- | @swapchain@ is the non-retired swapchain on which an image was queued+ -- for presentation.+ SwapchainKHR+ -> -- | @presentId@ is the presentation presentId to wait for.+ ("presentId" ::: Word64)+ -> -- | @timeout@ is the timeout period in units of nanoseconds. @timeout@ is+ -- adjusted to the closest value allowed by the implementation-dependent+ -- timeout accuracy, which /may/ be substantially longer than one+ -- nanosecond, and /may/ be longer than the requested period.+ ("timeout" ::: Word64)+ -> io (Result)+waitForPresentKHRSafe = waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHRSafe+++-- | VkPhysicalDevicePresentWaitFeaturesKHR - Structure indicating support+-- for present wait+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePresentWaitFeaturesKHR' 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. 'PhysicalDevicePresentWaitFeaturesKHR' /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 PhysicalDevicePresentWaitFeaturesKHR = PhysicalDevicePresentWaitFeaturesKHR+ { -- | #features-presentWait# @presentWait@ indicates that the implementation+ -- supports 'waitForPresentKHR'.+ presentWait :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePresentWaitFeaturesKHR)+#endif+deriving instance Show PhysicalDevicePresentWaitFeaturesKHR++instance ToCStruct PhysicalDevicePresentWaitFeaturesKHR where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePresentWaitFeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentWait))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDevicePresentWaitFeaturesKHR where+ peekCStruct p = do+ presentWait <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDevicePresentWaitFeaturesKHR+ (bool32ToBool presentWait)++instance Storable PhysicalDevicePresentWaitFeaturesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePresentWaitFeaturesKHR where+ zero = PhysicalDevicePresentWaitFeaturesKHR+ zero+++type KHR_PRESENT_WAIT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_PRESENT_WAIT_SPEC_VERSION"+pattern KHR_PRESENT_WAIT_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_PRESENT_WAIT_SPEC_VERSION = 1+++type KHR_PRESENT_WAIT_EXTENSION_NAME = "VK_KHR_present_wait"++-- No documentation found for TopLevel "VK_KHR_PRESENT_WAIT_EXTENSION_NAME"+pattern KHR_PRESENT_WAIT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_PRESENT_WAIT_EXTENSION_NAME = "VK_KHR_present_wait"+
+ src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot view
@@ -0,0 +1,154 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_present_wait - device extension+--+-- == VK_KHR_present_wait+--+-- [__Name String__]+-- @VK_KHR_present_wait@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 249+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_swapchain@+--+-- - Requires @VK_KHR_present_id@+--+-- [__Contact__]+--+-- - Keith Packard+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_present_wait:%20&body=@keithp%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2019-05-15+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Keith Packard, Valve+--+-- - Ian Elliott, Google+--+-- - Tobias Hector, AMD+--+-- - Daniel Stone, Collabora+--+-- == Description+--+-- This device extension allows an application that uses the+-- @VK_KHR_swapchain@ extension to wait for present operations to complete.+-- An application can use this to monitor and control the pacing of the+-- application by managing the number of outstanding images yet to be+-- presented.+--+-- == New Commands+--+-- - 'waitForPresentKHR'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePresentWaitFeaturesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_PRESENT_WAIT_EXTENSION_NAME'+--+-- - 'KHR_PRESENT_WAIT_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR'+--+-- == Issues+--+-- 1) When does the wait finish?+--+-- __RESOLVED__. The wait will finish when the present is visible to the+-- user. There is no requirement for any precise timing relationship+-- between the presentation of the image to the user, but implementations+-- /should/ signal the wait as close as possible to the presentation of the+-- first pixel in the new image to the user.+--+-- 2) Should this use fences or other existing synchronization mechanism.+--+-- __RESOLVED__. Because display and rendering are often implemented in+-- separate drivers, this extension will provide a separate synchronization+-- API.+--+-- 3) Should this extension share present identification with other+-- extensions?+--+-- __RESOLVED__. Yes. A new extension, VK_KHR_present_id, should be created+-- to provide a shared structure for presentation identifiers.+--+-- 4) What happens when presentations complete out of order wrt calls to+-- vkQueuePresent? This could happen if the semaphores for the+-- presentations were ready out of order.+--+-- __OPTION A__: Require that when a PresentId is set that the driver+-- ensure that images are always presented in the order of calls to+-- vkQueuePresent.+--+-- __OPTION B__: Finish both waits when the earliest present completes.+-- This will complete the later present wait earlier than the actual+-- presentation. This should be the easiest to implement as the driver need+-- only track the largest present ID completed. This is also the+-- \'natural\' consequence of interpreting the existing vkWaitForPresentKHR+-- specificationn.+--+-- __OPTION C__: Finish both waits when both have completed. This will+-- complete the earlier presentation later than the actual presentation+-- time. This is allowed by the current specification as there is no+-- precise timing requirement for when the presentId value is updated. This+-- requires slightly more complexity in the driver as it will need to track+-- all outstanding presentId values.+--+-- == Version History+--+-- - Revision 1, 2019-02-19 (Keith Packard)+--+-- - Initial version+--+-- = See Also+--+-- 'PhysicalDevicePresentWaitFeaturesKHR', 'waitForPresentKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePresentWaitFeaturesKHR++instance ToCStruct PhysicalDevicePresentWaitFeaturesKHR+instance Show PhysicalDevicePresentWaitFeaturesKHR++instance FromCStruct PhysicalDevicePresentWaitFeaturesKHR+
src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -88,7 +88,7 @@ -- == Description -- -- The use of Y′CBCR sampler conversion is an area in 3D graphics not used--- by most Vulkan developers. It’s mainly used for processing inputs from+-- by most Vulkan developers. It is mainly used for processing inputs from -- video decoders and cameras. The use of the extension assumes basic -- knowledge of Y′CBCR concepts. --
src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs view
@@ -121,7 +121,7 @@ -- -- 1) Is this the same functionality as @GL_ARB_shader_draw_parameters@? ----- __RESOLVED__: It’s actually a superset as it also adds in support for+-- __RESOLVED__: It is actually a superset, as it also adds in support for -- arrayed drawing commands. -- -- In GL for @GL_ARB_shader_draw_parameters@, @gl_BaseVertexARB@ holds the
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs view
@@ -28,6 +28,8 @@ -- - Jesse Hall -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_shader_terminate_invocation:%20&body=@critsec%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] -- 2020-08-11 --
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot view
@@ -28,6 +28,8 @@ -- - Jesse Hall -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_shader_terminate_invocation:%20&body=@critsec%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] -- 2020-08-11 --
src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs view
@@ -94,7 +94,7 @@ -- == Issues -- -- 1. Should we have an extension specific to this SPIR-V version, or add a--- version-generic query for SPIR-V version? SPIR-V 1.4 doesn’t need any+-- version-generic query for SPIR-V version? SPIR-V 1.4 does not need any -- other API changes. -- -- __RESOLVED__: Just expose SPIR-V 1.4.@@ -107,13 +107,13 @@ -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties' -- to allow querying the supported group operation categories, maximum -- supported subgroup size, etc. While we could expose the parts of a new--- SPIR-V version that don’t need accompanying changes generically, we’ll--- still end up writing extensions specific to each version for the--- remaining parts. Thus the generic mechanism won’t reduce future+-- SPIR-V version that do not need accompanying changes generically, we+-- will still end up writing extensions specific to each version for the+-- remaining parts. Thus the generic mechanism will not reduce future -- spec-writing effort. In addition, making it clear which parts of a--- future version are supported by the generic mechanism and which can’t be--- used without specific support would be difficult to get right ahead of--- time.+-- future version are supported by the generic mechanism and which cannot+-- be used without specific support would be difficult to get right ahead+-- of time. -- -- 2. Can different stages of the same pipeline use shaders with different -- SPIR-V versions?@@ -145,10 +145,10 @@ -- though the extension was promoted in SPIR-V 1.4, the capabilities are -- still optional in implementations that support @VK_KHR_spirv_1_4@. ----- A SPIR-V 1.4 module doesn’t need to enable @SPV_KHR_float_controls@ in+-- A SPIR-V 1.4 module does not need to enable @SPV_KHR_float_controls@ in -- order to use the capabilities, so if the application has /a priori/--- knowledge that the implementation supports the capabilities, it doesn’t--- need to enable @VK_KHR_shader_float_controls@. However, if it doesn’t+-- knowledge that the implementation supports the capabilities, it does not+-- need to enable @VK_KHR_shader_float_controls@. However, if it does not -- have this knowledge and has to query for support at runtime, it must -- enable @VK_KHR_shader_float_controls@ in order to use -- 'Vulkan.Extensions.VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsPropertiesKHR'.
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -678,7 +678,7 @@ -- - Revision 13, 2015-06-01 (James Jones) -- -- - Moved some structures to VK_EXT_KHR_swap_chain to resolve the--- spec’s issues 1 and 2.+-- specification’s issues 1 and 2. -- -- - Revision 14, 2015-06-01 (James Jones) --@@ -1217,6 +1217,7 @@ import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_GGP_frame_token (PresentFrameTokenGGP)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PresentIdKHR) import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_incremental_present (PresentRegionsKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PresentTimesInfoGOOGLE)@@ -1870,6 +1871,9 @@ -- wait operation specified in 'PresentInfoKHR' will execute when the -- corresponding queue operation is complete. --+-- Calls to 'queuePresentKHR' /may/ block, but /must/ return in finite+-- time.+-- -- If any @swapchain@ member of @pPresentInfo@ was created with -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT', -- 'Vulkan.Core10.Enums.Result.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT'@@ -2840,6 +2844,7 @@ -- 'DeviceGroupPresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR', -- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',+-- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR', -- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR', or -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE' --@@ -2917,6 +2922,7 @@ extends _ f | Just Refl <- eqT @e @PresentFrameTokenGGP = Just f | Just Refl <- eqT @e @PresentTimesInfoGOOGLE = Just f+ | Just Refl <- eqT @e @PresentIdKHR = Just f | Just Refl <- eqT @e @DeviceGroupPresentInfoKHR = Just f | Just Refl <- eqT @e @PresentRegionsKHR = Just f | Just Refl <- eqT @e @DisplayPresentInfoKHR = Just f
src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot view
@@ -678,7 +678,7 @@ -- - Revision 13, 2015-06-01 (James Jones) -- -- - Moved some structures to VK_EXT_KHR_swap_chain to resolve the--- spec’s issues 1 and 2.+-- specification’s issues 1 and 2. -- -- - Revision 14, 2015-06-01 (James Jones) --
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -468,6 +468,7 @@ , ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR , ACCESS_2_SHADER_STORAGE_READ_BIT_KHR , ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR+ , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR@@ -507,6 +508,7 @@ , PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR+ , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI , PIPELINE_STAGE_2_MESH_SHADER_BIT_NV , PIPELINE_STAGE_2_TASK_SHADER_BIT_NV , PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT@@ -885,6 +887,11 @@ -- feature is not enabled, @stageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-vkCmdResetEvent2KHR-stageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-vkCmdResetEvent2KHR-synchronization2-03829# The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled@@ -1724,6 +1731,11 @@ -- feature is not enabled, @stage@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-vkCmdWriteTimestamp2KHR-stage-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @stage@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-vkCmdWriteTimestamp2KHR-synchronization2-03858# The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled@@ -1914,6 +1926,11 @@ -- feature is not enabled, @stage@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-vkCmdWriteBufferMarker2AMD-stage-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @stage@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled@@ -2176,6 +2193,11 @@ -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-VkMemoryBarrier2KHR-srcStageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03900# If @srcAccessMask@ -- includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @srcStageMask@ -- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',@@ -2335,6 +2357,10 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- - #VUID-VkMemoryBarrier2KHR-srcAccessMask-04994# If @srcAccessMask@+-- includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @srcStageMask@+-- /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03924# If @srcAccessMask@ -- includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @srcStageMask@ -- /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or@@ -2406,6 +2432,11 @@ -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-VkMemoryBarrier2KHR-dstStageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03900# If @dstAccessMask@ -- includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', @dstStageMask@ -- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',@@ -2565,6 +2596,10 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- - #VUID-VkMemoryBarrier2KHR-dstAccessMask-04994# If @dstAccessMask@+-- includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI', @dstStageMask@+-- /must/ include 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03924# If @dstAccessMask@ -- includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', @dstStageMask@ -- /must/ include 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' or@@ -2686,7 +2721,7 @@ -- -- This structure defines a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- limited to an image subresource range, and optionally defines a+-- limited to an image subresource range, and /can/ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>@@ -2805,6 +2840,11 @@ -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-VkImageMemoryBarrier2KHR-srcStageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03900# If -- @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', -- @srcStageMask@ /must/ include@@ -2978,6 +3018,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04994# If+-- @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @srcStageMask@ /must/ include+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03924# If -- @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', -- @srcStageMask@ /must/ include@@ -3053,6 +3098,11 @@ -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-VkImageMemoryBarrier2KHR-dstStageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03900# If -- @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', -- @dstStageMask@ /must/ include@@ -3226,6 +3276,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04994# If+-- @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @dstStageMask@ /must/ include+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03924# If -- @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', -- @dstStageMask@ /must/ include@@ -3717,7 +3772,7 @@ -- -- This structure defines a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>--- limited to a range of a buffer, and optionally defines a+-- limited to a range of a buffer, and /can/ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- for that range. --@@ -3811,6 +3866,11 @@ -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03900# If -- @srcAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', -- @srcStageMask@ /must/ include@@ -3984,6 +4044,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04994# If+-- @srcAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @srcStageMask@ /must/ include+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03924# If -- @srcAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', -- @srcStageMask@ /must/ include@@ -4059,6 +4124,11 @@ -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03900# If -- @dstAccessMask@ includes 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR', -- @dstStageMask@ /must/ include@@ -4232,6 +4302,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04994# If+-- @dstAccessMask@ includes 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI',+-- @dstStageMask@ /must/ include+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03924# If -- @dstAccessMask@ includes 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV', -- @dstStageMask@ /must/ include@@ -4615,6 +4690,11 @@ -- feature is not enabled, @stageMask@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' --+-- - #VUID-VkSemaphoreSubmitInfoKHR-stageMask-04995# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+-- -- - #VUID-VkSemaphoreSubmitInfoKHR-device-03888# If the @device@ that -- @semaphore@ was created on is not a device group, @deviceIndex@ -- /must/ be @0@@@ -5319,6 +5399,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage. pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000400000000+-- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a+-- invocation mask image in the+-- 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' pipeline stage.+pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = AccessFlagBits2KHR 0x0000008000000000 -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read -- access to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachments>,@@ -5415,6 +5499,7 @@ , (ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR , "SHADER_SAMPLED_READ_BIT_KHR") , (ACCESS_2_SHADER_STORAGE_READ_BIT_KHR , "SHADER_STORAGE_READ_BIT_KHR") , (ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR , "SHADER_STORAGE_WRITE_BIT_KHR")+ , (ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI , "INVOCATION_MASK_READ_BIT_HUAWEI") , (ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT") , (ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT") , (ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR , "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")@@ -5577,6 +5662,8 @@ -- - 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000008000 -- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' specifies all operations -- performed by all commands supported on the queue it is used with.@@ -5618,6 +5705,10 @@ -- -- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000004000000000+-- | 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' specifies the stage of the+-- pipeline where the invocation mask image is read by the implementation+-- to optimize the ray dispatch.+pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = PipelineStageFlagBits2KHR 0x0000010000000000 -- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage. pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = PipelineStageFlagBits2KHR 0x0000000000100000 -- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.@@ -5687,6 +5778,7 @@ , (PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR , "INDEX_INPUT_BIT_KHR") , (PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR , "VERTEX_ATTRIBUTE_INPUT_BIT_KHR") , (PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR , "PRE_RASTERIZATION_SHADERS_BIT_KHR")+ , (PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI , "INVOCATION_MASK_BIT_HUAWEI") , (PIPELINE_STAGE_2_MESH_SHADER_BIT_NV , "MESH_SHADER_BIT_NV") , (PIPELINE_STAGE_2_TASK_SHADER_BIT_NV , "TASK_SHADER_BIT_NV") , (PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -220,7 +220,7 @@ -- presentation and swapchain image acquisition operations? -- -- __RESOLVED__: Some implementations may have problems with supporting--- that directly, thus it’s not allowed in this extension.+-- that directly, thus it is not allowed in this extension. -- -- 8) Do we want to support external sharing of the new synchronization -- primitive type?
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -65,7 +65,7 @@ -- 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--- consumed by allowing the shader to alias data whose lifetimes don’t+-- consumed by allowing the shader to alias data whose lifetimes do not -- overlap. -- -- The explicit layout support and some form of aliasing is also required
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -65,7 +65,7 @@ -- 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--- consumed by allowing the shader to alias data whose lifetimes don’t+-- consumed by allowing the shader to alias data whose lifetimes do not -- overlap. -- -- The explicit layout support and some form of aliasing is also required
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -368,8 +368,9 @@ -- -- = Description ----- If this structure is not present, or if the extension is not enabled,--- the default coverage reduction mode is inferred as follows:+-- If this structure is not included in the @pNext@ chain, or if the+-- extension is not enabled, the default coverage reduction mode is+-- inferred as follows: -- -- - If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, then -- it is as if the @coverageReductionMode@ is
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -1851,7 +1851,7 @@ , -- No documentation found for Nested "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV" "minSequencesIndexBufferOffsetAlignment" minSequencesIndexBufferOffsetAlignment :: Word32 , -- | @minIndirectCommandsBufferOffsetAlignment@ is the minimum alignment for- -- memory addresses used in 'IndirectCommandsStreamNV' and as preprocess+ -- memory addresses used in 'IndirectCommandsStreamNV', and as preprocess -- buffer in 'GeneratedCommandsInfoNV'. minIndirectCommandsBufferOffsetAlignment :: Word32 }
src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs view
@@ -215,7 +215,6 @@ import Control.Monad.Trans.Cont (ContT(..)) import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.NamedType ((:::)) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Handles (Device) import Vulkan.Core10.Handles (Device(..))@@ -268,19 +267,23 @@ -- #VUID-vkGetMemoryRemoteAddressNV-device-parameter# @device@ /must/ be a -- valid 'Vulkan.Core10.Handles.Device' handle Device- -> -- | #VUID-vkGetMemoryRemoteAddressNV-getMemoryRemoteAddressInfo-parameter#- -- @getMemoryRemoteAddressInfo@ /must/ be a valid pointer to a valid+ -> -- | @pMemoryGetRemoteAddressInfo@ is a pointer to a+ -- 'MemoryGetRemoteAddressInfoNV' structure containing parameters of the+ -- export operation.+ --+ -- #VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameter#+ -- @pMemoryGetRemoteAddressInfo@ /must/ be a valid pointer to a valid -- 'MemoryGetRemoteAddressInfoNV' structure- ("getMemoryRemoteAddressInfo" ::: MemoryGetRemoteAddressInfoNV)+ MemoryGetRemoteAddressInfoNV -> io (RemoteAddressNV)-getMemoryRemoteAddressNV device getMemoryRemoteAddressInfo = liftIO . evalContT $ do+getMemoryRemoteAddressNV device memoryGetRemoteAddressInfo = liftIO . evalContT $ do let vkGetMemoryRemoteAddressNVPtr = pVkGetMemoryRemoteAddressNV (deviceCmds (device :: Device)) lift $ unless (vkGetMemoryRemoteAddressNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryRemoteAddressNV is null" Nothing Nothing let vkGetMemoryRemoteAddressNV' = mkVkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNVPtr- getMemoryRemoteAddressInfo' <- ContT $ withCStruct (getMemoryRemoteAddressInfo)+ pMemoryGetRemoteAddressInfo <- ContT $ withCStruct (memoryGetRemoteAddressInfo) pPAddress <- ContT $ bracket (callocBytes @RemoteAddressNV 8) free- r <- lift $ traceAroundEvent "vkGetMemoryRemoteAddressNV" (vkGetMemoryRemoteAddressNV' (deviceHandle (device)) getMemoryRemoteAddressInfo' (pPAddress))+ r <- lift $ traceAroundEvent "vkGetMemoryRemoteAddressNV" (vkGetMemoryRemoteAddressNV' (deviceHandle (device)) pMemoryGetRemoteAddressInfo (pPAddress)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pAddress <- lift $ peek @RemoteAddressNV pPAddress pure $ (pAddress)
src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs view
@@ -153,8 +153,9 @@ -- the sample coverage mask are filled with zeros. -- -- If @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',--- these operations are skipped. If this structure is not present, it is as--- if @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- these operations are skipped. If this structure is not included in the+-- @pNext@ chain, it is as if @coverageToColorEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE'. -- -- == Valid Usage --
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs view
@@ -159,7 +159,7 @@ -- -- __RESOLVED__: The SPIR-V extension for this feature chose to mirror the -- behavior of the GLSL extension, which provides two built-in variables.--- Additionally, it’s not clear that its a good idea (or even legal) to+-- Additionally, it is not clear that its a good idea (or even legal) to -- have two variables using the “same attribute”, but with different -- interpolation modifiers. --
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot view
@@ -159,7 +159,7 @@ -- -- __RESOLVED__: The SPIR-V extension for this feature chose to mirror the -- behavior of the GLSL extension, which provides two built-in variables.--- Additionally, it’s not clear that its a good idea (or even legal) to+-- Additionally, it is not clear that its a good idea (or even legal) to -- have two variables using the “same attribute”, but with different -- interpolation modifiers. --
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -135,14 +135,14 @@ -- 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 do not 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 -- VK_KHR_fragment_shading_rate together. While we expect that -- applications will never attach pipeline CreateInfo structures for--- both this extension and the KHR extension concurrently, Vulkan--- doesn’t have any precedent forbidding such behavior and instead+-- both this extension and the KHR extension concurrently, Vulkan does+-- not have any precedent forbidding such behavior and instead -- typically treats a pipeline created without an extension-specific -- CreateInfo structure as equivalent to one containing default values -- specified by the extension. Rather than adding such a rule
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot view
@@ -135,14 +135,14 @@ -- 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 do not 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 -- VK_KHR_fragment_shading_rate together. While we expect that -- applications will never attach pipeline CreateInfo structures for--- both this extension and the KHR extension concurrently, Vulkan--- doesn’t have any precedent forbidding such behavior and instead+-- both this extension and the KHR extension concurrently, Vulkan does+-- not have any precedent forbidding such behavior and instead -- typically treats a pipeline created without an extension-specific -- CreateInfo structure as equivalent to one containing default values -- specified by the extension. Rather than adding such a rule
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs view
@@ -224,8 +224,8 @@ -- value of R. Which components are modulated is controlled by -- @coverageModulationMode@. ----- If this structure is not present, it is as if @coverageModulationMode@--- is 'COVERAGE_MODULATION_MODE_NONE_NV'.+-- If this structure is not included in the @pNext@ chain, it is as if+-- @coverageModulationMode@ is 'COVERAGE_MODULATION_MODE_NONE_NV'. -- -- If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-coverage-reduction coverage reduction mode>
src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs view
@@ -183,7 +183,7 @@ -- > -- > void main() -- > {--- > // The shader simply computes and writes gl_Layer. We don't+-- > // The shader simply computes and writes gl_Layer. We do not -- > // loop over three vertices or call EmitVertex(). -- > gl_Layer = compute_layer(); -- > }
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs view
@@ -113,7 +113,7 @@ -- -- 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+-- the viewport depth state; it is the CPU-side state of -- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized. -- -- (2) Why are viewport depth values specified as a partial
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot view
@@ -113,7 +113,7 @@ -- -- 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+-- the viewport depth state; it is the CPU-side state of -- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized. -- -- (2) Why are viewport depth values specified as a partial
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -229,9 +229,9 @@ -- __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+-- would no longer be valid on implementations that do not support mesh -- or task shaders. This means the change would not be backwards--- compatible. It’s too bad VkShaderStageFlagBits doesn’t have a+-- compatible. It is too bad VkShaderStageFlagBits does not have a -- dedicated “all supported graphics stages” bit like -- VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this -- problem.
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -229,9 +229,9 @@ -- __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+-- would no longer be valid on implementations that do not support mesh -- or task shaders. This means the change would not be backwards--- compatible. It’s too bad VkShaderStageFlagBits doesn’t have a+-- compatible. It is too bad VkShaderStageFlagBits does not have a -- 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_motion_blur.hs view
@@ -362,8 +362,10 @@ -- -- = Description ----- If 'AccelerationStructureGeometryMotionTrianglesDataNV' is present in a--- geometry, the basic vertex positions are used for the position of the+-- If 'AccelerationStructureGeometryMotionTrianglesDataNV' is included in+-- the @pNext@ chain of a+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'+-- structure, the basic vertex positions are used for the position of the -- triangles in the geometry at time 0.0 and the @vertexData@ in -- 'AccelerationStructureGeometryMotionTrianglesDataNV' is used for the -- vertex positions at time 1.0, with positions linearly interpolated at@@ -651,8 +653,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,@@ -788,8 +790,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,
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs view
@@ -103,7 +103,7 @@ -- -- __RESOLVED__: No. As specified, we only guarantee that each primitive -- with at least one fragment that passes prior tests will have one--- fragment passing the representative fragment tests. We don’t guarantee+-- fragment passing the representative fragment tests. We do not guarantee -- that any particular fragment will fail the test. -- -- In the initial implementation of this extension, the representative@@ -126,7 +126,7 @@ -- __RESOLVED__: If writes to the color or depth buffer are enabled, they -- will be performed for any fragments that survive the relevant tests. Any -- fragments that fail the representative fragment test will not update--- color buffers. For the use cases intended for this feature, we don’t+-- color buffers. For the use cases intended for this feature, we do not -- expect color or depth writes to be enabled. -- -- (4) How do derivatives and automatic texture level of detail@@ -135,7 +135,7 @@ -- __RESOLVED__: If a fragment shader uses derivative functions or texture -- lookups using automatic level of detail computation, derivatives will be -- computed identically whether or not the representative fragment test is--- enabled. For the use cases intended for this feature, we don’t expect+-- enabled. For the use cases intended for this feature, we do not expect -- the use of derivatives in the fragment shader. -- -- == Version History@@ -267,9 +267,10 @@ -- -- = Description ----- If this structure is not present, @representativeFragmentTestEnable@ is--- considered to be 'Vulkan.Core10.FundamentalTypes.FALSE', and the--- representative fragment test is disabled.+-- If this structure is not included in the @pNext@ chain,+-- @representativeFragmentTestEnable@ is considered to be+-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the representative fragment+-- test is disabled. -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot view
@@ -103,7 +103,7 @@ -- -- __RESOLVED__: No. As specified, we only guarantee that each primitive -- with at least one fragment that passes prior tests will have one--- fragment passing the representative fragment tests. We don’t guarantee+-- fragment passing the representative fragment tests. We do not guarantee -- that any particular fragment will fail the test. -- -- In the initial implementation of this extension, the representative@@ -126,7 +126,7 @@ -- __RESOLVED__: If writes to the color or depth buffer are enabled, they -- will be performed for any fragments that survive the relevant tests. Any -- fragments that fail the representative fragment test will not update--- color buffers. For the use cases intended for this feature, we don’t+-- color buffers. For the use cases intended for this feature, we do not -- expect color or depth writes to be enabled. -- -- (4) How do derivatives and automatic texture level of detail@@ -135,7 +135,7 @@ -- __RESOLVED__: If a fragment shader uses derivative functions or texture -- lookups using automatic level of detail computation, derivatives will be -- computed identically whether or not the representative fragment test is--- enabled. For the use cases intended for this feature, we don’t expect+-- enabled. For the use cases intended for this feature, we do not expect -- the use of derivatives in the fragment shader. -- -- == Version History
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -240,7 +240,7 @@ -- that this same problem also exists for multisampling with single-pixel -- fragments, but is less severe because it only affects certain samples of -- a pixel and such bright\/dark samples may be averaged with other samples--- that don’t have a similar problem.+-- that do not have a similar problem. -- -- == Version History --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot view
@@ -240,7 +240,7 @@ -- that this same problem also exists for multisampling with single-pixel -- fragments, but is less severe because it only affects certain samples of -- a pixel and such bright\/dark samples may be averaged with other samples--- that don’t have a similar problem.+-- that do not have a similar problem. -- -- == Version History --
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs view
@@ -97,7 +97,7 @@ -- The viewport mask expansion (@VK_NV_viewport_array2@) and the viewport -- swizzle could potentially be performed before or after transform -- feedback, but feeding back several viewports worth of primitives with--- different swizzles doesn’t seem particularly useful. This specification+-- different swizzles does not seem particularly useful. This specification -- applies the viewport mask and swizzle after transform feedback, and -- makes primitive queries only count each primitive once. --@@ -141,7 +141,7 @@ -- > positions[i] = rotate(gl_in[i].gl_Position, face); -- > } -- >--- > // If the primitive doesn't project onto this face, we're done.+-- > // If the primitive does not project onto this face, we are done. -- > if (shouldCull(positions)) { -- > return; -- > }@@ -224,7 +224,7 @@ -- -- 2. On NVIDIA implementations supporting floating-point depth buffers -- with values outside [0,1], prevent unwanted near plane clipping by--- enabling @depthClampEnable@. Ensure that the depth clamp doesn’t+-- enabling @depthClampEnable@. Ensure that the depth clamp does not -- mess up depth testing by programming the depth range to very large -- values, such as @minDepthBounds@=-z, @maxDepthBounds@=+z, where z = -- 2127. It should be possible to use IEEE infinity encodings also
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot view
@@ -97,7 +97,7 @@ -- The viewport mask expansion (@VK_NV_viewport_array2@) and the viewport -- swizzle could potentially be performed before or after transform -- feedback, but feeding back several viewports worth of primitives with--- different swizzles doesn’t seem particularly useful. This specification+-- different swizzles does not seem particularly useful. This specification -- applies the viewport mask and swizzle after transform feedback, and -- makes primitive queries only count each primitive once. --@@ -141,7 +141,7 @@ -- > positions[i] = rotate(gl_in[i].gl_Position, face); -- > } -- >--- > // If the primitive doesn't project onto this face, we're done.+-- > // If the primitive does not project onto this face, we are done. -- > if (shouldCull(positions)) { -- > return; -- > }@@ -224,7 +224,7 @@ -- -- 2. On NVIDIA implementations supporting floating-point depth buffers -- with values outside [0,1], prevent unwanted near plane clipping by--- enabling @depthClampEnable@. Ensure that the depth clamp doesn’t+-- enabling @depthClampEnable@. Ensure that the depth clamp does not -- mess up depth testing by programming the depth range to very large -- values, such as @minDepthBounds@=-z, @maxDepthBounds@=+z, where z = -- 2127. It should be possible to use IEEE infinity encodings also
src/Vulkan/SPIRVRequirements.hs view
@@ -40,6 +40,8 @@ import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..))+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)@@ -84,6 +86,7 @@ import Vulkan.Extensions.VK_EXT_fragment_density_map (pattern EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (pattern EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_post_depth_coverage (pattern EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)@@ -647,6 +650,36 @@ , deviceExtensionMinVersion = 0 } ]+ "SPV_EXT_shader_atomic_float_min_max" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "SPV_EXT_shader_atomic_float16_add" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] _ -> ([], []) spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -714,6 +747,26 @@ , deviceExtensionMinVersion = 0 } ]+ "AtomicFloat16AddEXT" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "shaderBufferFloat16AtomicAdd"+ , checkFeature = shaderBufferFloat16AtomicAdd :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+ , enableFeature = \f -> f { shaderBufferFloat16AtomicAdd = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] "AtomicFloat32AddEXT" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -741,6 +794,69 @@ , checkFeature = shaderBufferFloat64AtomicAdd :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool , enableFeature = \f -> f { shaderBufferFloat64AtomicAdd = True } :: PhysicalDeviceShaderAtomicFloatFeaturesEXT }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "AtomicFloat16MinMaxEXT" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "shaderBufferFloat16AtomicMinMax"+ , checkFeature = shaderBufferFloat16AtomicMinMax :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+ , enableFeature = \f ->+ f { shaderBufferFloat16AtomicMinMax = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "AtomicFloat32MinMaxEXT" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "shaderBufferFloat32AtomicMinMax"+ , checkFeature = shaderBufferFloat32AtomicMinMax :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+ , enableFeature = \f ->+ f { shaderBufferFloat32AtomicMinMax = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "AtomicFloat64MinMaxEXT" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "shaderBufferFloat64AtomicMinMax"+ , checkFeature = shaderBufferFloat64AtomicMinMax :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT -> Bool+ , enableFeature = \f ->+ f { shaderBufferFloat64AtomicMinMax = True } :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ } , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME , deviceExtensionMinVersion = 0
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 184+pattern HEADER_VERSION = 185 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 184+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 185 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: vulkan-version: 3.11.2+version: 3.11.3 synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics@@ -336,6 +336,7 @@ Vulkan.Extensions.VK_EXT_scalar_block_layout Vulkan.Extensions.VK_EXT_separate_stencil_usage Vulkan.Extensions.VK_EXT_shader_atomic_float+ Vulkan.Extensions.VK_EXT_shader_atomic_float2 Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 Vulkan.Extensions.VK_EXT_shader_stencil_export@@ -364,6 +365,7 @@ Vulkan.Extensions.VK_GOOGLE_display_timing Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 Vulkan.Extensions.VK_GOOGLE_user_type+ Vulkan.Extensions.VK_HUAWEI_invocation_mask Vulkan.Extensions.VK_IMG_filter_cubic Vulkan.Extensions.VK_IMG_format_pvrtc Vulkan.Extensions.VK_INTEL_performance_query@@ -414,6 +416,8 @@ Vulkan.Extensions.VK_KHR_pipeline_executable_properties Vulkan.Extensions.VK_KHR_pipeline_library Vulkan.Extensions.VK_KHR_portability_subset+ Vulkan.Extensions.VK_KHR_present_id+ Vulkan.Extensions.VK_KHR_present_wait Vulkan.Extensions.VK_KHR_push_descriptor Vulkan.Extensions.VK_KHR_ray_query Vulkan.Extensions.VK_KHR_ray_tracing_pipeline