vulkan 3.10 → 3.10.1
raw patch · 55 files changed
+2793/−500 lines, 55 files
Files
- changelog.md +4/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +9/−0
- src/Vulkan/Core10/AllocationCallbacks.hs +1/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +123/−30
- src/Vulkan/Core10/Device.hs +6/−0
- src/Vulkan/Core10/Enums/AccessFlagBits.hs +2/−1
- src/Vulkan/Core10/Enums/StructureType.hs +36/−0
- src/Vulkan/Core10/FundamentalTypes.hs +10/−5
- src/Vulkan/Core10/Handles.hs +9/−0
- src/Vulkan/Core10/Image.hs +17/−0
- src/Vulkan/Core10/ImageView.hs +6/−19
- src/Vulkan/Core10/Memory.hs +31/−7
- src/Vulkan/Core10/OtherTypes.hs +1/−1
- src/Vulkan/Core10/Pipeline.hs +6/−2
- src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs +11/−1
- src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs +36/−24
- src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs +5/−7
- src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs +18/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +11/−1
- src/Vulkan/Core12.hs +10/−14
- src/Vulkan/Core12/Enums/SemaphoreType.hs +3/−3
- src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs +5/−6
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +37/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +36/−2
- src/Vulkan/Dynamic.hs +28/−2
- src/Vulkan/Extensions.hs +6/−0
- src/Vulkan/Extensions/Dependencies.hs +16/−7
- src/Vulkan/Extensions/Handles.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +19/−0
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot +10/−0
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +7/−4
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +24/−7
- src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs +511/−0
- src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot +149/−0
- src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs +578/−0
- src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot +138/−0
- src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot +7/−1
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +4/−1
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs +0/−6
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +22/−2
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs +169/−224
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs +3/−3
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +18/−1
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +54/−3
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +11/−1
- src/Vulkan/Extensions/VK_QNX_screen_surface.hs +423/−0
- src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot +111/−0
- src/Vulkan/SPIRVRequirements.hs +35/−103
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +4/−1
changelog.md view
@@ -2,6 +2,10 @@ ## WIP +## [3.10.1] - 2021-03-31+- Bump API version to v1.2.174+- Fix https://github.com/expipiplus1/vulkan/issues/266+ ## [3.10] - 2021-02-18 - Bump API version to v1.2.170
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.10"+version: "3.10.1" synopsis: Bindings to the Vulkan graphics API. category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
src/Vulkan/CStruct/Extends.hs view
@@ -283,8 +283,10 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (ImportMemoryHostPointerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutTokenNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsStreamNV)@@ -304,6 +306,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (MemoryGetAndroidHardwareBufferInfoANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryHeap) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (MemoryOpaqueCaptureAddressAllocateInfo)@@ -312,6 +315,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryType) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryZirconHandlePropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_surface (MetalSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeCreateInfoVALVE)@@ -560,9 +564,11 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionImageFormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX) import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (SemaphoreGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (SemaphoreGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (SemaphoreSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo)@@ -902,6 +908,7 @@ Extends MemoryAllocateInfo ExportMemoryAllocateInfo = () Extends MemoryAllocateInfo ImportMemoryWin32HandleInfoKHR = () Extends MemoryAllocateInfo ExportMemoryWin32HandleInfoKHR = ()+ Extends MemoryAllocateInfo ImportMemoryZirconHandleInfoFUCHSIA = () Extends MemoryAllocateInfo ImportMemoryFdInfoKHR = () Extends MemoryAllocateInfo MemoryAllocateFlagsInfo = () Extends MemoryAllocateInfo MemoryDedicatedAllocateInfo = ()@@ -1249,6 +1256,7 @@ STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO -> go @ExportMemoryAllocateInfo STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR -> go @ImportMemoryWin32HandleInfoKHR STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR -> go @ExportMemoryWin32HandleInfoKHR+ STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA -> go @ImportMemoryZirconHandleInfoFUCHSIA STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR -> go @ImportMemoryFdInfoKHR STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR -> go @Win32KeyedMutexAcquireReleaseInfoKHR STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO -> go @ExportSemaphoreCreateInfo@@ -1571,6 +1579,7 @@ {-# complete (::&) :: ExportMemoryAllocateInfo #-} {-# complete (::&) :: ImportMemoryWin32HandleInfoKHR #-} {-# complete (::&) :: ExportMemoryWin32HandleInfoKHR #-}+{-# complete (::&) :: ImportMemoryZirconHandleInfoFUCHSIA #-} {-# complete (::&) :: ImportMemoryFdInfoKHR #-} {-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoKHR #-} {-# complete (::&) :: ExportSemaphoreCreateInfo #-}
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -93,6 +93,7 @@ -- 'Vulkan.Core10.Sampler.createSampler', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.createSamplerYcbcrConversion', -- 'Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.createSamplerYcbcrConversionKHR',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.createScreenSurfaceQNX', -- 'Vulkan.Core10.QueueSemaphore.createSemaphore', -- 'Vulkan.Core10.Shader.createShaderModule', -- 'Vulkan.Extensions.VK_KHR_display_swapchain.createSharedSwapchainsKHR',
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -689,12 +689,12 @@ -- bias is applied and the fragment’s depth values are unchanged. -- -- @depthBiasSlopeFactor@ scales the maximum depth slope of the polygon,--- and @depthBiasConstantFactor@ scales an implementation-dependent--- constant that relates to the usable resolution of the depth buffer. The--- resulting values are summed to produce the depth bias value which is--- then clamped to a minimum or maximum value specified by--- @depthBiasClamp@. @depthBiasSlopeFactor@, @depthBiasConstantFactor@, and--- @depthBiasClamp@ /can/ each be positive, negative, or zero.+-- and @depthBiasConstantFactor@ scales the minimum resolvable difference+-- of the depth buffer. The resulting values are summed to produce the+-- depth bias value which is then clamped to a minimum or maximum value+-- specified by @depthBiasClamp@. @depthBiasSlopeFactor@,+-- @depthBiasConstantFactor@, and @depthBiasClamp@ /can/ each be positive,+-- negative, or zero. -- -- The maximum depth slope m of a triangle is --@@ -708,20 +708,25 @@ -- \left| { {\partial z_f} \over {\partial y_f} } \right| -- \right).\] ----- The minimum resolvable difference r is an implementation-dependent--- parameter that depends on the depth buffer representation. It is the--- smallest difference in framebuffer coordinate z values that is--- guaranteed to remain distinct throughout polygon rasterization and in--- the depth buffer. All pairs of fragments generated by the rasterization--- of two polygons with otherwise identical vertices, but @z@f values that--- differ by r, will have distinct depth values.+-- The minimum resolvable difference r is a parameter that depends on the+-- depth buffer representation. It is the smallest difference in+-- framebuffer coordinate z values that is guaranteed to remain distinct+-- throughout polygon rasterization and in the depth buffer. All pairs of+-- fragments generated by the rasterization of two polygons with otherwise+-- identical vertices, but @z@f values that differ by r, will have distinct+-- depth values. -- -- For fixed-point depth buffer representations, r is constant throughout--- the range of the entire depth buffer. For floating-point depth buffers,--- there is no single minimum resolvable difference. In this case, the--- minimum resolvable difference for a given polygon is dependent on the--- maximum exponent, e, in the range of z values spanned by the primitive.--- If n is the number of bits in the floating-point mantissa, the minimum+-- the range of the entire depth buffer. Its value is implementation+-- dependent but /must/ be at most+--+-- - r = 2 × 2-n+--+-- for an n-bit buffer. For floating-point depth buffers, there is no+-- single minimum resolvable difference. In this case, the minimum+-- resolvable difference for a given polygon is dependent on the maximum+-- exponent, e, in the range of z values spanned by the primitive. If n is+-- the number of bits in the floating-point mantissa, the minimum -- resolvable difference, r, for the given primitive is defined as -- -- - r = 2e-n@@ -1714,6 +1719,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDraw-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDraw-None-02691# If a 'Vulkan.Core10.Handles.ImageView' -- is accessed using atomic operations as a result of this command, -- then the image view’s@@ -1860,7 +1875,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDraw-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -2101,6 +2116,13 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-vkCmdDraw-rasterizationSamples-04740# If rasterization is not+-- disabled in the bound graphics pipeline, and neither the @@ nor the+-- @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+-- -- - #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer, any resource written to by the -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2241,6 +2263,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawIndexed-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -2390,7 +2422,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawIndexed-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -2634,6 +2666,13 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-vkCmdDrawIndexed-rasterizationSamples-04740# If rasterization+-- is not disabled in the bound graphics pipeline, and neither the @@+-- nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+-- -- - #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer, any resource written to by the -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2768,6 +2807,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawIndirect-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -2917,7 +2966,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawIndirect-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -3161,6 +3210,13 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-vkCmdDrawIndirect-rasterizationSamples-04740# If rasterization+-- is not disabled in the bound graphics pipeline, and neither the @@+-- nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+-- -- - #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings -- accessed via vertex input variables declared in the vertex shader -- entry point’s interface /must/ have either valid or@@ -3321,6 +3377,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawIndexedIndirect-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -3472,7 +3538,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -3716,6 +3782,13 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+-- -- - #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings -- accessed via vertex input variables declared in the vertex shader -- entry point’s interface /must/ have either valid or@@ -3872,6 +3945,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDispatch-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDispatch-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -4020,7 +4103,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDispatch-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -4189,6 +4272,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDispatchIndirect-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -4338,7 +4431,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDispatchIndirect-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -8652,12 +8745,6 @@ -- -- == Valid Usage ----- - #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been--- created with a @queryType@ that differs from that of any queries--- that are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>--- within @commandBuffer@--- -- - #VUID-vkCmdBeginQuery-None-00807# All queries used by the command -- /must/ be unavailable --@@ -8713,6 +8800,12 @@ -- instance, the sum of @query@ and the number of bits set in the -- current subpass’s view mask /must/ be less than or equal to the -- number of queries in @queryPool@+--+-- - #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been+-- created with a @queryType@ that differs from that of any queries+-- that are+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+-- within @commandBuffer@ -- -- - #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to -- create @queryPool@ was
src/Vulkan/Core10/Device.hs view
@@ -549,6 +549,12 @@ -- @ppEnabledExtensionNames@ /must/ not contain both -- @VK_KHR_buffer_device_address@ and @VK_EXT_buffer_device_address@ --+-- - #VUID-VkDeviceCreateInfo-pNext-04748# if the @pNext@ chain includes+-- a 'Vulkan.Core12.PhysicalDeviceVulkan12Features' structure and+-- 'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@bufferDeviceAddress@+-- is VK_TRUE, @ppEnabledExtensionNames@ /must/ not contain+-- @VK_EXT_buffer_device_address@+-- -- - #VUID-VkDeviceCreateInfo-pNext-02829# If the @pNext@ chain includes -- a 'Vulkan.Core12.PhysicalDeviceVulkan11Features' structure, then it -- /must/ not include a
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -147,7 +147,8 @@ -- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ -- | '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_DRAW_INDIRECT_BIT' |+-- | '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', |
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -49,6 +49,12 @@ , STRUCTURE_TYPE_MEMORY_BARRIER , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+ , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX+ , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA+ , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA+ , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA+ , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA+ , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT@@ -706,8 +712,10 @@ -- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', -- 'Vulkan.Extensions.VK_INTEL_performance_query.InitializePerformanceApiInfoINTEL',@@ -724,11 +732,13 @@ -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.MemoryHostPointerPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo', -- 'Vulkan.Extensions.VK_EXT_memory_priority.MemoryPriorityAllocateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryWin32HandlePropertiesKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT', -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE',@@ -957,9 +967,11 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.ScreenSurfaceCreateInfoQNX', -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo', -- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo',@@ -1104,6 +1116,18 @@ pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = StructureType 47 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = StructureType 48+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"+pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = StructureType 1000378000+-- 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"+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"+pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = StructureType 1000364001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE" pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = StructureType 1000351002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"@@ -2025,6 +2049,12 @@ STRUCTURE_TYPE_MEMORY_BARRIER, STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,+ STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,+ STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,+ STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,+ STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,+ STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,+ STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA, STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE, STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,@@ -2519,6 +2549,12 @@ , (STRUCTURE_TYPE_MEMORY_BARRIER , "MEMORY_BARRIER") , (STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , "LOADER_INSTANCE_CREATE_INFO") , (STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO , "LOADER_DEVICE_CREATE_INFO")+ , (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX , "SCREEN_SURFACE_CREATE_INFO_QNX")+ , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")+ , (STRUCTURE_TYPE_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_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE, "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -13,6 +13,7 @@ ) , SampleMask , Flags+ , Flags64 , DeviceSize , DeviceAddress , StructureType(..)@@ -569,11 +570,11 @@ -- -- Bitmasks are passed to many commands and structures to compactly -- represent options, but 'Flags' is not used directly in the API. Instead,--- a @Vk*Flags@ type which is an alias of 'Flags', and whose name matches--- the corresponding @Vk*FlagBits@ that are valid for that type, is used.+-- a 'Flags' type which is an alias of 'Flags', and whose name matches the+-- corresponding @Vk*FlagBits@ that are valid for that type, is used. ----- Any @Vk*Flags@ member or parameter used in the API as an input /must/ be--- a valid combination of bit flags. A valid combination is either zero or+-- Any 'Flags' member or parameter used in the API as an input /must/ be a+-- valid combination of bit flags. A valid combination is either zero or -- the bitwise OR of valid bit flags. A bit flag is valid if: -- -- - The bit flag is defined as part of the @Vk*FlagBits@ type, where the@@ -587,7 +588,7 @@ -- example, in some cases, certain bit flags or combinations of bit -- flags are mutually exclusive. ----- Any @Vk*Flags@ member or parameter returned from a query command or+-- Any 'Flags' member or parameter returned from a query command or -- otherwise output from Vulkan to the application /may/ contain bit flags -- undefined in its corresponding @Vk*FlagBits@ type. An application -- /cannot/ rely on the state of these unspecified bits.@@ -606,6 +607,10 @@ -- -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags' type Flags = Word32+++-- No documentation found for TopLevel "VkFlags64"+type Flags64 = Word64 -- | VkDeviceSize - Vulkan device memory size and offsets
src/Vulkan/Core10/Handles.hs view
@@ -87,6 +87,7 @@ -- 'Vulkan.Core10.DeviceInitialization.createInstance', -- 'Vulkan.Extensions.VK_MVK_macos_surface.createMacOSSurfaceMVK', -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.createScreenSurfaceQNX', -- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.createStreamDescriptorSurfaceGGP', -- 'Vulkan.Extensions.VK_NN_vi_surface.createViSurfaceNN', -- 'Vulkan.Extensions.VK_KHR_wayland_surface.createWaylandSurfaceKHR',@@ -172,6 +173,7 @@ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2', -- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2KHR',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.getPhysicalDeviceScreenPresentationSupportQNX', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceSparseImageFormatProperties2', -- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceSparseImageFormatProperties2KHR',@@ -355,6 +357,8 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandleKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.getMemoryWin32HandleNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandleFUCHSIA',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getPastPresentationTimingGOOGLE', -- 'Vulkan.Extensions.VK_INTEL_performance_query.getPerformanceParameterINTEL', -- 'Vulkan.Core10.PipelineCache.getPipelineCacheData',@@ -373,6 +377,7 @@ -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.getSemaphoreCounterValueKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.getSemaphoreFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.getSemaphoreWin32HandleKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.getSemaphoreZirconHandleFUCHSIA', -- 'Vulkan.Extensions.VK_AMD_shader_info.getShaderInfoAMD', -- 'Vulkan.Extensions.VK_EXT_display_control.getSwapchainCounterEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR',@@ -382,6 +387,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.importFenceWin32HandleKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.importSemaphoreFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.importSemaphoreWin32HandleKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.importSemaphoreZirconHandleFUCHSIA', -- 'Vulkan.Extensions.VK_INTEL_performance_query.initializePerformanceApiINTEL', -- 'Vulkan.Core10.Memory.invalidateMappedMemoryRanges', -- 'Vulkan.Core10.Memory.mapMemory',@@ -630,6 +636,7 @@ -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',@@ -999,9 +1006,11 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo', -- 'Vulkan.Extensions.VK_KHR_synchronization2.SemaphoreSubmitInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo',
src/Vulkan/Core10/Image.hs view
@@ -1302,6 +1302,23 @@ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT', then -- @arrayLayers@ /must/ be @1@. --+-- - #VUID-VkImageCreateInfo-pNext-04737# If a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+-- structure was included in the @pNext@ chain and+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+-- is not zero then all of the formats in+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@+-- /must/ be compatible with the @format@ as described in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>+--+-- - #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'+-- and the @pNext@ chain include a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+-- structure then+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+-- /must/ be @0@ or @1@+-- -- = Valid Usage (Implicit) -- -- - #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be
src/Vulkan/Core10/ImageView.hs view
@@ -909,6 +909,12 @@ -- flag, the @levelCount@ and @layerCount@ members of -- @subresourceRange@ /must/ both be @1@ --+-- - #VUID-VkImageViewCreateInfo-image-04739# If @image@ was created with+-- the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT'+-- flag and @format@ is a non-compressed format, @viewType@ /must/ not+-- be 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'+-- -- - #VUID-VkImageViewCreateInfo-pNext-01585# If a -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' -- structure was included in the @pNext@ chain of the@@ -917,25 +923,6 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@ -- is not zero then @format@ /must/ be one of the formats in -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@------ - #VUID-VkImageViewCreateInfo-pNext-04082# If a--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'--- structure was included in the @pNext@ chain of the--- 'Vulkan.Core10.Image.ImageCreateInfo' structure used when creating--- @image@ and--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@--- is not zero then all of the formats in--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@--- /must/ be compatible with the @format@ as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>------ - #VUID-VkImageViewCreateInfo-flags-04083# If @flags@ does not contain--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'--- and the @pNext@ chain include a--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'--- structure then--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@--- /must/ be @0@ or @1@ -- -- - #VUID-VkImageViewCreateInfo-image-01586# If @image@ was created with -- the
src/Vulkan/Core10/Memory.hs view
@@ -83,6 +83,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (ImportMemoryHostPointerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo) import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags)@@ -795,7 +796,7 @@ -- @pNext@ chain includes one of the following structures: -- -- - 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR'--- with non-zero @handleType@ value+-- with a non-zero @handleType@ value -- -- - 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR' -- with a non-zero @handleType@ value@@ -806,6 +807,9 @@ -- - 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' -- with a non-@NULL@ @buffer@ value --+-- - 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA'+-- with a non-zero @handleType@ value+-- -- If the parameters define an import operation and the external handle -- type is -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT',@@ -1109,6 +1113,23 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo'::@opaqueCaptureAddress@ -- /must/ be zero --+-- - #VUID-VkMemoryAllocateInfo-None-04749# If the parameters define an+-- import operation and the external handle type is+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+-- the value of @memoryTypeIndex@ /must/ be an index identifying a+-- memory type from the @memoryTypeBits@ field of the+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA'+-- structure populated by a call to+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA'.+--+-- - #VUID-VkMemoryAllocateInfo-allocationSize-04750# If the parameters+-- define an import operation and the external handle type is+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+-- the value of @allocationSize@ /must/ be greater than @0@ and /must/+-- be less than or equal to the size of the VMO as determined by+-- @zx_vmo_get_size@(@handle@) where @handle@ is the VMO handle to the+-- imported external memory.+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkMemoryAllocateInfo-sType-sType# @sType@ /must/ be@@ -1127,6 +1148,7 @@ -- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo',@@ -1170,6 +1192,7 @@ | Just Refl <- eqT @e @MemoryDedicatedAllocateInfo = Just f | Just Refl <- eqT @e @MemoryAllocateFlagsInfo = Just f | Just Refl <- eqT @e @ImportMemoryFdInfoKHR = Just f+ | Just Refl <- eqT @e @ImportMemoryZirconHandleInfoFUCHSIA = Just f | Just Refl <- eqT @e @ExportMemoryWin32HandleInfoKHR = Just f | Just Refl <- eqT @e @ImportMemoryWin32HandleInfoKHR = Just f | Just Refl <- eqT @e @ExportMemoryAllocateInfo = Just f@@ -1230,15 +1253,16 @@ -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @offset@ /must/ be within -- the currently mapped range of @memory@ ----- - #VUID-VkMappedMemoryRange-size-01389# If @size@ is equal to--- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the end of the current--- mapping of @memory@ /must/ be a multiple of--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@nonCoherentAtomSize@--- bytes from the beginning of the memory object--- -- - #VUID-VkMappedMemoryRange-offset-00687# @offset@ /must/ be a -- multiple of -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@nonCoherentAtomSize@+--+-- - #VUID-VkMappedMemoryRange-size-01389# If @size@ is equal to+-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the end of the current+-- mapping of @memory@ /must/ either be a multiple of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@nonCoherentAtomSize@+-- bytes from the beginning of the memory object, or be equal to the+-- end of the memory object -- -- - #VUID-VkMappedMemoryRange-size-01390# If @size@ is not equal to -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ either be a
src/Vulkan/Core10/OtherTypes.hs view
@@ -583,7 +583,7 @@ -- @image@ /must/ have been created with -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939# If -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a
src/Vulkan/Core10/Pipeline.hs view
@@ -602,6 +602,11 @@ -- -- = Description --+-- Note+--+-- Despite their names, @minDepth@ /can/ be less than, equal to, or greater+-- than @maxDepth@.+-- -- The framebuffer depth coordinate @z@f /may/ be represented using either -- a fixed-point or floating-point representation. However, a -- floating-point representation /must/ be used if the depth\/stencil@@ -699,8 +704,7 @@ width :: Float , -- No documentation found for Nested "VkViewport" "height" height :: Float- , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport. It is- -- valid for @minDepth@ to be greater than or equal to @maxDepth@.+ , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport. minDepth :: Float , -- No documentation found for Nested "VkViewport" "maxDepth" maxDepth :: Float
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -8,6 +8,7 @@ , EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT+ , EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT , EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID@@ -63,6 +64,8 @@ -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' | No restriction | No restriction | -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA' | No restriction | No restriction |+-- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- -- External memory handle types compatibility --@@ -93,13 +96,16 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.getMemoryHostPointerPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR'+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA' newtype ExternalMemoryHandleTypeFlagBits = ExternalMemoryHandleTypeFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) @@ -147,6 +153,9 @@ -- 12 committed resource. It owns a reference to the memory used by the -- Direct3D resource. pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = ExternalMemoryHandleTypeFlagBits 0x00000040+-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA' is a Zircon handle+-- to a virtual memory object.+pattern EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = ExternalMemoryHandleTypeFlagBits 0x00000800 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT' -- specifies a host pointer to /host mapped foreign memory/. It does not -- own a reference to the underlying memory resource, and will therefore@@ -185,6 +194,7 @@ , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT , "D3D11_TEXTURE_KMT_BIT") , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT , "D3D12_HEAP_BIT") , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT , "D3D12_RESOURCE_BIT")+ , (EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA , "ZIRCON_VMO_BIT_FUCHSIA") , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT , "HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT") , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT , "HOST_ALLOCATION_BIT_EXT") , (EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, "ANDROID_HARDWARE_BUFFER_BIT_ANDROID")
src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs view
@@ -7,6 +7,7 @@ , EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT , EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT , EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT+ , EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA , .. ) ) where@@ -47,19 +48,21 @@ -- underlying physical device and\/or the same driver version, as defined -- in the following table: ----- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | Handle type | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@driverUUID@ | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@deviceUUID@ |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT' | Must match | Must match |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT' | Must match | Must match |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' | Must match | Must match |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' | Must match | Must match |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+--- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' | No restriction | No restriction |--- +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | Handle type | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@driverUUID@ | 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@deviceUUID@ |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT' | Must match | Must match |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT' | Must match | Must match |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' | Must match | Must match |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' | Must match | Must match |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' | No restriction | No restriction |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' | No restriction | No restriction |+-- +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- -- External semaphore handle types compatibility --@@ -68,9 +71,11 @@ -- 'ExternalSemaphoreHandleTypeFlags', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR'+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA' newtype ExternalSemaphoreHandleTypeFlagBits = ExternalSemaphoreHandleTypeFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) @@ -81,14 +86,14 @@ -- Additionally, it /must/ be transportable over a socket using an -- @SCM_RIGHTS@ control message. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan semaphore object.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000001+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000001 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT' specifies an NT handle -- that has only limited valid usage outside of Vulkan and other compatible -- APIs. It /must/ be compatible with the functions @DuplicateHandle@, -- @CloseHandle@, @CompareObjectHandles@, @GetHandleInformation@, and -- @SetHandleInformation@. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan semaphore object.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000002+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000002 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' specifies a global -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It@@ -96,13 +101,13 @@ -- represented its Vulkan semaphore object, and will therefore become -- invalid when all Vulkan semaphore objects associated with it are -- destroyed.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000004+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000004 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' specifies an NT handle -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D -- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence' by a -- Direct3D 11 fence. It owns a reference to the underlying synchronization -- primitive associated with the Direct3D fence.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000008+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000008 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' specifies a POSIX file -- descriptor handle to a Linux Sync File or Android Fence object. It can -- be used with any native API accepting a valid sync file or fence as@@ -110,7 +115,13 @@ -- associated with the file descriptor. Implementations which support -- importing this handle type /must/ accept any type of sync or fence FD -- supported by the native system they are running on.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000010+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000010+-- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' specifies a+-- handle to a Zircon event object. It can be used with any native API that+-- accepts a Zircon event handle. Zircon event handles are created with+-- @ZX_RIGHTS_BASIC@ and @ZX_RIGHTS_SIGNAL@ rights. Vulkan on Fuchsia uses+-- only the ZX_EVENT_SIGNALED bit when signaling or waiting.+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = ExternalSemaphoreHandleTypeFlagBits 0x00000080 conNameExternalSemaphoreHandleTypeFlagBits :: String conNameExternalSemaphoreHandleTypeFlagBits = "ExternalSemaphoreHandleTypeFlagBits"@@ -120,11 +131,12 @@ showTableExternalSemaphoreHandleTypeFlagBits :: [(ExternalSemaphoreHandleTypeFlagBits, String)] showTableExternalSemaphoreHandleTypeFlagBits =- [ (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT , "OPAQUE_FD_BIT")- , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT , "OPAQUE_WIN32_BIT")- , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, "OPAQUE_WIN32_KMT_BIT")- , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT , "D3D12_FENCE_BIT")- , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT , "SYNC_FD_BIT")+ [ (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT , "OPAQUE_FD_BIT")+ , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT , "OPAQUE_WIN32_BIT")+ , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT , "OPAQUE_WIN32_KMT_BIT")+ , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT , "D3D12_FENCE_BIT")+ , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT , "SYNC_FD_BIT")+ , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA, "ZIRCON_EVENT_BIT_FUCHSIA") ] instance Show ExternalSemaphoreHandleTypeFlagBits where
src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs view
@@ -47,13 +47,11 @@ storageBuffer16BitAccess :: Bool , -- | #extension-features-uniformAndStorageBuffer16BitAccess# -- @uniformAndStorageBuffer16BitAccess@ specifies whether objects in the- -- @Uniform@ storage class with the @Block@ decoration and in the- -- @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@- -- storage class with the same decoration /can/ have 16-bit integer and- -- 16-bit floating-point members. If this feature is not enabled, 16-bit- -- integer or 16-bit floating-point members /must/ not be used in such- -- objects. This also specifies whether shader modules /can/ declare the- -- @UniformAndStorageBuffer16BitAccess@ capability.+ -- @Uniform@ storage class with the @Block@ decoration /can/ have 16-bit+ -- integer and 16-bit floating-point members. If this feature is not+ -- enabled, 16-bit integer or 16-bit floating-point members /must/ not be+ -- used in such objects. This also specifies whether shader modules /can/+ -- declare the @UniformAndStorageBuffer16BitAccess@ capability. uniformAndStorageBuffer16BitAccess :: Bool , -- | #extension-features-storagePushConstant16# @storagePushConstant16@ -- specifies whether objects in the @PushConstant@ storage class /can/ have
src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs view
@@ -277,6 +277,24 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' -- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ --+-- - #VUID-VkMemoryDedicatedAllocateInfo-image-04751# If @image@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo' defines a memory import+-- operation with handle type+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+-- the memory being imported /must/ also be a dedicated image+-- allocation and @image@ /must/ be identical to the image associated+-- with the imported memory+--+-- - #VUID-VkMemoryDedicatedAllocateInfo-buffer-04752# If @buffer@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo' defines a memory import+-- operation with handle type+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA',+-- the memory being imported /must/ also be a dedicated buffer+-- allocation and @buffer@ /must/ be identical to the buffer associated+-- with the imported memory+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkMemoryDedicatedAllocateInfo-sType-sType# @sType@ /must/ be
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -265,6 +265,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDispatchBase-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDispatchBase-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -415,7 +425,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDispatchBase-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a
src/Vulkan/Core12.hs view
@@ -139,13 +139,11 @@ storageBuffer16BitAccess :: Bool , -- | #features-uniformAndStorageBuffer16BitAccess# -- @uniformAndStorageBuffer16BitAccess@ specifies whether objects in the- -- @Uniform@ storage class with the @Block@ decoration and in the- -- @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@- -- storage class with the same decoration /can/ have 16-bit integer and- -- 16-bit floating-point members. If this feature is not enabled, 16-bit- -- integer or 16-bit floating-point members /must/ not be used in such- -- objects. This also specifies whether shader modules /can/ declare the- -- @UniformAndStorageBuffer16BitAccess@ capability.+ -- @Uniform@ storage class with the @Block@ decoration /can/ have 16-bit+ -- integer and 16-bit floating-point members. If this feature is not+ -- enabled, 16-bit integer or 16-bit floating-point members /must/ not be+ -- used in such objects. This also specifies whether shader modules /can/+ -- declare the @UniformAndStorageBuffer16BitAccess@ capability. uniformAndStorageBuffer16BitAccess :: Bool , -- | #features-storagePushConstant16# @storagePushConstant16@ specifies -- whether objects in the @PushConstant@ storage class /can/ have 16-bit@@ -529,13 +527,11 @@ -- -- - #features-uniformAndStorageBuffer8BitAccess# -- @uniformAndStorageBuffer8BitAccess@ indicates whether objects in the--- @Uniform@ storage class with the @Block@ decoration and in the--- @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@--- storage class with the same decoration /can/ have 8-bit integer--- members. If this feature is not enabled, 8-bit integer members--- /must/ not be used in such objects. This also indicates whether--- shader modules /can/ declare the @UniformAndStorageBuffer8BitAccess@--- capability.+-- @Uniform@ storage class with the @Block@ decoration /can/ have 8-bit+-- integer members. If this feature is not enabled, 8-bit integer+-- members /must/ not be used in such objects. This also indicates+-- whether shader modules /can/ declare the+-- @UniformAndStorageBuffer8BitAccess@ capability. -- -- - #features-storagePushConstant8# @storagePushConstant8@ indicates -- whether objects in the @PushConstant@ storage class /can/ have 8-bit
src/Vulkan/Core12/Enums/SemaphoreType.hs view
@@ -27,9 +27,9 @@ -- or unsignaled. When created, the semaphore is in the unsignaled state. pattern SEMAPHORE_TYPE_BINARY = SemaphoreType 0 -- | 'SEMAPHORE_TYPE_TIMELINE' specifies a /timeline semaphore/ type that has--- a monotonically increasing 64-bit unsigned integer payload indicating--- whether the semaphore is signaled with respect to a particular reference--- value. When created, the semaphore payload has the value given by the+-- a strictly increasing 64-bit unsigned integer payload indicating whether+-- the semaphore is signaled with respect to a particular reference value.+-- When created, the semaphore payload has the value given by the -- @initialValue@ field of -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'. pattern SEMAPHORE_TYPE_TIMELINE = SemaphoreType 1
src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs view
@@ -46,12 +46,11 @@ storageBuffer8BitAccess :: Bool , -- | #extension-features-uniformAndStorageBuffer8BitAccess# -- @uniformAndStorageBuffer8BitAccess@ indicates whether objects in the- -- @Uniform@ storage class with the @Block@ decoration and in the- -- @StorageBuffer@, @ShaderRecordBufferKHR@, or @PhysicalStorageBuffer@- -- storage class with the same decoration /can/ have 8-bit integer members.- -- If this feature is not enabled, 8-bit integer members /must/ not be used- -- in such objects. This also indicates whether shader modules /can/- -- declare the @UniformAndStorageBuffer8BitAccess@ capability.+ -- @Uniform@ storage class with the @Block@ decoration /can/ have 8-bit+ -- integer members. If this feature is not enabled, 8-bit integer members+ -- /must/ not be used in such objects. This also indicates whether shader+ -- modules /can/ declare the @UniformAndStorageBuffer8BitAccess@+ -- capability. uniformAndStorageBuffer8BitAccess :: Bool , -- | #extension-features-storagePushConstant8# @storagePushConstant8@ -- indicates whether objects in the @PushConstant@ storage class /can/ have
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -968,6 +968,43 @@ -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', --+-- - #VUID-VkAttachmentReference2-attachment-04754# If @attachment@ is+-- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+-- of the referenced attachment is a color format, @layout@ /must/ not+-- be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkAttachmentReference2-attachment-04755# If @attachment@ is+-- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+-- of the referenced attachment is a depth\/stencil format which+-- includes both depth and stencil aspects, and @layout@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- the @pNext@ chain /must/ include a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'+-- structure+--+-- - #VUID-VkAttachmentReference2-attachment-04756# If @attachment@ is+-- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+-- of the referenced attachment is a depth\/stencil format which+-- includes only the depth aspect, @layout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkAttachmentReference2-attachment-04757# If @attachment@ is+-- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format+-- of the referenced attachment is a depth\/stencil format which+-- includes only the stencil aspect, @layout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkAttachmentReference2-sType-sType# @sType@ /must/ be
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -54,6 +54,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawIndirectCount-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawIndirectCount-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -204,7 +214,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawIndirectCount-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -448,6 +458,13 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+-- -- - #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings -- accessed via vertex input variables declared in the vertex shader -- entry point’s interface /must/ have either valid or@@ -631,6 +648,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -783,7 +810,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -1029,6 +1056,13 @@ -- then the @blendEnable@ member of the corresponding element of the -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Dynamic.hs view
@@ -204,6 +204,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_win32 (ImportFenceWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.Enums.IndexType (IndexType) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsLayoutCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.Handles (IndirectCommandsLayoutNV)@@ -218,12 +219,14 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (MemoryGetAndroidHardwareBufferInfoANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags) import {-# SOURCE #-} Vulkan.Core10.MemoryManagement (MemoryRequirements) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_memory_requirements2 (MemoryRequirements2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryZirconHandlePropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_surface (MetalSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.ObjectType (ObjectType)@@ -300,10 +303,13 @@ import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Handles (SamplerYcbcrConversion) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX)+import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (Screen_window) import {-# SOURCE #-} Vulkan.Core10.Handles (Semaphore) import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (SemaphoreGetFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (SemaphoreGetWin32HandleInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (ShaderGroupShaderKHR)@@ -352,6 +358,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_connection_t) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_visualid_t) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t) data InstanceCmds = InstanceCmds { instanceCmdsHandle :: Ptr Instance_T , pVkDestroyInstance :: FunPtr (Ptr Instance_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())@@ -393,6 +400,8 @@ , pVkGetPhysicalDeviceDirectFBPresentationSupportEXT :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dfb" ::: Ptr IDirectFB) -> IO Bool32) , pVkCreateImagePipeSurfaceFUCHSIA :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr ImagePipeSurfaceCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) , pVkCreateStreamDescriptorSurfaceGGP :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr StreamDescriptorSurfaceCreateInfoGGP) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)+ , pVkCreateScreenSurfaceQNX :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr ScreenSurfaceCreateInfoQNX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)+ , pVkGetPhysicalDeviceScreenPresentationSupportQNX :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> Ptr Screen_window -> IO Bool32) , pVkCreateDebugReportCallbackEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCallback" ::: Ptr DebugReportCallbackEXT) -> IO Result) , pVkDestroyDebugReportCallbackEXT :: FunPtr (Ptr Instance_T -> DebugReportCallbackEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkDebugReportMessageEXT :: FunPtr (Ptr Instance_T -> DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> IO ())@@ -453,7 +462,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 nullFunPtr nullFunPtr+ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr -- | A version of 'getInstanceProcAddr' which can be called -- with a null pointer for the instance.@@ -511,6 +520,8 @@ vkGetPhysicalDeviceDirectFBPresentationSupportEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"#) vkCreateImagePipeSurfaceFUCHSIA <- getInstanceProcAddr' handle (Ptr "vkCreateImagePipeSurfaceFUCHSIA"#) vkCreateStreamDescriptorSurfaceGGP <- getInstanceProcAddr' handle (Ptr "vkCreateStreamDescriptorSurfaceGGP"#)+ vkCreateScreenSurfaceQNX <- getInstanceProcAddr' handle (Ptr "vkCreateScreenSurfaceQNX"#)+ vkGetPhysicalDeviceScreenPresentationSupportQNX <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceScreenPresentationSupportQNX"#) vkCreateDebugReportCallbackEXT <- getInstanceProcAddr' handle (Ptr "vkCreateDebugReportCallbackEXT"#) vkDestroyDebugReportCallbackEXT <- getInstanceProcAddr' handle (Ptr "vkDestroyDebugReportCallbackEXT"#) vkDebugReportMessageEXT <- getInstanceProcAddr' handle (Ptr "vkDebugReportMessageEXT"#)@@ -595,6 +606,8 @@ (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dfb" ::: Ptr IDirectFB) -> IO Bool32) vkGetPhysicalDeviceDirectFBPresentationSupportEXT) (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr ImagePipeSurfaceCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateImagePipeSurfaceFUCHSIA) (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr StreamDescriptorSurfaceCreateInfoGGP) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateStreamDescriptorSurfaceGGP)+ (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr ScreenSurfaceCreateInfoQNX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateScreenSurfaceQNX)+ (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> Ptr Screen_window -> IO Bool32) vkGetPhysicalDeviceScreenPresentationSupportQNX) (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCallback" ::: Ptr DebugReportCallbackEXT) -> IO Result) vkCreateDebugReportCallbackEXT) (castFunPtr @_ @(Ptr Instance_T -> DebugReportCallbackEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDebugReportCallbackEXT) (castFunPtr @_ @(Ptr Instance_T -> DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> IO ()) vkDebugReportMessageEXT)@@ -790,10 +803,14 @@ , pVkGetMemoryWin32HandlePropertiesKHR :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> HANDLE -> ("pMemoryWin32HandleProperties" ::: Ptr MemoryWin32HandlePropertiesKHR) -> IO Result) , pVkGetMemoryFdKHR :: FunPtr (Ptr Device_T -> ("pGetFdInfo" ::: Ptr MemoryGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) , 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) , 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) , pVkImportSemaphoreFdKHR :: FunPtr (Ptr Device_T -> ("pImportSemaphoreFdInfo" ::: Ptr ImportSemaphoreFdInfoKHR) -> IO Result)+ , pVkGetSemaphoreZirconHandleFUCHSIA :: FunPtr (Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr SemaphoreGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result)+ , pVkImportSemaphoreZirconHandleFUCHSIA :: FunPtr (Ptr Device_T -> ("pImportSemaphoreZirconHandleInfo" ::: Ptr ImportSemaphoreZirconHandleInfoFUCHSIA) -> IO Result) , pVkGetFenceWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr FenceGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) , pVkImportFenceWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pImportFenceWin32HandleInfo" ::: Ptr ImportFenceWin32HandleInfoKHR) -> IO Result) , pVkGetFenceFdKHR :: FunPtr (Ptr Device_T -> ("pGetFdInfo" ::: Ptr FenceGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result)@@ -1012,7 +1029,8 @@ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr- nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+ nullFunPtr foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1181,10 +1199,14 @@ vkGetMemoryWin32HandlePropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryWin32HandlePropertiesKHR"#) vkGetMemoryFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryFdKHR"#) vkGetMemoryFdPropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryFdPropertiesKHR"#)+ vkGetMemoryZirconHandleFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetMemoryZirconHandleFUCHSIA"#)+ vkGetMemoryZirconHandlePropertiesFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetMemoryZirconHandlePropertiesFUCHSIA"#) vkGetSemaphoreWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreWin32HandleKHR"#) vkImportSemaphoreWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkImportSemaphoreWin32HandleKHR"#) vkGetSemaphoreFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreFdKHR"#) vkImportSemaphoreFdKHR <- getDeviceProcAddr' handle (Ptr "vkImportSemaphoreFdKHR"#)+ vkGetSemaphoreZirconHandleFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreZirconHandleFUCHSIA"#)+ vkImportSemaphoreZirconHandleFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkImportSemaphoreZirconHandleFUCHSIA"#) vkGetFenceWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkGetFenceWin32HandleKHR"#) vkImportFenceWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkImportFenceWin32HandleKHR"#) vkGetFenceFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetFenceFdKHR"#)@@ -1506,10 +1528,14 @@ (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> HANDLE -> ("pMemoryWin32HandleProperties" ::: Ptr MemoryWin32HandlePropertiesKHR) -> IO Result) vkGetMemoryWin32HandlePropertiesKHR) (castFunPtr @_ @(Ptr Device_T -> ("pGetFdInfo" ::: Ptr MemoryGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) vkGetMemoryFdKHR) (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 -> ("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) (castFunPtr @_ @(Ptr Device_T -> ("pImportSemaphoreFdInfo" ::: Ptr ImportSemaphoreFdInfoKHR) -> IO Result) vkImportSemaphoreFdKHR)+ (castFunPtr @_ @(Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr SemaphoreGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result) vkGetSemaphoreZirconHandleFUCHSIA)+ (castFunPtr @_ @(Ptr Device_T -> ("pImportSemaphoreZirconHandleInfo" ::: Ptr ImportSemaphoreZirconHandleInfoFUCHSIA) -> IO Result) vkImportSemaphoreZirconHandleFUCHSIA) (castFunPtr @_ @(Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr FenceGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) vkGetFenceWin32HandleKHR) (castFunPtr @_ @(Ptr Device_T -> ("pImportFenceWin32HandleInfo" ::: Ptr ImportFenceWin32HandleInfoKHR) -> IO Result) vkImportFenceWin32HandleKHR) (castFunPtr @_ @(Ptr Device_T -> ("pGetFdInfo" ::: Ptr FenceGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) vkGetFenceFdKHR)
src/Vulkan/Extensions.hs view
@@ -94,6 +94,8 @@ , module Vulkan.Extensions.VK_EXT_validation_flags , module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor , module Vulkan.Extensions.VK_EXT_ycbcr_image_arrays+ , module Vulkan.Extensions.VK_FUCHSIA_external_memory+ , module Vulkan.Extensions.VK_FUCHSIA_external_semaphore , module Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface , module Vulkan.Extensions.VK_GGP_frame_token , module Vulkan.Extensions.VK_GGP_stream_descriptor_surface@@ -227,6 +229,7 @@ , module Vulkan.Extensions.VK_QCOM_render_pass_store_ops , module Vulkan.Extensions.VK_QCOM_render_pass_transform , module Vulkan.Extensions.VK_QCOM_rotated_copy_commands+ , module Vulkan.Extensions.VK_QNX_screen_surface , module Vulkan.Extensions.VK_VALVE_mutable_descriptor_type ) where import Vulkan.Extensions.Dependencies@@ -323,6 +326,8 @@ import Vulkan.Extensions.VK_EXT_validation_flags import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays+import Vulkan.Extensions.VK_FUCHSIA_external_memory+import Vulkan.Extensions.VK_FUCHSIA_external_semaphore import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface import Vulkan.Extensions.VK_GGP_frame_token import Vulkan.Extensions.VK_GGP_stream_descriptor_surface@@ -456,5 +461,6 @@ import Vulkan.Extensions.VK_QCOM_render_pass_store_ops import Vulkan.Extensions.VK_QCOM_render_pass_transform import Vulkan.Extensions.VK_QCOM_rotated_copy_commands+import Vulkan.Extensions.VK_QNX_screen_surface import Vulkan.Extensions.VK_VALVE_mutable_descriptor_type
src/Vulkan/Extensions/Dependencies.hs view
@@ -59,6 +59,8 @@ import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (pattern EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME)+import Vulkan.Extensions.VK_FUCHSIA_external_memory (pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME)+import Vulkan.Extensions.VK_FUCHSIA_external_semaphore (pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME) import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (pattern FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME) 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)@@ -166,6 +168,7 @@ import Vulkan.Extensions.VK_NV_win32_keyed_mutex (pattern NV_WIN32_KEYED_MUTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_render_pass_transform (pattern QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_rotated_copy_commands (pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME)+import Vulkan.Extensions.VK_QNX_screen_surface (pattern QNX_SCREEN_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME) -- | The set of other extensions required to use this extension extensionDependencies :: ("extensionName" ::: ByteString) -> [ByteString]@@ -455,13 +458,8 @@ 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] 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_CREATE_RENDERPASS_2_EXTENSION_NAME- , KHR_MULTIVIEW_EXTENSION_NAME- , KHR_MAINTENANCE2_EXTENSION_NAME- ]- KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_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] NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME -> [ KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME , KHR_CREATE_RENDERPASS_2_EXTENSION_NAME@@ -481,6 +479,17 @@ EXT_DIRECTFB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME] VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME -> [KHR_MAINTENANCE3_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME ->+ [ KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME+ , KHR_EXTERNAL_MEMORY_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ ]+ FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME ->+ [ KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME+ , KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ ]+ QNX_SCREEN_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME] _ -> [] -- | The minimum required API version to use this extension
src/Vulkan/Extensions/Handles.hs view
@@ -299,6 +299,7 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.createImagePipeSurfaceFUCHSIA', -- 'Vulkan.Extensions.VK_MVK_macos_surface.createMacOSSurfaceMVK', -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.createScreenSurfaceQNX', -- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.createStreamDescriptorSurfaceGGP', -- 'Vulkan.Extensions.VK_NN_vi_surface.createViSurfaceNN', -- 'Vulkan.Extensions.VK_KHR_wayland_surface.createWaylandSurfaceKHR',@@ -355,7 +356,7 @@ -- presentation engine. Use of a presentable image /must/ occur only after -- the image is returned by -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR', and before it--- is presented by 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'.+-- is released by 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'. -- This includes transitioning the image layout and rendering commands. -- -- An application /can/ acquire use of a presentable image with
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -113,6 +113,12 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@ -- makes it possible to calculate future device timestamps as follows: --+-- 6) In what queue are timestamp values in time domain+-- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'?+--+-- __RESOLVED__: An implementation supporting this extension will have all+-- its VkQueue share the same time domain.+-- -- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod -- -- 6) Can the host and device timestamp values drift apart over longer@@ -147,6 +153,10 @@ -- -- == Version History --+-- - Revision 2, 2021-03-16 (Lionel Landwerlin)+--+-- - Specify requirement on device timestamps+-- -- - Revision 1, 2018-10-04 (Daniel Rakos) -- -- - Internal revisions.@@ -458,6 +468,15 @@ -- | VkTimeDomainEXT - Supported time domains -- -- = Description+--+-- Note+--+-- An implementation supporting @VK_EXT_calibrated_timestamps@ will use the+-- same time domain for all its 'Vulkan.Core10.Handles.Queue' so that+-- timestamp values reported for 'TIME_DOMAIN_DEVICE_EXT' can be matched to+-- any timestamp captured through+-- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR' . -- -- > struct timespec tv; -- > clock_gettime(CLOCK_MONOTONIC, &tv);
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -113,6 +113,12 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@ -- makes it possible to calculate future device timestamps as follows: --+-- 6) In what queue are timestamp values in time domain+-- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'?+--+-- __RESOLVED__: An implementation supporting this extension will have all+-- its VkQueue share the same time domain.+-- -- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod -- -- 6) Can the host and device timestamp values drift apart over longer@@ -146,6 +152,10 @@ -- domains calibrated and thus can never be zero. -- -- == Version History+--+-- - Revision 2, 2021-03-16 (Lionel Landwerlin)+--+-- - Specify requirement on device timestamps -- -- - Revision 1, 2018-10-04 (Daniel Rakos) --
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -235,7 +235,7 @@ -- > PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT"); -- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- >--- > VkDebugUtilsMessengeCreateInfoEXT callback1 = {+-- > VkDebugUtilsMessengerCreateInfoEXT callback1 = { -- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType -- > NULL, // pNext -- > 0, // flags@@ -252,7 +252,7 @@ -- > } -- > -- > callback1.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT;--- > callback1.pfnCallback = myDebugBreak;+-- > callback1.pfnUserCallback = myDebugBreak; -- > callback1.pUserData = NULL; -- > res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb2); -- > if (res != VK_SUCCESS) {@@ -2158,13 +2158,16 @@ -- -- = Description ----- The callback /must/ not call 'destroyDebugUtilsMessengerEXT'.--- -- The callback returns a 'Vulkan.Core10.FundamentalTypes.Bool32', which is -- interpreted in a layer-specified manner. The application /should/ always -- return 'Vulkan.Core10.FundamentalTypes.FALSE'. The -- 'Vulkan.Core10.FundamentalTypes.TRUE' value is reserved for use in layer -- development.+--+-- == Valid Usage+--+-- - #VUID-PFN_vkDebugUtilsMessengerCallbackEXT-None-04769# The callback+-- /must/ not make calls to any Vulkan commands. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -235,7 +235,7 @@ -- > PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT"); -- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- >--- > VkDebugUtilsMessengeCreateInfoEXT callback1 = {+-- > VkDebugUtilsMessengerCreateInfoEXT callback1 = { -- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType -- > NULL, // pNext -- > 0, // flags@@ -252,7 +252,7 @@ -- > } -- > -- > callback1.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT;--- > callback1.pfnCallback = myDebugBreak;+-- > callback1.pfnUserCallback = myDebugBreak; -- > callback1.pUserData = NULL; -- > res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb2); -- > if (res != VK_SUCCESS) {
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -51,7 +51,7 @@ -- [__Interactions and External Dependencies__] -- -- - This extension requires the--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_EXT_shader_image_atomic_int64.html SPV_EXT_shader_image_int64>+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_image_int64.html SPV_EXT_shader_image_int64> -- SPIR-V extension. -- -- - This extension requires the
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot view
@@ -51,7 +51,7 @@ -- [__Interactions and External Dependencies__] -- -- - This extension requires the--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_EXT_shader_image_atomic_int64.html SPV_EXT_shader_image_int64>+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_image_int64.html SPV_EXT_shader_image_int64> -- SPIR-V extension. -- -- - This extension requires the
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -823,12 +823,6 @@ -- -- == Valid Usage ----- - #VUID-vkCmdBeginQueryIndexedEXT-queryPool-01922# @queryPool@ /must/--- have been created with a @queryType@ that differs from that of any--- queries that are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>--- within @commandBuffer@--- -- - #VUID-vkCmdBeginQueryIndexedEXT-None-00807# All queries used by the -- command /must/ be unavailable --@@ -885,6 +879,12 @@ -- in the current subpass’s view mask /must/ be less than or equal to -- the number of queries in @queryPool@ --+-- - #VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753# If the @queryPool@+-- was created with the same @queryType@ as that of another+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+-- query within @commandBuffer@, then @index@ /must/ not match the+-- index used for the active query+-- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-02338# If the @queryType@ -- used to create @queryPool@ was -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'@@ -1189,6 +1189,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -1341,7 +1351,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -1587,6 +1597,13 @@ -- then the @blendEnable@ member of the corresponding element of the -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex
+ src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs view
@@ -0,0 +1,511 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_memory - device extension+--+-- == VK_FUCHSIA_external_memory+--+-- [__Name String__]+-- @VK_FUCHSIA_external_memory@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 365+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_external_memory_capabilities@+--+-- - Requires @VK_KHR_external_memory@+--+-- [__Contact__]+--+-- - John Rosasco+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_memory:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-03-01+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Craig Stout, Google+--+-- - John Bauman, Google+--+-- - John Rosasco, Google+--+-- == Description+--+-- Vulkan apps may wish to export or import device memory handles to or+-- from other logical devices, instances or APIs.+--+-- This memory sharing can eliminate copies of memory buffers when+-- different subsystems need to interoperate on them. Sharing memory+-- buffers may also facilitate a better distribution of processing workload+-- for more complex memory manipulation pipelines.+--+-- == New Commands+--+-- - 'getMemoryZirconHandleFUCHSIA'+--+-- - 'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- == New Structures+--+-- - 'MemoryGetZirconHandleInfoFUCHSIA'+--+-- - 'MemoryZirconHandlePropertiesFUCHSIA'+--+-- - Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':+--+-- - 'ImportMemoryZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- - 'FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME'+--+-- - 'FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':+--+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA'+--+-- == Issues+--+-- See @VK_KHR_external_memory@ issues list for further information.+--+-- == Version History+--+-- - Revision 1, 2021-03-01 (John Rosasco)+--+-- - Initial draft+--+-- = See Also+--+-- 'ImportMemoryZirconHandleInfoFUCHSIA',+-- 'MemoryGetZirconHandleInfoFUCHSIA',+-- 'MemoryZirconHandlePropertiesFUCHSIA', 'getMemoryZirconHandleFUCHSIA',+-- 'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_memory ( getMemoryZirconHandleFUCHSIA+ , getMemoryZirconHandlePropertiesFUCHSIA+ , ImportMemoryZirconHandleInfoFUCHSIA(..)+ , MemoryZirconHandlePropertiesFUCHSIA(..)+ , MemoryGetZirconHandleInfoFUCHSIA(..)+ , FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION+ , pattern FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION+ , FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME+ , pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME+ , Zx_handle_t+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.NamedType ((:::))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkGetMemoryZirconHandleFUCHSIA))+import Vulkan.Dynamic (DeviceCmds(pVkGetMemoryZirconHandlePropertiesFUCHSIA))+import Vulkan.Core10.Handles (DeviceMemory)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)+import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits(..))+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetMemoryZirconHandleFUCHSIA+ :: FunPtr (Ptr Device_T -> Ptr MemoryGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result) -> Ptr Device_T -> Ptr MemoryGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result++-- | vkGetMemoryZirconHandleFUCHSIA - Get a Zircon handle for an external+-- memory object+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'MemoryGetZirconHandleInfoFUCHSIA'+getMemoryZirconHandleFUCHSIA :: forall io+ . (MonadIO io)+ => -- | @device@ is the VkDevice.+ --+ -- #VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter# @device@ /must/+ -- be a valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @pGetZirconHandleInfo@ is a pointer to a+ -- 'MemoryGetZirconHandleInfoFUCHSIA' structure.+ --+ -- #VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter#+ -- @pGetZirconHandleInfo@ /must/ be a valid pointer to a valid+ -- 'MemoryGetZirconHandleInfoFUCHSIA' structure+ MemoryGetZirconHandleInfoFUCHSIA+ -> io (("zirconHandle" ::: Zx_handle_t))+getMemoryZirconHandleFUCHSIA device getZirconHandleInfo = liftIO . evalContT $ do+ let vkGetMemoryZirconHandleFUCHSIAPtr = pVkGetMemoryZirconHandleFUCHSIA (deviceCmds (device :: Device))+ lift $ unless (vkGetMemoryZirconHandleFUCHSIAPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryZirconHandleFUCHSIA is null" Nothing Nothing+ let vkGetMemoryZirconHandleFUCHSIA' = mkVkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIAPtr+ pGetZirconHandleInfo <- ContT $ withCStruct (getZirconHandleInfo)+ pPZirconHandle <- ContT $ bracket (callocBytes @Zx_handle_t 4) free+ r <- lift $ traceAroundEvent "vkGetMemoryZirconHandleFUCHSIA" (vkGetMemoryZirconHandleFUCHSIA' (deviceHandle (device)) pGetZirconHandleInfo (pPZirconHandle))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pZirconHandle <- lift $ peek @Zx_handle_t pPZirconHandle+ pure $ (pZirconHandle)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetMemoryZirconHandlePropertiesFUCHSIA+ :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> Zx_handle_t -> Ptr MemoryZirconHandlePropertiesFUCHSIA -> IO Result) -> Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> Zx_handle_t -> Ptr MemoryZirconHandlePropertiesFUCHSIA -> IO Result++-- | vkGetMemoryZirconHandlePropertiesFUCHSIA - Get a Zircon handle+-- properties for an external memory object+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_EXTERNAL_HANDLE'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits',+-- 'MemoryZirconHandlePropertiesFUCHSIA'+getMemoryZirconHandlePropertiesFUCHSIA :: forall io+ . (MonadIO io)+ => -- | @device@ is the VkDevice.+ --+ -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter#+ -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @handleType@ is the type of @zirconHandle@+ --+ -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773#+ -- @handleType@ /must/ be+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'.+ --+ -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameter#+ -- @handleType@ /must/ be a valid+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value+ ExternalMemoryHandleTypeFlagBits+ -> -- | @zirconHandle@ is a @zx_handle_t@ (Zircon) handle to the external+ -- resource.+ --+ -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774#+ -- @zirconHandle@ must reference a valid VMO.+ ("zirconHandle" ::: Zx_handle_t)+ -> io (MemoryZirconHandlePropertiesFUCHSIA)+getMemoryZirconHandlePropertiesFUCHSIA device handleType zirconHandle = liftIO . evalContT $ do+ let vkGetMemoryZirconHandlePropertiesFUCHSIAPtr = pVkGetMemoryZirconHandlePropertiesFUCHSIA (deviceCmds (device :: Device))+ lift $ unless (vkGetMemoryZirconHandlePropertiesFUCHSIAPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryZirconHandlePropertiesFUCHSIA is null" Nothing Nothing+ let vkGetMemoryZirconHandlePropertiesFUCHSIA' = mkVkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIAPtr+ pPMemoryZirconHandleProperties <- ContT (withZeroCStruct @MemoryZirconHandlePropertiesFUCHSIA)+ r <- lift $ traceAroundEvent "vkGetMemoryZirconHandlePropertiesFUCHSIA" (vkGetMemoryZirconHandlePropertiesFUCHSIA' (deviceHandle (device)) (handleType) (zirconHandle) (pPMemoryZirconHandleProperties))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pMemoryZirconHandleProperties <- lift $ peekCStruct @MemoryZirconHandlePropertiesFUCHSIA pPMemoryZirconHandleProperties+ pure $ (pMemoryZirconHandleProperties)+++-- | VkImportMemoryZirconHandleInfoFUCHSIA - Structure specifying import+-- parameters for Zircon handle to external memory+--+-- == Valid Usage+--+-- - #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771#+-- @handleType@ /must/ be+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'.+--+-- - #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772# @handle@+-- must be a valid VMO handle.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - #VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameter# If+-- @handleType@ is not @0@, @handleType@ /must/ be a valid+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+-- value+--+-- = See Also+--+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImportMemoryZirconHandleInfoFUCHSIA = ImportMemoryZirconHandleInfoFUCHSIA+ { -- | @handleType@ is the type of @handle@.+ handleType :: ExternalMemoryHandleTypeFlagBits+ , -- | @handle@ is a @zx_handle_t@ (Zircon) handle to the external memory.+ handle :: Zx_handle_t+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportMemoryZirconHandleInfoFUCHSIA)+#endif+deriving instance Show ImportMemoryZirconHandleInfoFUCHSIA++instance ToCStruct ImportMemoryZirconHandleInfoFUCHSIA where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImportMemoryZirconHandleInfoFUCHSIA{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType)+ poke ((p `plusPtr` 20 :: Ptr Zx_handle_t)) (handle)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct ImportMemoryZirconHandleInfoFUCHSIA where+ peekCStruct p = do+ handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 16 :: Ptr ExternalMemoryHandleTypeFlagBits))+ handle <- peek @Zx_handle_t ((p `plusPtr` 20 :: Ptr Zx_handle_t))+ pure $ ImportMemoryZirconHandleInfoFUCHSIA+ handleType handle++instance Storable ImportMemoryZirconHandleInfoFUCHSIA where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportMemoryZirconHandleInfoFUCHSIA where+ zero = ImportMemoryZirconHandleInfoFUCHSIA+ zero+ zero+++-- | VkMemoryZirconHandlePropertiesFUCHSIA - Structure specifying Zircon+-- handle compatible external memory+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getMemoryZirconHandlePropertiesFUCHSIA'+data MemoryZirconHandlePropertiesFUCHSIA = MemoryZirconHandlePropertiesFUCHSIA+ { -- | @memoryTypeBits@ a bitmask containing one bit set for every memory type+ -- which the specified handle can be imported as.+ memoryTypeBits :: Word32 }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MemoryZirconHandlePropertiesFUCHSIA)+#endif+deriving instance Show MemoryZirconHandlePropertiesFUCHSIA++instance ToCStruct MemoryZirconHandlePropertiesFUCHSIA where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MemoryZirconHandlePropertiesFUCHSIA{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (memoryTypeBits)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ f++instance FromCStruct MemoryZirconHandlePropertiesFUCHSIA where+ peekCStruct p = do+ memoryTypeBits <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pure $ MemoryZirconHandlePropertiesFUCHSIA+ memoryTypeBits++instance Storable MemoryZirconHandlePropertiesFUCHSIA where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MemoryZirconHandlePropertiesFUCHSIA where+ zero = MemoryZirconHandlePropertiesFUCHSIA+ zero+++-- | VkMemoryGetZirconHandleInfoFUCHSIA - Structure specifying export+-- parameters for Zircon handle to device memory+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.DeviceMemory',+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getMemoryZirconHandleFUCHSIA'+data MemoryGetZirconHandleInfoFUCHSIA = MemoryGetZirconHandleInfoFUCHSIA+ { -- | @memory@ the 'Vulkan.Core10.Handles.DeviceMemory' being exported.+ --+ -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter# @memory@+ -- /must/ be a valid 'Vulkan.Core10.Handles.DeviceMemory' handle+ memory :: DeviceMemory+ , -- | @handleType@ is the type of the handle pointed to by @pZirconHandle@ as+ -- retrieved by the call to 'getMemoryZirconHandleFUCHSIA'.+ --+ -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775# @handleType@+ -- /must/ be+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'.+ --+ -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776# @handleType@+ -- /must/ have been included in the @handleTypes@ field of the+ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo'+ -- structure when the external memory was allocated.+ --+ -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameter#+ -- @handleType@ /must/ be a valid+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value+ handleType :: ExternalMemoryHandleTypeFlagBits+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MemoryGetZirconHandleInfoFUCHSIA)+#endif+deriving instance Show MemoryGetZirconHandleInfoFUCHSIA++instance ToCStruct MemoryGetZirconHandleInfoFUCHSIA where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MemoryGetZirconHandleInfoFUCHSIA{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (memory)+ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (zero)+ f++instance FromCStruct MemoryGetZirconHandleInfoFUCHSIA where+ peekCStruct p = do+ memory <- peek @DeviceMemory ((p `plusPtr` 16 :: Ptr DeviceMemory))+ handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits))+ pure $ MemoryGetZirconHandleInfoFUCHSIA+ memory handleType++instance Storable MemoryGetZirconHandleInfoFUCHSIA where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MemoryGetZirconHandleInfoFUCHSIA where+ zero = MemoryGetZirconHandleInfoFUCHSIA+ zero+ zero+++type FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION"+pattern FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION :: forall a . Integral a => a+pattern FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION = 1+++type FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_FUCHSIA_external_memory"++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME"+pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_FUCHSIA_external_memory"+
+ src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot view
@@ -0,0 +1,149 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_memory - device extension+--+-- == VK_FUCHSIA_external_memory+--+-- [__Name String__]+-- @VK_FUCHSIA_external_memory@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 365+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_external_memory_capabilities@+--+-- - Requires @VK_KHR_external_memory@+--+-- [__Contact__]+--+-- - John Rosasco+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_memory:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-03-01+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Craig Stout, Google+--+-- - John Bauman, Google+--+-- - John Rosasco, Google+--+-- == Description+--+-- Vulkan apps may wish to export or import device memory handles to or+-- from other logical devices, instances or APIs.+--+-- This memory sharing can eliminate copies of memory buffers when+-- different subsystems need to interoperate on them. Sharing memory+-- buffers may also facilitate a better distribution of processing workload+-- for more complex memory manipulation pipelines.+--+-- == New Commands+--+-- - 'getMemoryZirconHandleFUCHSIA'+--+-- - 'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- == New Structures+--+-- - 'MemoryGetZirconHandleInfoFUCHSIA'+--+-- - 'MemoryZirconHandlePropertiesFUCHSIA'+--+-- - Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':+--+-- - 'ImportMemoryZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- - 'FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME'+--+-- - 'FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':+--+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA'+--+-- == Issues+--+-- See @VK_KHR_external_memory@ issues list for further information.+--+-- == Version History+--+-- - Revision 1, 2021-03-01 (John Rosasco)+--+-- - Initial draft+--+-- = See Also+--+-- 'ImportMemoryZirconHandleInfoFUCHSIA',+-- 'MemoryGetZirconHandleInfoFUCHSIA',+-- 'MemoryZirconHandlePropertiesFUCHSIA', 'getMemoryZirconHandleFUCHSIA',+-- 'getMemoryZirconHandlePropertiesFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_memory ( ImportMemoryZirconHandleInfoFUCHSIA+ , MemoryGetZirconHandleInfoFUCHSIA+ , MemoryZirconHandlePropertiesFUCHSIA+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ImportMemoryZirconHandleInfoFUCHSIA++instance ToCStruct ImportMemoryZirconHandleInfoFUCHSIA+instance Show ImportMemoryZirconHandleInfoFUCHSIA++instance FromCStruct ImportMemoryZirconHandleInfoFUCHSIA+++data MemoryGetZirconHandleInfoFUCHSIA++instance ToCStruct MemoryGetZirconHandleInfoFUCHSIA+instance Show MemoryGetZirconHandleInfoFUCHSIA++instance FromCStruct MemoryGetZirconHandleInfoFUCHSIA+++data MemoryZirconHandlePropertiesFUCHSIA++instance ToCStruct MemoryZirconHandlePropertiesFUCHSIA+instance Show MemoryZirconHandlePropertiesFUCHSIA++instance FromCStruct MemoryZirconHandlePropertiesFUCHSIA+
+ src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs view
@@ -0,0 +1,578 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_semaphore - device extension+--+-- == VK_FUCHSIA_external_semaphore+--+-- [__Name String__]+-- @VK_FUCHSIA_external_semaphore@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 366+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_external_semaphore_capabilities@+--+-- - Requires @VK_KHR_external_semaphore@+--+-- [__Contact__]+--+-- - John Rosasco+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_semaphore:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-03-08+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Craig Stout, Google+--+-- - John Bauman, Google+--+-- - John Rosasco, Google+--+-- == Description+--+-- An application using external memory may wish to synchronize access to+-- that memory using semaphores. This extension enables an application to+-- export semaphore payload to and import semaphore payload from Zircon+-- event handles.+--+-- == New Commands+--+-- - 'getSemaphoreZirconHandleFUCHSIA'+--+-- - 'importSemaphoreZirconHandleFUCHSIA'+--+-- == New Structures+--+-- - 'ImportSemaphoreZirconHandleInfoFUCHSIA'+--+-- - 'SemaphoreGetZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- - 'FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME'+--+-- - 'FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits':+--+-- - 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- == Issues+--+-- 1) Does the application need to close the Zircon event handle returned+-- by 'getSemaphoreZirconHandleFUCHSIA'?+--+-- __RESOLVED__: Yes, unless it is passed back in to a driver instance to+-- import the semaphore. A successful get call transfers ownership of the+-- Zircon event handle to the application, and a successful import+-- transfers it back to the driver. Destroying the original semaphore+-- object will not close the Zircon event handle nor remove its reference+-- to the underlying semaphore resource associated with it.+--+-- == Version History+--+-- - Revision 1, 2021-03-08 (John Rosasco)+--+-- - Initial revision+--+-- = See Also+--+-- 'ImportSemaphoreZirconHandleInfoFUCHSIA',+-- 'SemaphoreGetZirconHandleInfoFUCHSIA',+-- 'getSemaphoreZirconHandleFUCHSIA', 'importSemaphoreZirconHandleFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_semaphore ( getSemaphoreZirconHandleFUCHSIA+ , importSemaphoreZirconHandleFUCHSIA+ , ImportSemaphoreZirconHandleInfoFUCHSIA(..)+ , SemaphoreGetZirconHandleInfoFUCHSIA(..)+ , FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION+ , pattern FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION+ , FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME+ , pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME+ , Zx_handle_t+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.NamedType ((:::))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkGetSemaphoreZirconHandleFUCHSIA))+import Vulkan.Dynamic (DeviceCmds(pVkImportSemaphoreZirconHandleFUCHSIA))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits (ExternalSemaphoreHandleTypeFlagBits)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Handles (Semaphore)+import Vulkan.Core11.Enums.SemaphoreImportFlagBits (SemaphoreImportFlags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (Zx_handle_t)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetSemaphoreZirconHandleFUCHSIA+ :: FunPtr (Ptr Device_T -> Ptr SemaphoreGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result) -> Ptr Device_T -> Ptr SemaphoreGetZirconHandleInfoFUCHSIA -> Ptr Zx_handle_t -> IO Result++-- | vkGetSemaphoreZirconHandleFUCHSIA - Get a Zircon event handle for a+-- semaphore+--+-- = Description+--+-- Each call to 'getSemaphoreZirconHandleFUCHSIA' /must/ create a Zircon+-- event handle and transfer ownership of it to the application. To avoid+-- leaking resources, the application /must/ release ownership of the+-- Zircon event handle when it is no longer needed.+--+-- Note+--+-- Ownership can be released in many ways. For example, the application can+-- call zx_handle_close() on the file descriptor, or transfer ownership+-- back to Vulkan by using the file descriptor to import a semaphore+-- payload.+--+-- Exporting a Zircon event handle from a semaphore /may/ have side effects+-- depending on the transference of the specified handle type, as described+-- in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'SemaphoreGetZirconHandleInfoFUCHSIA'+getSemaphoreZirconHandleFUCHSIA :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that created the semaphore being+ -- exported.+ --+ -- #VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter# @device@+ -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @pGetZirconHandleInfo@ is a pointer to a+ -- 'SemaphoreGetZirconHandleInfoFUCHSIA' structure containing parameters of+ -- the export operation.+ --+ -- #VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter#+ -- @pGetZirconHandleInfo@ /must/ be a valid pointer to a valid+ -- 'SemaphoreGetZirconHandleInfoFUCHSIA' structure+ SemaphoreGetZirconHandleInfoFUCHSIA+ -> io (("zirconHandle" ::: Zx_handle_t))+getSemaphoreZirconHandleFUCHSIA device getZirconHandleInfo = liftIO . evalContT $ do+ let vkGetSemaphoreZirconHandleFUCHSIAPtr = pVkGetSemaphoreZirconHandleFUCHSIA (deviceCmds (device :: Device))+ lift $ unless (vkGetSemaphoreZirconHandleFUCHSIAPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSemaphoreZirconHandleFUCHSIA is null" Nothing Nothing+ let vkGetSemaphoreZirconHandleFUCHSIA' = mkVkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIAPtr+ pGetZirconHandleInfo <- ContT $ withCStruct (getZirconHandleInfo)+ pPZirconHandle <- ContT $ bracket (callocBytes @Zx_handle_t 4) free+ r <- lift $ traceAroundEvent "vkGetSemaphoreZirconHandleFUCHSIA" (vkGetSemaphoreZirconHandleFUCHSIA' (deviceHandle (device)) pGetZirconHandleInfo (pPZirconHandle))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pZirconHandle <- lift $ peek @Zx_handle_t pPZirconHandle+ pure $ (pZirconHandle)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkImportSemaphoreZirconHandleFUCHSIA+ :: FunPtr (Ptr Device_T -> Ptr ImportSemaphoreZirconHandleInfoFUCHSIA -> IO Result) -> Ptr Device_T -> Ptr ImportSemaphoreZirconHandleInfoFUCHSIA -> IO Result++-- | vkImportSemaphoreZirconHandleFUCHSIA - Import a semaphore from a Zircon+-- event handle+--+-- = Description+--+-- Importing a semaphore payload from a Zircon event handle transfers+-- ownership of the handle from the application to the Vulkan+-- implementation. The application /must/ not perform any operations on the+-- handle after a successful import.+--+-- Applications /can/ import the same semaphore payload into multiple+-- instances of Vulkan, into the same instance from which it was exported,+-- and multiple times into a given Vulkan instance.+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_EXTERNAL_HANDLE'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'ImportSemaphoreZirconHandleInfoFUCHSIA'+importSemaphoreZirconHandleFUCHSIA :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that created the semaphore.+ --+ -- #VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter# @device@+ -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @pImportSemaphoreZirconHandleInfo@ is a pointer to a+ -- 'ImportSemaphoreZirconHandleInfoFUCHSIA' structure specifying the+ -- semaphore and import parameters.+ --+ -- #VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameter#+ -- @pImportSemaphoreZirconHandleInfo@ /must/ be a valid pointer to a valid+ -- 'ImportSemaphoreZirconHandleInfoFUCHSIA' structure+ ImportSemaphoreZirconHandleInfoFUCHSIA+ -> io ()+importSemaphoreZirconHandleFUCHSIA device importSemaphoreZirconHandleInfo = liftIO . evalContT $ do+ let vkImportSemaphoreZirconHandleFUCHSIAPtr = pVkImportSemaphoreZirconHandleFUCHSIA (deviceCmds (device :: Device))+ lift $ unless (vkImportSemaphoreZirconHandleFUCHSIAPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportSemaphoreZirconHandleFUCHSIA is null" Nothing Nothing+ let vkImportSemaphoreZirconHandleFUCHSIA' = mkVkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIAPtr+ pImportSemaphoreZirconHandleInfo <- ContT $ withCStruct (importSemaphoreZirconHandleInfo)+ r <- lift $ traceAroundEvent "vkImportSemaphoreZirconHandleFUCHSIA" (vkImportSemaphoreZirconHandleFUCHSIA' (deviceHandle (device)) pImportSemaphoreZirconHandleInfo)+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++-- | VkImportSemaphoreZirconHandleInfoFUCHSIA - Structure specifying Zircon+-- event handle to import to a semaphore+--+-- = Description+--+-- The handle types supported by @handleType@ are:+--+-- +-------------------------------------------------------------------------------------------------------------------+------------------+---------------------++-- | Handle Type | Transference | Permanence |+-- | | | Supported |+-- +===================================================================================================================+==================+=====================++-- | 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' | Reference | Temporary,Permanent |+-- +-------------------------------------------------------------------------------------------------------------------+------------------+---------------------++--+-- Handle Types Supported by 'ImportSemaphoreZirconHandleInfoFUCHSIA'+--+-- == Valid Usage+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765#+-- @handleType@ /must/ be a value included in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphore-handletypes-zircon-handle Handle Types Supported by >+-- table.+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766#+-- @zirconHandle@ /must/ obey any requirements listed for @handleType@+-- in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>.+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767#+-- @zirconHandle@ /must/ have @ZX_RIGHTS_BASIC@ and @ZX_RIGHTS_SIGNAL@+-- rights.+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768#+-- The+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'::@semaphoreType@+-- field /must/ not be+-- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE'.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNext# @pNext@+-- /must/ be @NULL@+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameter#+-- @semaphore@ /must/ be a valid 'Vulkan.Core10.Handles.Semaphore'+-- handle+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameter#+-- @flags@ /must/ be a valid combination of+-- 'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlagBits'+-- values+--+-- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameter#+-- @handleType@ /must/ be a valid+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+-- value+--+-- == Host Synchronization+--+-- - Host access to @semaphore@ /must/ be externally synchronized+--+-- = See Also+--+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits',+-- 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'importSemaphoreZirconHandleFUCHSIA'+data ImportSemaphoreZirconHandleInfoFUCHSIA = ImportSemaphoreZirconHandleInfoFUCHSIA+ { -- | @semaphore@ is the semaphore into which the payload will be imported.+ semaphore :: Semaphore+ , -- | @flags@ is a bitmask of+ -- 'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlagBits'+ -- specifying additional parameters for the semaphore payload import+ -- operation.+ flags :: SemaphoreImportFlags+ , -- | @handleType@ specifies the type of @zirconHandle@.+ handleType :: ExternalSemaphoreHandleTypeFlagBits+ , -- | @zirconHandle@ is the external handle to import.+ zirconHandle :: Zx_handle_t+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportSemaphoreZirconHandleInfoFUCHSIA)+#endif+deriving instance Show ImportSemaphoreZirconHandleInfoFUCHSIA++instance ToCStruct ImportSemaphoreZirconHandleInfoFUCHSIA where+ withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImportSemaphoreZirconHandleInfoFUCHSIA{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)+ poke ((p `plusPtr` 24 :: Ptr SemaphoreImportFlags)) (flags)+ poke ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (handleType)+ poke ((p `plusPtr` 32 :: Ptr Zx_handle_t)) (zirconHandle)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+ poke ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Zx_handle_t)) (zero)+ f++instance FromCStruct ImportSemaphoreZirconHandleInfoFUCHSIA where+ peekCStruct p = do+ semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))+ flags <- peek @SemaphoreImportFlags ((p `plusPtr` 24 :: Ptr SemaphoreImportFlags))+ handleType <- peek @ExternalSemaphoreHandleTypeFlagBits ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits))+ zirconHandle <- peek @Zx_handle_t ((p `plusPtr` 32 :: Ptr Zx_handle_t))+ pure $ ImportSemaphoreZirconHandleInfoFUCHSIA+ semaphore flags handleType zirconHandle++instance Storable ImportSemaphoreZirconHandleInfoFUCHSIA where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportSemaphoreZirconHandleInfoFUCHSIA where+ zero = ImportSemaphoreZirconHandleInfoFUCHSIA+ zero+ zero+ zero+ zero+++-- | VkSemaphoreGetZirconHandleInfoFUCHSIA - Structure describing a Zircon+-- event handle semaphore export operation+--+-- = Description+--+-- The properties of the Zircon event handle returned depend on the value+-- of @handleType@. See+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+-- for a description of the properties of the defined external semaphore+-- handle types.+--+-- == Valid Usage+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758#+-- @handleType@ /must/ have been included in+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo'::@handleTypes@+-- when @semaphore@’s current payload was created.+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759#+-- @semaphore@ /must/ not currently have its payload replaced by an+-- imported payload as described below in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+-- unless that imported payload’s handle type was included in+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@+-- for @handleType@.+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760# If+-- @handleType@ refers to a handle type with copy payload transference+-- semantics, as defined below in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- there /must/ be no queue waiting on @semaphore@.+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761# If+-- @handleType@ refers to a handle type with copy payload transference+-- semantics, @semaphore@ /must/ be signaled, or have an associated+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- pending execution.+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762#+-- @handleType@ /must/ be defined as a Zircon event handle.+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04763#+-- @semaphore@ /must/ have been created with a+-- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of+-- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNext# @pNext@+-- /must/ be @NULL@+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameter#+-- @semaphore@ /must/ be a valid 'Vulkan.Core10.Handles.Semaphore'+-- handle+--+-- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameter#+-- @handleType@ /must/ be a valid+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+-- value+--+-- = See Also+--+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits',+-- 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getSemaphoreZirconHandleFUCHSIA'+data SemaphoreGetZirconHandleInfoFUCHSIA = SemaphoreGetZirconHandleInfoFUCHSIA+ { -- | @semaphore@ is the semaphore from which state will be exported.+ semaphore :: Semaphore+ , -- | @handleType@ is the type of handle requested.+ handleType :: ExternalSemaphoreHandleTypeFlagBits+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SemaphoreGetZirconHandleInfoFUCHSIA)+#endif+deriving instance Show SemaphoreGetZirconHandleInfoFUCHSIA++instance ToCStruct SemaphoreGetZirconHandleInfoFUCHSIA where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p SemaphoreGetZirconHandleInfoFUCHSIA{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)+ poke ((p `plusPtr` 24 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (handleType)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (zero)+ f++instance FromCStruct SemaphoreGetZirconHandleInfoFUCHSIA where+ peekCStruct p = do+ semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))+ handleType <- peek @ExternalSemaphoreHandleTypeFlagBits ((p `plusPtr` 24 :: Ptr ExternalSemaphoreHandleTypeFlagBits))+ pure $ SemaphoreGetZirconHandleInfoFUCHSIA+ semaphore handleType++instance Storable SemaphoreGetZirconHandleInfoFUCHSIA where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SemaphoreGetZirconHandleInfoFUCHSIA where+ zero = SemaphoreGetZirconHandleInfoFUCHSIA+ zero+ zero+++type FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION"+pattern FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION :: forall a . Integral a => a+pattern FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION = 1+++type FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME = "VK_FUCHSIA_external_semaphore"++-- No documentation found for TopLevel "VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME"+pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME = "VK_FUCHSIA_external_semaphore"+
+ src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot view
@@ -0,0 +1,138 @@+{-# language CPP #-}+-- | = Name+--+-- VK_FUCHSIA_external_semaphore - device extension+--+-- == VK_FUCHSIA_external_semaphore+--+-- [__Name String__]+-- @VK_FUCHSIA_external_semaphore@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 366+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_external_semaphore_capabilities@+--+-- - Requires @VK_KHR_external_semaphore@+--+-- [__Contact__]+--+-- - John Rosasco+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_FUCHSIA_external_semaphore:%20&body=@rosasco%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-03-08+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Craig Stout, Google+--+-- - John Bauman, Google+--+-- - John Rosasco, Google+--+-- == Description+--+-- An application using external memory may wish to synchronize access to+-- that memory using semaphores. This extension enables an application to+-- export semaphore payload to and import semaphore payload from Zircon+-- event handles.+--+-- == New Commands+--+-- - 'getSemaphoreZirconHandleFUCHSIA'+--+-- - 'importSemaphoreZirconHandleFUCHSIA'+--+-- == New Structures+--+-- - 'ImportSemaphoreZirconHandleInfoFUCHSIA'+--+-- - 'SemaphoreGetZirconHandleInfoFUCHSIA'+--+-- == New Enum Constants+--+-- - 'FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME'+--+-- - 'FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits':+--+-- - 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA'+--+-- == Issues+--+-- 1) Does the application need to close the Zircon event handle returned+-- by 'getSemaphoreZirconHandleFUCHSIA'?+--+-- __RESOLVED__: Yes, unless it is passed back in to a driver instance to+-- import the semaphore. A successful get call transfers ownership of the+-- Zircon event handle to the application, and a successful import+-- transfers it back to the driver. Destroying the original semaphore+-- object will not close the Zircon event handle nor remove its reference+-- to the underlying semaphore resource associated with it.+--+-- == Version History+--+-- - Revision 1, 2021-03-08 (John Rosasco)+--+-- - Initial revision+--+-- = See Also+--+-- 'ImportSemaphoreZirconHandleInfoFUCHSIA',+-- 'SemaphoreGetZirconHandleInfoFUCHSIA',+-- 'getSemaphoreZirconHandleFUCHSIA', 'importSemaphoreZirconHandleFUCHSIA'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_FUCHSIA_external_semaphore ( ImportSemaphoreZirconHandleInfoFUCHSIA+ , SemaphoreGetZirconHandleInfoFUCHSIA+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ImportSemaphoreZirconHandleInfoFUCHSIA++instance ToCStruct ImportSemaphoreZirconHandleInfoFUCHSIA+instance Show ImportSemaphoreZirconHandleInfoFUCHSIA++instance FromCStruct ImportSemaphoreZirconHandleInfoFUCHSIA+++data SemaphoreGetZirconHandleInfoFUCHSIA++instance ToCStruct SemaphoreGetZirconHandleInfoFUCHSIA+instance Show SemaphoreGetZirconHandleInfoFUCHSIA++instance FromCStruct SemaphoreGetZirconHandleInfoFUCHSIA+
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot view
@@ -91,10 +91,13 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (ImagePipeSurfaceCreateInfoFUCHSIA) where+module Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface ( ImagePipeSurfaceCreateInfoFUCHSIA+ , Zx_handle_t+ ) where import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct)+import Data.Word (Word32) import Data.Kind (Type) data ImagePipeSurfaceCreateInfoFUCHSIA@@ -103,4 +106,7 @@ instance Show ImagePipeSurfaceCreateInfoFUCHSIA instance FromCStruct ImagePipeSurfaceCreateInfoFUCHSIA+++type Zx_handle_t = Word32
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -1705,7 +1705,10 @@ -- -- - A 64-bit integer of the count of the number of acceleration -- structure handles following. This will be zero for a bottom-level--- acceleration structure.+-- acceleration structure. For top-level acceleration structures this+-- number is implementation-dependent; the number of and ordering of+-- the handles may not match the instance descriptions which were used+-- to build the acceleration structure. -- -- The corresponding handles matching the values returned by -- 'getAccelerationStructureDeviceAddressKHR' or
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -415,9 +415,6 @@ -- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274# -- @pipeline@ member of @pExecutableInfo@ /must/ have been created with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR'--- set in the @flags@ field of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' or--- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo' -- -- == Valid Usage (Implicit) --@@ -525,9 +522,6 @@ -- - #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278# -- @pipeline@ member of @pExecutableInfo@ /must/ have been created with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'--- set in the @flags@ field of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' or--- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -895,6 +895,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdTraceRaysKHR-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdTraceRaysKHR-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -1045,7 +1055,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdTraceRaysKHR-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -1757,6 +1767,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -1909,7 +1929,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -23,8 +23,6 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ ----- - Requires @VK_KHR_create_renderpass2@--- -- [__Contact__] -- -- - Tobias Hector@@ -446,8 +444,7 @@ , QueueFamilyCheckpointProperties2NV(..) , CheckpointData2NV(..) , PhysicalDeviceSynchronization2FeaturesKHR(..)- , AccessFlags2KHR(..)- , PipelineStageFlags2KHR(..)+ , AccessFlags2KHR , AccessFlagBits2KHR( ACCESS_2_NONE_KHR , ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR , ACCESS_2_INDEX_READ_BIT_KHR@@ -482,6 +479,7 @@ , ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT , .. )+ , PipelineStageFlags2KHR , PipelineStageFlagBits2KHR( PIPELINE_STAGE_2_NONE_KHR , PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR , PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR@@ -526,6 +524,7 @@ , pattern KHR_SYNCHRONIZATION_2_SPEC_VERSION , KHR_SYNCHRONIZATION_2_EXTENSION_NAME , pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME+ , Flags64 ) where import Vulkan.Internal.Utils (enumReadPrec)@@ -611,6 +610,7 @@ import Vulkan.Core10.Handles (Fence) import Vulkan.Core10.Handles (Fence(..)) import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.FundamentalTypes (Flags64) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import Vulkan.Core10.ImageView (ImageSubresourceRange)@@ -644,6 +644,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO_2_KHR)) import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.FundamentalTypes (Flags64) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe@@ -2316,10 +2317,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- - #VUID-VkMemoryBarrier2KHR-srcAccessMask-03921# If @srcAccessMask@+-- - #VUID-VkMemoryBarrier2KHR-srcAccessMask-04747# If @srcAccessMask@ -- includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', -- @srcStageMask@ /must/ include -- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+-- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -2544,10 +2546,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- - #VUID-VkMemoryBarrier2KHR-dstAccessMask-03921# If @dstAccessMask@+-- - #VUID-VkMemoryBarrier2KHR-dstAccessMask-04747# If @dstAccessMask@ -- includes 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', -- @dstStageMask@ /must/ include -- 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+-- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -2623,16 +2626,16 @@ deriving instance Show MemoryBarrier2KHR instance ToCStruct MemoryBarrier2KHR where- withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ withCStruct x f = allocaBytesAligned 48 8 $ \p -> pokeCStruct p x (f p) pokeCStruct p MemoryBarrier2KHR{..} f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)- poke ((p `plusPtr` 20 :: Ptr AccessFlags2KHR)) (srcAccessMask)- poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)- poke ((p `plusPtr` 28 :: Ptr AccessFlags2KHR)) (dstAccessMask)+ poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)+ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)+ poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask) f- cStructSize = 32+ cStructSize = 48 cStructAlignment = 8 pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR)@@ -2642,14 +2645,14 @@ instance FromCStruct MemoryBarrier2KHR where peekCStruct p = do srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 20 :: Ptr AccessFlags2KHR))- dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR))- dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 28 :: Ptr AccessFlags2KHR))+ srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))+ dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))+ dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) pure $ MemoryBarrier2KHR srcStageMask srcAccessMask dstStageMask dstAccessMask instance Storable MemoryBarrier2KHR where- sizeOf ~_ = 32+ sizeOf ~_ = 48 alignment ~_ = 8 peek = peekCStruct poke ptr poked = pokeCStruct ptr poked (pure ())@@ -2937,10 +2940,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03921# If+-- - #VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04747# If -- @srcAccessMask@ includes -- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@ -- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+-- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -3183,10 +3187,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03921# If+-- - #VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04747# If -- @dstAccessMask@ includes -- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@ -- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+-- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -3421,7 +3426,7 @@ -- @image@ /must/ have been created with -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03939# If -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a@@ -3625,34 +3630,34 @@ | otherwise = Nothing instance (Extendss ImageMemoryBarrier2KHR es, PokeChain es) => ToCStruct (ImageMemoryBarrier2KHR es) where- withCStruct x f = allocaBytesAligned 80 8 $ \p -> pokeCStruct p x (f p)+ withCStruct x f = allocaBytesAligned 96 8 $ \p -> pokeCStruct p x (f p) pokeCStruct p ImageMemoryBarrier2KHR{..} f = evalContT $ do lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR) pNext'' <- fmap castPtr . ContT $ withChain (next) lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)- lift $ poke ((p `plusPtr` 20 :: Ptr AccessFlags2KHR)) (srcAccessMask)- lift $ poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)- lift $ poke ((p `plusPtr` 28 :: Ptr AccessFlags2KHR)) (dstAccessMask)- lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (oldLayout)- lift $ poke ((p `plusPtr` 36 :: Ptr ImageLayout)) (newLayout)- lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (srcQueueFamilyIndex)- lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (dstQueueFamilyIndex)- lift $ poke ((p `plusPtr` 48 :: Ptr Image)) (image)- lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceRange)) (subresourceRange)+ lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)+ lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)+ lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)+ lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (oldLayout)+ lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (newLayout)+ lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (srcQueueFamilyIndex)+ lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (dstQueueFamilyIndex)+ lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (image)+ lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (subresourceRange) lift $ f- cStructSize = 80+ cStructSize = 96 cStructAlignment = 8 pokeZeroCStruct p f = evalContT $ do lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR) pNext' <- fmap castPtr . ContT $ withZeroChain @es lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)- lift $ poke ((p `plusPtr` 36 :: Ptr ImageLayout)) (zero)- lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)- lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)- lift $ poke ((p `plusPtr` 48 :: Ptr Image)) (zero)- lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceRange)) (zero)+ lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 52 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 64 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (zero) lift $ f instance (Extendss ImageMemoryBarrier2KHR es, PeekChain es) => FromCStruct (ImageMemoryBarrier2KHR es) where@@ -3660,15 +3665,15 @@ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) next <- peekChain (castPtr pNext) srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 20 :: Ptr AccessFlags2KHR))- dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR))- dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 28 :: Ptr AccessFlags2KHR))- oldLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))- newLayout <- peek @ImageLayout ((p `plusPtr` 36 :: Ptr ImageLayout))- srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))- dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))- image <- peek @Image ((p `plusPtr` 48 :: Ptr Image))- subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 56 :: Ptr ImageSubresourceRange))+ srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))+ dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))+ dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))+ oldLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))+ newLayout <- peek @ImageLayout ((p `plusPtr` 52 :: Ptr ImageLayout))+ srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+ dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+ image <- peek @Image ((p `plusPtr` 64 :: Ptr Image))+ subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) pure $ ImageMemoryBarrier2KHR next srcStageMask srcAccessMask dstStageMask dstAccessMask oldLayout newLayout srcQueueFamilyIndex dstQueueFamilyIndex image subresourceRange @@ -3937,10 +3942,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03921# If+-- - #VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04747# If -- @srcAccessMask@ includes -- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @srcStageMask@ -- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+-- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -4183,10 +4189,11 @@ -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' ----- - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03921# If+-- - #VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04747# If -- @dstAccessMask@ includes -- 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT', @dstStageMask@ -- /must/ include 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR',+-- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT', -- 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -4355,48 +4362,48 @@ deriving instance Show BufferMemoryBarrier2KHR instance ToCStruct BufferMemoryBarrier2KHR where- withCStruct x f = allocaBytesAligned 64 8 $ \p -> pokeCStruct p x (f p)+ withCStruct x f = allocaBytesAligned 80 8 $ \p -> pokeCStruct p x (f p) pokeCStruct p BufferMemoryBarrier2KHR{..} f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR)) (srcStageMask)- poke ((p `plusPtr` 20 :: Ptr AccessFlags2KHR)) (srcAccessMask)- poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)- poke ((p `plusPtr` 28 :: Ptr AccessFlags2KHR)) (dstAccessMask)- poke ((p `plusPtr` 32 :: Ptr Word32)) (srcQueueFamilyIndex)- poke ((p `plusPtr` 36 :: Ptr Word32)) (dstQueueFamilyIndex)- poke ((p `plusPtr` 40 :: Ptr Buffer)) (buffer)- poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (offset)- poke ((p `plusPtr` 56 :: Ptr DeviceSize)) (size)+ poke ((p `plusPtr` 24 :: Ptr AccessFlags2KHR)) (srcAccessMask)+ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (dstStageMask)+ poke ((p `plusPtr` 40 :: Ptr AccessFlags2KHR)) (dstAccessMask)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex)+ poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer)+ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset)+ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size) f- cStructSize = 64+ cStructSize = 80 cStructAlignment = 8 pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 40 :: Ptr Buffer)) (zero)- poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 56 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero)+ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero) f instance FromCStruct BufferMemoryBarrier2KHR where peekCStruct p = do srcStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineStageFlags2KHR))- srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 20 :: Ptr AccessFlags2KHR))- dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 24 :: Ptr PipelineStageFlags2KHR))- dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 28 :: Ptr AccessFlags2KHR))- srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))- dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))- buffer <- peek @Buffer ((p `plusPtr` 40 :: Ptr Buffer))- offset <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))- size <- peek @DeviceSize ((p `plusPtr` 56 :: Ptr DeviceSize))+ srcAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 24 :: Ptr AccessFlags2KHR))+ dstStageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))+ dstAccessMask <- peek @AccessFlags2KHR ((p `plusPtr` 40 :: Ptr AccessFlags2KHR))+ srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+ dstQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+ buffer <- peek @Buffer ((p `plusPtr` 56 :: Ptr Buffer))+ offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))+ size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize)) pure $ BufferMemoryBarrier2KHR srcStageMask srcAccessMask dstStageMask dstAccessMask srcQueueFamilyIndex dstQueueFamilyIndex buffer offset size instance Storable BufferMemoryBarrier2KHR where- sizeOf ~_ = 64+ sizeOf ~_ = 80 alignment ~_ = 8 peek = peekCStruct poke ptr poked = pokeCStruct ptr poked (pure ())@@ -4493,16 +4500,16 @@ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) lift $ poke ((p `plusPtr` 16 :: Ptr DependencyFlags)) (dependencyFlags) lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))- pPMemoryBarriers' <- ContT $ allocaBytesAligned @MemoryBarrier2KHR ((Data.Vector.length (memoryBarriers)) * 32) 8- lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (32 * (i)) :: Ptr MemoryBarrier2KHR) (e)) (memoryBarriers)+ pPMemoryBarriers' <- ContT $ allocaBytesAligned @MemoryBarrier2KHR ((Data.Vector.length (memoryBarriers)) * 48) 8+ lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2KHR) (e)) (memoryBarriers) lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR))) (pPMemoryBarriers') lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))- pPBufferMemoryBarriers' <- ContT $ allocaBytesAligned @BufferMemoryBarrier2KHR ((Data.Vector.length (bufferMemoryBarriers)) * 64) 8- lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (64 * (i)) :: Ptr BufferMemoryBarrier2KHR) (e)) (bufferMemoryBarriers)+ pPBufferMemoryBarriers' <- ContT $ allocaBytesAligned @BufferMemoryBarrier2KHR ((Data.Vector.length (bufferMemoryBarriers)) * 80) 8+ lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR) (e)) (bufferMemoryBarriers) lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR))) (pPBufferMemoryBarriers') lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))- pPImageMemoryBarriers' <- ContT $ allocaBytesAligned @(ImageMemoryBarrier2KHR _) ((Data.Vector.length (imageMemoryBarriers)) * 80) 8- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr (ImageMemoryBarrier2KHR _))) (e) . ($ ())) (imageMemoryBarriers)+ pPImageMemoryBarriers' <- ContT $ allocaBytesAligned @(ImageMemoryBarrier2KHR _) ((Data.Vector.length (imageMemoryBarriers)) * 96) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _))) (e) . ($ ())) (imageMemoryBarriers) lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _)))) (pPImageMemoryBarriers') lift $ f cStructSize = 64@@ -4517,13 +4524,13 @@ dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 16 :: Ptr DependencyFlags)) memoryBarrierCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32)) pMemoryBarriers <- peek @(Ptr MemoryBarrier2KHR) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2KHR)))- pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2KHR ((pMemoryBarriers `advancePtrBytes` (32 * (i)) :: Ptr MemoryBarrier2KHR)))+ pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2KHR ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2KHR))) bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32)) pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2KHR)))- pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2KHR ((pBufferMemoryBarriers `advancePtrBytes` (64 * (i)) :: Ptr BufferMemoryBarrier2KHR)))+ pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2KHR ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2KHR))) imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32)) pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2KHR _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2KHR _))))- pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr (ImageMemoryBarrier2KHR _)))))+ pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2KHR _))))) pure $ DependencyInfoKHR dependencyFlags pMemoryBarriers' pBufferMemoryBarriers' pImageMemoryBarriers' @@ -4633,23 +4640,23 @@ deriving instance Show SemaphoreSubmitInfoKHR instance ToCStruct SemaphoreSubmitInfoKHR where- withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+ withCStruct x f = allocaBytesAligned 48 8 $ \p -> pokeCStruct p x (f p) pokeCStruct p SemaphoreSubmitInfoKHR{..} f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore) poke ((p `plusPtr` 24 :: Ptr Word64)) (value) poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR)) (stageMask)- poke ((p `plusPtr` 36 :: Ptr Word32)) (deviceIndex)+ poke ((p `plusPtr` 40 :: Ptr Word32)) (deviceIndex) f- cStructSize = 40+ cStructSize = 48 cStructAlignment = 8 pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero) poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)- poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero) f instance FromCStruct SemaphoreSubmitInfoKHR where@@ -4657,12 +4664,12 @@ semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore)) value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64)) stageMask <- peek @PipelineStageFlags2KHR ((p `plusPtr` 32 :: Ptr PipelineStageFlags2KHR))- deviceIndex <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+ deviceIndex <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32)) pure $ SemaphoreSubmitInfoKHR semaphore value stageMask deviceIndex instance Storable SemaphoreSubmitInfoKHR where- sizeOf ~_ = 40+ sizeOf ~_ = 48 alignment ~_ = 8 peek = peekCStruct poke ptr poked = pokeCStruct ptr poked (pure ())@@ -4882,16 +4889,16 @@ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' lift $ poke ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR)) (flags) lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (waitSemaphoreInfos)) :: Word32))- pPWaitSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (waitSemaphoreInfos)) * 40) 8- lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (waitSemaphoreInfos)+ pPWaitSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (waitSemaphoreInfos)) * 48) 8+ lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (waitSemaphoreInfos) lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPWaitSemaphoreInfos') lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32)) pPCommandBufferInfos' <- ContT $ allocaBytesAligned @CommandBufferSubmitInfoKHR ((Data.Vector.length (commandBufferInfos)) * 32) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR) (e)) (commandBufferInfos) lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR))) (pPCommandBufferInfos') lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))- pPSignalSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (signalSemaphoreInfos)) * 40) 8- lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (signalSemaphoreInfos)+ pPSignalSemaphoreInfos' <- ContT $ allocaBytesAligned @SemaphoreSubmitInfoKHR ((Data.Vector.length (signalSemaphoreInfos)) * 48) 8+ lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR) (e)) (signalSemaphoreInfos) lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR))) (pPSignalSemaphoreInfos') lift $ f cStructSize = 64@@ -4909,13 +4916,13 @@ flags <- peek @SubmitFlagsKHR ((p `plusPtr` 16 :: Ptr SubmitFlagsKHR)) waitSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32)) pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))- pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pWaitSemaphoreInfos `advancePtrBytes` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))+ pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR))) commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32)) pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfoKHR) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfoKHR))) pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfoKHR ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfoKHR))) signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32)) pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfoKHR) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfoKHR)))- pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pSignalSemaphoreInfos `advancePtrBytes` (40 * (i)) :: Ptr SemaphoreSubmitInfoKHR)))+ pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfoKHR ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfoKHR))) pure $ SubmitInfo2KHR next flags pWaitSemaphoreInfos' pCommandBufferInfos' pSignalSemaphoreInfos' @@ -5116,71 +5123,7 @@ zero --- | VkAccessFlags2KHR - 64-bit mask of access flags------ = See Also------ 'BufferMemoryBarrier2KHR', 'ImageMemoryBarrier2KHR', 'MemoryBarrier2KHR'-newtype AccessFlags2KHR = AccessFlags2KHR Flags- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)----conNameAccessFlags2KHR :: String-conNameAccessFlags2KHR = "AccessFlags2KHR"--enumPrefixAccessFlags2KHR :: String-enumPrefixAccessFlags2KHR = ""--showTableAccessFlags2KHR :: [(AccessFlags2KHR, String)]-showTableAccessFlags2KHR = []--instance Show AccessFlags2KHR where- showsPrec = enumShowsPrec enumPrefixAccessFlags2KHR- showTableAccessFlags2KHR- conNameAccessFlags2KHR- (\(AccessFlags2KHR x) -> x)- (\x -> showString "0x" . showHex x)--instance Read AccessFlags2KHR where- readPrec = enumReadPrec enumPrefixAccessFlags2KHR showTableAccessFlags2KHR conNameAccessFlags2KHR AccessFlags2KHR----- | VkPipelineStageFlags2KHR - 64-bit mask of pipeline stage flags------ = See Also------ 'BufferMemoryBarrier2KHR', 'CheckpointData2NV',--- 'ImageMemoryBarrier2KHR', 'MemoryBarrier2KHR',--- 'QueueFamilyCheckpointProperties2NV', 'SemaphoreSubmitInfoKHR',--- 'cmdResetEvent2KHR', 'cmdWriteBufferMarker2AMD', 'cmdWriteTimestamp2KHR'-newtype PipelineStageFlags2KHR = PipelineStageFlags2KHR Flags- deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)----conNamePipelineStageFlags2KHR :: String-conNamePipelineStageFlags2KHR = "PipelineStageFlags2KHR"--enumPrefixPipelineStageFlags2KHR :: String-enumPrefixPipelineStageFlags2KHR = ""--showTablePipelineStageFlags2KHR :: [(PipelineStageFlags2KHR, String)]-showTablePipelineStageFlags2KHR = []--instance Show PipelineStageFlags2KHR where- showsPrec = enumShowsPrec enumPrefixPipelineStageFlags2KHR- showTablePipelineStageFlags2KHR- conNamePipelineStageFlags2KHR- (\(PipelineStageFlags2KHR x) -> x)- (\x -> showString "0x" . showHex x)--instance Read PipelineStageFlags2KHR where- readPrec = enumReadPrec enumPrefixPipelineStageFlags2KHR- showTablePipelineStageFlags2KHR- conNamePipelineStageFlags2KHR- PipelineStageFlags2KHR-+type AccessFlags2KHR = AccessFlagBits2KHR -- | VkAccessFlagBits2KHR - Access flags for VkAccessFlags2KHR --@@ -5203,30 +5146,30 @@ -- = See Also -- -- No cross-references are available-newtype AccessFlagBits2KHR = AccessFlagBits2KHR Flags+newtype AccessFlagBits2KHR = AccessFlagBits2KHR Flags64 deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- | 'ACCESS_2_NONE_KHR' specifies no accesses.-pattern ACCESS_2_NONE_KHR = AccessFlagBits2KHR 0x00000000+pattern ACCESS_2_NONE_KHR = AccessFlagBits2KHR 0x0000000000000000 -- | 'ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR' specifies read access to -- indirect buffers in the 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' -- pipeline stage.-pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = AccessFlagBits2KHR 0x00000001+pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000001 -- | 'ACCESS_2_INDEX_READ_BIT_KHR' specifies read access to an index buffer -- in the 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' pipeline stage.-pattern ACCESS_2_INDEX_READ_BIT_KHR = AccessFlagBits2KHR 0x00000002+pattern ACCESS_2_INDEX_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000002 -- | 'ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR' specifies read access to a -- vertex buffer in the 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' -- pipeline stage.-pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = AccessFlagBits2KHR 0x00000004+pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000004 -- | 'ACCESS_2_UNIFORM_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer> -- in any shader pipeline stage.-pattern ACCESS_2_UNIFORM_READ_BIT_KHR = AccessFlagBits2KHR 0x00000008+pattern ACCESS_2_UNIFORM_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000008 -- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR' specifies read access to an -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment> -- in the 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' pipeline stage.-pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x00000010+pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000010 -- | 'ACCESS_2_SHADER_READ_BIT_KHR' is equivalent to the logical OR of: -- -- - VK_ACCESS_2_UNIFORM_READ_BIT_KHR@@ -5234,64 +5177,64 @@ -- - VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR -- -- - VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR-pattern ACCESS_2_SHADER_READ_BIT_KHR = AccessFlagBits2KHR 0x00000020+pattern ACCESS_2_SHADER_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000020 -- | 'ACCESS_2_SHADER_WRITE_BIT_KHR' is equivalent to -- 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR'.-pattern ACCESS_2_SHADER_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00000040+pattern ACCESS_2_SHADER_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000040 -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment> -- (excluding -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>) -- in the 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline -- stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x00000080+pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000080 -- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color or resolve attachment> -- in the 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline -- stage.-pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00000100+pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000100 -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR' specifies read access -- to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment> -- in the 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or -- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x00000200+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000200 -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR' specifies write access -- to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment> -- in the 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' or -- 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00000400+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000000400 -- | 'ACCESS_2_TRANSFER_READ_BIT_KHR' specifies read access to an image or -- buffer in the 'PIPELINE_STAGE_2_COPY_BIT_KHR', -- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', or 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' -- pipeline stages.-pattern ACCESS_2_TRANSFER_READ_BIT_KHR = AccessFlagBits2KHR 0x00000800+pattern ACCESS_2_TRANSFER_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000000800 -- | 'ACCESS_2_TRANSFER_WRITE_BIT_KHR' specifies write access to an image or -- buffer in the 'PIPELINE_STAGE_2_COPY_BIT_KHR', -- 'PIPELINE_STAGE_2_BLIT_BIT_KHR', 'PIPELINE_STAGE_2_CLEAR_BIT_KHR', or -- 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' pipeline stages.-pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00001000+pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000001000 -- | 'ACCESS_2_HOST_READ_BIT_KHR' specifies read access to memory in the -- 'PIPELINE_STAGE_2_HOST_BIT_KHR' pipeline stage.-pattern ACCESS_2_HOST_READ_BIT_KHR = AccessFlagBits2KHR 0x00002000+pattern ACCESS_2_HOST_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000002000 -- | 'ACCESS_2_HOST_WRITE_BIT_KHR' specifies write access to memory in the -- 'PIPELINE_STAGE_2_HOST_BIT_KHR' pipeline stage.-pattern ACCESS_2_HOST_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00004000+pattern ACCESS_2_HOST_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000004000 -- | 'ACCESS_2_MEMORY_READ_BIT_KHR' specifies all read accesses. It is always -- valid in any access mask, and is treated as equivalent to setting all -- @READ@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_READ_BIT_KHR = AccessFlagBits2KHR 0x00008000+pattern ACCESS_2_MEMORY_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000008000 -- | 'ACCESS_2_MEMORY_WRITE_BIT_KHR' specifies all write accesses. It is -- always valid in any access mask, and is treated as equivalent to setting -- all @WRITE@ access flags that are valid where it is used.-pattern ACCESS_2_MEMORY_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00010000+pattern ACCESS_2_MEMORY_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000010000 -- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer> -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image> -- in any shader pipeline stage.-pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = AccessFlagBits2KHR 0x100000000+pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000100000000 -- | 'ACCESS_2_SHADER_STORAGE_READ_BIT_KHR' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,@@ -5299,7 +5242,7 @@ -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage.-pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = AccessFlagBits2KHR 0x200000000+pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000200000000 -- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,@@ -5307,7 +5250,7 @@ -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage.-pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = AccessFlagBits2KHR 0x400000000+pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000400000000 -- | '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>,@@ -5315,48 +5258,48 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>, -- in the 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' pipeline -- stage.-pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2KHR 0x00080000+pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2KHR 0x0000000000080000 -- | 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- in the 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pipeline -- stage.-pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits2KHR 0x01000000+pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000001000000 -- | 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access -- to an acceleration structure in the -- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' pipeline stage.-pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits2KHR 0x00400000+pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits2KHR 0x0000000000400000 -- | 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to -- an acceleration structure in the -- 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or -- 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' pipeline stages.-pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits2KHR 0x00200000+pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000200000 -- No documentation found for Nested "VkAccessFlagBits2KHR" "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"-pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x00800000+pattern ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2KHR 0x0000000000800000 -- | 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the -- target command buffer in the -- 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits2KHR 0x00040000+pattern ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits2KHR 0x0000000000040000 -- | 'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from -- 'Vulkan.Core10.Handles.Buffer' inputs to -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV' -- in the 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' pipeline stage.-pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits2KHR 0x00020000+pattern ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits2KHR 0x0000000000020000 -- | 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a -- predicate in the 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- pipeline stage.-pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits2KHR 0x00100000+pattern ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000000100000 -- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write -- access to a transform feedback counter buffer in the -- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2KHR 0x08000000+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2KHR 0x0000000008000000 -- | 'ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access -- to a transform feedback counter buffer in the -- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2KHR 0x04000000+pattern ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2KHR 0x0000000004000000 -- | 'ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a -- transform feedback buffer in the -- 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' pipeline stage.-pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits2KHR 0x02000000+pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits2KHR 0x0000000002000000 conNameAccessFlagBits2KHR :: String conNameAccessFlagBits2KHR = "AccessFlagBits2KHR"@@ -5412,6 +5355,8 @@ enumReadPrec enumPrefixAccessFlagBits2KHR showTableAccessFlagBits2KHR conNameAccessFlagBits2KHR AccessFlagBits2KHR +type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR+ -- | VkPipelineStageFlagBits2KHR - Pipeline stage flags for -- VkPipelineStageFlags2KHR --@@ -5434,65 +5379,65 @@ -- = See Also -- -- No cross-references are available-newtype PipelineStageFlagBits2KHR = PipelineStageFlagBits2KHR Flags+newtype PipelineStageFlagBits2KHR = PipelineStageFlagBits2KHR Flags64 deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- | 'PIPELINE_STAGE_2_NONE_KHR' specifies no stages of execution.-pattern PIPELINE_STAGE_2_NONE_KHR = PipelineStageFlagBits2KHR 0x00000000+pattern PIPELINE_STAGE_2_NONE_KHR = PipelineStageFlagBits2KHR 0x0000000000000000 -- | 'PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR' is equivalent to -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to -- @0@ when specified in the second synchronization scope, but equivalent -- to 'PIPELINE_STAGE_2_NONE_KHR' in the first scope.-pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = PipelineStageFlagBits2KHR 0x00000001+pattern PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000001 -- | 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR' specifies the stage of the -- pipeline where indirect command parameters are consumed. This stage also -- includes reading commands written by -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.-pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = PipelineStageFlagBits2KHR 0x00000002+pattern PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000002 -- | 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR' is equivalent to the logical OR -- of: -- -- - 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' -- -- - 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR'-pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x00000004+pattern PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000004 -- | 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR' specifies the vertex shader -- stage.-pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00000008+pattern PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000008 -- | 'PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR' specifies the -- tessellation control shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00000010+pattern PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000010 -- | 'PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR' specifies the -- tessellation evaluation shader stage.-pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00000020+pattern PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000020 -- | 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR' specifies the geometry shader -- stage.-pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00000040+pattern PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000040 -- | 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' specifies the fragment shader -- stage.-pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00000080+pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000080 -- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' specifies the stage of -- the pipeline where early fragment tests (depth and stencil tests before -- fragment shading) are performed. This stage also includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations> -- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = PipelineStageFlagBits2KHR 0x00000100+pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000100 -- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' specifies the stage of -- the pipeline where late fragment tests (depth and stencil tests after -- fragment shading) are performed. This stage also includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations> -- for framebuffer attachments with a depth\/stencil format.-pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = PipelineStageFlagBits2KHR 0x00000200+pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000200 -- | 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR' specifies the stage -- of the pipeline after blending where the final color values are output -- from the pipeline. This stage also includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations> -- and multisample resolve operations for framebuffer attachments with a -- color or depth\/stencil format.-pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x00000400+pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000400 -- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR' specifies the compute shader -- stage.-pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00000800+pattern PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000000800 -- | 'PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR' is equivalent to specifying all -- of: --@@ -5503,16 +5448,16 @@ -- - 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' -- -- - 'PIPELINE_STAGE_2_CLEAR_BIT_KHR'-pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = PipelineStageFlagBits2KHR 0x00001000+pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000001000 -- | 'PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR' is equivalent to -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' with 'AccessFlags2KHR' set to -- @0@ when specified in the first synchronization scope, but equivalent to -- 'PIPELINE_STAGE_2_NONE_KHR' in the second scope.-pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = PipelineStageFlagBits2KHR 0x00002000+pattern PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000002000 -- | 'PIPELINE_STAGE_2_HOST_BIT_KHR' specifies a pseudo-stage indicating -- execution on the host of reads\/writes of device memory. This stage is -- not invoked by any commands recorded in a command buffer.-pattern PIPELINE_STAGE_2_HOST_BIT_KHR = PipelineStageFlagBits2KHR 0x00004000+pattern PIPELINE_STAGE_2_HOST_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000004000 -- | 'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR' specifies the execution of all -- graphics pipeline stages, and is equivalent to the logical OR of: --@@ -5547,31 +5492,31 @@ -- - 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'-pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = PipelineStageFlagBits2KHR 0x00008000+pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000008000 -- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' specifies all operations -- performed by all commands supported on the queue it is used with.-pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = PipelineStageFlagBits2KHR 0x00010000+pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000010000 -- | 'PIPELINE_STAGE_2_COPY_BIT_KHR' specifies the execution of all -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy commands>, -- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'.-pattern PIPELINE_STAGE_2_COPY_BIT_KHR = PipelineStageFlagBits2KHR 0x100000000+pattern PIPELINE_STAGE_2_COPY_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000100000000 -- | 'PIPELINE_STAGE_2_RESOLVE_BIT_KHR' specifies the execution of -- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'.-pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR = PipelineStageFlagBits2KHR 0x200000000+pattern PIPELINE_STAGE_2_RESOLVE_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000200000000 -- | 'PIPELINE_STAGE_2_BLIT_BIT_KHR' specifies the execution of -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'.-pattern PIPELINE_STAGE_2_BLIT_BIT_KHR = PipelineStageFlagBits2KHR 0x400000000+pattern PIPELINE_STAGE_2_BLIT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000400000000 -- | 'PIPELINE_STAGE_2_CLEAR_BIT_KHR' specifies the execution of -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>, -- with the exception of -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.-pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR = PipelineStageFlagBits2KHR 0x800000000+pattern PIPELINE_STAGE_2_CLEAR_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000800000000 -- | 'PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR' specifies the stage of the -- pipeline where index buffers are consumed.-pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x1000000000+pattern PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000001000000000 -- | 'PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR' specifies the stage of -- the pipeline where vertex buffers are consumed.-pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x2000000000+pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000002000000000 -- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR' is equivalent to -- specifying all supported stages from: --@@ -5586,22 +5531,22 @@ -- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' -- -- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'-pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = PipelineStageFlagBits2KHR 0x4000000000+pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = PipelineStageFlagBits2KHR 0x0000004000000000 -- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage.-pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = PipelineStageFlagBits2KHR 0x00100000+pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = PipelineStageFlagBits2KHR 0x0000000000100000 -- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.-pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = PipelineStageFlagBits2KHR 0x00080000+pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = PipelineStageFlagBits2KHR 0x0000000000080000 -- | 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage -- of the pipeline where the fragment density map is read to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = PipelineStageFlagBits2KHR 0x00800000+pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = PipelineStageFlagBits2KHR 0x0000000000800000 -- | 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of -- the ray tracing shader stages.-pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x00200000+pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000200000 -- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the -- execution of -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure acceleration structure commands>.-pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = PipelineStageFlagBits2KHR 0x02000000+pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000002000000 -- | 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies -- the stage of the pipeline where the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>@@ -5609,19 +5554,19 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-attachment shading rate image> -- is read to determine the fragment shading rate for portions of a -- rasterized primitive.-pattern PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits2KHR 0x00400000+pattern PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits2KHR 0x0000000000400000 -- | 'PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the -- pipeline where device-side generation of commands via -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV' -- is handled.-pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = PipelineStageFlagBits2KHR 0x00020000+pattern PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = PipelineStageFlagBits2KHR 0x0000000000020000 -- | 'PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies the stage of -- the pipeline where the predicate of conditional rendering is consumed.-pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = PipelineStageFlagBits2KHR 0x00040000+pattern PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = PipelineStageFlagBits2KHR 0x0000000000040000 -- | 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' specifies the stage of the -- pipeline where vertex attribute output values are written to the -- transform feedback buffers.-pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = PipelineStageFlagBits2KHR 0x01000000+pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = PipelineStageFlagBits2KHR 0x0000000001000000 conNamePipelineStageFlagBits2KHR :: String conNamePipelineStageFlagBits2KHR = "PipelineStageFlagBits2KHR"
src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot view
@@ -23,8 +23,6 @@ -- -- - Requires @VK_KHR_get_physical_device_properties2@ ----- - Requires @VK_KHR_create_renderpass2@--- -- [__Contact__] -- -- - Tobias Hector@@ -431,6 +429,7 @@ , SemaphoreSubmitInfoKHR , SubmitInfo2KHR , PipelineStageFlags2KHR+ , PipelineStageFlagBits2KHR ) where import Vulkan.CStruct (FromCStruct)@@ -522,5 +521,7 @@ instance (Extendss SubmitInfo2KHR es, PeekChain es) => FromCStruct (SubmitInfo2KHR es) -data PipelineStageFlags2KHR+type PipelineStageFlags2KHR = PipelineStageFlagBits2KHR++data PipelineStageFlagBits2KHR
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -184,9 +184,9 @@ -- -- 2) What type of payload the new synchronization primitive has? ----- __RESOLVED__: A 64-bit unsigned integer that can only be set to--- monotonically increasing values by signal operations and is not changed--- by wait operations.+-- __RESOLVED__: A 64-bit unsigned integer that can only be set to strictly+-- increasing values by signal operations and is not changed by wait+-- operations. -- -- 3) Does the new synchronization primitive have the same -- signal-before-wait requirement as the existing semaphores do?
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -711,6 +711,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -863,7 +873,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -1109,6 +1119,13 @@ -- then the @blendEnable@ member of the corresponding element of the -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -339,6 +339,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -489,7 +499,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawMeshTasksNV-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -733,6 +743,13 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+-- -- - #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be -- less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@@@ -826,6 +843,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -978,7 +1005,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -1225,6 +1252,13 @@ -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1362,6 +1396,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -1514,7 +1558,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a@@ -1760,6 +1804,13 @@ -- then the @blendEnable@ member of the corresponding element of the -- @pAttachments@ member of @pColorBlendState@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740#+-- If rasterization is not disabled in the bound graphics pipeline, and+-- neither the @@ nor the @@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -1617,6 +1617,16 @@ -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' --+-- - #VUID-vkCmdTraceRaysNV-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+-- -- - #VUID-vkCmdTraceRaysNV-None-02691# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic -- operations as a result of this command, then the image view’s@@ -1767,7 +1777,7 @@ -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ -- as a result of this command, then the @Type@ of the @Texel@ operand -- of that instruction /must/ have at least as many components as the--- image view’s format.+-- buffer view’s format. -- -- - #VUID-vkCmdTraceRaysNV-SampledType-04470# If a -- 'Vulkan.Core10.Handles.ImageView' with a
+ src/Vulkan/Extensions/VK_QNX_screen_surface.hs view
@@ -0,0 +1,423 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QNX_screen_surface - instance extension+--+-- == VK_QNX_screen_surface+--+-- [__Name String__]+-- @VK_QNX_screen_surface@+--+-- [__Extension Type__]+-- Instance extension+--+-- [__Registered Extension Number__]+-- 379+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_surface@+--+-- [__Contact__]+--+-- - Mike Gorchak+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_QNX_screen_surface:%20&body=@mgorchak-blackberry%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-01-11+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Mike Gorchak, BlackBerry Limited+--+-- == Description+--+-- The @VK_QNX_screen_surface@ extension is an instance extension. It+-- provides a mechanism to create a 'Vulkan.Extensions.Handles.SurfaceKHR'+-- object (defined by the @VK_KHR_surface@ extension) that refers to a QNX+-- Screen @window@, as well as a query to determine support for rendering+-- to a QNX Screen compositor.+--+-- == New Commands+--+-- - 'createScreenSurfaceQNX'+--+-- - 'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- == New Structures+--+-- - 'ScreenSurfaceCreateInfoQNX'+--+-- == New Bitmasks+--+-- - 'ScreenSurfaceCreateFlagsQNX'+--+-- == New Enum Constants+--+-- - 'QNX_SCREEN_SURFACE_EXTENSION_NAME'+--+-- - 'QNX_SCREEN_SURFACE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX'+--+-- == Version History+--+-- - Revision 1, 2021-01-11 (Mike Gorchak)+--+-- - Initial draft.+--+-- = See Also+--+-- 'ScreenSurfaceCreateFlagsQNX', 'ScreenSurfaceCreateInfoQNX',+-- 'createScreenSurfaceQNX',+-- 'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QNX_screen_surface ( createScreenSurfaceQNX+ , getPhysicalDeviceScreenPresentationSupportQNX+ , ScreenSurfaceCreateInfoQNX(..)+ , ScreenSurfaceCreateFlagsQNX(..)+ , QNX_SCREEN_SURFACE_SPEC_VERSION+ , pattern QNX_SCREEN_SURFACE_SPEC_VERSION+ , QNX_SCREEN_SURFACE_EXTENSION_NAME+ , pattern QNX_SCREEN_SURFACE_EXTENSION_NAME+ , Screen_window+ , Screen_context+ , SurfaceKHR(..)+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showString)+import Numeric (showHex)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.Handles (Instance)+import Vulkan.Core10.Handles (Instance(..))+import Vulkan.Dynamic (InstanceCmds(pVkCreateScreenSurfaceQNX))+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceScreenPresentationSupportQNX))+import Vulkan.Core10.Handles (Instance_T)+import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (PhysicalDevice_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Extensions.Handles (SurfaceKHR)+import Vulkan.Extensions.Handles (SurfaceKHR(..))+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (SurfaceKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCreateScreenSurfaceQNX+ :: FunPtr (Ptr Instance_T -> Ptr ScreenSurfaceCreateInfoQNX -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result) -> Ptr Instance_T -> Ptr ScreenSurfaceCreateInfoQNX -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result++-- | vkCreateScreenSurfaceQNX - Create a+-- 'Vulkan.Extensions.Handles.SurfaceKHR' object for a QNX Screen window+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCreateScreenSurfaceQNX-instance-parameter# @instance@ /must/+-- be a valid 'Vulkan.Core10.Handles.Instance' handle+--+-- - #VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameter# @pCreateInfo@+-- /must/ be a valid pointer to a valid 'ScreenSurfaceCreateInfoQNX'+-- structure+--+-- - #VUID-vkCreateScreenSurfaceQNX-pAllocator-parameter# If @pAllocator@+-- is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- - #VUID-vkCreateScreenSurfaceQNX-pSurface-parameter# @pSurface@ /must/+-- be a valid pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR'+-- handle+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Instance', 'ScreenSurfaceCreateInfoQNX',+-- 'Vulkan.Extensions.Handles.SurfaceKHR'+createScreenSurfaceQNX :: forall io+ . (MonadIO io)+ => -- | @instance@ is the instance to associate the surface with.+ Instance+ -> -- | @pCreateInfo@ is a pointer to a 'ScreenSurfaceCreateInfoQNX' structure+ -- containing parameters affecting the creation of the surface object.+ ScreenSurfaceCreateInfoQNX+ -> -- | @pAllocator@ is the allocator used for host memory allocated for the+ -- surface object when there is no more specific allocator available (see+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io (SurfaceKHR)+createScreenSurfaceQNX instance' createInfo allocator = liftIO . evalContT $ do+ let vkCreateScreenSurfaceQNXPtr = pVkCreateScreenSurfaceQNX (instanceCmds (instance' :: Instance))+ lift $ unless (vkCreateScreenSurfaceQNXPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateScreenSurfaceQNX is null" Nothing Nothing+ let vkCreateScreenSurfaceQNX' = mkVkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNXPtr+ pCreateInfo <- ContT $ withCStruct (createInfo)+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free+ r <- lift $ traceAroundEvent "vkCreateScreenSurfaceQNX" (vkCreateScreenSurfaceQNX' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pSurface <- lift $ peek @SurfaceKHR pPSurface+ pure $ (pSurface)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetPhysicalDeviceScreenPresentationSupportQNX+ :: FunPtr (Ptr PhysicalDevice_T -> Word32 -> Ptr Screen_window -> IO Bool32) -> Ptr PhysicalDevice_T -> Word32 -> Ptr Screen_window -> IO Bool32++-- | vkGetPhysicalDeviceScreenPresentationSupportQNX - Query physical device+-- for presentation to QNX Screen+--+-- = Description+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.PhysicalDevice'+getPhysicalDeviceScreenPresentationSupportQNX :: forall io+ . (MonadIO io)+ => -- | @physicalDevice@ is the physical device.+ --+ -- #VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameter#+ -- @physicalDevice@ /must/ be a valid+ -- 'Vulkan.Core10.Handles.PhysicalDevice' handle+ PhysicalDevice+ -> -- | @queueFamilyIndex@ is the queue family index.+ --+ -- #VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743#+ -- @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+ -- returned by+ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'+ -- for the given @physicalDevice@+ ("queueFamilyIndex" ::: Word32)+ -> -- | @window@ is the QNX Screen @window@ object.+ --+ -- #VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameter#+ -- @window@ /must/ be a valid pointer to a 'Screen_window' value+ (Ptr Screen_window)+ -> io (Bool)+getPhysicalDeviceScreenPresentationSupportQNX physicalDevice queueFamilyIndex window = liftIO $ do+ let vkGetPhysicalDeviceScreenPresentationSupportQNXPtr = pVkGetPhysicalDeviceScreenPresentationSupportQNX (instanceCmds (physicalDevice :: PhysicalDevice))+ unless (vkGetPhysicalDeviceScreenPresentationSupportQNXPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceScreenPresentationSupportQNX is null" Nothing Nothing+ let vkGetPhysicalDeviceScreenPresentationSupportQNX' = mkVkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNXPtr+ r <- traceAroundEvent "vkGetPhysicalDeviceScreenPresentationSupportQNX" (vkGetPhysicalDeviceScreenPresentationSupportQNX' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (window))+ pure $ ((bool32ToBool r))+++-- | VkScreenSurfaceCreateInfoQNX - Structure specifying parameters of a+-- newly created QNX Screen surface object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'ScreenSurfaceCreateFlagsQNX',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createScreenSurfaceQNX'+data ScreenSurfaceCreateInfoQNX = ScreenSurfaceCreateInfoQNX+ { -- | @flags@ is reserved for future use.+ --+ -- #VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmask# @flags@ /must/ be+ -- @0@+ flags :: ScreenSurfaceCreateFlagsQNX+ , -- | @context@ and @window@ are QNX Screen @context@ and @window@ to+ -- associate the surface with.+ --+ -- #VUID-VkScreenSurfaceCreateInfoQNX-context-04741# @context@ /must/ point+ -- to a valid QNX Screen @struct@ _screen_context+ context :: Ptr Screen_context+ , -- | #VUID-VkScreenSurfaceCreateInfoQNX-window-04742# @window@ /must/ point+ -- to a valid QNX Screen @struct@ _screen_window+ window :: Ptr Screen_window+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ScreenSurfaceCreateInfoQNX)+#endif+deriving instance Show ScreenSurfaceCreateInfoQNX++instance ToCStruct ScreenSurfaceCreateInfoQNX where+ withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ScreenSurfaceCreateInfoQNX{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ScreenSurfaceCreateFlagsQNX)) (flags)+ poke ((p `plusPtr` 24 :: Ptr (Ptr Screen_context))) (context)+ poke ((p `plusPtr` 32 :: Ptr (Ptr Screen_window))) (window)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 24 :: Ptr (Ptr Screen_context))) (zero)+ poke ((p `plusPtr` 32 :: Ptr (Ptr Screen_window))) (zero)+ f++instance FromCStruct ScreenSurfaceCreateInfoQNX where+ peekCStruct p = do+ flags <- peek @ScreenSurfaceCreateFlagsQNX ((p `plusPtr` 16 :: Ptr ScreenSurfaceCreateFlagsQNX))+ context <- peek @(Ptr Screen_context) ((p `plusPtr` 24 :: Ptr (Ptr Screen_context)))+ window <- peek @(Ptr Screen_window) ((p `plusPtr` 32 :: Ptr (Ptr Screen_window)))+ pure $ ScreenSurfaceCreateInfoQNX+ flags context window++instance Storable ScreenSurfaceCreateInfoQNX where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ScreenSurfaceCreateInfoQNX where+ zero = ScreenSurfaceCreateInfoQNX+ zero+ zero+ zero+++-- | VkScreenSurfaceCreateFlagsQNX - Reserved for future use+--+-- = Description+--+-- 'ScreenSurfaceCreateFlagsQNX' is a bitmask type for setting a mask, but+-- is currently reserved for future use.+--+-- = See Also+--+-- 'ScreenSurfaceCreateInfoQNX'+newtype ScreenSurfaceCreateFlagsQNX = ScreenSurfaceCreateFlagsQNX Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++++conNameScreenSurfaceCreateFlagsQNX :: String+conNameScreenSurfaceCreateFlagsQNX = "ScreenSurfaceCreateFlagsQNX"++enumPrefixScreenSurfaceCreateFlagsQNX :: String+enumPrefixScreenSurfaceCreateFlagsQNX = ""++showTableScreenSurfaceCreateFlagsQNX :: [(ScreenSurfaceCreateFlagsQNX, String)]+showTableScreenSurfaceCreateFlagsQNX = []++instance Show ScreenSurfaceCreateFlagsQNX where+ showsPrec = enumShowsPrec enumPrefixScreenSurfaceCreateFlagsQNX+ showTableScreenSurfaceCreateFlagsQNX+ conNameScreenSurfaceCreateFlagsQNX+ (\(ScreenSurfaceCreateFlagsQNX x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read ScreenSurfaceCreateFlagsQNX where+ readPrec = enumReadPrec enumPrefixScreenSurfaceCreateFlagsQNX+ showTableScreenSurfaceCreateFlagsQNX+ conNameScreenSurfaceCreateFlagsQNX+ ScreenSurfaceCreateFlagsQNX+++type QNX_SCREEN_SURFACE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_QNX_SCREEN_SURFACE_SPEC_VERSION"+pattern QNX_SCREEN_SURFACE_SPEC_VERSION :: forall a . Integral a => a+pattern QNX_SCREEN_SURFACE_SPEC_VERSION = 1+++type QNX_SCREEN_SURFACE_EXTENSION_NAME = "VK_QNX_screen_surface"++-- No documentation found for TopLevel "VK_QNX_SCREEN_SURFACE_EXTENSION_NAME"+pattern QNX_SCREEN_SURFACE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QNX_SCREEN_SURFACE_EXTENSION_NAME = "VK_QNX_screen_surface"+++data Screen_window+++data Screen_context+
+ src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot view
@@ -0,0 +1,111 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QNX_screen_surface - instance extension+--+-- == VK_QNX_screen_surface+--+-- [__Name String__]+-- @VK_QNX_screen_surface@+--+-- [__Extension Type__]+-- Instance extension+--+-- [__Registered Extension Number__]+-- 379+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_surface@+--+-- [__Contact__]+--+-- - Mike Gorchak+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_QNX_screen_surface:%20&body=@mgorchak-blackberry%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-01-11+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Mike Gorchak, BlackBerry Limited+--+-- == Description+--+-- The @VK_QNX_screen_surface@ extension is an instance extension. It+-- provides a mechanism to create a 'Vulkan.Extensions.Handles.SurfaceKHR'+-- object (defined by the @VK_KHR_surface@ extension) that refers to a QNX+-- Screen @window@, as well as a query to determine support for rendering+-- to a QNX Screen compositor.+--+-- == New Commands+--+-- - 'createScreenSurfaceQNX'+--+-- - 'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- == New Structures+--+-- - 'ScreenSurfaceCreateInfoQNX'+--+-- == New Bitmasks+--+-- - 'ScreenSurfaceCreateFlagsQNX'+--+-- == New Enum Constants+--+-- - 'QNX_SCREEN_SURFACE_EXTENSION_NAME'+--+-- - 'QNX_SCREEN_SURFACE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX'+--+-- == Version History+--+-- - Revision 1, 2021-01-11 (Mike Gorchak)+--+-- - Initial draft.+--+-- = See Also+--+-- 'ScreenSurfaceCreateFlagsQNX', 'ScreenSurfaceCreateInfoQNX',+-- 'createScreenSurfaceQNX',+-- 'getPhysicalDeviceScreenPresentationSupportQNX'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QNX_screen_surface ( ScreenSurfaceCreateInfoQNX+ , Screen_window+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ScreenSurfaceCreateInfoQNX++instance ToCStruct ScreenSurfaceCreateInfoQNX+instance Show ScreenSurfaceCreateInfoQNX++instance FromCStruct ScreenSurfaceCreateInfoQNX+++data Screen_window+
src/Vulkan/SPIRVRequirements.hs view
@@ -14,6 +14,8 @@ import Data.ByteString (ByteString) import Vulkan.Core10.Handles (Instance) import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures(..)) import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT(..)) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)@@ -30,6 +32,8 @@ import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT(..)) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR(..))+import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures(..)) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)@@ -38,6 +42,8 @@ import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(..))+import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures(..)) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(..)) import Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)@@ -50,6 +56,8 @@ import Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV(..)) import Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT) import Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT(..))+import Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)+import Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures(..)) import Vulkan.Core12 (PhysicalDeviceVulkan11Features) import Vulkan.Core12 (PhysicalDeviceVulkan11Features(..)) import Vulkan.Core12 (PhysicalDeviceVulkan11Properties)@@ -616,6 +624,17 @@ , deviceExtensionMinVersion = 0 } ]+ "SPV_EXT_shader_atomic_float_add" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] _ -> ([], []) spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -881,73 +900,38 @@ } ] "DrawParameters" -> (,)- [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "shaderDrawParameters" , checkFeature = shaderDrawParameters :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { shaderDrawParameters = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "MultiView" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 1 0- , RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "multiview" , checkFeature = multiview :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { multiview = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_MULTIVIEW_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "DeviceGroup" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0] "VariablePointersStorageBuffer" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 1 0- , RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "variablePointersStorageBuffer" , checkFeature = variablePointersStorageBuffer :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { variablePointersStorageBuffer = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_VARIABLE_POINTERS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "VariablePointers" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 1 0- , RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "variablePointers" , checkFeature = variablePointers :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { variablePointers = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_VARIABLE_POINTERS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "ShaderClockKHR" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing@@ -1074,90 +1058,38 @@ } ] "StorageBuffer16BitAccess" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 1 0- , RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "storageBuffer16BitAccess" , checkFeature = storageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { storageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_16BIT_STORAGE_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "UniformAndStorageBuffer16BitAccess" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 1 0- , RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "uniformAndStorageBuffer16BitAccess" , checkFeature = uniformAndStorageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { uniformAndStorageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_16BIT_STORAGE_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "StoragePushConstant16" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 1 0- , RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "storagePushConstant16" , checkFeature = storagePushConstant16 :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { storagePushConstant16 = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_16BIT_STORAGE_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "StorageInputOutput16" -> (,)- [ RequireInstanceVersion $ MAKE_VERSION 1 1 0- , RequireInstanceExtension { instanceExtensionLayerName = Nothing- , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME- , instanceExtensionMinVersion = 0- }- ]+ [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [ RequireDeviceFeature { featureName = "storageInputOutput16" , checkFeature = storageInputOutput16 :: PhysicalDeviceVulkan11Features -> Bool , enableFeature = \f -> f { storageInputOutput16 = True } :: PhysicalDeviceVulkan11Features }- , RequireDeviceVersion $ MAKE_VERSION 1 1 0- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_16BIT_STORAGE_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }- , RequireDeviceExtension { deviceExtensionLayerName = Nothing- , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME- , deviceExtensionMinVersion = 0- }+ , RequireDeviceVersion $ MAKE_VERSION 1 2 0 ] "GroupNonUniform" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0]
src/Vulkan/Version.hs view
@@ -15,11 +15,11 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 170+pattern HEADER_VERSION = 174 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 170+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 174 pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: vulkan-version: 3.10+version: 3.10.1 synopsis: Bindings to the Vulkan graphics API. category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme@@ -345,6 +345,8 @@ Vulkan.Extensions.VK_EXT_validation_flags Vulkan.Extensions.VK_EXT_vertex_attribute_divisor Vulkan.Extensions.VK_EXT_ycbcr_image_arrays+ Vulkan.Extensions.VK_FUCHSIA_external_memory+ Vulkan.Extensions.VK_FUCHSIA_external_semaphore Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface Vulkan.Extensions.VK_GGP_frame_token Vulkan.Extensions.VK_GGP_stream_descriptor_surface@@ -478,6 +480,7 @@ Vulkan.Extensions.VK_QCOM_render_pass_store_ops Vulkan.Extensions.VK_QCOM_render_pass_transform Vulkan.Extensions.VK_QCOM_rotated_copy_commands+ Vulkan.Extensions.VK_QNX_screen_surface Vulkan.Extensions.VK_VALVE_mutable_descriptor_type Vulkan.NamedType Vulkan.SPIRVRequirements