vulkan 3.8 → 3.8.1
raw patch · 141 files changed
+1971/−578 lines, 141 files
Files
- changelog.md +6/−0
- package.yaml +9/−1
- src-manual/Vulkan/Internal/Utils.hs +13/−0
- src/Vulkan/CStruct/Extends.hs +11/−0
- src/Vulkan/Core10/Buffer.hs +3/−2
- src/Vulkan/Core10/BufferView.hs +3/−2
- src/Vulkan/Core10/CommandBuffer.hs +6/−8
- src/Vulkan/Core10/CommandBufferBuilding.hs +72/−78
- src/Vulkan/Core10/CommandPool.hs +4/−3
- src/Vulkan/Core10/DescriptorSet.hs +187/−25
- src/Vulkan/Core10/Device.hs +6/−2
- src/Vulkan/Core10/DeviceInitialization.hs +14/−13
- src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs +13/−0
- src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs +15/−2
- src/Vulkan/Core10/Enums/DescriptorType.hs +9/−0
- src/Vulkan/Core10/Enums/StructureType.hs +28/−14
- src/Vulkan/Core10/Enums/VendorId.hs +6/−1
- src/Vulkan/Core10/Event.hs +6/−5
- src/Vulkan/Core10/ExtensionDiscovery.hs +5/−4
- src/Vulkan/Core10/Fence.hs +6/−5
- src/Vulkan/Core10/FundamentalTypes.hs +1/−0
- src/Vulkan/Core10/Handles.hs +2/−0
- src/Vulkan/Core10/Image.hs +4/−3
- src/Vulkan/Core10/ImageView.hs +3/−2
- src/Vulkan/Core10/LayerDiscovery.hs +5/−4
- src/Vulkan/Core10/Memory.hs +8/−7
- src/Vulkan/Core10/MemoryManagement.hs +5/−4
- src/Vulkan/Core10/Pass.hs +6/−5
- src/Vulkan/Core10/Pipeline.hs +4/−3
- src/Vulkan/Core10/PipelineCache.hs +6/−5
- src/Vulkan/Core10/PipelineLayout.hs +8/−2
- src/Vulkan/Core10/Query.hs +4/−3
- src/Vulkan/Core10/Queue.hs +5/−4
- src/Vulkan/Core10/QueueSemaphore.hs +3/−2
- src/Vulkan/Core10/Sampler.hs +3/−2
- src/Vulkan/Core10/Shader.hs +3/−2
- src/Vulkan/Core10/SparseResourceMemoryManagement.hs +6/−5
- src/Vulkan/Core11/DeviceInitialization.hs +2/−1
- src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs +2/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs +3/−2
- src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs +10/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +4/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs +3/−2
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs +2/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs +2/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs +2/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs +5/−4
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +12/−9
- src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs +2/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs +2/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs +3/−2
- src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs +2/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs +4/−3
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +5/−38
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +3/−2
- src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs +4/−3
- src/Vulkan/Dynamic.hs +7/−1
- src/Vulkan/Extensions.hs +4/−0
- src/Vulkan/Extensions/Dependencies.hs +8/−2
- src/Vulkan/Extensions/Handles.hs +2/−0
- src/Vulkan/Extensions/VK_AMD_buffer_marker.hs +2/−1
- src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs +4/−3
- src/Vulkan/Extensions/VK_AMD_shader_info.hs +3/−2
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs +3/−2
- src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs +3/−2
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs +3/−2
- src/Vulkan/Extensions/VK_EXT_debug_marker.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_debug_report.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +12/−11
- src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_directfb_surface.hs +3/−2
- src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_display_control.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs +13/−12
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_headless_surface.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_metal_surface.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_private_data.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_sample_locations.hs +3/−2
- src/Vulkan/Extensions/VK_EXT_tooling_info.hs +3/−2
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +7/−6
- src/Vulkan/Extensions/VK_EXT_validation_cache.hs +6/−5
- src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs +2/−1
- src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs +2/−1
- src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs +4/−3
- src/Vulkan/Extensions/VK_INTEL_performance_query.hs +10/−9
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +17/−16
- src/Vulkan/Extensions/VK_KHR_android_surface.hs +2/−1
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +7/−6
- src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs +6/−5
- src/Vulkan/Extensions/VK_KHR_display.hs +12/−11
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs +2/−1
- src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs +8/−7
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_performance_query.hs +6/−5
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs +7/−6
- src/Vulkan/Extensions/VK_KHR_push_descriptor.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +20/−18
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs +2/−1
- src/Vulkan/Extensions/VK_KHR_surface.hs +8/−7
- src/Vulkan/Extensions/VK_KHR_swapchain.hs +22/−11
- src/Vulkan/Extensions/VK_KHR_wayland_surface.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_win32_surface.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_xcb_surface.hs +3/−2
- src/Vulkan/Extensions/VK_KHR_xlib_surface.hs +3/−2
- src/Vulkan/Extensions/VK_MVK_ios_surface.hs +2/−1
- src/Vulkan/Extensions/VK_MVK_macos_surface.hs +2/−1
- src/Vulkan/Extensions/VK_NN_vi_surface.hs +2/−1
- src/Vulkan/Extensions/VK_NVX_image_view_handle.hs +3/−2
- src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs +382/−0
- src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs +2/−1
- src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs +3/−2
- src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs +3/−2
- src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs +4/−3
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +7/−6
- src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs +2/−1
- src/Vulkan/Extensions/VK_NV_external_memory_win32.hs +2/−1
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs +2/−1
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +4/−3
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +21/−22
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs +2/−1
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +4/−3
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs +461/−0
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot +167/−0
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +10/−1
changelog.md view
@@ -2,6 +2,12 @@ ## WIP +## [3.8.1] - 2020-12-08+- Bump API version to v1.2.164++- Add cabal flag trace-calls to enable calling traceEventIO before and after+ every Vulkan command+ ## [3.8] - 2020-11-30 - Bump API version to v1.2.163
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.8"+version: "3.8.1" synopsis: Bindings to the Vulkan graphics API. category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>@@ -31,6 +31,8 @@ cpp-options: -DSAFE_FOREIGN_CALLS - condition: flag(generic-instances) cpp-options: -DGENERIC_INSTANCES+ - condition: flag(trace-calls)+ cpp-options: -DTRACE_CALLS ghc-options: - -Wall - -Wno-unticked-promoted-constructors@@ -52,6 +54,12 @@ description: Derive Generic instances for all structs. Disabled by default because of code size and compile time impact.+ default: no+ manual: yes++ trace-calls:+ description:+ Inserts calls to Debug.Trace.traceEventIO around every Vulkan call. default: no manual: yes
src-manual/Vulkan/Internal/Utils.hs view
@@ -1,9 +1,13 @@+{-# LANGUAGE CPP #-}+ module Vulkan.Internal.Utils ( enumReadPrec , enumShowsPrec+ , traceAroundEvent ) where import Data.Foldable+import Debug.Trace import GHC.Read ( expectP ) import Text.ParserCombinators.ReadP ( skipSpaces , string@@ -62,3 +66,12 @@ in showParen (p >= 11) (showString conName . showString " " . showsInternal x) +-- | Wrap an IO action with a pair of 'traceEventIO' using the specified+-- message with "begin" or "end" appended.+traceAroundEvent :: String -> IO a -> IO a+#if defined(TRACE_CALLS)+traceAroundEvent msg a =+ traceEventIO (msg <> " begin") *> a <* traceEventIO (msg <> " end")+#else+traceAroundEvent _ a = a+#endif
src/Vulkan/CStruct/Extends.hs view
@@ -305,6 +305,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR) 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)+import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeListVALVE) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset2D) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset3D) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE)@@ -392,6 +394,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)@@ -752,8 +755,10 @@ Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = () Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = () Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfoEXT = ()+ Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoVALVE = () Extends DescriptorSetAllocateInfo DescriptorSetVariableDescriptorCountAllocateInfo = () Extends DescriptorSetLayoutCreateInfo DescriptorSetLayoutBindingFlagsCreateInfo = ()+ Extends DescriptorSetLayoutCreateInfo MutableDescriptorTypeCreateInfoVALVE = () Extends DescriptorSetLayoutSupport DescriptorSetVariableDescriptorCountLayoutSupport = () Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = () Extends DeviceCreateInfo DevicePrivateDataCreateInfoEXT = ()@@ -837,6 +842,7 @@ Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()+ Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = () Extends FenceCreateInfo ExportFenceCreateInfo = () Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()@@ -965,6 +971,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = () Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()@@ -1449,6 +1456,8 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE -> go @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE+ STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -> go @MutableDescriptorTypeCreateInfoVALVE t -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("Unrecognized struct type: " <> show t) Nothing Nothing where go :: forall e . (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b@@ -1763,6 +1772,8 @@ {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV #-} {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-}+{-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesVALVE #-}+{-# complete (::&) :: MutableDescriptorTypeCreateInfoVALVE #-} -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10/Buffer.hs view
@@ -12,6 +12,7 @@ , BufferCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -164,7 +165,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPBuffer <- ContT $ bracket (callocBytes @Buffer 8) free- r <- lift $ vkCreateBuffer' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPBuffer)+ r <- lift $ traceAroundEvent "vkCreateBuffer" (vkCreateBuffer' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPBuffer)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pBuffer <- lift $ peek @Buffer pPBuffer pure $ (pBuffer)@@ -250,7 +251,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyBuffer' (deviceHandle (device)) (buffer) pAllocator+ lift $ traceAroundEvent "vkDestroyBuffer" (vkDestroyBuffer' (deviceHandle (device)) (buffer) pAllocator) pure $ ()
src/Vulkan/Core10/BufferView.hs view
@@ -8,6 +8,7 @@ , BufferViewCreateFlags(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -123,7 +124,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPView <- ContT $ bracket (callocBytes @BufferView 8) free- r <- lift $ vkCreateBufferView' (deviceHandle (device)) pCreateInfo pAllocator (pPView)+ r <- lift $ traceAroundEvent "vkCreateBufferView" (vkCreateBufferView' (deviceHandle (device)) pCreateInfo pAllocator (pPView)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pView <- lift $ peek @BufferView pPView pure $ (pView)@@ -210,7 +211,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyBufferView' (deviceHandle (device)) (bufferView) pAllocator+ lift $ traceAroundEvent "vkDestroyBufferView" (vkDestroyBufferView' (deviceHandle (device)) (bufferView) pAllocator) pure $ ()
src/Vulkan/Core10/CommandBuffer.hs view
@@ -20,6 +20,7 @@ , CommandBufferResetFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -193,7 +194,7 @@ let vkAllocateCommandBuffers' = mkVkAllocateCommandBuffers vkAllocateCommandBuffersPtr pAllocateInfo <- ContT $ withCStruct (allocateInfo) pPCommandBuffers <- ContT $ bracket (callocBytes @(Ptr CommandBuffer_T) ((fromIntegral $ commandBufferCount ((allocateInfo) :: CommandBufferAllocateInfo)) * 8)) free- r <- lift $ vkAllocateCommandBuffers' (deviceHandle (device)) pAllocateInfo (pPCommandBuffers)+ r <- lift $ traceAroundEvent "vkAllocateCommandBuffers" (vkAllocateCommandBuffers' (deviceHandle (device)) pAllocateInfo (pPCommandBuffers)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCommandBuffers <- lift $ generateM (fromIntegral $ commandBufferCount ((allocateInfo) :: CommandBufferAllocateInfo)) (\i -> do pCommandBuffersElem <- peek @(Ptr CommandBuffer_T) ((pPCommandBuffers `advancePtrBytes` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)))@@ -288,7 +289,7 @@ let vkFreeCommandBuffers' = mkVkFreeCommandBuffers vkFreeCommandBuffersPtr pPCommandBuffers <- ContT $ allocaBytesAligned @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)- lift $ vkFreeCommandBuffers' (deviceHandle (device)) (commandPool) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers)+ lift $ traceAroundEvent "vkFreeCommandBuffers" (vkFreeCommandBuffers' (deviceHandle (device)) (commandPool) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers)) pure $ () @@ -380,7 +381,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBeginCommandBuffer is null" Nothing Nothing let vkBeginCommandBuffer' = mkVkBeginCommandBuffer vkBeginCommandBufferPtr pBeginInfo <- ContT $ withCStruct (beginInfo)- r <- lift $ vkBeginCommandBuffer' (commandBufferHandle (commandBuffer)) (forgetExtensions pBeginInfo)+ r <- lift $ traceAroundEvent "vkBeginCommandBuffer" (vkBeginCommandBuffer' (commandBufferHandle (commandBuffer)) (forgetExtensions pBeginInfo)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) -- | This function will call the supplied action between calls to@@ -482,7 +483,7 @@ unless (vkEndCommandBufferPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEndCommandBuffer is null" Nothing Nothing let vkEndCommandBuffer' = mkVkEndCommandBuffer vkEndCommandBufferPtr- r <- vkEndCommandBuffer' (commandBufferHandle (commandBuffer))+ r <- traceAroundEvent "vkEndCommandBuffer" (vkEndCommandBuffer' (commandBufferHandle (commandBuffer))) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -558,7 +559,7 @@ unless (vkResetCommandBufferPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetCommandBuffer is null" Nothing Nothing let vkResetCommandBuffer' = mkVkResetCommandBuffer vkResetCommandBufferPtr- r <- vkResetCommandBuffer' (commandBufferHandle (commandBuffer)) (flags)+ r <- traceAroundEvent "vkResetCommandBuffer" (vkResetCommandBuffer' (commandBufferHandle (commandBuffer)) (flags)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -588,9 +589,6 @@ level :: CommandBufferLevel , -- | @commandBufferCount@ is the number of command buffers to allocate from -- the pool.- --- -- #VUID-VkCommandBufferAllocateInfo-commandBufferCount-00044#- -- @commandBufferCount@ /must/ be greater than @0@ commandBufferCount :: Word32 } deriving (Typeable, Eq)
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -66,6 +66,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -393,7 +394,7 @@ unless (vkCmdBindPipelinePtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipeline is null" Nothing Nothing let vkCmdBindPipeline' = mkVkCmdBindPipeline vkCmdBindPipelinePtr- vkCmdBindPipeline' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline)+ traceAroundEvent "vkCmdBindPipeline" (vkCmdBindPipeline' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline)) pure $ () @@ -488,7 +489,7 @@ let vkCmdSetViewport' = mkVkCmdSetViewport vkCmdSetViewportPtr pPViewports <- ContT $ allocaBytesAligned @Viewport ((Data.Vector.length (viewports)) * 24) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)- lift $ vkCmdSetViewport' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports)+ lift $ traceAroundEvent "vkCmdSetViewport" (vkCmdSetViewport' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports)) pure $ () @@ -601,7 +602,7 @@ let vkCmdSetScissor' = mkVkCmdSetScissor vkCmdSetScissorPtr pPScissors <- ContT $ allocaBytesAligned @Rect2D ((Data.Vector.length (scissors)) * 16) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)- lift $ vkCmdSetScissor' (commandBufferHandle (commandBuffer)) (firstScissor) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors)+ lift $ traceAroundEvent "vkCmdSetScissor" (vkCmdSetScissor' (commandBufferHandle (commandBuffer)) (firstScissor) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors)) pure $ () @@ -667,7 +668,7 @@ unless (vkCmdSetLineWidthPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineWidth is null" Nothing Nothing let vkCmdSetLineWidth' = mkVkCmdSetLineWidth vkCmdSetLineWidthPtr- vkCmdSetLineWidth' (commandBufferHandle (commandBuffer)) (CFloat (lineWidth))+ traceAroundEvent "vkCmdSetLineWidth" (vkCmdSetLineWidth' (commandBufferHandle (commandBuffer)) (CFloat (lineWidth))) pure $ () @@ -811,7 +812,7 @@ unless (vkCmdSetDepthBiasPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias is null" Nothing Nothing let vkCmdSetDepthBias' = mkVkCmdSetDepthBias vkCmdSetDepthBiasPtr- vkCmdSetDepthBias' (commandBufferHandle (commandBuffer)) (CFloat (depthBiasConstantFactor)) (CFloat (depthBiasClamp)) (CFloat (depthBiasSlopeFactor))+ traceAroundEvent "vkCmdSetDepthBias" (vkCmdSetDepthBias' (commandBufferHandle (commandBuffer)) (CFloat (depthBiasConstantFactor)) (CFloat (depthBiasClamp)) (CFloat (depthBiasSlopeFactor))) pure $ () @@ -883,7 +884,7 @@ poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1)) poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2)) poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))- lift $ vkCmdSetBlendConstants' (commandBufferHandle (commandBuffer)) (pBlendConstants)+ lift $ traceAroundEvent "vkCmdSetBlendConstants" (vkCmdSetBlendConstants' (commandBufferHandle (commandBuffer)) (pBlendConstants)) pure $ () @@ -963,7 +964,7 @@ unless (vkCmdSetDepthBoundsPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBounds is null" Nothing Nothing let vkCmdSetDepthBounds' = mkVkCmdSetDepthBounds vkCmdSetDepthBoundsPtr- vkCmdSetDepthBounds' (commandBufferHandle (commandBuffer)) (CFloat (minDepthBounds)) (CFloat (maxDepthBounds))+ traceAroundEvent "vkCmdSetDepthBounds" (vkCmdSetDepthBounds' (commandBufferHandle (commandBuffer)) (CFloat (minDepthBounds)) (CFloat (maxDepthBounds))) pure $ () @@ -1044,7 +1045,7 @@ unless (vkCmdSetStencilCompareMaskPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilCompareMask is null" Nothing Nothing let vkCmdSetStencilCompareMask' = mkVkCmdSetStencilCompareMask vkCmdSetStencilCompareMaskPtr- vkCmdSetStencilCompareMask' (commandBufferHandle (commandBuffer)) (faceMask) (compareMask)+ traceAroundEvent "vkCmdSetStencilCompareMask" (vkCmdSetStencilCompareMask' (commandBufferHandle (commandBuffer)) (faceMask) (compareMask)) pure $ () @@ -1126,7 +1127,7 @@ unless (vkCmdSetStencilWriteMaskPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilWriteMask is null" Nothing Nothing let vkCmdSetStencilWriteMask' = mkVkCmdSetStencilWriteMask vkCmdSetStencilWriteMaskPtr- vkCmdSetStencilWriteMask' (commandBufferHandle (commandBuffer)) (faceMask) (writeMask)+ traceAroundEvent "vkCmdSetStencilWriteMask" (vkCmdSetStencilWriteMask' (commandBufferHandle (commandBuffer)) (faceMask) (writeMask)) pure $ () @@ -1208,7 +1209,7 @@ unless (vkCmdSetStencilReferencePtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilReference is null" Nothing Nothing let vkCmdSetStencilReference' = mkVkCmdSetStencilReference vkCmdSetStencilReferencePtr- vkCmdSetStencilReference' (commandBufferHandle (commandBuffer)) (faceMask) (reference)+ traceAroundEvent "vkCmdSetStencilReference" (vkCmdSetStencilReference' (commandBufferHandle (commandBuffer)) (faceMask) (reference)) pure $ () @@ -1330,6 +1331,12 @@ -- sum of the effective offset, as defined above, and the range of the -- binding /must/ be less than or equal to the size of the buffer --+-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of+-- @pDescriptorSets@ /must/ not have been allocated from a+-- 'Vulkan.Core10.Handles.DescriptorPool' with the+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- flag set+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#@@ -1425,7 +1432,7 @@ lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets) pPDynamicOffsets <- ContT $ allocaBytesAligned @Word32 ((Data.Vector.length (dynamicOffsets)) * 4) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicOffsets `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (dynamicOffsets)- lift $ vkCmdBindDescriptorSets' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (firstSet) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets) ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32)) (pPDynamicOffsets)+ lift $ traceAroundEvent "vkCmdBindDescriptorSets" (vkCmdBindDescriptorSets' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (firstSet) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets) ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32)) (pPDynamicOffsets)) pure $ () @@ -1530,7 +1537,7 @@ unless (vkCmdBindIndexBufferPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer is null" Nothing Nothing let vkCmdBindIndexBuffer' = mkVkCmdBindIndexBuffer vkCmdBindIndexBufferPtr- vkCmdBindIndexBuffer' (commandBufferHandle (commandBuffer)) (buffer) (offset) (indexType)+ traceAroundEvent "vkCmdBindIndexBuffer" (vkCmdBindIndexBuffer' (commandBufferHandle (commandBuffer)) (buffer) (offset) (indexType)) pure $ () @@ -1671,7 +1678,7 @@ lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers) pPOffsets <- ContT $ allocaBytesAligned @DeviceSize ((Data.Vector.length (offsets)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)- lift $ vkCmdBindVertexBuffers' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets)+ lift $ traceAroundEvent "vkCmdBindVertexBuffers" (vkCmdBindVertexBuffers' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets)) pure $ () @@ -2093,6 +2100,13 @@ -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind -- point /must/ not write to any resource --+-- - #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of+-- the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+-- point used by this command uses the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- capability, then @commandBuffer@ /must/ not be a protected command+-- buffer+-- -- - #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via -- vertex input variables declared in the vertex shader entry point’s -- interface /must/ have either valid or@@ -2165,7 +2179,7 @@ unless (vkCmdDrawPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr- vkCmdDraw' (commandBufferHandle (commandBuffer)) (vertexCount) (instanceCount) (firstVertex) (firstInstance)+ traceAroundEvent "vkCmdDraw" (vkCmdDraw' (commandBufferHandle (commandBuffer)) (vertexCount) (instanceCount) (firstVertex) (firstInstance)) pure $ () @@ -2609,6 +2623,13 @@ -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind -- point /must/ not write to any resource --+-- - #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader+-- stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+-- bind point used by this command uses the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- capability, then @commandBuffer@ /must/ not be a protected command+-- buffer+-- -- - #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings -- accessed via vertex input variables declared in the vertex shader -- entry point’s interface /must/ have either valid or@@ -2690,7 +2711,7 @@ unless (vkCmdDrawIndexedPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr- vkCmdDrawIndexed' (commandBufferHandle (commandBuffer)) (indexCount) (instanceCount) (firstIndex) (vertexOffset) (firstInstance)+ traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed' (commandBufferHandle (commandBuffer)) (indexCount) (instanceCount) (firstIndex) (vertexOffset) (firstInstance)) pure $ () @@ -3232,7 +3253,7 @@ unless (vkCmdDrawIndirectPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr- vkCmdDrawIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride)+ traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride)) pure $ () @@ -3778,7 +3799,7 @@ unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr- vkCmdDrawIndexedIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride)+ traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride)) pure $ () @@ -4016,6 +4037,13 @@ -- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind -- point /must/ not write to any resource --+-- - #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages+-- of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+-- point used by this command uses the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- capability, then @commandBuffer@ /must/ not be a protected command+-- buffer+-- -- - #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less -- than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]@@ -4085,7 +4113,7 @@ unless (vkCmdDispatchPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr- vkCmdDispatch' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ)+ traceAroundEvent "vkCmdDispatch" (vkCmdDispatch' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ)) pure $ () @@ -4395,7 +4423,7 @@ unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr- vkCmdDispatchIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset)+ traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset)) pure $ () @@ -4544,7 +4572,7 @@ let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr pPRegions <- ContT $ allocaBytesAligned @BufferCopy ((Data.Vector.length (regions)) * 24) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)- lift $ vkCmdCopyBuffer' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)+ lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)) pure $ () @@ -5089,7 +5117,7 @@ let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr pPRegions <- ContT $ allocaBytesAligned @ImageCopy ((Data.Vector.length (regions)) * 68) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)- lift $ vkCmdCopyImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)+ lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)) pure $ () @@ -5535,7 +5563,7 @@ let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr pPRegions <- ContT $ allocaBytesAligned @ImageBlit ((Data.Vector.length (regions)) * 80) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)- lift $ vkCmdBlitImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions) (filter')+ lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions) (filter')) pure $ () @@ -5880,7 +5908,7 @@ let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr pPRegions <- ContT $ allocaBytesAligned @BufferImageCopy ((Data.Vector.length (regions)) * 56) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)- lift $ vkCmdCopyBufferToImage' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)+ lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)) pure $ () @@ -6216,7 +6244,7 @@ let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr pPRegions <- ContT $ allocaBytesAligned @BufferImageCopy ((Data.Vector.length (regions)) * 56) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)- lift $ vkCmdCopyImageToBuffer' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)+ lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)) pure $ () @@ -6372,7 +6400,7 @@ unless (vkCmdUpdateBufferPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr- vkCmdUpdateBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (dataSize) (data')+ traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (dataSize) (data')) pure $ () @@ -6505,7 +6533,7 @@ unless (vkCmdFillBufferPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr- vkCmdFillBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (size) (data')+ traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (size) (data')) pure $ () @@ -6693,7 +6721,7 @@ pColor <- ContT $ withCStruct (color) pPRanges <- ContT $ allocaBytesAligned @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)- lift $ vkCmdClearColorImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pColor ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges)+ lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pColor ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges)) pure $ () @@ -6911,7 +6939,7 @@ pDepthStencil <- ContT $ withCStruct (depthStencil) pPRanges <- ContT $ allocaBytesAligned @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)- lift $ vkCmdClearDepthStencilImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pDepthStencil ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges)+ lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pDepthStencil ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges)) pure $ () @@ -7087,7 +7115,7 @@ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments) pPRects <- ContT $ allocaBytesAligned @ClearRect ((Data.Vector.length (rects)) * 24) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)- lift $ vkCmdClearAttachments' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32)) (pPAttachments) ((fromIntegral (Data.Vector.length $ (rects)) :: Word32)) (pPRects)+ lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32)) (pPAttachments) ((fromIntegral (Data.Vector.length $ (rects)) :: Word32)) (pPRects)) pure $ () @@ -7362,7 +7390,7 @@ let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr pPRegions <- ContT $ allocaBytesAligned @ImageResolve ((Data.Vector.length (regions)) * 68) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)- lift $ vkCmdResolveImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)+ lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions)) pure $ () @@ -7527,7 +7555,7 @@ unless (vkCmdSetEventPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr- vkCmdSetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask)+ traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask)) pure $ () @@ -7698,7 +7726,7 @@ unless (vkCmdResetEventPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr- vkCmdResetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask)+ traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask)) pure $ () @@ -7756,7 +7784,7 @@ lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers) pPImageMemoryBarriers <- ContT $ allocaBytesAligned @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)- lift $ vkCmdWaitEvents' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (events)) :: Word32)) (pPEvents) (srcStageMask) (dstStageMask) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers))+ lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (events)) :: Word32)) (pPEvents) (srcStageMask) (dstStageMask) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers))) pure $ () -- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory@@ -8532,7 +8560,7 @@ lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers) pPImageMemoryBarriers <- ContT $ allocaBytesAligned @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)- lift $ vkCmdPipelineBarrier' (commandBufferHandle (commandBuffer)) (srcStageMask) (dstStageMask) (dependencyFlags) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers))+ lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier' (commandBufferHandle (commandBuffer)) (srcStageMask) (dstStageMask) (dependencyFlags) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers))) pure $ () @@ -8742,7 +8770,7 @@ unless (vkCmdBeginQueryPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr- vkCmdBeginQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags)+ traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags)) pure $ () -- | This function will call the supplied action between calls to@@ -8870,7 +8898,7 @@ unless (vkCmdEndQueryPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr- vkCmdEndQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query)+ traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query)) pure $ () @@ -8989,7 +9017,7 @@ unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr- vkCmdResetQueryPool' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount)+ traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount)) pure $ () @@ -9181,7 +9209,7 @@ unless (vkCmdWriteTimestampPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr- vkCmdWriteTimestamp' (commandBufferHandle (commandBuffer)) (pipelineStage) (queryPool) (query)+ traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp' (commandBufferHandle (commandBuffer)) (pipelineStage) (queryPool) (query)) pure $ () @@ -9415,7 +9443,7 @@ unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr- vkCmdCopyQueryPoolResults' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount) (dstBuffer) (dstOffset) (stride) (flags)+ traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount) (dstBuffer) (dstOffset) (stride) (flags)) pure $ () @@ -9562,7 +9590,7 @@ unless (vkCmdPushConstantsPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr- vkCmdPushConstants' (commandBufferHandle (commandBuffer)) (layout) (stageFlags) (offset) (size) (values)+ traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants' (commandBufferHandle (commandBuffer)) (layout) (stageFlags) (offset) (size) (values)) pure $ () @@ -9705,40 +9733,6 @@ -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' -- set ----- - #VUID-vkCmdBeginRenderPass-pAttachments-04102# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pInputAttachments@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- containing at least--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'--- or--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-pAttachments-04103# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pColorAttachments@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- containing--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-pAttachments-04104# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pResolveAttachments@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- containing--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-pAttachments-04105# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pDepthStencilAttachment@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- containing--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'--- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@@@ -9804,7 +9798,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)- lift $ vkCmdBeginRenderPass' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) (contents)+ lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) (contents)) pure $ () -- | This function will call the supplied action between calls to@@ -9915,7 +9909,7 @@ unless (vkCmdNextSubpassPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr- vkCmdNextSubpass' (commandBufferHandle (commandBuffer)) (contents)+ traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass' (commandBufferHandle (commandBuffer)) (contents)) pure $ () @@ -9992,7 +9986,7 @@ unless (vkCmdEndRenderPassPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr- vkCmdEndRenderPass' (commandBufferHandle (commandBuffer))+ traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass' (commandBufferHandle (commandBuffer))) pure $ () @@ -10231,7 +10225,7 @@ let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr pPCommandBuffers <- ContT $ allocaBytesAligned @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)- lift $ vkCmdExecuteCommands' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers)+ lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers)) pure $ ()
src/Vulkan/Core10/CommandPool.hs view
@@ -12,6 +12,7 @@ , CommandPoolResetFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -139,7 +140,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPCommandPool <- ContT $ bracket (callocBytes @CommandPool 8) free- r <- lift $ vkCreateCommandPool' (deviceHandle (device)) pCreateInfo pAllocator (pPCommandPool)+ r <- lift $ traceAroundEvent "vkCreateCommandPool" (vkCreateCommandPool' (deviceHandle (device)) pCreateInfo pAllocator (pPCommandPool)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCommandPool <- lift $ peek @CommandPool pPCommandPool pure $ (pCommandPool)@@ -240,7 +241,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyCommandPool' (deviceHandle (device)) (commandPool) pAllocator+ lift $ traceAroundEvent "vkDestroyCommandPool" (vkDestroyCommandPool' (deviceHandle (device)) (commandPool) pAllocator) pure $ () @@ -326,7 +327,7 @@ unless (vkResetCommandPoolPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetCommandPool is null" Nothing Nothing let vkResetCommandPool' = mkVkResetCommandPool vkResetCommandPoolPtr- r <- vkResetCommandPool' (deviceHandle (device)) (commandPool) (flags)+ r <- traceAroundEvent "vkResetCommandPool" (vkResetCommandPool' (deviceHandle (device)) (commandPool) (flags)) when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Core10/DescriptorSet.hs view
@@ -31,6 +31,7 @@ , DescriptorSetLayoutCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -107,6 +108,7 @@ import Vulkan.CStruct (FromCStruct(..)) import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import Vulkan.Core10.Handles (ImageView)+import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeCreateInfoVALVE) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -205,7 +207,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSetLayout <- ContT $ bracket (callocBytes @DescriptorSetLayout 8) free- r <- lift $ vkCreateDescriptorSetLayout' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSetLayout)+ r <- lift $ traceAroundEvent "vkCreateDescriptorSetLayout" (vkCreateDescriptorSetLayout' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSetLayout)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSetLayout <- lift $ peek @DescriptorSetLayout pPSetLayout pure $ (pSetLayout)@@ -293,7 +295,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyDescriptorSetLayout' (deviceHandle (device)) (descriptorSetLayout) pAllocator+ lift $ traceAroundEvent "vkDestroyDescriptorSetLayout" (vkDestroyDescriptorSetLayout' (deviceHandle (device)) (descriptorSetLayout) pAllocator) pure $ () @@ -372,7 +374,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPDescriptorPool <- ContT $ bracket (callocBytes @DescriptorPool 8) free- r <- lift $ vkCreateDescriptorPool' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPDescriptorPool)+ r <- lift $ traceAroundEvent "vkCreateDescriptorPool" (vkCreateDescriptorPool' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPDescriptorPool)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDescriptorPool <- lift $ peek @DescriptorPool pPDescriptorPool pure $ (pDescriptorPool)@@ -468,7 +470,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyDescriptorPool' (deviceHandle (device)) (descriptorPool) pAllocator+ lift $ traceAroundEvent "vkDestroyDescriptorPool" (vkDestroyDescriptorPool' (deviceHandle (device)) (descriptorPool) pAllocator) pure $ () @@ -539,7 +541,7 @@ unless (vkResetDescriptorPoolPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetDescriptorPool is null" Nothing Nothing let vkResetDescriptorPool' = mkVkResetDescriptorPool vkResetDescriptorPoolPtr- _ <- vkResetDescriptorPool' (deviceHandle (device)) (descriptorPool) (flags)+ _ <- traceAroundEvent "vkResetDescriptorPool" (vkResetDescriptorPool' (deviceHandle (device)) (descriptorPool) (flags)) pure $ () @@ -668,7 +670,7 @@ let vkAllocateDescriptorSets' = mkVkAllocateDescriptorSets vkAllocateDescriptorSetsPtr pAllocateInfo <- ContT $ withCStruct (allocateInfo) pPDescriptorSets <- ContT $ bracket (callocBytes @DescriptorSet ((fromIntegral . Data.Vector.length . setLayouts $ (allocateInfo)) * 8)) free- r <- lift $ vkAllocateDescriptorSets' (deviceHandle (device)) (forgetExtensions pAllocateInfo) (pPDescriptorSets)+ r <- lift $ traceAroundEvent "vkAllocateDescriptorSets" (vkAllocateDescriptorSets' (deviceHandle (device)) (forgetExtensions pAllocateInfo) (pPDescriptorSets)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDescriptorSets <- lift $ generateM (fromIntegral . Data.Vector.length . setLayouts $ (allocateInfo)) (\i -> peek @DescriptorSet ((pPDescriptorSets `advancePtrBytes` (8 * (i)) :: Ptr DescriptorSet))) pure $ (pDescriptorSets)@@ -772,7 +774,7 @@ let vkFreeDescriptorSets' = mkVkFreeDescriptorSets vkFreeDescriptorSetsPtr pPDescriptorSets <- ContT $ allocaBytesAligned @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)- _ <- lift $ vkFreeDescriptorSets' (deviceHandle (device)) (descriptorPool) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets)+ _ <- lift $ traceAroundEvent "vkFreeDescriptorSets" (vkFreeDescriptorSets' (deviceHandle (device)) (descriptorPool) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets)) pure $ () @@ -869,7 +871,7 @@ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPDescriptorWrites `plusPtr` (64 * (i)) :: Ptr (WriteDescriptorSet _))) (e) . ($ ())) (descriptorWrites) pPDescriptorCopies <- ContT $ allocaBytesAligned @CopyDescriptorSet ((Data.Vector.length (descriptorCopies)) * 56) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorCopies `plusPtr` (56 * (i)) :: Ptr CopyDescriptorSet) (e)) (descriptorCopies)- lift $ vkUpdateDescriptorSets' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32)) (forgetExtensions (pPDescriptorWrites)) ((fromIntegral (Data.Vector.length $ (descriptorCopies)) :: Word32)) (pPDescriptorCopies)+ lift $ traceAroundEvent "vkUpdateDescriptorSets" (vkUpdateDescriptorSets' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32)) (forgetExtensions (pPDescriptorWrites)) ((fromIntegral (Data.Vector.length $ (descriptorCopies)) :: Word32)) (pPDescriptorCopies)) pure $ () @@ -1142,6 +1144,9 @@ -- descriptor are discarded. A null acceleration structure descriptor -- results in the miss shader being invoked. --+-- If the destination descriptor is a mutable descriptor, the active+-- descriptor type for the destination descriptor becomes @descriptorType@.+-- -- If the @dstBinding@ has fewer than @descriptorCount@ array elements -- remaining starting from @dstArrayElement@, then the remainder will be -- used to update the subsequent binding - @dstBinding@+1 starting at array@@ -1490,6 +1495,12 @@ -- then @dstSet@ /must/ not have been allocated with a layout that -- included immutable samplers for @dstBinding@ --+-- - #VUID-VkWriteDescriptorSet-dstSet-04611# If the+-- 'DescriptorSetLayoutBinding' for @dstSet@ at @dstBinding@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- the new active descriptor type @descriptorType@ /must/ exist in the+-- corresponding @pMutableDescriptorTypeLists@ list for @dstBinding@+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkWriteDescriptorSet-sType-sType# @sType@ /must/ be@@ -1555,10 +1566,12 @@ , -- | @descriptorType@ is a -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' specifying the type -- of each descriptor in @pImageInfo@, @pBufferInfo@, or- -- @pTexelBufferView@, as described below. It /must/ be the same type as- -- that specified in 'DescriptorSetLayoutBinding' for @dstSet@ at- -- @dstBinding@. The type of the descriptor also controls which array the- -- descriptors are taken from.+ -- @pTexelBufferView@, as described below. If 'DescriptorSetLayoutBinding'+ -- for @dstSet@ at @dstBinding@ is not equal to+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+ -- @descriptorType@ /must/ be the same type as that specified in+ -- 'DescriptorSetLayoutBinding' for @dstSet@ at @dstBinding@. The type of+ -- the descriptor also controls which array the descriptors are taken from. descriptorType :: DescriptorType , -- | @pImageInfo@ is a pointer to an array of 'DescriptorImageInfo' -- structures or is ignored, as described below.@@ -1680,6 +1693,27 @@ -- | VkCopyDescriptorSet - Structure specifying a copy descriptor set -- operation --+-- = Description+--+-- If the 'DescriptorSetLayoutBinding' for @dstBinding@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE' and+-- @srcBinding@ is not+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE', the+-- new active descriptor type becomes the descriptor type of @srcBinding@.+-- If both 'DescriptorSetLayoutBinding' for @srcBinding@ and @dstBinding@+-- are 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- the active descriptor type in each source descriptor is copied into the+-- corresponding destination descriptor. The active descriptor type /can/+-- be different for each source descriptor.+--+-- Note+--+-- The intention is that copies to and from mutable descriptors is a simple+-- memcpy. Copies between non-mutable and mutable descriptors are expected+-- to require one memcpy per descriptor to handle the difference in size,+-- but this use case with more than one @descriptorCount@ is considered+-- rare.+-- -- == Valid Usage -- -- - #VUID-VkCopyDescriptorSet-srcBinding-00345# @srcBinding@ /must/ be a@@ -1766,6 +1800,31 @@ -- @dstSet@ /must/ not have been allocated with a layout that included -- immutable samplers for @dstBinding@ --+-- - #VUID-VkCopyDescriptorSet-dstSet-04612# If+-- 'DescriptorSetLayoutBinding' for @dstSet@ at @dstBinding@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- the new active descriptor type /must/ exist in the corresponding+-- @pMutableDescriptorTypeLists@ list for @dstBinding@ if the new+-- active descriptor type is not+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - #VUID-VkCopyDescriptorSet-srcSet-04613# If+-- 'DescriptorSetLayoutBinding' for @srcSet@ at @srcBinding@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- and the 'DescriptorSetLayoutBinding' for @dstSet@ at @dstBinding@ is+-- not+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- the active descriptor type for the source descriptor /must/ match+-- the descriptor type of @dstBinding@+--+-- - #VUID-VkCopyDescriptorSet-dstSet-04614# If+-- 'DescriptorSetLayoutBinding' for @dstSet@ at @dstBinding@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- and the new active descriptor type is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- the @pMutableDescriptorTypeLists@ for @srcBinding@ and @dstBinding@+-- /must/ match exactly+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkCopyDescriptorSet-sType-sType# @sType@ /must/ be@@ -1939,6 +1998,11 @@ -- @NULL@, @pImmutableSamplers@ /must/ be a valid pointer to an array -- of @descriptorCount@ valid 'Vulkan.Core10.Handles.Sampler' handles --+-- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-04604# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inlineUniformBlock inlineUniformBlock>+-- feature is not enabled, @descriptorType@ /must/ not be+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+-- -- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-02209# If -- @descriptorType@ is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'@@ -1967,6 +2031,11 @@ -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT' or -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT' --+-- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-04605# If+-- @descriptorType@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- then @pImmutableSamplers@ /must/ be @NULL@.+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter#@@ -2101,6 +2170,18 @@ -- than or equal to -- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR'::@maxPushDescriptors@ --+-- - #VUID-VkDescriptorSetLayoutCreateInfo-flags-04590# If @flags@+-- contains+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR',+-- @flags@ /must/ not contain+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+--+-- - #VUID-VkDescriptorSetLayoutCreateInfo-flags-04591# If @flags@+-- contains+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR',+-- @pBindings@ /must/ not have a @descriptorType@ of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- -- - #VUID-VkDescriptorSetLayoutCreateInfo-flags-03000# If any binding -- has the -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'@@ -2115,14 +2196,47 @@ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC' --+-- - #VUID-VkDescriptorSetLayoutCreateInfo-flags-04592# If @flags@+-- contains+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT',+-- @flags@ /must/ not contain+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+--+-- - #VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04593# If any+-- binding has a @descriptorType@ of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- then a+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'+-- /must/ be present in the @pNext@ chain+--+-- - #VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594# If a+-- binding has a @descriptorType@ value of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+-- then @pImmutableSamplers@ /must/ be @NULL@+--+-- - #VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595#+-- If+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'::@mutableDescriptorType@+-- is not enabled, @pBindings@ /must/ not contain a @descriptorType@ of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - #VUID-VkDescriptorSetLayoutCreateInfo-flags-04596# If @flags@+-- contains+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE',+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'::@mutableDescriptorType@+-- /must/ be enabled+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkDescriptorSetLayoutCreateInfo-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO' ----- - #VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext# @pNext@ /must/ be--- @NULL@ or a pointer to a valid instance of+-- - #VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext# Each @pNext@+-- member of any structure (including this one) in the @pNext@ chain+-- /must/ be either @NULL@ or a pointer to a valid instance of -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetLayoutBindingFlagsCreateInfo'+-- or+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE' -- -- - #VUID-VkDescriptorSetLayoutCreateInfo-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique@@ -2168,6 +2282,7 @@ getNext DescriptorSetLayoutCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorSetLayoutCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @MutableDescriptorTypeCreateInfoVALVE = Just f | Just Refl <- eqT @e @DescriptorSetLayoutBindingFlagsCreateInfo = Just f | otherwise = Nothing @@ -2331,19 +2446,63 @@ -- set exceeds @maxUpdateAfterBindDescriptorsInAllPools@, or if -- fragmentation of the underlying hardware resources occurs. --+-- If a @pPoolSizes@[i]::@type@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE', a+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'+-- struct in the @pNext@ chain /can/ be used to specify which mutable+-- descriptor types /can/ be allocated from the pool. If present in the+-- @pNext@ chain,+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'::@pMutableDescriptorTypeLists@[i]+-- specifies which kind of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- descriptors /can/ be allocated from this pool entry. If+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'+-- does not exist in the @pNext@ chain, or+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'::@pMutableDescriptorTypeLists@[i]+-- is out of range, the descriptor pool allocates enough memory to be able+-- to allocate a+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- descriptor with any supported+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' as a mutable+-- descriptor. A mutable descriptor /can/ be allocated from a pool entry if+-- the type list in 'DescriptorSetLayoutCreateInfo' is a subset of the type+-- list declared in the descriptor pool, or if the pool entry is created+-- without a descriptor type list.+-- -- == Valid Usage -- -- - #VUID-VkDescriptorPoolCreateInfo-maxSets-00301# @maxSets@ /must/ be -- greater than @0@ --+-- - #VUID-VkDescriptorPoolCreateInfo-flags-04607# If @flags@ has the+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- bit set, then the+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT'+-- bit /must/ not be set+--+-- - #VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608# If+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'::@mutableDescriptorType@+-- is not enabled, @pPoolSizes@ /must/ not contain a @descriptorType@+-- of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - #VUID-VkDescriptorPoolCreateInfo-flags-04609# If @flags@ has the+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- bit set,+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'::@mutableDescriptorType@+-- /must/ be enabled+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkDescriptorPoolCreateInfo-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO' ----- - #VUID-VkDescriptorPoolCreateInfo-pNext-pNext# @pNext@ /must/ be--- @NULL@ or a pointer to a valid instance of+-- - #VUID-VkDescriptorPoolCreateInfo-pNext-pNext# Each @pNext@ member of+-- any structure (including this one) in the @pNext@ chain /must/ be+-- either @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfoEXT'+-- or+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE' -- -- - #VUID-VkDescriptorPoolCreateInfo-sType-unique# The @sType@ value of -- each struct in the @pNext@ chain /must/ be unique@@ -2392,6 +2551,7 @@ getNext DescriptorPoolCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorPoolCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @MutableDescriptorTypeCreateInfoVALVE = Just f | Just Refl <- eqT @e @DescriptorPoolInlineUniformBlockCreateInfoEXT = Just f | otherwise = Nothing @@ -2457,6 +2617,13 @@ -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' -- flag set --+-- - #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610# If any element+-- of @pSetLayouts@ was created with the+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+-- bit set, @descriptorPool@ /must/ have been created with the+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- flag set+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkDescriptorSetAllocateInfo-sType-sType# @sType@ /must/ be@@ -2474,17 +2641,12 @@ -- 'Vulkan.Core10.Handles.DescriptorPool' handle -- -- - #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter#--- @pSetLayouts@ /must/ be a valid pointer to an array of--- @descriptorSetCount@ valid--- 'Vulkan.Core10.Handles.DescriptorSetLayout' handles------ - #VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength#--- @descriptorSetCount@ /must/ be greater than @0@+-- @pSetLayouts@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.Handles.DescriptorSetLayout' handle -- -- - #VUID-VkDescriptorSetAllocateInfo-commonparent# Both of--- @descriptorPool@, and the elements of @pSetLayouts@ /must/ have been--- created, allocated, or retrieved from the same--- 'Vulkan.Core10.Handles.Device'+-- @descriptorPool@, and @pSetLayouts@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device' -- -- = See Also --
src/Vulkan/Core10/Device.hs view
@@ -11,6 +11,7 @@ , DeviceQueueCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -121,6 +122,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)@@ -286,7 +288,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPDevice <- ContT $ bracket (callocBytes @(Ptr Device_T) 8) free- r <- lift $ vkCreateDevice' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pCreateInfo) pAllocator (pPDevice)+ r <- lift $ traceAroundEvent "vkCreateDevice" (vkCreateDevice' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pCreateInfo) pAllocator (pPDevice)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDevice <- lift $ peek @(Ptr Device_T) pPDevice pDevice' <- lift $ (\h -> Device h <$> initDeviceCmds cmds h) pDevice@@ -382,7 +384,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyDevice' (deviceHandle (device)) pAllocator+ lift $ traceAroundEvent "vkDestroyDevice" (vkDestroyDevice' (deviceHandle (device)) pAllocator) pure $ () @@ -716,6 +718,7 @@ -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures',+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',@@ -834,6 +837,7 @@ getNext DeviceCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -64,6 +64,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -323,7 +324,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPInstance <- ContT $ bracket (callocBytes @(Ptr Instance_T) 8) free- r <- lift $ vkCreateInstance' (forgetExtensions pCreateInfo) pAllocator (pPInstance)+ r <- lift $ traceAroundEvent "vkCreateInstance" (vkCreateInstance' (forgetExtensions pCreateInfo) pAllocator (pPInstance)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pInstance <- lift $ peek @(Ptr Instance_T) pPInstance pInstance' <- lift $ (\h -> Instance h <$> initInstanceCmds h) pInstance@@ -405,7 +406,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyInstance' (instanceHandle (instance')) pAllocator+ lift $ traceAroundEvent "vkDestroyInstance" (vkDestroyInstance' (instanceHandle (instance')) pAllocator) pure $ () @@ -481,11 +482,11 @@ let vkEnumeratePhysicalDevices' = mkVkEnumeratePhysicalDevices vkEnumeratePhysicalDevicesPtr let instance'' = instanceHandle (instance') pPPhysicalDeviceCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumeratePhysicalDevices' instance'' (pPPhysicalDeviceCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices' instance'' (pPPhysicalDeviceCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPhysicalDeviceCount <- lift $ peek @Word32 pPPhysicalDeviceCount pPPhysicalDevices <- ContT $ bracket (callocBytes @(Ptr PhysicalDevice_T) ((fromIntegral (pPhysicalDeviceCount)) * 8)) free- r' <- lift $ vkEnumeratePhysicalDevices' instance'' (pPPhysicalDeviceCount) (pPPhysicalDevices)+ r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices' instance'' (pPPhysicalDeviceCount) (pPPhysicalDevices)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPhysicalDeviceCount' <- lift $ peek @Word32 pPPhysicalDeviceCount pPhysicalDevices' <- lift $ generateM (fromIntegral (pPhysicalDeviceCount')) (\i -> do@@ -574,7 +575,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceProcAddr is null" Nothing Nothing let vkGetDeviceProcAddr' = mkVkGetDeviceProcAddr vkGetDeviceProcAddrPtr pName <- ContT $ useAsCString (name)- r <- lift $ vkGetDeviceProcAddr' (deviceHandle (device)) pName+ r <- lift $ traceAroundEvent "vkGetDeviceProcAddr" (vkGetDeviceProcAddr' (deviceHandle (device)) pName) pure $ (r) @@ -679,7 +680,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetInstanceProcAddr is null" Nothing Nothing let vkGetInstanceProcAddr' = mkVkGetInstanceProcAddr vkGetInstanceProcAddrPtr pName <- ContT $ useAsCString (name)- r <- lift $ vkGetInstanceProcAddr' (instanceHandle (instance')) pName+ r <- lift $ traceAroundEvent "vkGetInstanceProcAddr" (vkGetInstanceProcAddr' (instanceHandle (instance')) pName) pure $ (r) @@ -713,7 +714,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceProperties is null" Nothing Nothing let vkGetPhysicalDeviceProperties' = mkVkGetPhysicalDeviceProperties vkGetPhysicalDevicePropertiesPtr pPProperties <- ContT (withZeroCStruct @PhysicalDeviceProperties)- lift $ vkGetPhysicalDeviceProperties' (physicalDeviceHandle (physicalDevice)) (pPProperties)+ lift $ traceAroundEvent "vkGetPhysicalDeviceProperties" (vkGetPhysicalDeviceProperties' (physicalDeviceHandle (physicalDevice)) (pPProperties)) pProperties <- lift $ peekCStruct @PhysicalDeviceProperties pPProperties pure $ (pProperties) @@ -773,11 +774,11 @@ let vkGetPhysicalDeviceQueueFamilyProperties' = mkVkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyPropertiesPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPQueueFamilyPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetPhysicalDeviceQueueFamilyProperties' physicalDevice' (pPQueueFamilyPropertyCount) (nullPtr)+ lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties' physicalDevice' (pPQueueFamilyPropertyCount) (nullPtr)) pQueueFamilyPropertyCount <- lift $ peek @Word32 pPQueueFamilyPropertyCount pPQueueFamilyProperties <- ContT $ bracket (callocBytes @QueueFamilyProperties ((fromIntegral (pQueueFamilyPropertyCount)) * 24)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPQueueFamilyProperties `advancePtrBytes` (i * 24) :: Ptr QueueFamilyProperties) . ($ ())) [0..(fromIntegral (pQueueFamilyPropertyCount)) - 1]- lift $ vkGetPhysicalDeviceQueueFamilyProperties' physicalDevice' (pPQueueFamilyPropertyCount) ((pPQueueFamilyProperties))+ lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties' physicalDevice' (pPQueueFamilyPropertyCount) ((pPQueueFamilyProperties))) pQueueFamilyPropertyCount' <- lift $ peek @Word32 pPQueueFamilyPropertyCount pQueueFamilyProperties' <- lift $ generateM (fromIntegral (pQueueFamilyPropertyCount')) (\i -> peekCStruct @QueueFamilyProperties (((pPQueueFamilyProperties) `advancePtrBytes` (24 * (i)) :: Ptr QueueFamilyProperties))) pure $ (pQueueFamilyProperties')@@ -813,7 +814,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMemoryProperties is null" Nothing Nothing let vkGetPhysicalDeviceMemoryProperties' = mkVkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryPropertiesPtr pPMemoryProperties <- ContT (withZeroCStruct @PhysicalDeviceMemoryProperties)- lift $ vkGetPhysicalDeviceMemoryProperties' (physicalDeviceHandle (physicalDevice)) (pPMemoryProperties)+ lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties" (vkGetPhysicalDeviceMemoryProperties' (physicalDeviceHandle (physicalDevice)) (pPMemoryProperties)) pMemoryProperties <- lift $ peekCStruct @PhysicalDeviceMemoryProperties pPMemoryProperties pure $ (pMemoryProperties) @@ -848,7 +849,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFeatures is null" Nothing Nothing let vkGetPhysicalDeviceFeatures' = mkVkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeaturesPtr pPFeatures <- ContT (withZeroCStruct @PhysicalDeviceFeatures)- lift $ vkGetPhysicalDeviceFeatures' (physicalDeviceHandle (physicalDevice)) (pPFeatures)+ lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures" (vkGetPhysicalDeviceFeatures' (physicalDeviceHandle (physicalDevice)) (pPFeatures)) pFeatures <- lift $ peekCStruct @PhysicalDeviceFeatures pPFeatures pure $ (pFeatures) @@ -890,7 +891,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFormatProperties is null" Nothing Nothing let vkGetPhysicalDeviceFormatProperties' = mkVkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatPropertiesPtr pPFormatProperties <- ContT (withZeroCStruct @FormatProperties)- lift $ vkGetPhysicalDeviceFormatProperties' (physicalDeviceHandle (physicalDevice)) (format) (pPFormatProperties)+ lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties" (vkGetPhysicalDeviceFormatProperties' (physicalDeviceHandle (physicalDevice)) (format) (pPFormatProperties)) pFormatProperties <- lift $ peekCStruct @FormatProperties pPFormatProperties pure $ (pFormatProperties) @@ -1017,7 +1018,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceImageFormatProperties is null" Nothing Nothing let vkGetPhysicalDeviceImageFormatProperties' = mkVkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatPropertiesPtr pPImageFormatProperties <- ContT (withZeroCStruct @ImageFormatProperties)- r <- lift $ vkGetPhysicalDeviceImageFormatProperties' (physicalDeviceHandle (physicalDevice)) (format) (type') (tiling) (usage) (flags) (pPImageFormatProperties)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties" (vkGetPhysicalDeviceImageFormatProperties' (physicalDeviceHandle (physicalDevice)) (format) (type') (tiling) (usage) (flags) (pPImageFormatProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pImageFormatProperties <- lift $ peekCStruct @ImageFormatProperties pPImageFormatProperties pure $ (pImageFormatProperties)
src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs view
@@ -2,6 +2,7 @@ -- No documentation found for Chapter "DescriptorPoolCreateFlagBits" module Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits ( DescriptorPoolCreateFlags , DescriptorPoolCreateFlagBits( DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT+ , DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE , DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT , .. )@@ -39,6 +40,17 @@ -- 'Vulkan.Core10.DescriptorSet.allocateDescriptorSets' and -- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool' are allowed. pattern DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = DescriptorPoolCreateFlagBits 0x00000001+-- | 'DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE' specifies that this+-- descriptor pool and the descriptor sets allocated from it reside+-- entirely in host memory and cannot be bound. Descriptor sets allocated+-- from this pool are partially exempt from the external synchronization+-- requirement in+-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplateKHR'+-- and 'Vulkan.Core10.DescriptorSet.updateDescriptorSets'. Descriptor sets+-- and their descriptors can be updated concurrently in different threads,+-- though the same descriptor /must/ not be updated concurrently by two+-- threads.+pattern DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = DescriptorPoolCreateFlagBits 0x00000004 -- | 'DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' specifies that descriptor -- sets allocated from this pool /can/ include bindings with the -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'@@ -58,6 +70,7 @@ showTableDescriptorPoolCreateFlagBits :: [(DescriptorPoolCreateFlagBits, String)] showTableDescriptorPoolCreateFlagBits = [ (DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, "FREE_DESCRIPTOR_SET_BIT")+ , (DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE , "HOST_ONLY_BIT_VALVE") , (DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT , "UPDATE_AFTER_BIND_BIT") ]
src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs view
@@ -1,7 +1,8 @@ {-# language CPP #-} -- No documentation found for Chapter "DescriptorSetLayoutCreateFlagBits" module Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits ( DescriptorSetLayoutCreateFlags- , DescriptorSetLayoutCreateFlagBits( DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR+ , DescriptorSetLayoutCreateFlagBits( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE+ , DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR , DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT , .. )@@ -29,6 +30,17 @@ newtype DescriptorSetLayoutCreateFlagBits = DescriptorSetLayoutCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) +-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE' specifies that+-- descriptor sets using this layout /must/ be allocated from a descriptor+-- pool created with the+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- bit set. Descriptor set layouts created with this bit have no+-- expressable limit for maximum number of descriptors per-stage. Host+-- descriptor sets are limited only by available host memory, but /may/ be+-- limited for implementation specific reasons. Implementations /may/ limit+-- the number of supported descriptors to UpdateAfterBind limits or+-- non-UpdateAfterBind limits, whichever is larger.+pattern DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = DescriptorSetLayoutCreateFlagBits 0x00000004 -- | 'DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR' specifies that -- descriptor sets /must/ not be allocated using this layout, and -- descriptors are instead pushed by@@ -54,7 +66,8 @@ showTableDescriptorSetLayoutCreateFlagBits :: [(DescriptorSetLayoutCreateFlagBits, String)] showTableDescriptorSetLayoutCreateFlagBits =- [ (DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR , "PUSH_DESCRIPTOR_BIT_KHR")+ [ (DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE , "HOST_ONLY_POOL_BIT_VALVE")+ , (DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR , "PUSH_DESCRIPTOR_BIT_KHR") , (DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, "UPDATE_AFTER_BIND_POOL_BIT") ]
src/Vulkan/Core10/Enums/DescriptorType.hs view
@@ -11,6 +11,7 @@ , DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC , DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC , DESCRIPTOR_TYPE_INPUT_ATTACHMENT+ , DESCRIPTOR_TYPE_MUTABLE_VALVE , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR , DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT@@ -66,6 +67,9 @@ -- - 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT' specifies an -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>. --+-- - 'DESCRIPTOR_TYPE_MUTABLE_VALVE' specifies a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-mutable descriptor of mutable type>.+-- -- When a descriptor set is updated via elements of -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet', members of -- @pImageInfo@, @pBufferInfo@ and @pTexelBufferView@ are only accessed by@@ -131,6 +135,7 @@ -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding', -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateEntry', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeListVALVE', -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet' newtype DescriptorType = DescriptorType Int32 deriving newtype (Eq, Ord, Storable, Zero)@@ -157,6 +162,8 @@ pattern DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = DescriptorType 9 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT" pattern DESCRIPTOR_TYPE_INPUT_ATTACHMENT = DescriptorType 10+-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE"+pattern DESCRIPTOR_TYPE_MUTABLE_VALVE = DescriptorType 1000351000 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV" pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = DescriptorType 1000165000 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR"@@ -174,6 +181,7 @@ DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, DESCRIPTOR_TYPE_INPUT_ATTACHMENT,+ DESCRIPTOR_TYPE_MUTABLE_VALVE, DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT :: DescriptorType #-}@@ -197,6 +205,7 @@ , (DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC , "UNIFORM_BUFFER_DYNAMIC") , (DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC , "STORAGE_BUFFER_DYNAMIC") , (DESCRIPTOR_TYPE_INPUT_ATTACHMENT , "INPUT_ATTACHMENT")+ , (DESCRIPTOR_TYPE_MUTABLE_VALVE , "MUTABLE_VALVE") , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , "ACCELERATION_STRUCTURE_NV") , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, "ACCELERATION_STRUCTURE_KHR") , (DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT , "INLINE_UNIFORM_BLOCK_EXT")
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -49,6 +49,8 @@ , STRUCTURE_TYPE_MEMORY_BARRIER , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+ , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR@@ -710,6 +712,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryWin32HandlePropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT',+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE', -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceConfigurationAcquireInfoINTEL', -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterDescriptionKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR',@@ -790,6 +793,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures', -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties',+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE', -- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',@@ -1075,6 +1079,10 @@ 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_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = StructureType 1000351000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"@@ -1968,6 +1976,8 @@ STRUCTURE_TYPE_MEMORY_BARRIER, STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,+ STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,@@ -2448,21 +2458,25 @@ , (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_DIRECTFB_SURFACE_CREATE_INFO_EXT , "DIRECTFB_SURFACE_CREATE_INFO_EXT")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")- , (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR , "IMAGE_RESOLVE_2_KHR")- , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR , "BUFFER_IMAGE_COPY_2_KHR")- , (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR , "IMAGE_BLIT_2_KHR")- , (STRUCTURE_TYPE_IMAGE_COPY_2_KHR , "IMAGE_COPY_2_KHR")- , (STRUCTURE_TYPE_BUFFER_COPY_2_KHR , "BUFFER_COPY_2_KHR")- , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR , "RESOLVE_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR , "BLIT_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR , "COPY_IMAGE_TO_BUFFER_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR , "COPY_BUFFER_TO_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR , "COPY_IMAGE_INFO_2_KHR")- , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR , "COPY_BUFFER_INFO_2_KHR")+ , (STRUCTURE_TYPE_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"+ )+ , (STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT , "DIRECTFB_SURFACE_CREATE_INFO_EXT")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT , "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")+ , (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR , "IMAGE_RESOLVE_2_KHR")+ , (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR , "BUFFER_IMAGE_COPY_2_KHR")+ , (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR , "IMAGE_BLIT_2_KHR")+ , (STRUCTURE_TYPE_IMAGE_COPY_2_KHR , "IMAGE_COPY_2_KHR")+ , (STRUCTURE_TYPE_BUFFER_COPY_2_KHR , "BUFFER_COPY_2_KHR")+ , (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR , "RESOLVE_IMAGE_INFO_2_KHR")+ , (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR , "BLIT_IMAGE_INFO_2_KHR")+ , (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR , "COPY_IMAGE_TO_BUFFER_INFO_2_KHR")+ , (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR , "COPY_BUFFER_TO_IMAGE_INFO_2_KHR")+ , (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR , "COPY_IMAGE_INFO_2_KHR")+ , (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR , "COPY_BUFFER_INFO_2_KHR") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, "PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT")- , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM , "COPY_COMMAND_TRANSFORM_INFO_QCOM")+ , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM , "COPY_COMMAND_TRANSFORM_INFO_QCOM") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT" )
src/Vulkan/Core10/Enums/VendorId.hs view
@@ -5,6 +5,7 @@ , VENDOR_ID_KAZAN , VENDOR_ID_CODEPLAY , VENDOR_ID_MESA+ , VENDOR_ID_POCL , .. )) where @@ -48,11 +49,14 @@ pattern VENDOR_ID_CODEPLAY = VendorId 65540 -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_MESA" pattern VENDOR_ID_MESA = VendorId 65541+-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_POCL"+pattern VENDOR_ID_POCL = VendorId 65542 {-# complete VENDOR_ID_VIV, VENDOR_ID_VSI, VENDOR_ID_KAZAN, VENDOR_ID_CODEPLAY,- VENDOR_ID_MESA :: VendorId #-}+ VENDOR_ID_MESA,+ VENDOR_ID_POCL :: VendorId #-} conNameVendorId :: String conNameVendorId = "VendorId"@@ -67,6 +71,7 @@ , (VENDOR_ID_KAZAN , "KAZAN") , (VENDOR_ID_CODEPLAY, "CODEPLAY") , (VENDOR_ID_MESA , "MESA")+ , (VENDOR_ID_POCL , "POCL") ] instance Show VendorId where
src/Vulkan/Core10/Event.hs view
@@ -11,6 +11,7 @@ , EventCreateFlags(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -140,7 +141,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPEvent <- ContT $ bracket (callocBytes @Event 8) free- r <- lift $ vkCreateEvent' (deviceHandle (device)) pCreateInfo pAllocator (pPEvent)+ r <- lift $ traceAroundEvent "vkCreateEvent" (vkCreateEvent' (deviceHandle (device)) pCreateInfo pAllocator (pPEvent)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pEvent <- lift $ peek @Event pPEvent pure $ (pEvent)@@ -225,7 +226,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyEvent' (deviceHandle (device)) (event) pAllocator+ lift $ traceAroundEvent "vkDestroyEvent" (vkDestroyEvent' (deviceHandle (device)) (event) pAllocator) pure $ () @@ -307,7 +308,7 @@ unless (vkGetEventStatusPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetEventStatus is null" Nothing Nothing let vkGetEventStatus' = mkVkGetEventStatus vkGetEventStatusPtr- r <- vkGetEventStatus' (deviceHandle (device)) (event)+ r <- traceAroundEvent "vkGetEventStatus" (vkGetEventStatus' (deviceHandle (device)) (event)) when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -371,7 +372,7 @@ unless (vkSetEventPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetEvent is null" Nothing Nothing let vkSetEvent' = mkVkSetEvent vkSetEventPtr- r <- vkSetEvent' (deviceHandle (device)) (event)+ r <- traceAroundEvent "vkSetEvent" (vkSetEvent' (deviceHandle (device)) (event)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -439,7 +440,7 @@ unless (vkResetEventPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetEvent is null" Nothing Nothing let vkResetEvent' = mkVkResetEvent vkResetEventPtr- r <- vkResetEvent' (deviceHandle (device)) (event)+ r <- traceAroundEvent "vkResetEvent" (vkResetEvent' (deviceHandle (device)) (event)) when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -6,6 +6,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -149,12 +150,12 @@ Nothing -> pure nullPtr Just j -> ContT $ useAsCString (j) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumerateInstanceExtensionProperties' pLayerName (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkEnumerateInstanceExtensionProperties" (vkEnumerateInstanceExtensionProperties' pLayerName (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @ExtensionProperties ((fromIntegral (pPropertyCount)) * 260)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 260) :: Ptr ExtensionProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkEnumerateInstanceExtensionProperties' pLayerName (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkEnumerateInstanceExtensionProperties" (vkEnumerateInstanceExtensionProperties' pLayerName (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @ExtensionProperties (((pPProperties) `advancePtrBytes` (260 * (i)) :: Ptr ExtensionProperties)))@@ -237,12 +238,12 @@ Nothing -> pure nullPtr Just j -> ContT $ useAsCString (j) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumerateDeviceExtensionProperties' physicalDevice' pLayerName (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkEnumerateDeviceExtensionProperties" (vkEnumerateDeviceExtensionProperties' physicalDevice' pLayerName (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @ExtensionProperties ((fromIntegral (pPropertyCount)) * 260)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 260) :: Ptr ExtensionProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkEnumerateDeviceExtensionProperties' physicalDevice' pLayerName (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkEnumerateDeviceExtensionProperties" (vkEnumerateDeviceExtensionProperties' physicalDevice' pLayerName (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @ExtensionProperties (((pPProperties) `advancePtrBytes` (260 * (i)) :: Ptr ExtensionProperties)))
src/Vulkan/Core10/Fence.hs view
@@ -13,6 +13,7 @@ , FenceCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -150,7 +151,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPFence <- ContT $ bracket (callocBytes @Fence 8) free- r <- lift $ vkCreateFence' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPFence)+ r <- lift $ traceAroundEvent "vkCreateFence" (vkCreateFence' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPFence)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFence <- lift $ peek @Fence pPFence pure $ (pFence)@@ -236,7 +237,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyFence' (deviceHandle (device)) (fence) pAllocator+ lift $ traceAroundEvent "vkDestroyFence" (vkDestroyFence' (deviceHandle (device)) (fence) pAllocator) pure $ () @@ -318,7 +319,7 @@ let vkResetFences' = mkVkResetFences vkResetFencesPtr pPFences <- ContT $ allocaBytesAligned @Fence ((Data.Vector.length (fences)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPFences `plusPtr` (8 * (i)) :: Ptr Fence) (e)) (fences)- r <- lift $ vkResetFences' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (fences)) :: Word32)) (pPFences)+ r <- lift $ traceAroundEvent "vkResetFences" (vkResetFences' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (fences)) :: Word32)) (pPFences)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -401,7 +402,7 @@ unless (vkGetFenceStatusPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetFenceStatus is null" Nothing Nothing let vkGetFenceStatus' = mkVkGetFenceStatus vkGetFenceStatusPtr- r <- vkGetFenceStatus' (deviceHandle (device)) (fence)+ r <- traceAroundEvent "vkGetFenceStatus" (vkGetFenceStatus' (deviceHandle (device)) (fence)) when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -445,7 +446,7 @@ let vkWaitForFences' = mkVkWaitForFences vkWaitForFencesPtr pPFences <- ContT $ allocaBytesAligned @Fence ((Data.Vector.length (fences)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPFences `plusPtr` (8 * (i)) :: Ptr Fence) (e)) (fences)- r <- lift $ vkWaitForFences' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (fences)) :: Word32)) (pPFences) (boolToBool32 (waitAll)) (timeout)+ r <- lift $ traceAroundEvent "vkWaitForFences" (vkWaitForFences' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (fences)) :: Word32)) (pPFences) (boolToBool32 (waitAll)) (timeout)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r)
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -443,6 +443,7 @@ -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures', -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT',
src/Vulkan/Core10/Handles.hs view
@@ -123,6 +123,7 @@ -- -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties',+-- 'Vulkan.Extensions.VK_NV_acquire_winrt_display.acquireWinrtDisplayNV', -- 'Vulkan.Extensions.VK_EXT_acquire_xlib_display.acquireXlibDisplayEXT', -- 'Vulkan.Core10.Device.createDevice', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayModeKHR',@@ -189,6 +190,7 @@ -- 'Vulkan.Extensions.VK_KHR_xcb_surface.getPhysicalDeviceXcbPresentationSupportKHR', -- 'Vulkan.Extensions.VK_KHR_xlib_surface.getPhysicalDeviceXlibPresentationSupportKHR', -- 'Vulkan.Extensions.VK_EXT_acquire_xlib_display.getRandROutputDisplayEXT',+-- 'Vulkan.Extensions.VK_NV_acquire_winrt_display.getWinrtDisplayNV', -- 'Vulkan.Extensions.VK_EXT_direct_mode_display.releaseDisplayEXT' data PhysicalDevice = PhysicalDevice { physicalDeviceHandle :: Ptr PhysicalDevice_T
src/Vulkan/Core10/Image.hs view
@@ -10,6 +10,7 @@ , ImageLayout(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -171,7 +172,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPImage <- ContT $ bracket (callocBytes @Image 8) free- r <- lift $ vkCreateImage' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPImage)+ r <- lift $ traceAroundEvent "vkCreateImage" (vkCreateImage' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPImage)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pImage <- lift $ peek @Image pPImage pure $ (pImage)@@ -257,7 +258,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyImage' (deviceHandle (device)) (image) pAllocator+ lift $ traceAroundEvent "vkDestroyImage" (vkDestroyImage' (deviceHandle (device)) (image) pAllocator) pure $ () @@ -417,7 +418,7 @@ let vkGetImageSubresourceLayout' = mkVkGetImageSubresourceLayout vkGetImageSubresourceLayoutPtr pSubresource <- ContT $ withCStruct (subresource) pPLayout <- ContT (withZeroCStruct @SubresourceLayout)- lift $ vkGetImageSubresourceLayout' (deviceHandle (device)) (image) pSubresource (pPLayout)+ lift $ traceAroundEvent "vkGetImageSubresourceLayout" (vkGetImageSubresourceLayout' (deviceHandle (device)) (image) pSubresource (pPLayout)) pLayout <- lift $ peekCStruct @SubresourceLayout pPLayout pure $ (pLayout)
src/Vulkan/Core10/ImageView.hs view
@@ -13,6 +13,7 @@ , ImageViewCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -150,7 +151,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPView <- ContT $ bracket (callocBytes @ImageView 8) free- r <- lift $ vkCreateImageView' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPView)+ r <- lift $ traceAroundEvent "vkCreateImageView" (vkCreateImageView' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPView)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pView <- lift $ peek @ImageView pPView pure $ (pView)@@ -236,7 +237,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyImageView' (deviceHandle (device)) (imageView) pAllocator+ lift $ traceAroundEvent "vkDestroyImageView" (vkDestroyImageView' (deviceHandle (device)) (imageView) pAllocator) pure $ ()
src/Vulkan/Core10/LayerDiscovery.hs view
@@ -6,6 +6,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -129,12 +130,12 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumerateInstanceLayerProperties is null" Nothing Nothing let vkEnumerateInstanceLayerProperties' = mkVkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerPropertiesPtr pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumerateInstanceLayerProperties' (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkEnumerateInstanceLayerProperties" (vkEnumerateInstanceLayerProperties' (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @LayerProperties ((fromIntegral (pPropertyCount)) * 520)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 520) :: Ptr LayerProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkEnumerateInstanceLayerProperties' (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkEnumerateInstanceLayerProperties" (vkEnumerateInstanceLayerProperties' (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @LayerProperties (((pPProperties) `advancePtrBytes` (520 * (i)) :: Ptr LayerProperties)))@@ -214,12 +215,12 @@ let vkEnumerateDeviceLayerProperties' = mkVkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerPropertiesPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumerateDeviceLayerProperties' physicalDevice' (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkEnumerateDeviceLayerProperties" (vkEnumerateDeviceLayerProperties' physicalDevice' (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @LayerProperties ((fromIntegral (pPropertyCount)) * 520)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 520) :: Ptr LayerProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkEnumerateDeviceLayerProperties' physicalDevice' (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkEnumerateDeviceLayerProperties" (vkEnumerateDeviceLayerProperties' physicalDevice' (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @LayerProperties (((pPProperties) `advancePtrBytes` (520 * (i)) :: Ptr LayerProperties)))
src/Vulkan/Core10/Memory.hs view
@@ -14,6 +14,7 @@ , MemoryMapFlags(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -254,7 +255,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPMemory <- ContT $ bracket (callocBytes @DeviceMemory 8) free- r <- lift $ vkAllocateMemory' (deviceHandle (device)) (forgetExtensions pAllocateInfo) pAllocator (pPMemory)+ r <- lift $ traceAroundEvent "vkAllocateMemory" (vkAllocateMemory' (deviceHandle (device)) (forgetExtensions pAllocateInfo) pAllocator (pPMemory)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pMemory <- lift $ peek @DeviceMemory pPMemory pure $ (pMemory)@@ -359,7 +360,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkFreeMemory' (deviceHandle (device)) (memory) pAllocator+ lift $ traceAroundEvent "vkFreeMemory" (vkFreeMemory' (deviceHandle (device)) (memory) pAllocator) pure $ () @@ -505,7 +506,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkMapMemory is null" Nothing Nothing let vkMapMemory' = mkVkMapMemory vkMapMemoryPtr pPpData <- ContT $ bracket (callocBytes @(Ptr ()) 8) free- r <- lift $ vkMapMemory' (deviceHandle (device)) (memory) (offset) (size) (flags) (pPpData)+ r <- lift $ traceAroundEvent "vkMapMemory" (vkMapMemory' (deviceHandle (device)) (memory) (offset) (size) (flags) (pPpData)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) ppData <- lift $ peek @(Ptr ()) pPpData pure $ (ppData)@@ -568,7 +569,7 @@ unless (vkUnmapMemoryPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUnmapMemory is null" Nothing Nothing let vkUnmapMemory' = mkVkUnmapMemory vkUnmapMemoryPtr- vkUnmapMemory' (deviceHandle (device)) (memory)+ traceAroundEvent "vkUnmapMemory" (vkUnmapMemory' (deviceHandle (device)) (memory)) pure $ () @@ -648,7 +649,7 @@ let vkFlushMappedMemoryRanges' = mkVkFlushMappedMemoryRanges vkFlushMappedMemoryRangesPtr pPMemoryRanges <- ContT $ allocaBytesAligned @MappedMemoryRange ((Data.Vector.length (memoryRanges)) * 40) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryRanges `plusPtr` (40 * (i)) :: Ptr MappedMemoryRange) (e)) (memoryRanges)- r <- lift $ vkFlushMappedMemoryRanges' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32)) (pPMemoryRanges)+ r <- lift $ traceAroundEvent "vkFlushMappedMemoryRanges" (vkFlushMappedMemoryRanges' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32)) (pPMemoryRanges)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -720,7 +721,7 @@ let vkInvalidateMappedMemoryRanges' = mkVkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRangesPtr pPMemoryRanges <- ContT $ allocaBytesAligned @MappedMemoryRange ((Data.Vector.length (memoryRanges)) * 40) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryRanges `plusPtr` (40 * (i)) :: Ptr MappedMemoryRange) (e)) (memoryRanges)- r <- lift $ vkInvalidateMappedMemoryRanges' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32)) (pPMemoryRanges)+ r <- lift $ traceAroundEvent "vkInvalidateMappedMemoryRanges" (vkInvalidateMappedMemoryRanges' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32)) (pPMemoryRanges)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -775,7 +776,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceMemoryCommitment is null" Nothing Nothing let vkGetDeviceMemoryCommitment' = mkVkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitmentPtr pPCommittedMemoryInBytes <- ContT $ bracket (callocBytes @DeviceSize 8) free- lift $ vkGetDeviceMemoryCommitment' (deviceHandle (device)) (memory) (pPCommittedMemoryInBytes)+ lift $ traceAroundEvent "vkGetDeviceMemoryCommitment" (vkGetDeviceMemoryCommitment' (deviceHandle (device)) (memory) (pPCommittedMemoryInBytes)) pCommittedMemoryInBytes <- lift $ peek @DeviceSize pPCommittedMemoryInBytes pure $ (pCommittedMemoryInBytes)
src/Vulkan/Core10/MemoryManagement.hs view
@@ -8,6 +8,7 @@ , DeviceMemory(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -94,7 +95,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferMemoryRequirements is null" Nothing Nothing let vkGetBufferMemoryRequirements' = mkVkGetBufferMemoryRequirements vkGetBufferMemoryRequirementsPtr pPMemoryRequirements <- ContT (withZeroCStruct @MemoryRequirements)- lift $ vkGetBufferMemoryRequirements' (deviceHandle (device)) (buffer) (pPMemoryRequirements)+ lift $ traceAroundEvent "vkGetBufferMemoryRequirements" (vkGetBufferMemoryRequirements' (deviceHandle (device)) (buffer) (pPMemoryRequirements)) pMemoryRequirements <- lift $ peekCStruct @MemoryRequirements pPMemoryRequirements pure $ (pMemoryRequirements) @@ -272,7 +273,7 @@ unless (vkBindBufferMemoryPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBindBufferMemory is null" Nothing Nothing let vkBindBufferMemory' = mkVkBindBufferMemory vkBindBufferMemoryPtr- r <- vkBindBufferMemory' (deviceHandle (device)) (buffer) (memory) (memoryOffset)+ r <- traceAroundEvent "vkBindBufferMemory" (vkBindBufferMemory' (deviceHandle (device)) (buffer) (memory) (memoryOffset)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -330,7 +331,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageMemoryRequirements is null" Nothing Nothing let vkGetImageMemoryRequirements' = mkVkGetImageMemoryRequirements vkGetImageMemoryRequirementsPtr pPMemoryRequirements <- ContT (withZeroCStruct @MemoryRequirements)- lift $ vkGetImageMemoryRequirements' (deviceHandle (device)) (image) (pPMemoryRequirements)+ lift $ traceAroundEvent "vkGetImageMemoryRequirements" (vkGetImageMemoryRequirements' (deviceHandle (device)) (image) (pPMemoryRequirements)) pMemoryRequirements <- lift $ peekCStruct @MemoryRequirements pPMemoryRequirements pure $ (pMemoryRequirements) @@ -525,7 +526,7 @@ unless (vkBindImageMemoryPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBindImageMemory is null" Nothing Nothing let vkBindImageMemory' = mkVkBindImageMemory vkBindImageMemoryPtr- r <- vkBindImageMemory' (deviceHandle (device)) (image) (memory) (memoryOffset)+ r <- traceAroundEvent "vkBindImageMemory" (vkBindImageMemory' (deviceHandle (device)) (image) (memory) (memoryOffset)) when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Core10/Pass.hs view
@@ -32,6 +32,7 @@ , FramebufferCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -214,7 +215,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPFramebuffer <- ContT $ bracket (callocBytes @Framebuffer 8) free- r <- lift $ vkCreateFramebuffer' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPFramebuffer)+ r <- lift $ traceAroundEvent "vkCreateFramebuffer" (vkCreateFramebuffer' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPFramebuffer)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFramebuffer <- lift $ peek @Framebuffer pPFramebuffer pure $ (pFramebuffer)@@ -301,7 +302,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyFramebuffer' (deviceHandle (device)) (framebuffer) pAllocator+ lift $ traceAroundEvent "vkDestroyFramebuffer" (vkDestroyFramebuffer' (deviceHandle (device)) (framebuffer) pAllocator) pure $ () @@ -368,7 +369,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPRenderPass <- ContT $ bracket (callocBytes @RenderPass 8) free- r <- lift $ vkCreateRenderPass' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPRenderPass)+ r <- lift $ traceAroundEvent "vkCreateRenderPass" (vkCreateRenderPass' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPRenderPass)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pRenderPass <- lift $ peek @RenderPass pPRenderPass pure $ (pRenderPass)@@ -455,7 +456,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyRenderPass' (deviceHandle (device)) (renderPass) pAllocator+ lift $ traceAroundEvent "vkDestroyRenderPass" (vkDestroyRenderPass' (deviceHandle (device)) (renderPass) pAllocator) pure $ () @@ -531,7 +532,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRenderAreaGranularity is null" Nothing Nothing let vkGetRenderAreaGranularity' = mkVkGetRenderAreaGranularity vkGetRenderAreaGranularityPtr pPGranularity <- ContT (withZeroCStruct @Extent2D)- lift $ vkGetRenderAreaGranularity' (deviceHandle (device)) (renderPass) (pPGranularity)+ lift $ traceAroundEvent "vkGetRenderAreaGranularity" (vkGetRenderAreaGranularity' (deviceHandle (device)) (renderPass) (pPGranularity)) pGranularity <- lift $ peekCStruct @Extent2D pPGranularity pure $ (pGranularity)
src/Vulkan/Core10/Pipeline.hs view
@@ -59,6 +59,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -375,7 +376,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free- r <- lift $ vkCreateGraphicsPipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)+ r <- lift $ traceAroundEvent "vkCreateGraphicsPipelines" (vkCreateGraphicsPipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline))) pure $ (r, pPipelines)@@ -504,7 +505,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free- r <- lift $ vkCreateComputePipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)+ r <- lift $ traceAroundEvent "vkCreateComputePipelines" (vkCreateComputePipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline))) pure $ (r, pPipelines)@@ -590,7 +591,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyPipeline' (deviceHandle (device)) (pipeline) pAllocator+ lift $ traceAroundEvent "vkDestroyPipeline" (vkDestroyPipeline' (deviceHandle (device)) (pipeline) pAllocator) pure $ ()
src/Vulkan/Core10/PipelineCache.hs view
@@ -11,6 +11,7 @@ , PipelineCacheCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -175,7 +176,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPPipelineCache <- ContT $ bracket (callocBytes @PipelineCache 8) free- r <- lift $ vkCreatePipelineCache' (deviceHandle (device)) pCreateInfo pAllocator (pPPipelineCache)+ r <- lift $ traceAroundEvent "vkCreatePipelineCache" (vkCreatePipelineCache' (deviceHandle (device)) pCreateInfo pAllocator (pPPipelineCache)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPipelineCache <- lift $ peek @PipelineCache pPPipelineCache pure $ (pPipelineCache)@@ -260,7 +261,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyPipelineCache' (deviceHandle (device)) (pipelineCache) pAllocator+ lift $ traceAroundEvent "vkDestroyPipelineCache" (vkDestroyPipelineCache' (deviceHandle (device)) (pipelineCache) pAllocator) pure $ () @@ -389,11 +390,11 @@ let vkGetPipelineCacheData' = mkVkGetPipelineCacheData vkGetPipelineCacheDataPtr let device' = deviceHandle (device) pPDataSize <- ContT $ bracket (callocBytes @CSize 8) free- r <- lift $ vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDataSize <- lift $ peek @CSize pPDataSize pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral (((\(CSize a) -> a) pDataSize)))) free- r' <- lift $ vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (pPData)+ r' <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (pPData)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pDataSize'' <- lift $ peek @CSize pPDataSize pData' <- lift $ packCStringLen (castPtr @() @CChar pPData, (fromIntegral (((\(CSize a) -> a) pDataSize''))))@@ -481,7 +482,7 @@ let vkMergePipelineCaches' = mkVkMergePipelineCaches vkMergePipelineCachesPtr pPSrcCaches <- ContT $ allocaBytesAligned @PipelineCache ((Data.Vector.length (srcCaches)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPSrcCaches `plusPtr` (8 * (i)) :: Ptr PipelineCache) (e)) (srcCaches)- r <- lift $ vkMergePipelineCaches' (deviceHandle (device)) (dstCache) ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32)) (pPSrcCaches)+ r <- lift $ traceAroundEvent "vkMergePipelineCaches" (vkMergePipelineCaches' (deviceHandle (device)) (dstCache) ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32)) (pPSrcCaches)) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Core10/PipelineLayout.hs view
@@ -8,6 +8,7 @@ , PipelineLayout(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -129,7 +130,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPPipelineLayout <- ContT $ bracket (callocBytes @PipelineLayout 8) free- r <- lift $ vkCreatePipelineLayout' (deviceHandle (device)) pCreateInfo pAllocator (pPPipelineLayout)+ r <- lift $ traceAroundEvent "vkCreatePipelineLayout" (vkCreatePipelineLayout' (deviceHandle (device)) pCreateInfo pAllocator (pPPipelineLayout)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPipelineLayout <- lift $ peek @PipelineLayout pPPipelineLayout pure $ (pPipelineLayout)@@ -220,7 +221,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyPipelineLayout' (deviceHandle (device)) (pipelineLayout) pAllocator+ lift $ traceAroundEvent "vkDestroyPipelineLayout" (vkDestroyPipelineLayout' (deviceHandle (device)) (pipelineLayout) pAllocator) pure $ () @@ -663,6 +664,11 @@ -- across all shader stages and across all elements of @pSetLayouts@ -- /must/ be less than or equal to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers ::maxDescriptorSetSubsampledSamplers>+--+-- - #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606# Any element of+-- @pSetLayouts@ /must/ not have been created with the+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+-- bit set -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Query.hs view
@@ -14,6 +14,7 @@ , QueryPipelineStatisticFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -155,7 +156,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPQueryPool <- ContT $ bracket (callocBytes @QueryPool 8) free- r <- lift $ vkCreateQueryPool' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPQueryPool)+ r <- lift $ traceAroundEvent "vkCreateQueryPool" (vkCreateQueryPool' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPQueryPool)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pQueryPool <- lift $ peek @QueryPool pPQueryPool pure $ (pQueryPool)@@ -241,7 +242,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyQueryPool' (deviceHandle (device)) (queryPool) pAllocator+ lift $ traceAroundEvent "vkDestroyQueryPool" (vkDestroyQueryPool' (deviceHandle (device)) (queryPool) pAllocator) pure $ () @@ -485,7 +486,7 @@ unless (vkGetQueryPoolResultsPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueryPoolResults is null" Nothing Nothing let vkGetQueryPoolResults' = mkVkGetQueryPoolResults vkGetQueryPoolResultsPtr- r <- vkGetQueryPoolResults' (deviceHandle (device)) (queryPool) (firstQuery) (queryCount) (CSize (dataSize)) (data') (stride) (flags)+ r <- traceAroundEvent "vkGetQueryPoolResults" (vkGetQueryPoolResults' (deviceHandle (device)) (queryPool) (firstQuery) (queryCount) (CSize (dataSize)) (data') (stride) (flags)) when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r)
src/Vulkan/Core10/Queue.hs view
@@ -12,6 +12,7 @@ , PipelineStageFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -155,7 +156,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceQueue is null" Nothing Nothing let vkGetDeviceQueue' = mkVkGetDeviceQueue vkGetDeviceQueuePtr pPQueue <- ContT $ bracket (callocBytes @(Ptr Queue_T) 8) free- lift $ vkGetDeviceQueue' (deviceHandle (device)) (queueFamilyIndex) (queueIndex) (pPQueue)+ lift $ traceAroundEvent "vkGetDeviceQueue" (vkGetDeviceQueue' (deviceHandle (device)) (queueFamilyIndex) (queueIndex) (pPQueue)) pQueue <- lift $ peek @(Ptr Queue_T) pPQueue pure $ (((\h -> Queue h cmds ) pQueue)) @@ -405,7 +406,7 @@ let vkQueueSubmit' = mkVkQueueSubmit vkQueueSubmitPtr pPSubmits <- ContT $ allocaBytesAligned @(SubmitInfo _) ((Data.Vector.length (submits)) * 72) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPSubmits `plusPtr` (72 * (i)) :: Ptr (SubmitInfo _))) (e) . ($ ())) (submits)- r <- lift $ vkQueueSubmit' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (submits)) :: Word32)) (forgetExtensions (pPSubmits)) (fence)+ r <- lift $ traceAroundEvent "vkQueueSubmit" (vkQueueSubmit' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (submits)) :: Word32)) (forgetExtensions (pPSubmits)) (fence)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -433,7 +434,7 @@ unless (vkQueueWaitIdlePtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueWaitIdle is null" Nothing Nothing let vkQueueWaitIdle' = mkVkQueueWaitIdle vkQueueWaitIdlePtr- r <- vkQueueWaitIdle' (queueHandle (queue))+ r <- traceAroundEvent "vkQueueWaitIdle" (vkQueueWaitIdle' (queueHandle (queue))) when (r < SUCCESS) (throwIO (VulkanException r)) -- | vkQueueWaitIdle - Wait for a queue to become idle@@ -519,7 +520,7 @@ unless (vkDeviceWaitIdlePtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDeviceWaitIdle is null" Nothing Nothing let vkDeviceWaitIdle' = mkVkDeviceWaitIdle vkDeviceWaitIdlePtr- r <- vkDeviceWaitIdle' (deviceHandle (device))+ r <- traceAroundEvent "vkDeviceWaitIdle" (vkDeviceWaitIdle' (deviceHandle (device))) when (r < SUCCESS) (throwIO (VulkanException r)) -- | vkDeviceWaitIdle - Wait for a device to become idle
src/Vulkan/Core10/QueueSemaphore.hs view
@@ -8,6 +8,7 @@ , SemaphoreCreateFlags(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -134,7 +135,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSemaphore <- ContT $ bracket (callocBytes @Semaphore 8) free- r <- lift $ vkCreateSemaphore' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSemaphore)+ r <- lift $ traceAroundEvent "vkCreateSemaphore" (vkCreateSemaphore' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSemaphore)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSemaphore <- lift $ peek @Semaphore pPSemaphore pure $ (pSemaphore)@@ -220,7 +221,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroySemaphore' (deviceHandle (device)) (semaphore) pAllocator+ lift $ traceAroundEvent "vkDestroySemaphore" (vkDestroySemaphore' (deviceHandle (device)) (semaphore) pAllocator) pure $ ()
src/Vulkan/Core10/Sampler.hs view
@@ -13,6 +13,7 @@ , SamplerCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -161,7 +162,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSampler <- ContT $ bracket (callocBytes @Sampler 8) free- r <- lift $ vkCreateSampler' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSampler)+ r <- lift $ traceAroundEvent "vkCreateSampler" (vkCreateSampler' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSampler)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSampler <- lift $ peek @Sampler pPSampler pure $ (pSampler)@@ -247,7 +248,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroySampler' (deviceHandle (device)) (sampler) pAllocator+ lift $ traceAroundEvent "vkDestroySampler" (vkDestroySampler' (deviceHandle (device)) (sampler) pAllocator) pure $ ()
src/Vulkan/Core10/Shader.hs view
@@ -9,6 +9,7 @@ , ShaderModuleCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -161,7 +162,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPShaderModule <- ContT $ bracket (callocBytes @ShaderModule 8) free- r <- lift $ vkCreateShaderModule' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPShaderModule)+ r <- lift $ traceAroundEvent "vkCreateShaderModule" (vkCreateShaderModule' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPShaderModule)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pShaderModule <- lift $ peek @ShaderModule pPShaderModule pure $ (pShaderModule)@@ -251,7 +252,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyShaderModule' (deviceHandle (device)) (shaderModule) pAllocator+ lift $ traceAroundEvent "vkDestroyShaderModule" (vkDestroyShaderModule' (deviceHandle (device)) (shaderModule) pAllocator) pure $ ()
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -20,6 +20,7 @@ , SparseMemoryBindFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -200,11 +201,11 @@ let vkGetImageSparseMemoryRequirements' = mkVkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirementsPtr let device' = deviceHandle (device) pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetImageSparseMemoryRequirements' device' (image) (pPSparseMemoryRequirementCount) (nullPtr)+ lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements" (vkGetImageSparseMemoryRequirements' device' (image) (pPSparseMemoryRequirementCount) (nullPtr)) pSparseMemoryRequirementCount <- lift $ peek @Word32 pPSparseMemoryRequirementCount pPSparseMemoryRequirements <- ContT $ bracket (callocBytes @SparseImageMemoryRequirements ((fromIntegral (pSparseMemoryRequirementCount)) * 48)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSparseMemoryRequirements `advancePtrBytes` (i * 48) :: Ptr SparseImageMemoryRequirements) . ($ ())) [0..(fromIntegral (pSparseMemoryRequirementCount)) - 1]- lift $ vkGetImageSparseMemoryRequirements' device' (image) (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements))+ lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements" (vkGetImageSparseMemoryRequirements' device' (image) (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements))) pSparseMemoryRequirementCount' <- lift $ peek @Word32 pPSparseMemoryRequirementCount pSparseMemoryRequirements' <- lift $ generateM (fromIntegral (pSparseMemoryRequirementCount')) (\i -> peekCStruct @SparseImageMemoryRequirements (((pPSparseMemoryRequirements) `advancePtrBytes` (48 * (i)) :: Ptr SparseImageMemoryRequirements))) pure $ (pSparseMemoryRequirements')@@ -327,11 +328,11 @@ let vkGetPhysicalDeviceSparseImageFormatProperties' = mkVkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatPropertiesPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetPhysicalDeviceSparseImageFormatProperties' physicalDevice' (format) (type') (samples) (usage) (tiling) (pPPropertyCount) (nullPtr)+ lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties" (vkGetPhysicalDeviceSparseImageFormatProperties' physicalDevice' (format) (type') (samples) (usage) (tiling) (pPPropertyCount) (nullPtr)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @SparseImageFormatProperties ((fromIntegral (pPropertyCount)) * 20)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 20) :: Ptr SparseImageFormatProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- lift $ vkGetPhysicalDeviceSparseImageFormatProperties' physicalDevice' (format) (type') (samples) (usage) (tiling) (pPPropertyCount) ((pPProperties))+ lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties" (vkGetPhysicalDeviceSparseImageFormatProperties' physicalDevice' (format) (type') (samples) (usage) (tiling) (pPPropertyCount) ((pPProperties))) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @SparseImageFormatProperties (((pPProperties) `advancePtrBytes` (20 * (i)) :: Ptr SparseImageFormatProperties))) pure $ (pProperties')@@ -490,7 +491,7 @@ let vkQueueBindSparse' = mkVkQueueBindSparse vkQueueBindSparsePtr pPBindInfo <- ContT $ allocaBytesAligned @(BindSparseInfo _) ((Data.Vector.length (bindInfo)) * 96) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBindInfo `plusPtr` (96 * (i)) :: Ptr (BindSparseInfo _))) (e) . ($ ())) (bindInfo)- r <- lift $ vkQueueBindSparse' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (bindInfo)) :: Word32)) (forgetExtensions (pPBindInfo)) (fence)+ r <- lift $ traceAroundEvent "vkQueueBindSparse" (vkQueueBindSparse' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (bindInfo)) :: Word32)) (forgetExtensions (pPBindInfo)) (fence)) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Core11/DeviceInitialization.hs view
@@ -2,6 +2,7 @@ -- No documentation found for Chapter "DeviceInitialization" module Vulkan.Core11.DeviceInitialization (enumerateInstanceVersion) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -72,7 +73,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumerateInstanceVersion is null" Nothing Nothing let vkEnumerateInstanceVersion' = mkVkEnumerateInstanceVersion vkEnumerateInstanceVersionPtr pPApiVersion <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumerateInstanceVersion' (pPApiVersion)+ r <- lift $ traceAroundEvent "vkEnumerateInstanceVersion" (vkEnumerateInstanceVersion' (pPApiVersion)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pApiVersion <- lift $ peek @Word32 pPApiVersion pure $ (pApiVersion)
src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs view
@@ -20,6 +20,7 @@ , CommandPoolCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -117,7 +118,7 @@ let vkGetDeviceQueue2' = mkVkGetDeviceQueue2 vkGetDeviceQueue2Ptr pQueueInfo <- ContT $ withCStruct (queueInfo) pPQueue <- ContT $ bracket (callocBytes @(Ptr Queue_T) 8) free- lift $ vkGetDeviceQueue2' (deviceHandle (device)) pQueueInfo (pPQueue)+ lift $ traceAroundEvent "vkGetDeviceQueue2" (vkGetDeviceQueue2' (deviceHandle (device)) pQueueInfo (pPQueue)) pQueue <- lift $ peek @(Ptr Queue_T) pPQueue pure $ (((\h -> Queue h cmds ) pQueue))
src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs view
@@ -9,6 +9,7 @@ , ImageCreateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Data.Typeable (eqT)@@ -129,7 +130,7 @@ let vkBindBufferMemory2' = mkVkBindBufferMemory2 vkBindBufferMemory2Ptr pPBindInfos <- ContT $ allocaBytesAligned @(BindBufferMemoryInfo _) ((Data.Vector.length (bindInfos)) * 40) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBindInfos `plusPtr` (40 * (i)) :: Ptr (BindBufferMemoryInfo _))) (e) . ($ ())) (bindInfos)- r <- lift $ vkBindBufferMemory2' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (forgetExtensions (pPBindInfos))+ r <- lift $ traceAroundEvent "vkBindBufferMemory2" (vkBindBufferMemory2' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (forgetExtensions (pPBindInfos))) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -200,7 +201,7 @@ let vkBindImageMemory2' = mkVkBindImageMemory2 vkBindImageMemory2Ptr pPBindInfos <- ContT $ allocaBytesAligned @(BindImageMemoryInfo _) ((Data.Vector.length (bindInfos)) * 40) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBindInfos `plusPtr` (40 * (i)) :: Ptr (BindImageMemoryInfo _))) (e) . ($ ())) (bindInfos)- r <- lift $ vkBindImageMemory2' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (forgetExtensions (pPBindInfos))+ r <- lift $ traceAroundEvent "vkBindImageMemory2" (vkBindImageMemory2' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (forgetExtensions (pPBindInfos))) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs view
@@ -13,6 +13,7 @@ , ObjectType(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -153,7 +154,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPDescriptorUpdateTemplate <- ContT $ bracket (callocBytes @DescriptorUpdateTemplate 8) free- r <- lift $ vkCreateDescriptorUpdateTemplate' (deviceHandle (device)) pCreateInfo pAllocator (pPDescriptorUpdateTemplate)+ r <- lift $ traceAroundEvent "vkCreateDescriptorUpdateTemplate" (vkCreateDescriptorUpdateTemplate' (deviceHandle (device)) pCreateInfo pAllocator (pPDescriptorUpdateTemplate)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDescriptorUpdateTemplate <- lift $ peek @DescriptorUpdateTemplate pPDescriptorUpdateTemplate pure $ (pDescriptorUpdateTemplate)@@ -244,7 +245,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyDescriptorUpdateTemplate' (deviceHandle (device)) (descriptorUpdateTemplate) pAllocator+ lift $ traceAroundEvent "vkDestroyDescriptorUpdateTemplate" (vkDestroyDescriptorUpdateTemplate' (deviceHandle (device)) (descriptorUpdateTemplate) pAllocator) pure $ () @@ -396,7 +397,7 @@ unless (vkUpdateDescriptorSetWithTemplatePtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUpdateDescriptorSetWithTemplate is null" Nothing Nothing let vkUpdateDescriptorSetWithTemplate' = mkVkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplatePtr- vkUpdateDescriptorSetWithTemplate' (deviceHandle (device)) (descriptorSet) (descriptorUpdateTemplate) (data')+ traceAroundEvent "vkUpdateDescriptorSetWithTemplate" (vkUpdateDescriptorSetWithTemplate' (deviceHandle (device)) (descriptorSet) (descriptorUpdateTemplate) (data')) pure $ () @@ -564,6 +565,12 @@ -- @set@ /must/ be the unique set number in the pipeline layout that -- uses a descriptor set layout that was created with -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR'+--+-- - #VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615# If+-- @templateType@ is+-- 'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET',+-- @descriptorSetLayout@ /must/ not contain a binding with type+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -20,6 +20,7 @@ , MemoryAllocateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -138,7 +139,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceGroupPeerMemoryFeatures is null" Nothing Nothing let vkGetDeviceGroupPeerMemoryFeatures' = mkVkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeaturesPtr pPPeerMemoryFeatures <- ContT $ bracket (callocBytes @PeerMemoryFeatureFlags 4) free- lift $ vkGetDeviceGroupPeerMemoryFeatures' (deviceHandle (device)) (heapIndex) (localDeviceIndex) (remoteDeviceIndex) (pPPeerMemoryFeatures)+ lift $ traceAroundEvent "vkGetDeviceGroupPeerMemoryFeatures" (vkGetDeviceGroupPeerMemoryFeatures' (deviceHandle (device)) (heapIndex) (localDeviceIndex) (remoteDeviceIndex) (pPPeerMemoryFeatures)) pPeerMemoryFeatures <- lift $ peek @PeerMemoryFeatureFlags pPPeerMemoryFeatures pure $ (pPeerMemoryFeatures) @@ -230,7 +231,7 @@ unless (vkCmdSetDeviceMaskPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDeviceMask is null" Nothing Nothing let vkCmdSetDeviceMask' = mkVkCmdSetDeviceMask vkCmdSetDeviceMaskPtr- vkCmdSetDeviceMask' (commandBufferHandle (commandBuffer)) (deviceMask)+ traceAroundEvent "vkCmdSetDeviceMask" (vkCmdSetDeviceMask' (commandBufferHandle (commandBuffer)) (deviceMask)) pure $ () @@ -557,7 +558,7 @@ unless (vkCmdDispatchBasePtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchBase is null" Nothing Nothing let vkCmdDispatchBase' = mkVkCmdDispatchBase vkCmdDispatchBasePtr- vkCmdDispatchBase' (commandBufferHandle (commandBuffer)) (baseGroupX) (baseGroupY) (baseGroupZ) (groupCountX) (groupCountY) (groupCountZ)+ traceAroundEvent "vkCmdDispatchBase" (vkCmdDispatchBase' (commandBufferHandle (commandBuffer)) (baseGroupX) (baseGroupY) (baseGroupZ) (groupCountX) (groupCountY) (groupCountZ)) pure $ ()
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs view
@@ -11,6 +11,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -147,12 +148,12 @@ let vkEnumeratePhysicalDeviceGroups' = mkVkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroupsPtr let instance'' = instanceHandle (instance') pPPhysicalDeviceGroupCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumeratePhysicalDeviceGroups' instance'' (pPPhysicalDeviceGroupCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceGroups" (vkEnumeratePhysicalDeviceGroups' instance'' (pPPhysicalDeviceGroupCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPhysicalDeviceGroupCount <- lift $ peek @Word32 pPPhysicalDeviceGroupCount pPPhysicalDeviceGroupProperties <- ContT $ bracket (callocBytes @PhysicalDeviceGroupProperties ((fromIntegral (pPhysicalDeviceGroupCount)) * 288)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPPhysicalDeviceGroupProperties `advancePtrBytes` (i * 288) :: Ptr PhysicalDeviceGroupProperties) . ($ ())) [0..(fromIntegral (pPhysicalDeviceGroupCount)) - 1]- r' <- lift $ vkEnumeratePhysicalDeviceGroups' instance'' (pPPhysicalDeviceGroupCount) ((pPPhysicalDeviceGroupProperties))+ r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceGroups" (vkEnumeratePhysicalDeviceGroups' instance'' (pPPhysicalDeviceGroupCount) ((pPPhysicalDeviceGroupProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPhysicalDeviceGroupCount' <- lift $ peek @Word32 pPPhysicalDeviceGroupCount pPhysicalDeviceGroupProperties' <- lift $ generateM (fromIntegral (pPhysicalDeviceGroupCount')) (\i -> peekCStruct @PhysicalDeviceGroupProperties (((pPPhysicalDeviceGroupProperties) `advancePtrBytes` (288 * (i)) :: Ptr PhysicalDeviceGroupProperties)))
src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs view
@@ -10,6 +10,7 @@ , ExternalFenceFeatureFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -93,7 +94,7 @@ let vkGetPhysicalDeviceExternalFenceProperties' = mkVkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFencePropertiesPtr pExternalFenceInfo <- ContT $ withCStruct (externalFenceInfo) pPExternalFenceProperties <- ContT (withZeroCStruct @ExternalFenceProperties)- lift $ vkGetPhysicalDeviceExternalFenceProperties' (physicalDeviceHandle (physicalDevice)) pExternalFenceInfo (pPExternalFenceProperties)+ lift $ traceAroundEvent "vkGetPhysicalDeviceExternalFenceProperties" (vkGetPhysicalDeviceExternalFenceProperties' (physicalDeviceHandle (physicalDevice)) pExternalFenceInfo (pPExternalFenceProperties)) pExternalFenceProperties <- lift $ peekCStruct @ExternalFenceProperties pPExternalFenceProperties pure $ (pExternalFenceProperties)
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -17,6 +17,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -117,7 +118,7 @@ let vkGetPhysicalDeviceExternalBufferProperties' = mkVkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferPropertiesPtr pExternalBufferInfo <- ContT $ withCStruct (externalBufferInfo) pPExternalBufferProperties <- ContT (withZeroCStruct @ExternalBufferProperties)- lift $ vkGetPhysicalDeviceExternalBufferProperties' (physicalDeviceHandle (physicalDevice)) pExternalBufferInfo (pPExternalBufferProperties)+ lift $ traceAroundEvent "vkGetPhysicalDeviceExternalBufferProperties" (vkGetPhysicalDeviceExternalBufferProperties' (physicalDeviceHandle (physicalDevice)) pExternalBufferInfo (pPExternalBufferProperties)) pExternalBufferProperties <- lift $ peekCStruct @ExternalBufferProperties pPExternalBufferProperties pure $ (pExternalBufferProperties)
src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs view
@@ -10,6 +10,7 @@ , ExternalSemaphoreFeatureFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Data.Typeable (eqT)@@ -108,7 +109,7 @@ let vkGetPhysicalDeviceExternalSemaphoreProperties' = mkVkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphorePropertiesPtr pExternalSemaphoreInfo <- ContT $ withCStruct (externalSemaphoreInfo) pPExternalSemaphoreProperties <- ContT (withZeroCStruct @ExternalSemaphoreProperties)- lift $ vkGetPhysicalDeviceExternalSemaphoreProperties' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pExternalSemaphoreInfo) (pPExternalSemaphoreProperties)+ lift $ traceAroundEvent "vkGetPhysicalDeviceExternalSemaphoreProperties" (vkGetPhysicalDeviceExternalSemaphoreProperties' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pExternalSemaphoreInfo) (pPExternalSemaphoreProperties)) pExternalSemaphoreProperties <- lift $ peekCStruct @ExternalSemaphoreProperties pPExternalSemaphoreProperties pure $ (pExternalSemaphoreProperties)
src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs view
@@ -11,6 +11,7 @@ , StructureType(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -115,7 +116,7 @@ let vkGetBufferMemoryRequirements2' = mkVkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2Ptr pInfo <- ContT $ withCStruct (info) pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))- lift $ vkGetBufferMemoryRequirements2' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements))+ lift $ traceAroundEvent "vkGetBufferMemoryRequirements2" (vkGetBufferMemoryRequirements2' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements))) pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements pure $ (pMemoryRequirements) @@ -157,7 +158,7 @@ let vkGetImageMemoryRequirements2' = mkVkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2Ptr pInfo <- ContT $ withCStruct (info) pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))- lift $ vkGetImageMemoryRequirements2' (deviceHandle (device)) (forgetExtensions pInfo) (forgetExtensions (pPMemoryRequirements))+ lift $ traceAroundEvent "vkGetImageMemoryRequirements2" (vkGetImageMemoryRequirements2' (deviceHandle (device)) (forgetExtensions pInfo) (forgetExtensions (pPMemoryRequirements))) pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements pure $ (pMemoryRequirements) @@ -212,11 +213,11 @@ let device' = deviceHandle (device) pInfo <- ContT $ withCStruct (info) pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetImageSparseMemoryRequirements2' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr)+ lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements2" (vkGetImageSparseMemoryRequirements2' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr)) pSparseMemoryRequirementCount <- lift $ peek @Word32 pPSparseMemoryRequirementCount pPSparseMemoryRequirements <- ContT $ bracket (callocBytes @SparseImageMemoryRequirements2 ((fromIntegral (pSparseMemoryRequirementCount)) * 64)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSparseMemoryRequirements `advancePtrBytes` (i * 64) :: Ptr SparseImageMemoryRequirements2) . ($ ())) [0..(fromIntegral (pSparseMemoryRequirementCount)) - 1]- lift $ vkGetImageSparseMemoryRequirements2' device' pInfo (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements))+ lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements2" (vkGetImageSparseMemoryRequirements2' device' pInfo (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements))) pSparseMemoryRequirementCount' <- lift $ peek @Word32 pPSparseMemoryRequirementCount pSparseMemoryRequirements' <- lift $ generateM (fromIntegral (pSparseMemoryRequirementCount')) (\i -> peekCStruct @SparseImageMemoryRequirements2 (((pPSparseMemoryRequirements) `advancePtrBytes` (64 * (i)) :: Ptr SparseImageMemoryRequirements2))) pure $ (pSparseMemoryRequirements')
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -19,6 +19,7 @@ , StructureType(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -152,6 +153,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)@@ -279,7 +281,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFeatures2 is null" Nothing Nothing let vkGetPhysicalDeviceFeatures2' = mkVkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2Ptr pPFeatures <- ContT (withZeroCStruct @(PhysicalDeviceFeatures2 _))- lift $ vkGetPhysicalDeviceFeatures2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPFeatures))+ lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures2" (vkGetPhysicalDeviceFeatures2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPFeatures))) pFeatures <- lift $ peekCStruct @(PhysicalDeviceFeatures2 _) pPFeatures pure $ (pFeatures) @@ -321,7 +323,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceProperties2 is null" Nothing Nothing let vkGetPhysicalDeviceProperties2' = mkVkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2Ptr pPProperties <- ContT (withZeroCStruct @(PhysicalDeviceProperties2 _))- lift $ vkGetPhysicalDeviceProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPProperties))+ lift $ traceAroundEvent "vkGetPhysicalDeviceProperties2" (vkGetPhysicalDeviceProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPProperties))) pProperties <- lift $ peekCStruct @(PhysicalDeviceProperties2 _) pPProperties pure $ (pProperties) @@ -370,7 +372,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFormatProperties2 is null" Nothing Nothing let vkGetPhysicalDeviceFormatProperties2' = mkVkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2Ptr pPFormatProperties <- ContT (withZeroCStruct @(FormatProperties2 _))- lift $ vkGetPhysicalDeviceFormatProperties2' (physicalDeviceHandle (physicalDevice)) (format) (forgetExtensions (pPFormatProperties))+ lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties2" (vkGetPhysicalDeviceFormatProperties2' (physicalDeviceHandle (physicalDevice)) (format) (forgetExtensions (pPFormatProperties))) pFormatProperties <- lift $ peekCStruct @(FormatProperties2 _) pPFormatProperties pure $ (pFormatProperties) @@ -451,7 +453,7 @@ let vkGetPhysicalDeviceImageFormatProperties2' = mkVkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2Ptr pImageFormatInfo <- ContT $ withCStruct (imageFormatInfo) pPImageFormatProperties <- ContT (withZeroCStruct @(ImageFormatProperties2 _))- r <- lift $ vkGetPhysicalDeviceImageFormatProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pImageFormatInfo) (forgetExtensions (pPImageFormatProperties))+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties2" (vkGetPhysicalDeviceImageFormatProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pImageFormatInfo) (forgetExtensions (pPImageFormatProperties))) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pImageFormatProperties <- lift $ peekCStruct @(ImageFormatProperties2 _) pPImageFormatProperties pure $ (pImageFormatProperties)@@ -506,11 +508,11 @@ let vkGetPhysicalDeviceQueueFamilyProperties2' = mkVkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2Ptr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPQueueFamilyPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetPhysicalDeviceQueueFamilyProperties2' physicalDevice' (pPQueueFamilyPropertyCount) (forgetExtensions (nullPtr))+ lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties2" (vkGetPhysicalDeviceQueueFamilyProperties2' physicalDevice' (pPQueueFamilyPropertyCount) (forgetExtensions (nullPtr))) pQueueFamilyPropertyCount <- lift $ peek @Word32 pPQueueFamilyPropertyCount pPQueueFamilyProperties <- ContT $ bracket (callocBytes @(QueueFamilyProperties2 _) ((fromIntegral (pQueueFamilyPropertyCount)) * 40)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPQueueFamilyProperties `advancePtrBytes` (i * 40) :: Ptr (QueueFamilyProperties2 _)) . ($ ())) [0..(fromIntegral (pQueueFamilyPropertyCount)) - 1]- lift $ vkGetPhysicalDeviceQueueFamilyProperties2' physicalDevice' (pPQueueFamilyPropertyCount) (forgetExtensions ((pPQueueFamilyProperties)))+ lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties2" (vkGetPhysicalDeviceQueueFamilyProperties2' physicalDevice' (pPQueueFamilyPropertyCount) (forgetExtensions ((pPQueueFamilyProperties)))) pQueueFamilyPropertyCount' <- lift $ peek @Word32 pPQueueFamilyPropertyCount pQueueFamilyProperties' <- lift $ generateM (fromIntegral (pQueueFamilyPropertyCount')) (\i -> peekCStruct @(QueueFamilyProperties2 _) (((pPQueueFamilyProperties) `advancePtrBytes` (40 * (i)) :: Ptr (QueueFamilyProperties2 _)))) pure $ (pQueueFamilyProperties')@@ -554,7 +556,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMemoryProperties2 is null" Nothing Nothing let vkGetPhysicalDeviceMemoryProperties2' = mkVkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2Ptr pPMemoryProperties <- ContT (withZeroCStruct @(PhysicalDeviceMemoryProperties2 _))- lift $ vkGetPhysicalDeviceMemoryProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPMemoryProperties))+ lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties2" (vkGetPhysicalDeviceMemoryProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPMemoryProperties))) pMemoryProperties <- lift $ peekCStruct @(PhysicalDeviceMemoryProperties2 _) pPMemoryProperties pure $ (pMemoryProperties) @@ -616,11 +618,11 @@ let physicalDevice' = physicalDeviceHandle (physicalDevice) pFormatInfo <- ContT $ withCStruct (formatInfo) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetPhysicalDeviceSparseImageFormatProperties2' physicalDevice' pFormatInfo (pPPropertyCount) (nullPtr)+ lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties2" (vkGetPhysicalDeviceSparseImageFormatProperties2' physicalDevice' pFormatInfo (pPPropertyCount) (nullPtr)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @SparseImageFormatProperties2 ((fromIntegral (pPropertyCount)) * 40)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 40) :: Ptr SparseImageFormatProperties2) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- lift $ vkGetPhysicalDeviceSparseImageFormatProperties2' physicalDevice' pFormatInfo (pPPropertyCount) ((pPProperties))+ lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties2" (vkGetPhysicalDeviceSparseImageFormatProperties2' physicalDevice' pFormatInfo (pPPropertyCount) ((pPProperties))) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @SparseImageFormatProperties2 (((pPProperties) `advancePtrBytes` (40 * (i)) :: Ptr SparseImageFormatProperties2))) pure $ (pProperties')@@ -670,6 +672,7 @@ getNext PhysicalDeviceFeatures2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs view
@@ -9,6 +9,7 @@ , FormatFeatureFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import GHC.IO (throwIO)@@ -118,6 +119,6 @@ unless (vkTrimCommandPoolPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkTrimCommandPool is null" Nothing Nothing let vkTrimCommandPool' = mkVkTrimCommandPool vkTrimCommandPoolPtr- vkTrimCommandPool' (deviceHandle (device)) (commandPool) (flags)+ traceAroundEvent "vkTrimCommandPool" (vkTrimCommandPool' (deviceHandle (device)) (commandPool) (flags)) pure $ ()
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs view
@@ -6,6 +6,7 @@ , StructureType(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Data.Typeable (eqT)@@ -131,7 +132,7 @@ let vkGetDescriptorSetLayoutSupport' = mkVkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupportPtr pCreateInfo <- ContT $ withCStruct (createInfo) pPSupport <- ContT (withZeroCStruct @(DescriptorSetLayoutSupport _))- lift $ vkGetDescriptorSetLayoutSupport' (deviceHandle (device)) (forgetExtensions pCreateInfo) (forgetExtensions (pPSupport))+ lift $ traceAroundEvent "vkGetDescriptorSetLayoutSupport" (vkGetDescriptorSetLayoutSupport' (deviceHandle (device)) (forgetExtensions pCreateInfo) (forgetExtensions (pPSupport))) pSupport <- lift $ peekCStruct @(DescriptorSetLayoutSupport _) pPSupport pure $ (pSupport)
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -24,6 +24,7 @@ , ChromaLocation(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -196,7 +197,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPYcbcrConversion <- ContT $ bracket (callocBytes @SamplerYcbcrConversion 8) free- r <- lift $ vkCreateSamplerYcbcrConversion' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPYcbcrConversion)+ r <- lift $ traceAroundEvent "vkCreateSamplerYcbcrConversion" (vkCreateSamplerYcbcrConversion' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPYcbcrConversion)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pYcbcrConversion <- lift $ peek @SamplerYcbcrConversion pPYcbcrConversion pure $ (pYcbcrConversion)@@ -271,7 +272,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroySamplerYcbcrConversion' (deviceHandle (device)) (ycbcrConversion) pAllocator+ lift $ traceAroundEvent "vkDestroySamplerYcbcrConversion" (vkDestroySamplerYcbcrConversion' (deviceHandle (device)) (ycbcrConversion) pAllocator) pure $ ()
src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs view
@@ -5,6 +5,7 @@ , StructureType(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -115,7 +116,7 @@ unless (vkResetQueryPoolPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetQueryPool is null" Nothing Nothing let vkResetQueryPool' = mkVkResetQueryPool vkResetQueryPoolPtr- vkResetQueryPool' (deviceHandle (device)) (queryPool) (firstQuery) (queryCount)+ traceAroundEvent "vkResetQueryPool" (vkResetQueryPool' (deviceHandle (device)) (queryPool) (firstQuery) (queryCount)) pure $ ()
src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs view
@@ -18,6 +18,7 @@ , MemoryAllocateFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -128,7 +129,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferOpaqueCaptureAddress is null" Nothing Nothing let vkGetBufferOpaqueCaptureAddress' = mkVkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddressPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkGetBufferOpaqueCaptureAddress' (deviceHandle (device)) pInfo+ r <- lift $ traceAroundEvent "vkGetBufferOpaqueCaptureAddress" (vkGetBufferOpaqueCaptureAddress' (deviceHandle (device)) pInfo) pure $ (r) @@ -202,7 +203,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferDeviceAddress is null" Nothing Nothing let vkGetBufferDeviceAddress' = mkVkGetBufferDeviceAddress vkGetBufferDeviceAddressPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkGetBufferDeviceAddress' (deviceHandle (device)) pInfo+ r <- lift $ traceAroundEvent "vkGetBufferDeviceAddress" (vkGetBufferDeviceAddress' (deviceHandle (device)) pInfo) pure $ (r) @@ -268,7 +269,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceMemoryOpaqueCaptureAddress is null" Nothing Nothing let vkGetDeviceMemoryOpaqueCaptureAddress' = mkVkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddressPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkGetDeviceMemoryOpaqueCaptureAddress' (deviceHandle (device)) pInfo+ r <- lift $ traceAroundEvent "vkGetDeviceMemoryOpaqueCaptureAddress" (vkGetDeviceMemoryOpaqueCaptureAddress' (deviceHandle (device)) pInfo) pure $ (r)
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -15,6 +15,7 @@ , StructureType(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -190,7 +191,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPRenderPass <- ContT $ bracket (callocBytes @RenderPass 8) free- r <- lift $ vkCreateRenderPass2' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPRenderPass)+ r <- lift $ traceAroundEvent "vkCreateRenderPass2" (vkCreateRenderPass2' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPRenderPass)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pRenderPass <- lift $ peek @RenderPass pPRenderPass pure $ (pRenderPass)@@ -340,40 +341,6 @@ -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' -- set ----- - #VUID-vkCmdBeginRenderPass2-pAttachments-04106# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pInputAttachments@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- contain at least--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'--- or--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass2-pAttachments-04107# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pColorAttachments@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass2-pAttachments-04108# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pResolveAttachments@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass2-pAttachments-04109# Each element of the--- @pAttachments@ of @framebuffer@ that is referenced by any element of--- the @pDepthStencilAttachment@ of any element of @pSubpasses@ of--- @renderPass@ /must/ have--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features image view format features>--- contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'--- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdBeginRenderPass2-commandBuffer-parameter# @commandBuffer@@@ -444,7 +411,7 @@ let vkCmdBeginRenderPass2' = mkVkCmdBeginRenderPass2 vkCmdBeginRenderPass2Ptr pRenderPassBegin <- ContT $ withCStruct (renderPassBegin) pSubpassBeginInfo <- ContT $ withCStruct (subpassBeginInfo)- lift $ vkCmdBeginRenderPass2' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) pSubpassBeginInfo+ lift $ traceAroundEvent "vkCmdBeginRenderPass2" (vkCmdBeginRenderPass2' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) pSubpassBeginInfo) pure $ () -- | This function will call the supplied action between calls to@@ -547,7 +514,7 @@ let vkCmdNextSubpass2' = mkVkCmdNextSubpass2 vkCmdNextSubpass2Ptr pSubpassBeginInfo <- ContT $ withCStruct (subpassBeginInfo) pSubpassEndInfo <- ContT $ withCStruct (subpassEndInfo)- lift $ vkCmdNextSubpass2' (commandBufferHandle (commandBuffer)) pSubpassBeginInfo pSubpassEndInfo+ lift $ traceAroundEvent "vkCmdNextSubpass2" (vkCmdNextSubpass2' (commandBufferHandle (commandBuffer)) pSubpassBeginInfo pSubpassEndInfo) pure $ () @@ -633,7 +600,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass2 is null" Nothing Nothing let vkCmdEndRenderPass2' = mkVkCmdEndRenderPass2 vkCmdEndRenderPass2Ptr pSubpassEndInfo <- ContT $ withCStruct (subpassEndInfo)- lift $ vkCmdEndRenderPass2' (commandBufferHandle (commandBuffer)) pSubpassEndInfo+ lift $ traceAroundEvent "vkCmdEndRenderPass2" (vkCmdEndRenderPass2' (commandBufferHandle (commandBuffer)) pSubpassEndInfo) pure $ ()
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -4,6 +4,7 @@ , cmdDrawIndexedIndirectCount ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import GHC.IO (throwIO)@@ -586,7 +587,7 @@ unless (vkCmdDrawIndirectCountPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectCount is null" Nothing Nothing let vkCmdDrawIndirectCount' = mkVkCmdDrawIndirectCount vkCmdDrawIndirectCountPtr- vkCmdDrawIndirectCount' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride)+ traceAroundEvent "vkCmdDrawIndirectCount" (vkCmdDrawIndirectCount' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride)) pure $ () @@ -1161,6 +1162,6 @@ unless (vkCmdDrawIndexedIndirectCountPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirectCount is null" Nothing Nothing let vkCmdDrawIndexedIndirectCount' = mkVkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCountPtr- vkCmdDrawIndexedIndirectCount' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride)+ traceAroundEvent "vkCmdDrawIndexedIndirectCount" (vkCmdDrawIndexedIndirectCount' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride)) pure $ ()
src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs view
@@ -16,6 +16,7 @@ , SemaphoreWaitFlags ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -147,7 +148,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSemaphoreCounterValue is null" Nothing Nothing let vkGetSemaphoreCounterValue' = mkVkGetSemaphoreCounterValue vkGetSemaphoreCounterValuePtr pPValue <- ContT $ bracket (callocBytes @Word64 8) free- r <- lift $ vkGetSemaphoreCounterValue' (deviceHandle (device)) (semaphore) (pPValue)+ r <- lift $ traceAroundEvent "vkGetSemaphoreCounterValue" (vkGetSemaphoreCounterValue' (deviceHandle (device)) (semaphore) (pPValue)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pValue <- lift $ peek @Word64 pPValue pure $ (pValue)@@ -192,7 +193,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWaitSemaphores is null" Nothing Nothing let vkWaitSemaphores' = mkVkWaitSemaphores vkWaitSemaphoresPtr pWaitInfo <- ContT $ withCStruct (waitInfo)- r <- lift $ vkWaitSemaphores' (deviceHandle (device)) pWaitInfo (timeout)+ r <- lift $ traceAroundEvent "vkWaitSemaphores" (vkWaitSemaphores' (deviceHandle (device)) pWaitInfo (timeout)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -343,7 +344,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSignalSemaphore is null" Nothing Nothing let vkSignalSemaphore' = mkVkSignalSemaphore vkSignalSemaphorePtr pSignalInfo <- ContT $ withCStruct (signalInfo)- r <- lift $ vkSignalSemaphore' (deviceHandle (device)) pSignalInfo+ r <- lift $ traceAroundEvent "vkSignalSemaphore" (vkSignalSemaphore' (deviceHandle (device)) pSignalInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Dynamic.hs view
@@ -406,6 +406,8 @@ , pVkReleaseDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> IO Result) , pVkAcquireXlibDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("dpy" ::: Ptr Display) -> DisplayKHR -> IO Result) , pVkGetRandROutputDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("dpy" ::: Ptr Display) -> RROutput -> ("pDisplay" ::: Ptr DisplayKHR) -> IO Result)+ , pVkAcquireWinrtDisplayNV :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> IO Result)+ , pVkGetWinrtDisplayNV :: FunPtr (Ptr PhysicalDevice_T -> ("deviceRelativeId" ::: Word32) -> ("pDisplay" ::: Ptr DisplayKHR) -> IO Result) , pVkGetPhysicalDeviceSurfaceCapabilities2EXT :: FunPtr (Ptr PhysicalDevice_T -> SurfaceKHR -> ("pSurfaceCapabilities" ::: Ptr SurfaceCapabilities2EXT) -> IO Result) , pVkEnumeratePhysicalDeviceGroups :: FunPtr (Ptr Instance_T -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr PhysicalDeviceGroupProperties) -> IO Result) , pVkGetPhysicalDevicePresentRectanglesKHR :: FunPtr (Ptr PhysicalDevice_T -> SurfaceKHR -> ("pRectCount" ::: Ptr Word32) -> ("pRects" ::: Ptr Rect2D) -> IO Result)@@ -447,7 +449,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 -- | A version of 'getInstanceProcAddr' which can be called -- with a null pointer for the instance.@@ -522,6 +524,8 @@ vkReleaseDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkReleaseDisplayEXT"#) vkAcquireXlibDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkAcquireXlibDisplayEXT"#) vkGetRandROutputDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetRandROutputDisplayEXT"#)+ vkAcquireWinrtDisplayNV <- getInstanceProcAddr' handle (Ptr "vkAcquireWinrtDisplayNV"#)+ vkGetWinrtDisplayNV <- getInstanceProcAddr' handle (Ptr "vkGetWinrtDisplayNV"#) vkGetPhysicalDeviceSurfaceCapabilities2EXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceSurfaceCapabilities2EXT"#) vkEnumeratePhysicalDeviceGroups <- getFirstInstanceProcAddr [(Ptr "vkEnumeratePhysicalDeviceGroupsKHR"#), (Ptr "vkEnumeratePhysicalDeviceGroups"#)] vkGetPhysicalDevicePresentRectanglesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDevicePresentRectanglesKHR"#)@@ -604,6 +608,8 @@ (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> IO Result) vkReleaseDisplayEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("dpy" ::: Ptr Display) -> DisplayKHR -> IO Result) vkAcquireXlibDisplayEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("dpy" ::: Ptr Display) -> RROutput -> ("pDisplay" ::: Ptr DisplayKHR) -> IO Result) vkGetRandROutputDisplayEXT)+ (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> IO Result) vkAcquireWinrtDisplayNV)+ (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("deviceRelativeId" ::: Word32) -> ("pDisplay" ::: Ptr DisplayKHR) -> IO Result) vkGetWinrtDisplayNV) (castFunPtr @_ @(Ptr PhysicalDevice_T -> SurfaceKHR -> ("pSurfaceCapabilities" ::: Ptr SurfaceCapabilities2EXT) -> IO Result) vkGetPhysicalDeviceSurfaceCapabilities2EXT) (castFunPtr @_ @(Ptr Instance_T -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr PhysicalDeviceGroupProperties) -> IO Result) vkEnumeratePhysicalDeviceGroups) (castFunPtr @_ @(Ptr PhysicalDevice_T -> SurfaceKHR -> ("pRectCount" ::: Ptr Word32) -> ("pRects" ::: Ptr Rect2D) -> IO Result) vkGetPhysicalDevicePresentRectanglesKHR)
src/Vulkan/Extensions.hs view
@@ -187,6 +187,7 @@ , module Vulkan.Extensions.VK_NN_vi_surface , module Vulkan.Extensions.VK_NVX_image_view_handle , module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes+ , module Vulkan.Extensions.VK_NV_acquire_winrt_display , module Vulkan.Extensions.VK_NV_clip_space_w_scaling , module Vulkan.Extensions.VK_NV_compute_shader_derivatives , module Vulkan.Extensions.VK_NV_cooperative_matrix@@ -223,6 +224,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_VALVE_mutable_descriptor_type ) where import Vulkan.Extensions.Dependencies import Vulkan.Extensions.Handles@@ -411,6 +413,7 @@ import Vulkan.Extensions.VK_NN_vi_surface import Vulkan.Extensions.VK_NVX_image_view_handle import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes+import Vulkan.Extensions.VK_NV_acquire_winrt_display import Vulkan.Extensions.VK_NV_clip_space_w_scaling import Vulkan.Extensions.VK_NV_compute_shader_derivatives import Vulkan.Extensions.VK_NV_cooperative_matrix@@ -447,4 +450,5 @@ 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_VALVE_mutable_descriptor_type
src/Vulkan/Extensions/Dependencies.hs view
@@ -136,6 +136,7 @@ import Vulkan.Extensions.VK_MVK_macos_surface (pattern MVK_MACOS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_NN_vi_surface (pattern NN_VI_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_acquire_winrt_display (pattern NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_cooperative_matrix (pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_corner_sampled_image (pattern NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME)@@ -160,6 +161,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_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] extensionDependencies = \case@@ -460,9 +462,13 @@ QCOM_rotated_copy_commands_EXTENSION_NAME -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_COPY_COMMANDS_2_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME] EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- EXT_4444_FORMATS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_4444_FORMATS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME ->+ [EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME] 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]+ _ -> [] -- | The minimum required API version to use this extension extensionCoreRequirement :: ("extensionName" ::: ByteString) -> Word32
src/Vulkan/Extensions/Handles.hs view
@@ -236,6 +236,7 @@ -- -- 'Vulkan.Extensions.VK_KHR_display.DisplayPlanePropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR',+-- 'Vulkan.Extensions.VK_NV_acquire_winrt_display.acquireWinrtDisplayNV', -- 'Vulkan.Extensions.VK_EXT_acquire_xlib_display.acquireXlibDisplayEXT', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayModeKHR', -- 'Vulkan.Extensions.VK_EXT_display_control.displayPowerControlEXT',@@ -243,6 +244,7 @@ -- 'Vulkan.Extensions.VK_KHR_display.getDisplayModePropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneSupportedDisplaysKHR', -- 'Vulkan.Extensions.VK_EXT_acquire_xlib_display.getRandROutputDisplayEXT',+-- 'Vulkan.Extensions.VK_NV_acquire_winrt_display.getWinrtDisplayNV', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT', -- 'Vulkan.Extensions.VK_EXT_direct_mode_display.releaseDisplayEXT' newtype DisplayKHR = DisplayKHR Word64
src/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -93,6 +93,7 @@ , pattern AMD_BUFFER_MARKER_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import GHC.IO (throwIO)@@ -291,7 +292,7 @@ unless (vkCmdWriteBufferMarkerAMDPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarkerAMD is null" Nothing Nothing let vkCmdWriteBufferMarkerAMD' = mkVkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMDPtr- vkCmdWriteBufferMarkerAMD' (commandBufferHandle (commandBuffer)) (pipelineStage) (dstBuffer) (dstOffset) (marker)+ traceAroundEvent "vkCmdWriteBufferMarkerAMD" (vkCmdWriteBufferMarkerAMD' (commandBufferHandle (commandBuffer)) (pipelineStage) (dstBuffer) (dstOffset) (marker)) pure $ ()
src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs view
@@ -135,6 +135,7 @@ , ColorSpaceKHR(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -199,8 +200,8 @@ -- -- == Valid Usage ----- - #VUID-vkSetLocalDimmingAMD-XXXXX# It is only valid to call--- 'setLocalDimmingAMD' if+-- - #VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618# It is only+-- valid to call 'setLocalDimmingAMD' if -- 'DisplayNativeHdrSurfaceCapabilitiesAMD'::@localDimmingSupport@ is -- supported --@@ -223,7 +224,7 @@ unless (vkSetLocalDimmingAMDPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetLocalDimmingAMD is null" Nothing Nothing let vkSetLocalDimmingAMD' = mkVkSetLocalDimmingAMD vkSetLocalDimmingAMDPtr- vkSetLocalDimmingAMD' (deviceHandle (device)) (swapChain) (boolToBool32 (localDimmingEnable))+ traceAroundEvent "vkSetLocalDimmingAMD" (vkSetLocalDimmingAMD' (deviceHandle (device)) (swapChain) (boolToBool32 (localDimmingEnable))) pure $ ()
src/Vulkan/Extensions/VK_AMD_shader_info.hs view
@@ -169,6 +169,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -341,11 +342,11 @@ let vkGetShaderInfoAMD' = mkVkGetShaderInfoAMD vkGetShaderInfoAMDPtr let device' = deviceHandle (device) pPInfoSize <- ContT $ bracket (callocBytes @CSize 8) free- r <- lift $ vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pInfoSize <- lift $ peek @CSize pPInfoSize pPInfo <- ContT $ bracket (callocBytes @(()) (fromIntegral (((\(CSize a) -> a) pInfoSize)))) free- r' <- lift $ vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (pPInfo)+ r' <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (pPInfo)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pInfoSize'' <- lift $ peek @CSize pPInfoSize pInfo' <- lift $ packCStringLen (castPtr @() @CChar pPInfo, (fromIntegral (((\(CSize a) -> a) pInfoSize''))))
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -270,6 +270,7 @@ , AHardwareBuffer ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -390,7 +391,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAndroidHardwareBufferPropertiesANDROID is null" Nothing Nothing let vkGetAndroidHardwareBufferPropertiesANDROID' = mkVkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROIDPtr pPProperties <- ContT (withZeroCStruct @(AndroidHardwareBufferPropertiesANDROID _))- r <- lift $ vkGetAndroidHardwareBufferPropertiesANDROID' (deviceHandle (device)) (buffer) (forgetExtensions (pPProperties))+ r <- lift $ traceAroundEvent "vkGetAndroidHardwareBufferPropertiesANDROID" (vkGetAndroidHardwareBufferPropertiesANDROID' (deviceHandle (device)) (buffer) (forgetExtensions (pPProperties))) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pProperties <- lift $ peekCStruct @(AndroidHardwareBufferPropertiesANDROID _) pPProperties pure $ (pProperties)@@ -459,7 +460,7 @@ let vkGetMemoryAndroidHardwareBufferANDROID' = mkVkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROIDPtr pInfo <- ContT $ withCStruct (info) pPBuffer <- ContT $ bracket (callocBytes @(Ptr AHardwareBuffer) 8) free- r <- lift $ vkGetMemoryAndroidHardwareBufferANDROID' (deviceHandle (device)) pInfo (pPBuffer)+ r <- lift $ traceAroundEvent "vkGetMemoryAndroidHardwareBufferANDROID" (vkGetMemoryAndroidHardwareBufferANDROID' (deviceHandle (device)) pInfo (pPBuffer)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pBuffer <- lift $ peek @(Ptr AHardwareBuffer) pPBuffer pure $ (pBuffer)
src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs view
@@ -123,6 +123,7 @@ , Display ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -227,7 +228,7 @@ unless (vkAcquireXlibDisplayEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireXlibDisplayEXT is null" Nothing Nothing let vkAcquireXlibDisplayEXT' = mkVkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXTPtr- r <- vkAcquireXlibDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (display)+ r <- traceAroundEvent "vkAcquireXlibDisplayEXT" (vkAcquireXlibDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (display)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -283,7 +284,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRandROutputDisplayEXT is null" Nothing Nothing let vkGetRandROutputDisplayEXT' = mkVkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXTPtr pPDisplay <- ContT $ bracket (callocBytes @DisplayKHR 8) free- r <- lift $ vkGetRandROutputDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (rrOutput) (pPDisplay)+ r <- lift $ traceAroundEvent "vkGetRandROutputDisplayEXT" (vkGetRandROutputDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (rrOutput) (pPDisplay)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDisplay <- lift $ peek @DisplayKHR pPDisplay pure $ (pDisplay)
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -181,6 +181,7 @@ 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)@@ -310,11 +311,11 @@ let vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' = mkVkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPTimeDomainCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' physicalDevice' (pPTimeDomainCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' physicalDevice' (pPTimeDomainCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pTimeDomainCount <- lift $ peek @Word32 pPTimeDomainCount pPTimeDomains <- ContT $ bracket (callocBytes @TimeDomainEXT ((fromIntegral (pTimeDomainCount)) * 4)) free- r' <- lift $ vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' physicalDevice' (pPTimeDomainCount) (pPTimeDomains)+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' physicalDevice' (pPTimeDomainCount) (pPTimeDomains)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pTimeDomainCount' <- lift $ peek @Word32 pPTimeDomainCount pTimeDomains' <- lift $ generateM (fromIntegral (pTimeDomainCount')) (\i -> peek @TimeDomainEXT ((pPTimeDomains `advancePtrBytes` (4 * (i)) :: Ptr TimeDomainEXT)))@@ -389,7 +390,7 @@ lift $ Data.Vector.imapM_ (\i e -> poke (pPTimestampInfos `plusPtr` (24 * (i)) :: Ptr CalibratedTimestampInfoEXT) (e)) (timestampInfos) pPTimestamps <- ContT $ bracket (callocBytes @Word64 ((fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) * 8)) free pPMaxDeviation <- ContT $ bracket (callocBytes @Word64 8) free- r <- lift $ vkGetCalibratedTimestampsEXT' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32)) (pPTimestampInfos) (pPTimestamps) (pPMaxDeviation)+ r <- lift $ traceAroundEvent "vkGetCalibratedTimestampsEXT" (vkGetCalibratedTimestampsEXT' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32)) (pPTimestampInfos) (pPTimestamps) (pPMaxDeviation)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pTimestamps <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) (\i -> peek @Word64 ((pPTimestamps `advancePtrBytes` (8 * (i)) :: Ptr Word64))) pMaxDeviation <- lift $ peek @Word64 pPMaxDeviation
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs view
@@ -178,6 +178,7 @@ import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -300,7 +301,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginConditionalRenderingEXT is null" Nothing Nothing let vkCmdBeginConditionalRenderingEXT' = mkVkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXTPtr pConditionalRenderingBegin <- ContT $ withCStruct (conditionalRenderingBegin)- lift $ vkCmdBeginConditionalRenderingEXT' (commandBufferHandle (commandBuffer)) pConditionalRenderingBegin+ lift $ traceAroundEvent "vkCmdBeginConditionalRenderingEXT" (vkCmdBeginConditionalRenderingEXT' (commandBufferHandle (commandBuffer)) pConditionalRenderingBegin) pure $ () -- | This function will call the supplied action between calls to@@ -390,7 +391,7 @@ unless (vkCmdEndConditionalRenderingEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndConditionalRenderingEXT is null" Nothing Nothing let vkCmdEndConditionalRenderingEXT' = mkVkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXTPtr- vkCmdEndConditionalRenderingEXT' (commandBufferHandle (commandBuffer))+ traceAroundEvent "vkCmdEndConditionalRenderingEXT" (vkCmdEndConditionalRenderingEXT' (commandBufferHandle (commandBuffer))) pure $ ()
src/Vulkan/Extensions/VK_EXT_debug_marker.hs view
@@ -288,6 +288,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -400,7 +401,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDebugMarkerSetObjectNameEXT is null" Nothing Nothing let vkDebugMarkerSetObjectNameEXT' = mkVkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXTPtr pNameInfo <- ContT $ withCStruct (nameInfo)- r <- lift $ vkDebugMarkerSetObjectNameEXT' (deviceHandle (device)) pNameInfo+ r <- lift $ traceAroundEvent "vkDebugMarkerSetObjectNameEXT" (vkDebugMarkerSetObjectNameEXT' (deviceHandle (device)) pNameInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -455,7 +456,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDebugMarkerSetObjectTagEXT is null" Nothing Nothing let vkDebugMarkerSetObjectTagEXT' = mkVkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXTPtr pTagInfo <- ContT $ withCStruct (tagInfo)- r <- lift $ vkDebugMarkerSetObjectTagEXT' (deviceHandle (device)) pTagInfo+ r <- lift $ traceAroundEvent "vkDebugMarkerSetObjectTagEXT" (vkDebugMarkerSetObjectTagEXT' (deviceHandle (device)) pTagInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -522,7 +523,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDebugMarkerBeginEXT is null" Nothing Nothing let vkCmdDebugMarkerBeginEXT' = mkVkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXTPtr pMarkerInfo <- ContT $ withCStruct (markerInfo)- lift $ vkCmdDebugMarkerBeginEXT' (commandBufferHandle (commandBuffer)) pMarkerInfo+ lift $ traceAroundEvent "vkCmdDebugMarkerBeginEXT" (vkCmdDebugMarkerBeginEXT' (commandBufferHandle (commandBuffer)) pMarkerInfo) pure $ () @@ -602,7 +603,7 @@ unless (vkCmdDebugMarkerEndEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDebugMarkerEndEXT is null" Nothing Nothing let vkCmdDebugMarkerEndEXT' = mkVkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXTPtr- vkCmdDebugMarkerEndEXT' (commandBufferHandle (commandBuffer))+ traceAroundEvent "vkCmdDebugMarkerEndEXT" (vkCmdDebugMarkerEndEXT' (commandBufferHandle (commandBuffer))) pure $ () @@ -669,7 +670,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDebugMarkerInsertEXT is null" Nothing Nothing let vkCmdDebugMarkerInsertEXT' = mkVkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXTPtr pMarkerInfo <- ContT $ withCStruct (markerInfo)- lift $ vkCmdDebugMarkerInsertEXT' (commandBufferHandle (commandBuffer)) pMarkerInfo+ lift $ traceAroundEvent "vkCmdDebugMarkerInsertEXT" (vkCmdDebugMarkerInsertEXT' (commandBufferHandle (commandBuffer)) pMarkerInfo) pure $ ()
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -372,6 +372,7 @@ 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)@@ -506,7 +507,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPCallback <- ContT $ bracket (callocBytes @DebugReportCallbackEXT 8) free- r <- lift $ vkCreateDebugReportCallbackEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPCallback)+ r <- lift $ traceAroundEvent "vkCreateDebugReportCallbackEXT" (vkCreateDebugReportCallbackEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPCallback)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCallback <- lift $ peek @DebugReportCallbackEXT pPCallback pure $ (pCallback)@@ -596,7 +597,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyDebugReportCallbackEXT' (instanceHandle (instance')) (callback) pAllocator+ lift $ traceAroundEvent "vkDestroyDebugReportCallbackEXT" (vkDestroyDebugReportCallbackEXT' (instanceHandle (instance')) (callback) pAllocator) pure $ () @@ -683,7 +684,7 @@ let vkDebugReportMessageEXT' = mkVkDebugReportMessageEXT vkDebugReportMessageEXTPtr pLayerPrefix <- ContT $ useAsCString (layerPrefix) pMessage <- ContT $ useAsCString (message)- lift $ vkDebugReportMessageEXT' (instanceHandle (instance')) (flags) (objectType) (object) (CSize (location)) (messageCode) pLayerPrefix pMessage+ lift $ traceAroundEvent "vkDebugReportMessageEXT" (vkDebugReportMessageEXT' (instanceHandle (instance')) (flags) (objectType) (object) (CSize (location)) (messageCode) pLayerPrefix pMessage) pure $ ()
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -531,6 +531,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -691,7 +692,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetDebugUtilsObjectNameEXT is null" Nothing Nothing let vkSetDebugUtilsObjectNameEXT' = mkVkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXTPtr pNameInfo <- ContT $ withCStruct (nameInfo)- r <- lift $ vkSetDebugUtilsObjectNameEXT' (deviceHandle (device)) pNameInfo+ r <- lift $ traceAroundEvent "vkSetDebugUtilsObjectNameEXT" (vkSetDebugUtilsObjectNameEXT' (deviceHandle (device)) pNameInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -747,7 +748,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetDebugUtilsObjectTagEXT is null" Nothing Nothing let vkSetDebugUtilsObjectTagEXT' = mkVkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXTPtr pTagInfo <- ContT $ withCStruct (tagInfo)- r <- lift $ vkSetDebugUtilsObjectTagEXT' (deviceHandle (device)) pTagInfo+ r <- lift $ traceAroundEvent "vkSetDebugUtilsObjectTagEXT" (vkSetDebugUtilsObjectTagEXT' (deviceHandle (device)) pTagInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -793,7 +794,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueBeginDebugUtilsLabelEXT is null" Nothing Nothing let vkQueueBeginDebugUtilsLabelEXT' = mkVkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXTPtr pLabelInfo <- ContT $ withCStruct (labelInfo)- lift $ vkQueueBeginDebugUtilsLabelEXT' (queueHandle (queue)) pLabelInfo+ lift $ traceAroundEvent "vkQueueBeginDebugUtilsLabelEXT" (vkQueueBeginDebugUtilsLabelEXT' (queueHandle (queue)) pLabelInfo) pure $ () @@ -845,7 +846,7 @@ unless (vkQueueEndDebugUtilsLabelEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueEndDebugUtilsLabelEXT is null" Nothing Nothing let vkQueueEndDebugUtilsLabelEXT' = mkVkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXTPtr- vkQueueEndDebugUtilsLabelEXT' (queueHandle (queue))+ traceAroundEvent "vkQueueEndDebugUtilsLabelEXT" (vkQueueEndDebugUtilsLabelEXT' (queueHandle (queue))) pure $ () @@ -891,7 +892,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueInsertDebugUtilsLabelEXT is null" Nothing Nothing let vkQueueInsertDebugUtilsLabelEXT' = mkVkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXTPtr pLabelInfo <- ContT $ withCStruct (labelInfo)- lift $ vkQueueInsertDebugUtilsLabelEXT' (queueHandle (queue)) pLabelInfo+ lift $ traceAroundEvent "vkQueueInsertDebugUtilsLabelEXT" (vkQueueInsertDebugUtilsLabelEXT' (queueHandle (queue)) pLabelInfo) pure $ () @@ -958,7 +959,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginDebugUtilsLabelEXT is null" Nothing Nothing let vkCmdBeginDebugUtilsLabelEXT' = mkVkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXTPtr pLabelInfo <- ContT $ withCStruct (labelInfo)- lift $ vkCmdBeginDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer)) pLabelInfo+ lift $ traceAroundEvent "vkCmdBeginDebugUtilsLabelEXT" (vkCmdBeginDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer)) pLabelInfo) pure $ () -- | This function will call the supplied action between calls to@@ -1048,7 +1049,7 @@ unless (vkCmdEndDebugUtilsLabelEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndDebugUtilsLabelEXT is null" Nothing Nothing let vkCmdEndDebugUtilsLabelEXT' = mkVkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXTPtr- vkCmdEndDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer))+ traceAroundEvent "vkCmdEndDebugUtilsLabelEXT" (vkCmdEndDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer))) pure $ () @@ -1114,7 +1115,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdInsertDebugUtilsLabelEXT is null" Nothing Nothing let vkCmdInsertDebugUtilsLabelEXT' = mkVkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXTPtr pLabelInfo <- ContT $ withCStruct (labelInfo)- lift $ vkCmdInsertDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer)) pLabelInfo+ lift $ traceAroundEvent "vkCmdInsertDebugUtilsLabelEXT" (vkCmdInsertDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer)) pLabelInfo) pure $ () @@ -1188,7 +1189,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPMessenger <- ContT $ bracket (callocBytes @DebugUtilsMessengerEXT 8) free- r <- lift $ vkCreateDebugUtilsMessengerEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPMessenger)+ r <- lift $ traceAroundEvent "vkCreateDebugUtilsMessengerEXT" (vkCreateDebugUtilsMessengerEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPMessenger)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pMessenger <- lift $ peek @DebugUtilsMessengerEXT pPMessenger pure $ (pMessenger)@@ -1282,7 +1283,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyDebugUtilsMessengerEXT' (instanceHandle (instance')) (messenger) pAllocator+ lift $ traceAroundEvent "vkDestroyDebugUtilsMessengerEXT" (vkDestroyDebugUtilsMessengerEXT' (instanceHandle (instance')) (messenger) pAllocator) pure $ () @@ -1352,7 +1353,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSubmitDebugUtilsMessageEXT is null" Nothing Nothing let vkSubmitDebugUtilsMessageEXT' = mkVkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXTPtr pCallbackData <- ContT $ withCStruct (callbackData)- lift $ vkSubmitDebugUtilsMessageEXT' (instanceHandle (instance')) (messageSeverity) (messageTypes) pCallbackData+ lift $ traceAroundEvent "vkSubmitDebugUtilsMessageEXT" (vkSubmitDebugUtilsMessageEXT' (instanceHandle (instance')) (messageSeverity) (messageTypes) pCallbackData) pure $ ()
src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs view
@@ -111,6 +111,7 @@ , DisplayKHR(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import GHC.IO (throwIO)@@ -170,7 +171,7 @@ unless (vkReleaseDisplayEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseDisplayEXT is null" Nothing Nothing let vkReleaseDisplayEXT' = mkVkReleaseDisplayEXT vkReleaseDisplayEXTPtr- _ <- vkReleaseDisplayEXT' (physicalDeviceHandle (physicalDevice)) (display)+ _ <- traceAroundEvent "vkReleaseDisplayEXT" (vkReleaseDisplayEXT' (physicalDeviceHandle (physicalDevice)) (display)) pure $ ()
src/Vulkan/Extensions/VK_EXT_directfb_surface.hs view
@@ -106,6 +106,7 @@ 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)@@ -236,7 +237,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateDirectFBSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateDirectFBSurfaceEXT" (vkCreateDirectFBSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)@@ -289,7 +290,7 @@ unless (vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceDirectFBPresentationSupportEXT is null" Nothing Nothing let vkGetPhysicalDeviceDirectFBPresentationSupportEXT' = mkVkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr- r <- vkGetPhysicalDeviceDirectFBPresentationSupportEXT' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (dfb)+ r <- traceAroundEvent "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" (vkGetPhysicalDeviceDirectFBPresentationSupportEXT' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (dfb)) pure $ ((bool32ToBool r))
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs view
@@ -140,6 +140,7 @@ import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -301,7 +302,7 @@ let vkCmdSetDiscardRectangleEXT' = mkVkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXTPtr pPDiscardRectangles <- ContT $ allocaBytesAligned @Rect2D ((Data.Vector.length (discardRectangles)) * 16) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPDiscardRectangles `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (discardRectangles)- lift $ vkCmdSetDiscardRectangleEXT' (commandBufferHandle (commandBuffer)) (firstDiscardRectangle) ((fromIntegral (Data.Vector.length $ (discardRectangles)) :: Word32)) (pPDiscardRectangles)+ lift $ traceAroundEvent "vkCmdSetDiscardRectangleEXT" (vkCmdSetDiscardRectangleEXT' (commandBufferHandle (commandBuffer)) (firstDiscardRectangle) ((fromIntegral (Data.Vector.length $ (discardRectangles)) :: Word32)) (pPDiscardRectangles)) pure $ ()
src/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -181,6 +181,7 @@ 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)@@ -305,7 +306,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDisplayPowerControlEXT is null" Nothing Nothing let vkDisplayPowerControlEXT' = mkVkDisplayPowerControlEXT vkDisplayPowerControlEXTPtr pDisplayPowerInfo <- ContT $ withCStruct (displayPowerInfo)- r <- lift $ vkDisplayPowerControlEXT' (deviceHandle (device)) (display) pDisplayPowerInfo+ r <- lift $ traceAroundEvent "vkDisplayPowerControlEXT" (vkDisplayPowerControlEXT' (deviceHandle (device)) (display) pDisplayPowerInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -371,7 +372,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPFence <- ContT $ bracket (callocBytes @Fence 8) free- r <- lift $ vkRegisterDeviceEventEXT' (deviceHandle (device)) pDeviceEventInfo pAllocator (pPFence)+ r <- lift $ traceAroundEvent "vkRegisterDeviceEventEXT" (vkRegisterDeviceEventEXT' (deviceHandle (device)) pDeviceEventInfo pAllocator (pPFence)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFence <- lift $ peek @Fence pPFence pure $ (pFence)@@ -449,7 +450,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPFence <- ContT $ bracket (callocBytes @Fence 8) free- r <- lift $ vkRegisterDisplayEventEXT' (deviceHandle (device)) (display) pDisplayEventInfo pAllocator (pPFence)+ r <- lift $ traceAroundEvent "vkRegisterDisplayEventEXT" (vkRegisterDisplayEventEXT' (deviceHandle (device)) (display) pDisplayEventInfo pAllocator (pPFence)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFence <- lift $ peek @Fence pPFence pure $ (pFence)@@ -531,7 +532,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSwapchainCounterEXT is null" Nothing Nothing let vkGetSwapchainCounterEXT' = mkVkGetSwapchainCounterEXT vkGetSwapchainCounterEXTPtr pPCounterValue <- ContT $ bracket (callocBytes @Word64 8) free- r <- lift $ vkGetSwapchainCounterEXT' (deviceHandle (device)) (swapchain) (counter) (pPCounterValue)+ r <- lift $ traceAroundEvent "vkGetSwapchainCounterEXT" (vkGetSwapchainCounterEXT' (deviceHandle (device)) (swapchain) (counter) (pPCounterValue)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCounterValue <- lift $ peek @Word64 pPCounterValue pure $ (pCounterValue)
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -119,6 +119,7 @@ import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -247,7 +248,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceCapabilities2EXT is null" Nothing Nothing let vkGetPhysicalDeviceSurfaceCapabilities2EXT' = mkVkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXTPtr pPSurfaceCapabilities <- ContT (withZeroCStruct @SurfaceCapabilities2EXT)- r <- lift $ vkGetPhysicalDeviceSurfaceCapabilities2EXT' (physicalDeviceHandle (physicalDevice)) (surface) (pPSurfaceCapabilities)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilities2EXT" (vkGetPhysicalDeviceSurfaceCapabilities2EXT' (physicalDeviceHandle (physicalDevice)) (surface) (pPSurfaceCapabilities)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurfaceCapabilities <- lift $ peekCStruct @SurfaceCapabilities2EXT pPSurfaceCapabilities pure $ (pSurfaceCapabilities)
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -176,6 +176,7 @@ , pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -315,7 +316,7 @@ unless (vkCmdSetCullModeEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCullModeEXT is null" Nothing Nothing let vkCmdSetCullModeEXT' = mkVkCmdSetCullModeEXT vkCmdSetCullModeEXTPtr- vkCmdSetCullModeEXT' (commandBufferHandle (commandBuffer)) (cullMode)+ traceAroundEvent "vkCmdSetCullModeEXT" (vkCmdSetCullModeEXT' (commandBufferHandle (commandBuffer)) (cullMode)) pure $ () @@ -385,7 +386,7 @@ unless (vkCmdSetFrontFaceEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFrontFaceEXT is null" Nothing Nothing let vkCmdSetFrontFaceEXT' = mkVkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXTPtr- vkCmdSetFrontFaceEXT' (commandBufferHandle (commandBuffer)) (frontFace)+ traceAroundEvent "vkCmdSetFrontFaceEXT" (vkCmdSetFrontFaceEXT' (commandBufferHandle (commandBuffer)) (frontFace)) pure $ () @@ -457,7 +458,7 @@ unless (vkCmdSetPrimitiveTopologyEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveTopologyEXT is null" Nothing Nothing let vkCmdSetPrimitiveTopologyEXT' = mkVkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXTPtr- vkCmdSetPrimitiveTopologyEXT' (commandBufferHandle (commandBuffer)) (primitiveTopology)+ traceAroundEvent "vkCmdSetPrimitiveTopologyEXT" (vkCmdSetPrimitiveTopologyEXT' (commandBufferHandle (commandBuffer)) (primitiveTopology)) pure $ () @@ -542,7 +543,7 @@ let vkCmdSetViewportWithCountEXT' = mkVkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXTPtr pPViewports <- ContT $ allocaBytesAligned @Viewport ((Data.Vector.length (viewports)) * 24) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)- lift $ vkCmdSetViewportWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports)+ lift $ traceAroundEvent "vkCmdSetViewportWithCountEXT" (vkCmdSetViewportWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports)) pure $ () @@ -640,7 +641,7 @@ let vkCmdSetScissorWithCountEXT' = mkVkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXTPtr pPScissors <- ContT $ allocaBytesAligned @Rect2D ((Data.Vector.length (scissors)) * 16) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)- lift $ vkCmdSetScissorWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors)+ lift $ traceAroundEvent "vkCmdSetScissorWithCountEXT" (vkCmdSetScissorWithCountEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors)) pure $ () @@ -837,7 +838,7 @@ pPStrides <- ContT $ allocaBytesAligned @DeviceSize (((Data.Vector.length (strides))) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPStrides `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((strides)) pure $ pPStrides- lift $ vkCmdBindVertexBuffers2EXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes pStrides+ lift $ traceAroundEvent "vkCmdBindVertexBuffers2EXT" (vkCmdBindVertexBuffers2EXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes pStrides) pure $ () @@ -914,7 +915,7 @@ unless (vkCmdSetDepthTestEnableEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthTestEnableEXT is null" Nothing Nothing let vkCmdSetDepthTestEnableEXT' = mkVkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXTPtr- vkCmdSetDepthTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthTestEnable))+ traceAroundEvent "vkCmdSetDepthTestEnableEXT" (vkCmdSetDepthTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthTestEnable))) pure $ () @@ -991,7 +992,7 @@ unless (vkCmdSetDepthWriteEnableEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthWriteEnableEXT is null" Nothing Nothing let vkCmdSetDepthWriteEnableEXT' = mkVkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXTPtr- vkCmdSetDepthWriteEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthWriteEnable))+ traceAroundEvent "vkCmdSetDepthWriteEnableEXT" (vkCmdSetDepthWriteEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthWriteEnable))) pure $ () @@ -1072,7 +1073,7 @@ unless (vkCmdSetDepthCompareOpEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthCompareOpEXT is null" Nothing Nothing let vkCmdSetDepthCompareOpEXT' = mkVkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXTPtr- vkCmdSetDepthCompareOpEXT' (commandBufferHandle (commandBuffer)) (depthCompareOp)+ traceAroundEvent "vkCmdSetDepthCompareOpEXT" (vkCmdSetDepthCompareOpEXT' (commandBufferHandle (commandBuffer)) (depthCompareOp)) pure $ () @@ -1149,7 +1150,7 @@ unless (vkCmdSetDepthBoundsTestEnableEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBoundsTestEnableEXT is null" Nothing Nothing let vkCmdSetDepthBoundsTestEnableEXT' = mkVkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXTPtr- vkCmdSetDepthBoundsTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBoundsTestEnable))+ traceAroundEvent "vkCmdSetDepthBoundsTestEnableEXT" (vkCmdSetDepthBoundsTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBoundsTestEnable))) pure $ () @@ -1226,7 +1227,7 @@ unless (vkCmdSetStencilTestEnableEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilTestEnableEXT is null" Nothing Nothing let vkCmdSetStencilTestEnableEXT' = mkVkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXTPtr- vkCmdSetStencilTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (stencilTestEnable))+ traceAroundEvent "vkCmdSetStencilTestEnableEXT" (vkCmdSetStencilTestEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (stencilTestEnable))) pure $ () @@ -1336,7 +1337,7 @@ unless (vkCmdSetStencilOpEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilOpEXT is null" Nothing Nothing let vkCmdSetStencilOpEXT' = mkVkCmdSetStencilOpEXT vkCmdSetStencilOpEXTPtr- vkCmdSetStencilOpEXT' (commandBufferHandle (commandBuffer)) (faceMask) (failOp) (passOp) (depthFailOp) (compareOp)+ traceAroundEvent "vkCmdSetStencilOpEXT" (vkCmdSetStencilOpEXT' (commandBufferHandle (commandBuffer)) (faceMask) (failOp) (passOp) (depthFailOp) (compareOp)) pure $ ()
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -179,6 +179,7 @@ , pattern EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -303,7 +304,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryHostPointerPropertiesEXT is null" Nothing Nothing let vkGetMemoryHostPointerPropertiesEXT' = mkVkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXTPtr pPMemoryHostPointerProperties <- ContT (withZeroCStruct @MemoryHostPointerPropertiesEXT)- r <- lift $ vkGetMemoryHostPointerPropertiesEXT' (deviceHandle (device)) (handleType) (hostPointer) (pPMemoryHostPointerProperties)+ r <- lift $ traceAroundEvent "vkGetMemoryHostPointerPropertiesEXT" (vkGetMemoryHostPointerPropertiesEXT' (deviceHandle (device)) (handleType) (hostPointer) (pPMemoryHostPointerProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pMemoryHostPointerProperties <- lift $ peekCStruct @MemoryHostPointerPropertiesEXT pPMemoryHostPointerProperties pure $ (pMemoryHostPointerProperties)
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs view
@@ -283,6 +283,7 @@ 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)@@ -442,11 +443,11 @@ pSurfaceInfo <- ContT $ withCStruct (surfaceInfo) let x9 = forgetExtensions pSurfaceInfo pPPresentModeCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceSurfacePresentModes2EXT' physicalDevice' x9 (pPPresentModeCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModes2EXT" (vkGetPhysicalDeviceSurfacePresentModes2EXT' physicalDevice' x9 (pPPresentModeCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPresentModeCount <- lift $ peek @Word32 pPPresentModeCount pPPresentModes <- ContT $ bracket (callocBytes @PresentModeKHR ((fromIntegral (pPresentModeCount)) * 4)) free- r' <- lift $ vkGetPhysicalDeviceSurfacePresentModes2EXT' physicalDevice' x9 (pPPresentModeCount) (pPPresentModes)+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModes2EXT" (vkGetPhysicalDeviceSurfacePresentModes2EXT' physicalDevice' x9 (pPPresentModeCount) (pPPresentModes)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPresentModeCount' <- lift $ peek @Word32 pPPresentModeCount pPresentModes' <- lift $ generateM (fromIntegral (pPresentModeCount')) (\i -> peek @PresentModeKHR ((pPPresentModes `advancePtrBytes` (4 * (i)) :: Ptr PresentModeKHR)))@@ -514,7 +515,7 @@ let vkGetDeviceGroupSurfacePresentModes2EXT' = mkVkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXTPtr pSurfaceInfo <- ContT $ withCStruct (surfaceInfo) pPModes <- ContT $ bracket (callocBytes @DeviceGroupPresentModeFlagsKHR 4) free- r <- lift $ vkGetDeviceGroupSurfacePresentModes2EXT' (deviceHandle (device)) (forgetExtensions pSurfaceInfo) (pPModes)+ r <- lift $ traceAroundEvent "vkGetDeviceGroupSurfacePresentModes2EXT" (vkGetDeviceGroupSurfacePresentModes2EXT' (deviceHandle (device)) (forgetExtensions pSurfaceInfo) (pPModes)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pModes <- lift $ peek @DeviceGroupPresentModeFlagsKHR pPModes pure $ (pModes)@@ -606,7 +607,7 @@ unless (vkAcquireFullScreenExclusiveModeEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireFullScreenExclusiveModeEXT is null" Nothing Nothing let vkAcquireFullScreenExclusiveModeEXT' = mkVkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXTPtr- r <- vkAcquireFullScreenExclusiveModeEXT' (deviceHandle (device)) (swapchain)+ r <- traceAroundEvent "vkAcquireFullScreenExclusiveModeEXT" (vkAcquireFullScreenExclusiveModeEXT' (deviceHandle (device)) (swapchain)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -655,7 +656,7 @@ unless (vkReleaseFullScreenExclusiveModeEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseFullScreenExclusiveModeEXT is null" Nothing Nothing let vkReleaseFullScreenExclusiveModeEXT' = mkVkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXTPtr- r <- vkReleaseFullScreenExclusiveModeEXT' (deviceHandle (device)) (swapchain)+ r <- traceAroundEvent "vkReleaseFullScreenExclusiveModeEXT" (vkReleaseFullScreenExclusiveModeEXT' (deviceHandle (device)) (swapchain)) when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -127,6 +127,7 @@ , SwapchainKHR(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -227,7 +228,7 @@ lift $ Data.Vector.imapM_ (\i e -> poke (pPSwapchains `plusPtr` (8 * (i)) :: Ptr SwapchainKHR) (e)) (swapchains) pPMetadata <- ContT $ allocaBytesAligned @HdrMetadataEXT ((Data.Vector.length (metadata)) * 64) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPMetadata `plusPtr` (64 * (i)) :: Ptr HdrMetadataEXT) (e)) (metadata)- lift $ vkSetHdrMetadataEXT' (deviceHandle (device)) ((fromIntegral pSwapchainsLength :: Word32)) (pPSwapchains) (pPMetadata)+ lift $ traceAroundEvent "vkSetHdrMetadataEXT" (vkSetHdrMetadataEXT' (deviceHandle (device)) ((fromIntegral pSwapchainsLength :: Word32)) (pPSwapchains) (pPMetadata)) pure $ ()
src/Vulkan/Extensions/VK_EXT_headless_surface.hs view
@@ -114,6 +114,7 @@ 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)@@ -236,7 +237,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateHeadlessSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateHeadlessSurfaceEXT" (vkCreateHeadlessSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs view
@@ -539,6 +539,7 @@ , pattern EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -644,7 +645,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageDrmFormatModifierPropertiesEXT is null" Nothing Nothing let vkGetImageDrmFormatModifierPropertiesEXT' = mkVkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXTPtr pPProperties <- ContT (withZeroCStruct @ImageDrmFormatModifierPropertiesEXT)- r <- lift $ vkGetImageDrmFormatModifierPropertiesEXT' (deviceHandle (device)) (image) (pPProperties)+ r <- lift $ traceAroundEvent "vkGetImageDrmFormatModifierPropertiesEXT" (vkGetImageDrmFormatModifierPropertiesEXT' (deviceHandle (device)) (image) (pPProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pProperties <- lift $ peekCStruct @ImageDrmFormatModifierPropertiesEXT pPProperties pure $ (pProperties)
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -150,6 +150,7 @@ import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -260,7 +261,7 @@ unless (vkCmdSetLineStippleEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineStippleEXT is null" Nothing Nothing let vkCmdSetLineStippleEXT' = mkVkCmdSetLineStippleEXT vkCmdSetLineStippleEXTPtr- vkCmdSetLineStippleEXT' (commandBufferHandle (commandBuffer)) (lineStippleFactor) (lineStipplePattern)+ traceAroundEvent "vkCmdSetLineStippleEXT" (vkCmdSetLineStippleEXT' (commandBufferHandle (commandBuffer)) (lineStippleFactor) (lineStipplePattern)) pure $ ()
src/Vulkan/Extensions/VK_EXT_metal_surface.hs view
@@ -104,6 +104,7 @@ 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)@@ -226,7 +227,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateMetalSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateMetalSurfaceEXT" (vkCreateMetalSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_EXT_private_data.hs view
@@ -155,6 +155,7 @@ 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)@@ -292,7 +293,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPPrivateDataSlot <- ContT $ bracket (callocBytes @PrivateDataSlotEXT 8) free- r <- lift $ vkCreatePrivateDataSlotEXT' (deviceHandle (device)) pCreateInfo pAllocator (pPPrivateDataSlot)+ r <- lift $ traceAroundEvent "vkCreatePrivateDataSlotEXT" (vkCreatePrivateDataSlotEXT' (deviceHandle (device)) pCreateInfo pAllocator (pPPrivateDataSlot)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPrivateDataSlot <- lift $ peek @PrivateDataSlotEXT pPPrivateDataSlot pure $ (pPrivateDataSlot)@@ -380,7 +381,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyPrivateDataSlotEXT' (deviceHandle (device)) (privateDataSlot) pAllocator+ lift $ traceAroundEvent "vkDestroyPrivateDataSlotEXT" (vkDestroyPrivateDataSlotEXT' (deviceHandle (device)) (privateDataSlot) pAllocator) pure $ () @@ -448,7 +449,7 @@ unless (vkSetPrivateDataEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetPrivateDataEXT is null" Nothing Nothing let vkSetPrivateDataEXT' = mkVkSetPrivateDataEXT vkSetPrivateDataEXTPtr- r <- vkSetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (data')+ r <- traceAroundEvent "vkSetPrivateDataEXT" (vkSetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (data')) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -515,7 +516,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPrivateDataEXT is null" Nothing Nothing let vkGetPrivateDataEXT' = mkVkGetPrivateDataEXT vkGetPrivateDataEXTPtr pPData <- ContT $ bracket (callocBytes @Word64 8) free- lift $ vkGetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (pPData)+ lift $ traceAroundEvent "vkGetPrivateDataEXT" (vkGetPrivateDataEXT' (deviceHandle (device)) (objectType) (objectHandle) (privateDataSlot) (pPData)) pData <- lift $ peek @Word64 pPData pure $ (pData)
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -183,6 +183,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -322,7 +323,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetSampleLocationsEXT is null" Nothing Nothing let vkCmdSetSampleLocationsEXT' = mkVkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXTPtr pSampleLocationsInfo <- ContT $ withCStruct (sampleLocationsInfo)- lift $ vkCmdSetSampleLocationsEXT' (commandBufferHandle (commandBuffer)) pSampleLocationsInfo+ lift $ traceAroundEvent "vkCmdSetSampleLocationsEXT" (vkCmdSetSampleLocationsEXT' (commandBufferHandle (commandBuffer)) pSampleLocationsInfo) pure $ () @@ -364,7 +365,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMultisamplePropertiesEXT is null" Nothing Nothing let vkGetPhysicalDeviceMultisamplePropertiesEXT' = mkVkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXTPtr pPMultisampleProperties <- ContT (withZeroCStruct @MultisamplePropertiesEXT)- lift $ vkGetPhysicalDeviceMultisamplePropertiesEXT' (physicalDeviceHandle (physicalDevice)) (samples) (pPMultisampleProperties)+ lift $ traceAroundEvent "vkGetPhysicalDeviceMultisamplePropertiesEXT" (vkGetPhysicalDeviceMultisamplePropertiesEXT' (physicalDeviceHandle (physicalDevice)) (samples) (pPMultisampleProperties)) pMultisampleProperties <- lift $ peekCStruct @MultisamplePropertiesEXT pPMultisampleProperties pure $ (pMultisampleProperties)
src/Vulkan/Extensions/VK_EXT_tooling_info.hs view
@@ -188,6 +188,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -318,12 +319,12 @@ let vkGetPhysicalDeviceToolPropertiesEXT' = mkVkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXTPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPToolCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolPropertiesEXT" (vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pToolCount <- lift $ peek @Word32 pPToolCount pPToolProperties <- ContT $ bracket (callocBytes @PhysicalDeviceToolPropertiesEXT ((fromIntegral (pToolCount)) * 1048)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPToolProperties `advancePtrBytes` (i * 1048) :: Ptr PhysicalDeviceToolPropertiesEXT) . ($ ())) [0..(fromIntegral (pToolCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) ((pPToolProperties))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolPropertiesEXT" (vkGetPhysicalDeviceToolPropertiesEXT' physicalDevice' (pPToolCount) ((pPToolProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pToolCount' <- lift $ peek @Word32 pPToolCount pToolProperties' <- lift $ generateM (fromIntegral (pToolCount')) (\i -> peekCStruct @PhysicalDeviceToolPropertiesEXT (((pPToolProperties) `advancePtrBytes` (1048 * (i)) :: Ptr PhysicalDeviceToolPropertiesEXT)))
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -252,6 +252,7 @@ import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -480,7 +481,7 @@ pPSizes <- ContT $ allocaBytesAligned @DeviceSize (((Data.Vector.length (sizes))) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPSizes `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((sizes)) pure $ pPSizes- lift $ vkCmdBindTransformFeedbackBuffersEXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes+ lift $ traceAroundEvent "vkCmdBindTransformFeedbackBuffersEXT" (vkCmdBindTransformFeedbackBuffersEXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes) pure $ () @@ -646,7 +647,7 @@ pPCounterBufferOffsets <- ContT $ allocaBytesAligned @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets)) pure $ pPCounterBufferOffsets- lift $ vkCmdBeginTransformFeedbackEXT' (commandBufferHandle (commandBuffer)) (firstCounterBuffer) ((fromIntegral pCounterBuffersLength :: Word32)) (pPCounterBuffers) pCounterBufferOffsets+ lift $ traceAroundEvent "vkCmdBeginTransformFeedbackEXT" (vkCmdBeginTransformFeedbackEXT' (commandBufferHandle (commandBuffer)) (firstCounterBuffer) ((fromIntegral pCounterBuffersLength :: Word32)) (pPCounterBuffers) pCounterBufferOffsets) pure $ () -- | This function will call the supplied action between calls to@@ -801,7 +802,7 @@ pPCounterBufferOffsets <- ContT $ allocaBytesAligned @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets)) pure $ pPCounterBufferOffsets- lift $ vkCmdEndTransformFeedbackEXT' (commandBufferHandle (commandBuffer)) (firstCounterBuffer) ((fromIntegral pCounterBuffersLength :: Word32)) (pPCounterBuffers) pCounterBufferOffsets+ lift $ traceAroundEvent "vkCmdEndTransformFeedbackEXT" (vkCmdEndTransformFeedbackEXT' (commandBufferHandle (commandBuffer)) (firstCounterBuffer) ((fromIntegral pCounterBuffersLength :: Word32)) (pPCounterBuffers) pCounterBufferOffsets) pure $ () @@ -1015,7 +1016,7 @@ unless (vkCmdBeginQueryIndexedEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQueryIndexedEXT is null" Nothing Nothing let vkCmdBeginQueryIndexedEXT' = mkVkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXTPtr- vkCmdBeginQueryIndexedEXT' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags) (index)+ traceAroundEvent "vkCmdBeginQueryIndexedEXT" (vkCmdBeginQueryIndexedEXT' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags) (index)) pure $ () -- | This function will call the supplied action between calls to@@ -1137,7 +1138,7 @@ unless (vkCmdEndQueryIndexedEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQueryIndexedEXT is null" Nothing Nothing let vkCmdEndQueryIndexedEXT' = mkVkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXTPtr- vkCmdEndQueryIndexedEXT' (commandBufferHandle (commandBuffer)) (queryPool) (query) (index)+ traceAroundEvent "vkCmdEndQueryIndexedEXT" (vkCmdEndQueryIndexedEXT' (commandBufferHandle (commandBuffer)) (queryPool) (query) (index)) pure $ () @@ -1687,7 +1688,7 @@ unless (vkCmdDrawIndirectByteCountEXTPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectByteCountEXT is null" Nothing Nothing let vkCmdDrawIndirectByteCountEXT' = mkVkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXTPtr- vkCmdDrawIndirectByteCountEXT' (commandBufferHandle (commandBuffer)) (instanceCount) (firstInstance) (counterBuffer) (counterBufferOffset) (counterOffset) (vertexStride)+ traceAroundEvent "vkCmdDrawIndirectByteCountEXT" (vkCmdDrawIndirectByteCountEXT' (commandBufferHandle (commandBuffer)) (instanceCount) (firstInstance) (counterBuffer) (counterBufferOffset) (counterOffset) (vertexStride)) pure $ ()
src/Vulkan/Extensions/VK_EXT_validation_cache.hs view
@@ -142,6 +142,7 @@ 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)@@ -309,7 +310,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPValidationCache <- ContT $ bracket (callocBytes @ValidationCacheEXT 8) free- r <- lift $ vkCreateValidationCacheEXT' (deviceHandle (device)) pCreateInfo pAllocator (pPValidationCache)+ r <- lift $ traceAroundEvent "vkCreateValidationCacheEXT" (vkCreateValidationCacheEXT' (deviceHandle (device)) pCreateInfo pAllocator (pPValidationCache)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pValidationCache <- lift $ peek @ValidationCacheEXT pPValidationCache pure $ (pValidationCache)@@ -397,7 +398,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyValidationCacheEXT' (deviceHandle (device)) (validationCache) pAllocator+ lift $ traceAroundEvent "vkDestroyValidationCacheEXT" (vkDestroyValidationCacheEXT' (deviceHandle (device)) (validationCache) pAllocator) pure $ () @@ -525,11 +526,11 @@ let vkGetValidationCacheDataEXT' = mkVkGetValidationCacheDataEXT vkGetValidationCacheDataEXTPtr let device' = deviceHandle (device) pPDataSize <- ContT $ bracket (callocBytes @CSize 8) free- r <- lift $ vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDataSize <- lift $ peek @CSize pPDataSize pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral (((\(CSize a) -> a) pDataSize)))) free- r' <- lift $ vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (pPData)+ r' <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (pPData)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pDataSize'' <- lift $ peek @CSize pPDataSize pData' <- lift $ packCStringLen (castPtr @() @CChar pPData, (fromIntegral (((\(CSize a) -> a) pDataSize''))))@@ -620,7 +621,7 @@ let vkMergeValidationCachesEXT' = mkVkMergeValidationCachesEXT vkMergeValidationCachesEXTPtr pPSrcCaches <- ContT $ allocaBytesAligned @ValidationCacheEXT ((Data.Vector.length (srcCaches)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPSrcCaches `plusPtr` (8 * (i)) :: Ptr ValidationCacheEXT) (e)) (srcCaches)- r <- lift $ vkMergeValidationCachesEXT' (deviceHandle (device)) (dstCache) ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32)) (pPSrcCaches)+ r <- lift $ traceAroundEvent "vkMergeValidationCachesEXT" (vkMergeValidationCachesEXT' (deviceHandle (device)) (dstCache) ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32)) (pPSrcCaches)) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs view
@@ -104,6 +104,7 @@ 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)@@ -228,7 +229,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateImagePipeSurfaceFUCHSIA' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateImagePipeSurfaceFUCHSIA" (vkCreateImagePipeSurfaceFUCHSIA' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs view
@@ -130,6 +130,7 @@ 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)@@ -258,7 +259,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateStreamDescriptorSurfaceGGP' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateStreamDescriptorSurfaceGGP" (vkCreateStreamDescriptorSurfaceGGP' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs view
@@ -135,6 +135,7 @@ , SwapchainKHR(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -252,7 +253,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRefreshCycleDurationGOOGLE is null" Nothing Nothing let vkGetRefreshCycleDurationGOOGLE' = mkVkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLEPtr pPDisplayTimingProperties <- ContT (withZeroCStruct @RefreshCycleDurationGOOGLE)- r <- lift $ vkGetRefreshCycleDurationGOOGLE' (deviceHandle (device)) (swapchain) (pPDisplayTimingProperties)+ r <- lift $ traceAroundEvent "vkGetRefreshCycleDurationGOOGLE" (vkGetRefreshCycleDurationGOOGLE' (deviceHandle (device)) (swapchain) (pPDisplayTimingProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDisplayTimingProperties <- lift $ peekCStruct @RefreshCycleDurationGOOGLE pPDisplayTimingProperties pure $ (pDisplayTimingProperties)@@ -349,12 +350,12 @@ let vkGetPastPresentationTimingGOOGLE' = mkVkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLEPtr let device' = deviceHandle (device) pPPresentationTimingCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPastPresentationTimingGOOGLE' device' (swapchain) (pPPresentationTimingCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPastPresentationTimingGOOGLE" (vkGetPastPresentationTimingGOOGLE' device' (swapchain) (pPPresentationTimingCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPresentationTimingCount <- lift $ peek @Word32 pPPresentationTimingCount pPPresentationTimings <- ContT $ bracket (callocBytes @PastPresentationTimingGOOGLE ((fromIntegral (pPresentationTimingCount)) * 40)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPPresentationTimings `advancePtrBytes` (i * 40) :: Ptr PastPresentationTimingGOOGLE) . ($ ())) [0..(fromIntegral (pPresentationTimingCount)) - 1]- r' <- lift $ vkGetPastPresentationTimingGOOGLE' device' (swapchain) (pPPresentationTimingCount) ((pPPresentationTimings))+ r' <- lift $ traceAroundEvent "vkGetPastPresentationTimingGOOGLE" (vkGetPastPresentationTimingGOOGLE' device' (swapchain) (pPPresentationTimingCount) ((pPPresentationTimings))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPresentationTimingCount' <- lift $ peek @Word32 pPPresentationTimingCount pPresentationTimings' <- lift $ generateM (fromIntegral (pPresentationTimingCount')) (\i -> peekCStruct @PastPresentationTimingGOOGLE (((pPPresentationTimings) `advancePtrBytes` (40 * (i)) :: Ptr PastPresentationTimingGOOGLE)))
src/Vulkan/Extensions/VK_INTEL_performance_query.hs view
@@ -363,6 +363,7 @@ 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)@@ -492,7 +493,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkInitializePerformanceApiINTEL is null" Nothing Nothing let vkInitializePerformanceApiINTEL' = mkVkInitializePerformanceApiINTEL vkInitializePerformanceApiINTELPtr pInitializeInfo <- ContT $ withCStruct (initializeInfo)- r <- lift $ vkInitializePerformanceApiINTEL' (deviceHandle (device)) pInitializeInfo+ r <- lift $ traceAroundEvent "vkInitializePerformanceApiINTEL" (vkInitializePerformanceApiINTEL' (deviceHandle (device)) pInitializeInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -524,7 +525,7 @@ unless (vkUninitializePerformanceApiINTELPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUninitializePerformanceApiINTEL is null" Nothing Nothing let vkUninitializePerformanceApiINTEL' = mkVkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTELPtr- vkUninitializePerformanceApiINTEL' (deviceHandle (device))+ traceAroundEvent "vkUninitializePerformanceApiINTEL" (vkUninitializePerformanceApiINTEL' (deviceHandle (device))) pure $ () @@ -608,7 +609,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPerformanceMarkerINTEL is null" Nothing Nothing let vkCmdSetPerformanceMarkerINTEL' = mkVkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTELPtr pMarkerInfo <- ContT $ withCStruct (markerInfo)- r <- lift $ vkCmdSetPerformanceMarkerINTEL' (commandBufferHandle (commandBuffer)) pMarkerInfo+ r <- lift $ traceAroundEvent "vkCmdSetPerformanceMarkerINTEL" (vkCmdSetPerformanceMarkerINTEL' (commandBufferHandle (commandBuffer)) pMarkerInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -688,7 +689,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPerformanceStreamMarkerINTEL is null" Nothing Nothing let vkCmdSetPerformanceStreamMarkerINTEL' = mkVkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTELPtr pMarkerInfo <- ContT $ withCStruct (markerInfo)- r <- lift $ vkCmdSetPerformanceStreamMarkerINTEL' (commandBufferHandle (commandBuffer)) pMarkerInfo+ r <- lift $ traceAroundEvent "vkCmdSetPerformanceStreamMarkerINTEL" (vkCmdSetPerformanceStreamMarkerINTEL' (commandBufferHandle (commandBuffer)) pMarkerInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -775,7 +776,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPerformanceOverrideINTEL is null" Nothing Nothing let vkCmdSetPerformanceOverrideINTEL' = mkVkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTELPtr pOverrideInfo <- ContT $ withCStruct (overrideInfo)- r <- lift $ vkCmdSetPerformanceOverrideINTEL' (commandBufferHandle (commandBuffer)) pOverrideInfo+ r <- lift $ traceAroundEvent "vkCmdSetPerformanceOverrideINTEL" (vkCmdSetPerformanceOverrideINTEL' (commandBufferHandle (commandBuffer)) pOverrideInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -830,7 +831,7 @@ let vkAcquirePerformanceConfigurationINTEL' = mkVkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTELPtr pAcquireInfo <- ContT $ withCStruct (acquireInfo) pPConfiguration <- ContT $ bracket (callocBytes @PerformanceConfigurationINTEL 8) free- r <- lift $ vkAcquirePerformanceConfigurationINTEL' (deviceHandle (device)) pAcquireInfo (pPConfiguration)+ r <- lift $ traceAroundEvent "vkAcquirePerformanceConfigurationINTEL" (vkAcquirePerformanceConfigurationINTEL' (deviceHandle (device)) pAcquireInfo (pPConfiguration)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pConfiguration <- lift $ peek @PerformanceConfigurationINTEL pPConfiguration pure $ (pConfiguration)@@ -900,7 +901,7 @@ unless (vkReleasePerformanceConfigurationINTELPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleasePerformanceConfigurationINTEL is null" Nothing Nothing let vkReleasePerformanceConfigurationINTEL' = mkVkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTELPtr- r <- vkReleasePerformanceConfigurationINTEL' (deviceHandle (device)) (configuration)+ r <- traceAroundEvent "vkReleasePerformanceConfigurationINTEL" (vkReleasePerformanceConfigurationINTEL' (deviceHandle (device)) (configuration)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -964,7 +965,7 @@ unless (vkQueueSetPerformanceConfigurationINTELPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueSetPerformanceConfigurationINTEL is null" Nothing Nothing let vkQueueSetPerformanceConfigurationINTEL' = mkVkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTELPtr- r <- vkQueueSetPerformanceConfigurationINTEL' (queueHandle (queue)) (configuration)+ r <- traceAroundEvent "vkQueueSetPerformanceConfigurationINTEL" (vkQueueSetPerformanceConfigurationINTEL' (queueHandle (queue)) (configuration)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -1013,7 +1014,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPerformanceParameterINTEL is null" Nothing Nothing let vkGetPerformanceParameterINTEL' = mkVkGetPerformanceParameterINTEL vkGetPerformanceParameterINTELPtr pPValue <- ContT (withZeroCStruct @PerformanceValueINTEL)- r <- lift $ vkGetPerformanceParameterINTEL' (deviceHandle (device)) (parameter) (pPValue)+ r <- lift $ traceAroundEvent "vkGetPerformanceParameterINTEL" (vkGetPerformanceParameterINTEL' (deviceHandle (device)) (parameter) (pPValue)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pValue <- lift $ peekCStruct @PerformanceValueINTEL pPValue pure $ (pValue)
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -1236,6 +1236,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -1444,7 +1445,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyAccelerationStructureKHR' (deviceHandle (device)) (accelerationStructure) pAllocator+ lift $ traceAroundEvent "vkDestroyAccelerationStructureKHR" (vkDestroyAccelerationStructureKHR' (deviceHandle (device)) (accelerationStructure) pAllocator) pure $ () @@ -1538,7 +1539,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyAccelerationStructureKHR is null" Nothing Nothing let vkCmdCopyAccelerationStructureKHR' = mkVkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHRPtr pInfo <- ContT $ withCStruct (info)- lift $ vkCmdCopyAccelerationStructureKHR' (commandBufferHandle (commandBuffer)) pInfo+ lift $ traceAroundEvent "vkCmdCopyAccelerationStructureKHR" (vkCmdCopyAccelerationStructureKHR' (commandBufferHandle (commandBuffer)) pInfo) pure $ () @@ -1647,7 +1648,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyAccelerationStructureKHR is null" Nothing Nothing let vkCopyAccelerationStructureKHR' = mkVkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHRPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkCopyAccelerationStructureKHR' (deviceHandle (device)) (deferredOperation) pInfo+ r <- lift $ traceAroundEvent "vkCopyAccelerationStructureKHR" (vkCopyAccelerationStructureKHR' (deviceHandle (device)) (deferredOperation) pInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -1790,7 +1791,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyAccelerationStructureToMemoryKHR is null" Nothing Nothing let vkCmdCopyAccelerationStructureToMemoryKHR' = mkVkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHRPtr pInfo <- ContT $ withCStruct (info)- lift $ vkCmdCopyAccelerationStructureToMemoryKHR' (commandBufferHandle (commandBuffer)) pInfo+ lift $ traceAroundEvent "vkCmdCopyAccelerationStructureToMemoryKHR" (vkCmdCopyAccelerationStructureToMemoryKHR' (commandBufferHandle (commandBuffer)) pInfo) pure $ () @@ -1905,7 +1906,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyAccelerationStructureToMemoryKHR is null" Nothing Nothing let vkCopyAccelerationStructureToMemoryKHR' = mkVkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHRPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkCopyAccelerationStructureToMemoryKHR' (deviceHandle (device)) (deferredOperation) pInfo+ r <- lift $ traceAroundEvent "vkCopyAccelerationStructureToMemoryKHR" (vkCopyAccelerationStructureToMemoryKHR' (deviceHandle (device)) (deferredOperation) pInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -2023,7 +2024,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyMemoryToAccelerationStructureKHR is null" Nothing Nothing let vkCmdCopyMemoryToAccelerationStructureKHR' = mkVkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHRPtr pInfo <- ContT $ withCStruct (info)- lift $ vkCmdCopyMemoryToAccelerationStructureKHR' (commandBufferHandle (commandBuffer)) pInfo+ lift $ traceAroundEvent "vkCmdCopyMemoryToAccelerationStructureKHR" (vkCmdCopyMemoryToAccelerationStructureKHR' (commandBufferHandle (commandBuffer)) pInfo) pure $ () @@ -2134,7 +2135,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyMemoryToAccelerationStructureKHR is null" Nothing Nothing let vkCopyMemoryToAccelerationStructureKHR' = mkVkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHRPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkCopyMemoryToAccelerationStructureKHR' (deviceHandle (device)) (deferredOperation) pInfo+ r <- lift $ traceAroundEvent "vkCopyMemoryToAccelerationStructureKHR" (vkCopyMemoryToAccelerationStructureKHR' (deviceHandle (device)) (deferredOperation) pInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -2275,7 +2276,7 @@ let vkCmdWriteAccelerationStructuresPropertiesKHR' = mkVkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHRPtr pPAccelerationStructures <- ContT $ allocaBytesAligned @AccelerationStructureKHR ((Data.Vector.length (accelerationStructures)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPAccelerationStructures `plusPtr` (8 * (i)) :: Ptr AccelerationStructureKHR) (e)) (accelerationStructures)- lift $ vkCmdWriteAccelerationStructuresPropertiesKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (queryPool) (firstQuery)+ lift $ traceAroundEvent "vkCmdWriteAccelerationStructuresPropertiesKHR" (vkCmdWriteAccelerationStructuresPropertiesKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (queryPool) (firstQuery)) pure $ () @@ -2424,7 +2425,7 @@ let vkWriteAccelerationStructuresPropertiesKHR' = mkVkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHRPtr pPAccelerationStructures <- ContT $ allocaBytesAligned @AccelerationStructureKHR ((Data.Vector.length (accelerationStructures)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPAccelerationStructures `plusPtr` (8 * (i)) :: Ptr AccelerationStructureKHR) (e)) (accelerationStructures)- r <- lift $ vkWriteAccelerationStructuresPropertiesKHR' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (CSize (dataSize)) (data') (CSize (stride))+ r <- lift $ traceAroundEvent "vkWriteAccelerationStructuresPropertiesKHR" (vkWriteAccelerationStructuresPropertiesKHR' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (CSize (dataSize)) (data') (CSize (stride))) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -2479,7 +2480,7 @@ let vkGetDeviceAccelerationStructureCompatibilityKHR' = mkVkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHRPtr pVersionInfo <- ContT $ withCStruct (versionInfo) pPCompatibility <- ContT $ bracket (callocBytes @AccelerationStructureCompatibilityKHR 4) free- lift $ vkGetDeviceAccelerationStructureCompatibilityKHR' (deviceHandle (device)) pVersionInfo (pPCompatibility)+ lift $ traceAroundEvent "vkGetDeviceAccelerationStructureCompatibilityKHR" (vkGetDeviceAccelerationStructureCompatibilityKHR' (deviceHandle (device)) pVersionInfo (pPCompatibility)) pCompatibility <- lift $ peek @AccelerationStructureCompatibilityKHR pPCompatibility pure $ (pCompatibility) @@ -2593,7 +2594,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPAccelerationStructure <- ContT $ bracket (callocBytes @AccelerationStructureKHR 8) free- r <- lift $ vkCreateAccelerationStructureKHR' (deviceHandle (device)) pCreateInfo pAllocator (pPAccelerationStructure)+ r <- lift $ traceAroundEvent "vkCreateAccelerationStructureKHR" (vkCreateAccelerationStructureKHR' (deviceHandle (device)) pCreateInfo pAllocator (pPAccelerationStructure)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pAccelerationStructure <- lift $ peek @AccelerationStructureKHR pPAccelerationStructure pure $ (pAccelerationStructure)@@ -3192,7 +3193,7 @@ pPpBuildRangeInfos' <- ContT $ allocaBytesAligned @AccelerationStructureBuildRangeInfoKHR ((Data.Vector.length (e)) * 16) 4 lift $ Data.Vector.imapM_ (\i' e' -> poke (pPpBuildRangeInfos' `plusPtr` (16 * (i')) :: Ptr AccelerationStructureBuildRangeInfoKHR) (e')) (e) lift $ poke (pPpBuildRangeInfos `plusPtr` (8 * (i)) :: Ptr (Ptr AccelerationStructureBuildRangeInfoKHR)) (pPpBuildRangeInfos')) (buildRangeInfos)- lift $ vkCmdBuildAccelerationStructuresKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPpBuildRangeInfos)+ lift $ traceAroundEvent "vkCmdBuildAccelerationStructuresKHR" (vkCmdBuildAccelerationStructuresKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPpBuildRangeInfos)) pure $ () @@ -3821,7 +3822,7 @@ pPpMaxPrimitiveCounts' <- ContT $ allocaBytesAligned @Word32 ((Data.Vector.length (e)) * 4) 4 lift $ Data.Vector.imapM_ (\i' e' -> poke (pPpMaxPrimitiveCounts' `plusPtr` (4 * (i')) :: Ptr Word32) (e')) (e) lift $ poke (pPpMaxPrimitiveCounts `plusPtr` (8 * (i)) :: Ptr (Ptr Word32)) (pPpMaxPrimitiveCounts')) (maxPrimitiveCounts)- lift $ vkCmdBuildAccelerationStructuresIndirectKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPIndirectDeviceAddresses) (pPIndirectStrides) (pPpMaxPrimitiveCounts)+ lift $ traceAroundEvent "vkCmdBuildAccelerationStructuresIndirectKHR" (vkCmdBuildAccelerationStructuresIndirectKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPIndirectDeviceAddresses) (pPIndirectStrides) (pPpMaxPrimitiveCounts)) pure $ () @@ -4286,7 +4287,7 @@ pPpBuildRangeInfos' <- ContT $ allocaBytesAligned @AccelerationStructureBuildRangeInfoKHR ((Data.Vector.length (e)) * 16) 4 lift $ Data.Vector.imapM_ (\i' e' -> poke (pPpBuildRangeInfos' `plusPtr` (16 * (i')) :: Ptr AccelerationStructureBuildRangeInfoKHR) (e')) (e) lift $ poke (pPpBuildRangeInfos `plusPtr` (8 * (i)) :: Ptr (Ptr AccelerationStructureBuildRangeInfoKHR)) (pPpBuildRangeInfos')) (buildRangeInfos)- r <- lift $ vkBuildAccelerationStructuresKHR' (deviceHandle (device)) (deferredOperation) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPpBuildRangeInfos)+ r <- lift $ traceAroundEvent "vkBuildAccelerationStructuresKHR" (vkBuildAccelerationStructuresKHR' (deviceHandle (device)) (deferredOperation) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPpBuildRangeInfos)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -4363,7 +4364,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureDeviceAddressKHR is null" Nothing Nothing let vkGetAccelerationStructureDeviceAddressKHR' = mkVkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHRPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkGetAccelerationStructureDeviceAddressKHR' (deviceHandle (device)) pInfo+ r <- lift $ traceAroundEvent "vkGetAccelerationStructureDeviceAddressKHR" (vkGetAccelerationStructureDeviceAddressKHR' (deviceHandle (device)) pInfo) pure $ (r) @@ -4521,7 +4522,7 @@ pPMaxPrimitiveCounts <- ContT $ allocaBytesAligned @Word32 ((Data.Vector.length (maxPrimitiveCounts)) * 4) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPMaxPrimitiveCounts `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (maxPrimitiveCounts) pPSizeInfo <- ContT (withZeroCStruct @AccelerationStructureBuildSizesInfoKHR)- lift $ vkGetAccelerationStructureBuildSizesKHR' (deviceHandle (device)) (buildType) pBuildInfo (pPMaxPrimitiveCounts) (pPSizeInfo)+ lift $ traceAroundEvent "vkGetAccelerationStructureBuildSizesKHR" (vkGetAccelerationStructureBuildSizesKHR' (deviceHandle (device)) (buildType) pBuildInfo (pPMaxPrimitiveCounts) (pPSizeInfo)) pSizeInfo <- lift $ peekCStruct @AccelerationStructureBuildSizesInfoKHR pPSizeInfo pure $ (pSizeInfo)
src/Vulkan/Extensions/VK_KHR_android_surface.hs view
@@ -172,6 +172,7 @@ 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)@@ -322,7 +323,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateAndroidSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateAndroidSurfaceKHR" (vkCreateAndroidSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -175,6 +175,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Data.Typeable (eqT)@@ -343,7 +344,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer2KHR is null" Nothing Nothing let vkCmdCopyBuffer2KHR' = mkVkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHRPtr pCopyBufferInfo <- ContT $ withCStruct (copyBufferInfo)- lift $ vkCmdCopyBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferInfo+ lift $ traceAroundEvent "vkCmdCopyBuffer2KHR" (vkCmdCopyBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferInfo) pure $ () @@ -434,7 +435,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage2KHR is null" Nothing Nothing let vkCmdCopyImage2KHR' = mkVkCmdCopyImage2KHR vkCmdCopyImage2KHRPtr pCopyImageInfo <- ContT $ withCStruct (copyImageInfo)- lift $ vkCmdCopyImage2KHR' (commandBufferHandle (commandBuffer)) pCopyImageInfo+ lift $ traceAroundEvent "vkCmdCopyImage2KHR" (vkCmdCopyImage2KHR' (commandBufferHandle (commandBuffer)) pCopyImageInfo) pure $ () @@ -524,7 +525,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage2KHR is null" Nothing Nothing let vkCmdBlitImage2KHR' = mkVkCmdBlitImage2KHR vkCmdBlitImage2KHRPtr pBlitImageInfo <- ContT $ withCStruct (blitImageInfo)- lift $ vkCmdBlitImage2KHR' (commandBufferHandle (commandBuffer)) pBlitImageInfo+ lift $ traceAroundEvent "vkCmdBlitImage2KHR" (vkCmdBlitImage2KHR' (commandBufferHandle (commandBuffer)) pBlitImageInfo) pure $ () @@ -617,7 +618,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage2KHR is null" Nothing Nothing let vkCmdCopyBufferToImage2KHR' = mkVkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHRPtr pCopyBufferToImageInfo <- ContT $ withCStruct (copyBufferToImageInfo)- lift $ vkCmdCopyBufferToImage2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferToImageInfo+ lift $ traceAroundEvent "vkCmdCopyBufferToImage2KHR" (vkCmdCopyBufferToImage2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferToImageInfo) pure $ () @@ -710,7 +711,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer2KHR is null" Nothing Nothing let vkCmdCopyImageToBuffer2KHR' = mkVkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHRPtr pCopyImageToBufferInfo <- ContT $ withCStruct (copyImageToBufferInfo)- lift $ vkCmdCopyImageToBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyImageToBufferInfo+ lift $ traceAroundEvent "vkCmdCopyImageToBuffer2KHR" (vkCmdCopyImageToBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyImageToBufferInfo) pure $ () @@ -800,7 +801,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage2KHR is null" Nothing Nothing let vkCmdResolveImage2KHR' = mkVkCmdResolveImage2KHR vkCmdResolveImage2KHRPtr pResolveImageInfo <- ContT $ withCStruct (resolveImageInfo)- lift $ vkCmdResolveImage2KHR' (commandBufferHandle (commandBuffer)) pResolveImageInfo+ lift $ traceAroundEvent "vkCmdResolveImage2KHR" (vkCmdResolveImage2KHR' (commandBufferHandle (commandBuffer)) pResolveImageInfo) pure $ ()
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -246,6 +246,7 @@ , DeferredOperationKHR(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -340,7 +341,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPDeferredOperation <- ContT $ bracket (callocBytes @DeferredOperationKHR 8) free- r <- lift $ vkCreateDeferredOperationKHR' (deviceHandle (device)) pAllocator (pPDeferredOperation)+ r <- lift $ traceAroundEvent "vkCreateDeferredOperationKHR" (vkCreateDeferredOperationKHR' (deviceHandle (device)) pAllocator (pPDeferredOperation)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDeferredOperation <- lift $ peek @DeferredOperationKHR pPDeferredOperation pure $ (pDeferredOperation)@@ -429,7 +430,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyDeferredOperationKHR' (deviceHandle (device)) (operation) pAllocator+ lift $ traceAroundEvent "vkDestroyDeferredOperationKHR" (vkDestroyDeferredOperationKHR' (deviceHandle (device)) (operation) pAllocator) pure $ () @@ -510,7 +511,7 @@ unless (vkGetDeferredOperationMaxConcurrencyKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeferredOperationMaxConcurrencyKHR is null" Nothing Nothing let vkGetDeferredOperationMaxConcurrencyKHR' = mkVkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHRPtr- r <- vkGetDeferredOperationMaxConcurrencyKHR' (deviceHandle (device)) (operation)+ r <- traceAroundEvent "vkGetDeferredOperationMaxConcurrencyKHR" (vkGetDeferredOperationMaxConcurrencyKHR' (deviceHandle (device)) (operation)) pure $ (r) @@ -572,7 +573,7 @@ unless (vkGetDeferredOperationResultKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeferredOperationResultKHR is null" Nothing Nothing let vkGetDeferredOperationResultKHR' = mkVkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHRPtr- r <- vkGetDeferredOperationResultKHR' (deviceHandle (device)) (operation)+ r <- traceAroundEvent "vkGetDeferredOperationResultKHR" (vkGetDeferredOperationResultKHR' (deviceHandle (device)) (operation)) pure $ (r) @@ -673,7 +674,7 @@ unless (vkDeferredOperationJoinKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDeferredOperationJoinKHR is null" Nothing Nothing let vkDeferredOperationJoinKHR' = mkVkDeferredOperationJoinKHR vkDeferredOperationJoinKHRPtr- r <- vkDeferredOperationJoinKHR' (deviceHandle (device)) (operation)+ r <- traceAroundEvent "vkDeferredOperationJoinKHR" (vkDeferredOperationJoinKHR' (deviceHandle (device)) (operation)) when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r)
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -548,6 +548,7 @@ 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)@@ -706,12 +707,12 @@ let vkGetPhysicalDeviceDisplayPropertiesKHR' = mkVkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceDisplayPropertiesKHR' physicalDevice' (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPropertiesKHR" (vkGetPhysicalDeviceDisplayPropertiesKHR' physicalDevice' (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @DisplayPropertiesKHR ((fromIntegral (pPropertyCount)) * 48)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 48) :: Ptr DisplayPropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceDisplayPropertiesKHR' physicalDevice' (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPropertiesKHR" (vkGetPhysicalDeviceDisplayPropertiesKHR' physicalDevice' (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayPropertiesKHR (((pPProperties) `advancePtrBytes` (48 * (i)) :: Ptr DisplayPropertiesKHR)))@@ -783,12 +784,12 @@ let vkGetPhysicalDeviceDisplayPlanePropertiesKHR' = mkVkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceDisplayPlanePropertiesKHR' physicalDevice' (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" (vkGetPhysicalDeviceDisplayPlanePropertiesKHR' physicalDevice' (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @DisplayPlanePropertiesKHR ((fromIntegral (pPropertyCount)) * 16)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 16) :: Ptr DisplayPlanePropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceDisplayPlanePropertiesKHR' physicalDevice' (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" (vkGetPhysicalDeviceDisplayPlanePropertiesKHR' physicalDevice' (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayPlanePropertiesKHR (((pPProperties) `advancePtrBytes` (16 * (i)) :: Ptr DisplayPlanePropertiesKHR)))@@ -874,11 +875,11 @@ let vkGetDisplayPlaneSupportedDisplaysKHR' = mkVkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPDisplayCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetDisplayPlaneSupportedDisplaysKHR' physicalDevice' (planeIndex) (pPDisplayCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetDisplayPlaneSupportedDisplaysKHR" (vkGetDisplayPlaneSupportedDisplaysKHR' physicalDevice' (planeIndex) (pPDisplayCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDisplayCount <- lift $ peek @Word32 pPDisplayCount pPDisplays <- ContT $ bracket (callocBytes @DisplayKHR ((fromIntegral (pDisplayCount)) * 8)) free- r' <- lift $ vkGetDisplayPlaneSupportedDisplaysKHR' physicalDevice' (planeIndex) (pPDisplayCount) (pPDisplays)+ r' <- lift $ traceAroundEvent "vkGetDisplayPlaneSupportedDisplaysKHR" (vkGetDisplayPlaneSupportedDisplaysKHR' physicalDevice' (planeIndex) (pPDisplayCount) (pPDisplays)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pDisplayCount' <- lift $ peek @Word32 pPDisplayCount pDisplays' <- lift $ generateM (fromIntegral (pDisplayCount')) (\i -> peek @DisplayKHR ((pPDisplays `advancePtrBytes` (8 * (i)) :: Ptr DisplayKHR)))@@ -962,12 +963,12 @@ let vkGetDisplayModePropertiesKHR' = mkVkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetDisplayModePropertiesKHR' physicalDevice' (display) (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetDisplayModePropertiesKHR" (vkGetDisplayModePropertiesKHR' physicalDevice' (display) (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @DisplayModePropertiesKHR ((fromIntegral (pPropertyCount)) * 24)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 24) :: Ptr DisplayModePropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkGetDisplayModePropertiesKHR' physicalDevice' (display) (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetDisplayModePropertiesKHR" (vkGetDisplayModePropertiesKHR' physicalDevice' (display) (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayModePropertiesKHR (((pPProperties) `advancePtrBytes` (24 * (i)) :: Ptr DisplayModePropertiesKHR)))@@ -1055,7 +1056,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPMode <- ContT $ bracket (callocBytes @DisplayModeKHR 8) free- r <- lift $ vkCreateDisplayModeKHR' (physicalDeviceHandle (physicalDevice)) (display) pCreateInfo pAllocator (pPMode)+ r <- lift $ traceAroundEvent "vkCreateDisplayModeKHR" (vkCreateDisplayModeKHR' (physicalDeviceHandle (physicalDevice)) (display) pCreateInfo pAllocator (pPMode)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pMode <- lift $ peek @DisplayModeKHR pPMode pure $ (pMode)@@ -1123,7 +1124,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDisplayPlaneCapabilitiesKHR is null" Nothing Nothing let vkGetDisplayPlaneCapabilitiesKHR' = mkVkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHRPtr pPCapabilities <- ContT (withZeroCStruct @DisplayPlaneCapabilitiesKHR)- r <- lift $ vkGetDisplayPlaneCapabilitiesKHR' (physicalDeviceHandle (physicalDevice)) (mode) (planeIndex) (pPCapabilities)+ r <- lift $ traceAroundEvent "vkGetDisplayPlaneCapabilitiesKHR" (vkGetDisplayPlaneCapabilitiesKHR' (physicalDeviceHandle (physicalDevice)) (mode) (planeIndex) (pPCapabilities)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCapabilities <- lift $ peekCStruct @DisplayPlaneCapabilitiesKHR pPCapabilities pure $ (pCapabilities)@@ -1199,7 +1200,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateDisplayPlaneSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateDisplayPlaneSurfaceKHR" (vkCreateDisplayPlaneSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -222,6 +222,7 @@ , SwapchainCreateFlagsKHR ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -404,7 +405,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSwapchains <- ContT $ bracket (callocBytes @SwapchainKHR ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free- r <- lift $ vkCreateSharedSwapchainsKHR' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPSwapchains)+ r <- lift $ traceAroundEvent "vkCreateSharedSwapchainsKHR" (vkCreateSharedSwapchainsKHR' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPSwapchains)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSwapchains <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @SwapchainKHR ((pPSwapchains `advancePtrBytes` (8 * (i)) :: Ptr SwapchainKHR))) pure $ (pSwapchains)
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs view
@@ -113,6 +113,7 @@ , pattern KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -237,7 +238,7 @@ let vkGetFenceFdKHR' = mkVkGetFenceFdKHR vkGetFenceFdKHRPtr pGetFdInfo <- ContT $ withCStruct (getFdInfo) pPFd <- ContT $ bracket (callocBytes @CInt 4) free- r <- lift $ vkGetFenceFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd)+ r <- lift $ traceAroundEvent "vkGetFenceFdKHR" (vkGetFenceFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFd <- lift $ peek @CInt pPFd pure $ (((\(CInt a) -> a) pFd))@@ -299,7 +300,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportFenceFdKHR is null" Nothing Nothing let vkImportFenceFdKHR' = mkVkImportFenceFdKHR vkImportFenceFdKHRPtr pImportFenceFdInfo <- ContT $ withCStruct (importFenceFdInfo)- r <- lift $ vkImportFenceFdKHR' (deviceHandle (device)) pImportFenceFdInfo+ r <- lift $ traceAroundEvent "vkImportFenceFdKHR" (vkImportFenceFdKHR' (deviceHandle (device)) pImportFenceFdInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -137,6 +137,7 @@ , SECURITY_ATTRIBUTES ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -251,7 +252,7 @@ let vkGetFenceWin32HandleKHR' = mkVkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHRPtr pGetWin32HandleInfo <- ContT $ withCStruct (getWin32HandleInfo) pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free- r <- lift $ vkGetFenceWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle)+ r <- lift $ traceAroundEvent "vkGetFenceWin32HandleKHR" (vkGetFenceWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pHandle <- lift $ peek @HANDLE pPHandle pure $ (pHandle)@@ -314,7 +315,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportFenceWin32HandleKHR is null" Nothing Nothing let vkImportFenceWin32HandleKHR' = mkVkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHRPtr pImportFenceWin32HandleInfo <- ContT $ withCStruct (importFenceWin32HandleInfo)- r <- lift $ vkImportFenceWin32HandleKHR' (deviceHandle (device)) pImportFenceWin32HandleInfo+ r <- lift $ traceAroundEvent "vkImportFenceWin32HandleKHR" (vkImportFenceWin32HandleKHR' (deviceHandle (device)) pImportFenceWin32HandleInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -135,6 +135,7 @@ , pattern KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -246,7 +247,7 @@ let vkGetMemoryFdKHR' = mkVkGetMemoryFdKHR vkGetMemoryFdKHRPtr pGetFdInfo <- ContT $ withCStruct (getFdInfo) pPFd <- ContT $ bracket (callocBytes @CInt 4) free- r <- lift $ vkGetMemoryFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd)+ r <- lift $ traceAroundEvent "vkGetMemoryFdKHR" (vkGetMemoryFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFd <- lift $ peek @CInt pPFd pure $ (((\(CInt a) -> a) pFd))@@ -309,7 +310,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryFdPropertiesKHR is null" Nothing Nothing let vkGetMemoryFdPropertiesKHR' = mkVkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHRPtr pPMemoryFdProperties <- ContT (withZeroCStruct @MemoryFdPropertiesKHR)- r <- lift $ vkGetMemoryFdPropertiesKHR' (deviceHandle (device)) (handleType) (CInt (fd)) (pPMemoryFdProperties)+ r <- lift $ traceAroundEvent "vkGetMemoryFdPropertiesKHR" (vkGetMemoryFdPropertiesKHR' (deviceHandle (device)) (handleType) (CInt (fd)) (pPMemoryFdProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pMemoryFdProperties <- lift $ peekCStruct @MemoryFdPropertiesKHR pPMemoryFdProperties pure $ (pMemoryFdProperties)
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -151,6 +151,7 @@ , SECURITY_ATTRIBUTES ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -269,7 +270,7 @@ let vkGetMemoryWin32HandleKHR' = mkVkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHRPtr pGetWin32HandleInfo <- ContT $ withCStruct (getWin32HandleInfo) pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free- r <- lift $ vkGetMemoryWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle)+ r <- lift $ traceAroundEvent "vkGetMemoryWin32HandleKHR" (vkGetMemoryWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pHandle <- lift $ peek @HANDLE pPHandle pure $ (pHandle)@@ -331,7 +332,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryWin32HandlePropertiesKHR is null" Nothing Nothing let vkGetMemoryWin32HandlePropertiesKHR' = mkVkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHRPtr pPMemoryWin32HandleProperties <- ContT (withZeroCStruct @MemoryWin32HandlePropertiesKHR)- r <- lift $ vkGetMemoryWin32HandlePropertiesKHR' (deviceHandle (device)) (handleType) (handle) (pPMemoryWin32HandleProperties)+ r <- lift $ traceAroundEvent "vkGetMemoryWin32HandlePropertiesKHR" (vkGetMemoryWin32HandlePropertiesKHR' (deviceHandle (device)) (handleType) (handle) (pPMemoryWin32HandleProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pMemoryWin32HandleProperties <- lift $ peekCStruct @MemoryWin32HandlePropertiesKHR pPMemoryWin32HandleProperties pure $ (pMemoryWin32HandleProperties)
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -117,6 +117,7 @@ , pattern KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -237,7 +238,7 @@ let vkGetSemaphoreFdKHR' = mkVkGetSemaphoreFdKHR vkGetSemaphoreFdKHRPtr pGetFdInfo <- ContT $ withCStruct (getFdInfo) pPFd <- ContT $ bracket (callocBytes @CInt 4) free- r <- lift $ vkGetSemaphoreFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd)+ r <- lift $ traceAroundEvent "vkGetSemaphoreFdKHR" (vkGetSemaphoreFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFd <- lift $ peek @CInt pPFd pure $ (((\(CInt a) -> a) pFd))@@ -299,7 +300,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportSemaphoreFdKHR is null" Nothing Nothing let vkImportSemaphoreFdKHR' = mkVkImportSemaphoreFdKHR vkImportSemaphoreFdKHRPtr pImportSemaphoreFdInfo <- ContT $ withCStruct (importSemaphoreFdInfo)- r <- lift $ vkImportSemaphoreFdKHR' (deviceHandle (device)) pImportSemaphoreFdInfo+ r <- lift $ traceAroundEvent "vkImportSemaphoreFdKHR" (vkImportSemaphoreFdKHR' (deviceHandle (device)) pImportSemaphoreFdInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -162,6 +162,7 @@ , SECURITY_ATTRIBUTES ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -286,7 +287,7 @@ let vkGetSemaphoreWin32HandleKHR' = mkVkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHRPtr pGetWin32HandleInfo <- ContT $ withCStruct (getWin32HandleInfo) pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free- r <- lift $ vkGetSemaphoreWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle)+ r <- lift $ traceAroundEvent "vkGetSemaphoreWin32HandleKHR" (vkGetSemaphoreWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pHandle <- lift $ peek @HANDLE pPHandle pure $ (pHandle)@@ -350,7 +351,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportSemaphoreWin32HandleKHR is null" Nothing Nothing let vkImportSemaphoreWin32HandleKHR' = mkVkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHRPtr pImportSemaphoreWin32HandleInfo <- ContT $ withCStruct (importSemaphoreWin32HandleInfo)- r <- lift $ vkImportSemaphoreWin32HandleKHR' (deviceHandle (device)) pImportSemaphoreWin32HandleInfo+ r <- lift $ traceAroundEvent "vkImportSemaphoreWin32HandleKHR" (vkImportSemaphoreWin32HandleKHR' (deviceHandle (device)) pImportSemaphoreWin32HandleInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r))
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -226,6 +226,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -450,7 +451,7 @@ (e0, e1) -> do poke (pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (e0) poke (pCombinerOps' `plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (e1)- lift $ vkCmdSetFragmentShadingRateKHR' (commandBufferHandle (commandBuffer)) pFragmentSize (pCombinerOps)+ lift $ traceAroundEvent "vkCmdSetFragmentShadingRateKHR" (vkCmdSetFragmentShadingRateKHR' (commandBufferHandle (commandBuffer)) pFragmentSize (pCombinerOps)) pure $ () @@ -584,12 +585,12 @@ let vkGetPhysicalDeviceFragmentShadingRatesKHR' = mkVkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPFragmentShadingRateCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pFragmentShadingRateCount <- lift $ peek @Word32 pPFragmentShadingRateCount pPFragmentShadingRates <- ContT $ bracket (callocBytes @PhysicalDeviceFragmentShadingRateKHR ((fromIntegral (pFragmentShadingRateCount)) * 32)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPFragmentShadingRates `advancePtrBytes` (i * 32) :: Ptr PhysicalDeviceFragmentShadingRateKHR) . ($ ())) [0..(fromIntegral (pFragmentShadingRateCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) ((pPFragmentShadingRates))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) ((pPFragmentShadingRates))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pFragmentShadingRateCount' <- lift $ peek @Word32 pPFragmentShadingRateCount pFragmentShadingRates' <- lift $ generateM (fromIntegral (pFragmentShadingRateCount')) (\i -> peekCStruct @PhysicalDeviceFragmentShadingRateKHR (((pPFragmentShadingRates) `advancePtrBytes` (32 * (i)) :: Ptr PhysicalDeviceFragmentShadingRateKHR)))
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs view
@@ -173,6 +173,7 @@ , SurfaceTransformFlagsKHR ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -305,12 +306,12 @@ let vkGetPhysicalDeviceDisplayProperties2KHR' = mkVkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceDisplayProperties2KHR' physicalDevice' (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR' physicalDevice' (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @DisplayProperties2KHR ((fromIntegral (pPropertyCount)) * 64)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 64) :: Ptr DisplayProperties2KHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceDisplayProperties2KHR' physicalDevice' (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR' physicalDevice' (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayProperties2KHR (((pPProperties) `advancePtrBytes` (64 * (i)) :: Ptr DisplayProperties2KHR)))@@ -378,12 +379,12 @@ let vkGetPhysicalDeviceDisplayPlaneProperties2KHR' = mkVkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceDisplayPlaneProperties2KHR' physicalDevice' (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR' physicalDevice' (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @DisplayPlaneProperties2KHR ((fromIntegral (pPropertyCount)) * 32)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 32) :: Ptr DisplayPlaneProperties2KHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceDisplayPlaneProperties2KHR' physicalDevice' (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR' physicalDevice' (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayPlaneProperties2KHR (((pPProperties) `advancePtrBytes` (32 * (i)) :: Ptr DisplayPlaneProperties2KHR)))@@ -459,12 +460,12 @@ let vkGetDisplayModeProperties2KHR' = mkVkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetDisplayModeProperties2KHR' physicalDevice' (display) (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR' physicalDevice' (display) (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @DisplayModeProperties2KHR ((fromIntegral (pPropertyCount)) * 40)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 40) :: Ptr DisplayModeProperties2KHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkGetDisplayModeProperties2KHR' physicalDevice' (display) (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR' physicalDevice' (display) (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayModeProperties2KHR (((pPProperties) `advancePtrBytes` (40 * (i)) :: Ptr DisplayModeProperties2KHR)))@@ -528,7 +529,7 @@ let vkGetDisplayPlaneCapabilities2KHR' = mkVkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHRPtr pDisplayPlaneInfo <- ContT $ withCStruct (displayPlaneInfo) pPCapabilities <- ContT (withZeroCStruct @DisplayPlaneCapabilities2KHR)- r <- lift $ vkGetDisplayPlaneCapabilities2KHR' (physicalDeviceHandle (physicalDevice)) pDisplayPlaneInfo (pPCapabilities)+ r <- lift $ traceAroundEvent "vkGetDisplayPlaneCapabilities2KHR" (vkGetDisplayPlaneCapabilities2KHR' (physicalDeviceHandle (physicalDevice)) pDisplayPlaneInfo (pPCapabilities)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCapabilities <- lift $ peekCStruct @DisplayPlaneCapabilities2KHR pPCapabilities pure $ (pCapabilities)
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -160,6 +160,7 @@ , SurfaceTransformFlagsKHR ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -317,7 +318,7 @@ let vkGetPhysicalDeviceSurfaceCapabilities2KHR' = mkVkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHRPtr pSurfaceInfo <- ContT $ withCStruct (surfaceInfo) pPSurfaceCapabilities <- ContT (withZeroCStruct @(SurfaceCapabilities2KHR _))- r <- lift $ vkGetPhysicalDeviceSurfaceCapabilities2KHR' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pSurfaceInfo) (forgetExtensions (pPSurfaceCapabilities))+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilities2KHR" (vkGetPhysicalDeviceSurfaceCapabilities2KHR' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pSurfaceInfo) (forgetExtensions (pPSurfaceCapabilities))) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurfaceCapabilities <- lift $ peekCStruct @(SurfaceCapabilities2KHR _) pPSurfaceCapabilities pure $ (pSurfaceCapabilities)@@ -421,12 +422,12 @@ pSurfaceInfo <- ContT $ withCStruct (surfaceInfo) let x9 = forgetExtensions pSurfaceInfo pPSurfaceFormatCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurfaceFormatCount <- lift $ peek @Word32 pPSurfaceFormatCount pPSurfaceFormats <- ContT $ bracket (callocBytes @SurfaceFormat2KHR ((fromIntegral (pSurfaceFormatCount)) * 24)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSurfaceFormats `advancePtrBytes` (i * 24) :: Ptr SurfaceFormat2KHR) . ($ ())) [0..(fromIntegral (pSurfaceFormatCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) ((pPSurfaceFormats))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) ((pPSurfaceFormats))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pSurfaceFormatCount' <- lift $ peek @Word32 pPSurfaceFormatCount pSurfaceFormats' <- lift $ generateM (fromIntegral (pSurfaceFormatCount')) (\i -> peekCStruct @SurfaceFormat2KHR (((pPSurfaceFormats) `advancePtrBytes` (24 * (i)) :: Ptr SurfaceFormat2KHR)))
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -535,6 +535,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -706,14 +707,14 @@ let vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' = mkVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPCounterCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' physicalDevice' (queueFamilyIndex) (pPCounterCount) (nullPtr) (nullPtr)+ r <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' physicalDevice' (queueFamilyIndex) (pPCounterCount) (nullPtr) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCounterCount <- lift $ peek @Word32 pPCounterCount pPCounters <- ContT $ bracket (callocBytes @PerformanceCounterKHR ((fromIntegral (pCounterCount)) * 48)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCounters `advancePtrBytes` (i * 48) :: Ptr PerformanceCounterKHR) . ($ ())) [0..(fromIntegral (pCounterCount)) - 1] pPCounterDescriptions <- ContT $ bracket (callocBytes @PerformanceCounterDescriptionKHR ((fromIntegral (pCounterCount)) * 792)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCounterDescriptions `advancePtrBytes` (i * 792) :: Ptr PerformanceCounterDescriptionKHR) . ($ ())) [0..(fromIntegral (pCounterCount)) - 1]- r' <- lift $ vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' physicalDevice' (queueFamilyIndex) (pPCounterCount) ((pPCounters)) ((pPCounterDescriptions))+ r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' physicalDevice' (queueFamilyIndex) (pPCounterCount) ((pPCounters)) ((pPCounterDescriptions))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pCounterCount' <- lift $ peek @Word32 pPCounterCount let x33 = pCounterCount'@@ -772,7 +773,7 @@ let vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' = mkVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRPtr pPerformanceQueryCreateInfo <- ContT $ withCStruct (performanceQueryCreateInfo) pPNumPasses <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' (physicalDeviceHandle (physicalDevice)) pPerformanceQueryCreateInfo (pPNumPasses)+ lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" (vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' (physicalDeviceHandle (physicalDevice)) pPerformanceQueryCreateInfo (pPNumPasses)) pNumPasses <- lift $ peek @Word32 pPNumPasses pure $ (pNumPasses) @@ -826,7 +827,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireProfilingLockKHR is null" Nothing Nothing let vkAcquireProfilingLockKHR' = mkVkAcquireProfilingLockKHR vkAcquireProfilingLockKHRPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkAcquireProfilingLockKHR' (deviceHandle (device)) pInfo+ r <- lift $ traceAroundEvent "vkAcquireProfilingLockKHR" (vkAcquireProfilingLockKHR' (deviceHandle (device)) pInfo) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -863,7 +864,7 @@ unless (vkReleaseProfilingLockKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseProfilingLockKHR is null" Nothing Nothing let vkReleaseProfilingLockKHR' = mkVkReleaseProfilingLockKHR vkReleaseProfilingLockKHRPtr- vkReleaseProfilingLockKHR' (deviceHandle (device))+ traceAroundEvent "vkReleaseProfilingLockKHR" (vkReleaseProfilingLockKHR' (deviceHandle (device))) pure $ ()
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -202,6 +202,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -363,12 +364,12 @@ let device' = deviceHandle (device) pPipelineInfo <- ContT $ withCStruct (pipelineInfo) pPExecutableCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPipelineExecutablePropertiesKHR' device' pPipelineInfo (pPExecutableCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPipelineExecutablePropertiesKHR" (vkGetPipelineExecutablePropertiesKHR' device' pPipelineInfo (pPExecutableCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pExecutableCount <- lift $ peek @Word32 pPExecutableCount pPProperties <- ContT $ bracket (callocBytes @PipelineExecutablePropertiesKHR ((fromIntegral (pExecutableCount)) * 536)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 536) :: Ptr PipelineExecutablePropertiesKHR) . ($ ())) [0..(fromIntegral (pExecutableCount)) - 1]- r' <- lift $ vkGetPipelineExecutablePropertiesKHR' device' pPipelineInfo (pPExecutableCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetPipelineExecutablePropertiesKHR" (vkGetPipelineExecutablePropertiesKHR' device' pPipelineInfo (pPExecutableCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pExecutableCount' <- lift $ peek @Word32 pPExecutableCount pProperties' <- lift $ generateM (fromIntegral (pExecutableCount')) (\i -> peekCStruct @PipelineExecutablePropertiesKHR (((pPProperties) `advancePtrBytes` (536 * (i)) :: Ptr PipelineExecutablePropertiesKHR)))@@ -466,12 +467,12 @@ let device' = deviceHandle (device) pExecutableInfo <- ContT $ withCStruct (executableInfo) pPStatisticCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPipelineExecutableStatisticsKHR' device' pExecutableInfo (pPStatisticCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPipelineExecutableStatisticsKHR" (vkGetPipelineExecutableStatisticsKHR' device' pExecutableInfo (pPStatisticCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pStatisticCount <- lift $ peek @Word32 pPStatisticCount pPStatistics <- ContT $ bracket (callocBytes @PipelineExecutableStatisticKHR ((fromIntegral (pStatisticCount)) * 544)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPStatistics `advancePtrBytes` (i * 544) :: Ptr PipelineExecutableStatisticKHR) . ($ ())) [0..(fromIntegral (pStatisticCount)) - 1]- r' <- lift $ vkGetPipelineExecutableStatisticsKHR' device' pExecutableInfo (pPStatisticCount) ((pPStatistics))+ r' <- lift $ traceAroundEvent "vkGetPipelineExecutableStatisticsKHR" (vkGetPipelineExecutableStatisticsKHR' device' pExecutableInfo (pPStatisticCount) ((pPStatistics))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pStatisticCount' <- lift $ peek @Word32 pPStatisticCount pStatistics' <- lift $ generateM (fromIntegral (pStatisticCount')) (\i -> peekCStruct @PipelineExecutableStatisticKHR (((pPStatistics) `advancePtrBytes` (544 * (i)) :: Ptr PipelineExecutableStatisticKHR)))@@ -578,12 +579,12 @@ let device' = deviceHandle (device) pExecutableInfo <- ContT $ withCStruct (executableInfo) pPInternalRepresentationCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPipelineExecutableInternalRepresentationsKHR' device' pExecutableInfo (pPInternalRepresentationCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPipelineExecutableInternalRepresentationsKHR" (vkGetPipelineExecutableInternalRepresentationsKHR' device' pExecutableInfo (pPInternalRepresentationCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pInternalRepresentationCount <- lift $ peek @Word32 pPInternalRepresentationCount pPInternalRepresentations <- ContT $ bracket (callocBytes @PipelineExecutableInternalRepresentationKHR ((fromIntegral (pInternalRepresentationCount)) * 552)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPInternalRepresentations `advancePtrBytes` (i * 552) :: Ptr PipelineExecutableInternalRepresentationKHR) . ($ ())) [0..(fromIntegral (pInternalRepresentationCount)) - 1]- r' <- lift $ vkGetPipelineExecutableInternalRepresentationsKHR' device' pExecutableInfo (pPInternalRepresentationCount) ((pPInternalRepresentations))+ r' <- lift $ traceAroundEvent "vkGetPipelineExecutableInternalRepresentationsKHR" (vkGetPipelineExecutableInternalRepresentationsKHR' device' pExecutableInfo (pPInternalRepresentationCount) ((pPInternalRepresentations))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pInternalRepresentationCount' <- lift $ peek @Word32 pPInternalRepresentationCount pInternalRepresentations' <- lift $ generateM (fromIntegral (pInternalRepresentationCount')) (\i -> peekCStruct @PipelineExecutableInternalRepresentationKHR (((pPInternalRepresentations) `advancePtrBytes` (552 * (i)) :: Ptr PipelineExecutableInternalRepresentationKHR)))
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -135,6 +135,7 @@ , pattern KHR_PUSH_DESCRIPTOR_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -345,7 +346,7 @@ let vkCmdPushDescriptorSetKHR' = mkVkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHRPtr pPDescriptorWrites <- ContT $ allocaBytesAligned @(WriteDescriptorSet _) ((Data.Vector.length (descriptorWrites)) * 64) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPDescriptorWrites `plusPtr` (64 * (i)) :: Ptr (WriteDescriptorSet _))) (e) . ($ ())) (descriptorWrites)- lift $ vkCmdPushDescriptorSetKHR' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (set) ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32)) (forgetExtensions (pPDescriptorWrites))+ lift $ traceAroundEvent "vkCmdPushDescriptorSetKHR" (vkCmdPushDescriptorSetKHR' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (set) ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32)) (forgetExtensions (pPDescriptorWrites))) pure $ () @@ -497,7 +498,7 @@ unless (vkCmdPushDescriptorSetWithTemplateKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushDescriptorSetWithTemplateKHR is null" Nothing Nothing let vkCmdPushDescriptorSetWithTemplateKHR' = mkVkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHRPtr- vkCmdPushDescriptorSetWithTemplateKHR' (commandBufferHandle (commandBuffer)) (descriptorUpdateTemplate) (layout) (set) (data')+ traceAroundEvent "vkCmdPushDescriptorSetWithTemplateKHR" (vkCmdPushDescriptorSetWithTemplateKHR' (commandBufferHandle (commandBuffer)) (descriptorUpdateTemplate) (layout) (set) (data')) pure $ ()
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -289,7 +289,7 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIDKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR> -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR> --@@ -757,6 +757,7 @@ 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)@@ -1249,16 +1250,8 @@ -- /must/ have been created with -- 'RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR' ----- - #VUID-vkCmdTraceRaysKHR-commandBuffer-02712# If @commandBuffer@ is a--- protected command buffer, any resource written to by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be an unprotected resource------ - #VUID-vkCmdTraceRaysKHR-commandBuffer-02713# If @commandBuffer@ is a--- protected command buffer, pipeline stages other than the--- framebuffer-space and compute stages in the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point /must/ not write to any resource+-- - #VUID-vkCmdTraceRaysKHR-commandBuffer-04625# @commandBuffer@ /must/+-- not be a protected command buffer -- -- - #VUID-vkCmdTraceRaysKHR-width-03626# @width@ /must/ be less than or -- equal to@@ -1368,7 +1361,7 @@ pMissShaderBindingTable <- ContT $ withCStruct (missShaderBindingTable) pHitShaderBindingTable <- ContT $ withCStruct (hitShaderBindingTable) pCallableShaderBindingTable <- ContT $ withCStruct (callableShaderBindingTable)- lift $ vkCmdTraceRaysKHR' (commandBufferHandle (commandBuffer)) pRaygenShaderBindingTable pMissShaderBindingTable pHitShaderBindingTable pCallableShaderBindingTable (width) (height) (depth)+ lift $ traceAroundEvent "vkCmdTraceRaysKHR" (vkCmdTraceRaysKHR' (commandBufferHandle (commandBuffer)) pRaygenShaderBindingTable pMissShaderBindingTable pHitShaderBindingTable pCallableShaderBindingTable (width) (height) (depth)) pure $ () @@ -1384,6 +1377,9 @@ -- -- == Valid Usage --+-- - #VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619#+-- @pipeline@ /must/ be a ray tracing pipeline+-- -- - #VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050# -- @firstGroup@ /must/ be less than the number of shader groups in -- @pipeline@@@ -1458,7 +1454,7 @@ unless (vkGetRayTracingShaderGroupHandlesKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRayTracingShaderGroupHandlesKHR is null" Nothing Nothing let vkGetRayTracingShaderGroupHandlesKHR' = mkVkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHRPtr- r <- vkGetRayTracingShaderGroupHandlesKHR' (deviceHandle (device)) (pipeline) (firstGroup) (groupCount) (CSize (dataSize)) (data')+ r <- traceAroundEvent "vkGetRayTracingShaderGroupHandlesKHR" (vkGetRayTracingShaderGroupHandlesKHR' (deviceHandle (device)) (pipeline) (firstGroup) (groupCount) (CSize (dataSize)) (data')) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -1474,6 +1470,9 @@ -- -- == Valid Usage --+-- - #VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620#+-- @pipeline@ /must/ be a ray tracing pipeline+-- -- - #VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051# -- @firstGroup@ /must/ be less than the number of shader groups in -- @pipeline@@@ -1550,7 +1549,7 @@ unless (vkGetRayTracingCaptureReplayShaderGroupHandlesKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRayTracingCaptureReplayShaderGroupHandlesKHR is null" Nothing Nothing let vkGetRayTracingCaptureReplayShaderGroupHandlesKHR' = mkVkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHRPtr- r <- vkGetRayTracingCaptureReplayShaderGroupHandlesKHR' (deviceHandle (device)) (pipeline) (firstGroup) (groupCount) (CSize (dataSize)) (data')+ r <- traceAroundEvent "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" (vkGetRayTracingCaptureReplayShaderGroupHandlesKHR' (deviceHandle (device)) (pipeline) (firstGroup) (groupCount) (CSize (dataSize)) (data')) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -1718,7 +1717,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free- r <- lift $ vkCreateRayTracingPipelinesKHR' (deviceHandle (device)) (deferredOperation) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)+ r <- lift $ traceAroundEvent "vkCreateRayTracingPipelinesKHR" (vkCreateRayTracingPipelinesKHR' (deviceHandle (device)) (deferredOperation) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline))) pure $ (r, pPipelines)@@ -2239,7 +2238,7 @@ pMissShaderBindingTable <- ContT $ withCStruct (missShaderBindingTable) pHitShaderBindingTable <- ContT $ withCStruct (hitShaderBindingTable) pCallableShaderBindingTable <- ContT $ withCStruct (callableShaderBindingTable)- lift $ vkCmdTraceRaysIndirectKHR' (commandBufferHandle (commandBuffer)) pRaygenShaderBindingTable pMissShaderBindingTable pHitShaderBindingTable pCallableShaderBindingTable (indirectDeviceAddress)+ lift $ traceAroundEvent "vkCmdTraceRaysIndirectKHR" (vkCmdTraceRaysIndirectKHR' (commandBufferHandle (commandBuffer)) pRaygenShaderBindingTable pMissShaderBindingTable pHitShaderBindingTable pCallableShaderBindingTable (indirectDeviceAddress)) pure $ () @@ -2260,6 +2259,9 @@ -- -- == Valid Usage --+-- - #VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622#+-- @pipeline@ /must/ be a ray tracing pipeline+-- -- - #VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608# The value -- of @group@ must be less than the number of shader groups in -- @pipeline@@@ -2304,7 +2306,7 @@ unless (vkGetRayTracingShaderGroupStackSizeKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRayTracingShaderGroupStackSizeKHR is null" Nothing Nothing let vkGetRayTracingShaderGroupStackSizeKHR' = mkVkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHRPtr- r <- vkGetRayTracingShaderGroupStackSizeKHR' (deviceHandle (device)) (pipeline) (group) (groupShader)+ r <- traceAroundEvent "vkGetRayTracingShaderGroupStackSizeKHR" (vkGetRayTracingShaderGroupStackSizeKHR' (deviceHandle (device)) (pipeline) (group) (groupShader)) pure $ (r) @@ -2383,7 +2385,7 @@ unless (vkCmdSetRayTracingPipelineStackSizeKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRayTracingPipelineStackSizeKHR is null" Nothing Nothing let vkCmdSetRayTracingPipelineStackSizeKHR' = mkVkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHRPtr- vkCmdSetRayTracingPipelineStackSizeKHR' (commandBufferHandle (commandBuffer)) (pipelineStackSize)+ traceAroundEvent "vkCmdSetRayTracingPipelineStackSizeKHR" (vkCmdSetRayTracingPipelineStackSizeKHR' (commandBufferHandle (commandBuffer)) (pipelineStackSize)) pure $ ()
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot view
@@ -289,7 +289,7 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIDKHR>+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR> -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR> --
@@ -226,6 +226,7 @@ , PresentModeKHR(..) ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -329,7 +330,7 @@ unless (vkGetSwapchainStatusKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSwapchainStatusKHR is null" Nothing Nothing let vkGetSwapchainStatusKHR' = mkVkGetSwapchainStatusKHR vkGetSwapchainStatusKHRPtr- r <- vkGetSwapchainStatusKHR' (deviceHandle (device)) (swapchain)+ r <- traceAroundEvent "vkGetSwapchainStatusKHR" (vkGetSwapchainStatusKHR' (deviceHandle (device)) (swapchain)) when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r)
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -433,6 +433,7 @@ 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)@@ -579,7 +580,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroySurfaceKHR' (instanceHandle (instance')) (surface) pAllocator+ lift $ traceAroundEvent "vkDestroySurfaceKHR" (vkDestroySurfaceKHR' (instanceHandle (instance')) (surface) pAllocator) pure $ () @@ -653,7 +654,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceSupportKHR is null" Nothing Nothing let vkGetPhysicalDeviceSurfaceSupportKHR' = mkVkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHRPtr pPSupported <- ContT $ bracket (callocBytes @Bool32 4) free- r <- lift $ vkGetPhysicalDeviceSurfaceSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (surface) (pPSupported)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceSupportKHR" (vkGetPhysicalDeviceSurfaceSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (surface) (pPSupported)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSupported <- lift $ peek @Bool32 pPSupported pure $ ((bool32ToBool pSupported))@@ -720,7 +721,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceCapabilitiesKHR is null" Nothing Nothing let vkGetPhysicalDeviceSurfaceCapabilitiesKHR' = mkVkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHRPtr pPSurfaceCapabilities <- ContT (withZeroCStruct @SurfaceCapabilitiesKHR)- r <- lift $ vkGetPhysicalDeviceSurfaceCapabilitiesKHR' (physicalDeviceHandle (physicalDevice)) (surface) (pPSurfaceCapabilities)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" (vkGetPhysicalDeviceSurfaceCapabilitiesKHR' (physicalDeviceHandle (physicalDevice)) (surface) (pPSurfaceCapabilities)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurfaceCapabilities <- lift $ peekCStruct @SurfaceCapabilitiesKHR pPSurfaceCapabilities pure $ (pSurfaceCapabilities)@@ -832,12 +833,12 @@ let vkGetPhysicalDeviceSurfaceFormatsKHR' = mkVkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPSurfaceFormatCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceSurfaceFormatsKHR' physicalDevice' (surface) (pPSurfaceFormatCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormatsKHR" (vkGetPhysicalDeviceSurfaceFormatsKHR' physicalDevice' (surface) (pPSurfaceFormatCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurfaceFormatCount <- lift $ peek @Word32 pPSurfaceFormatCount pPSurfaceFormats <- ContT $ bracket (callocBytes @SurfaceFormatKHR ((fromIntegral (pSurfaceFormatCount)) * 8)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSurfaceFormats `advancePtrBytes` (i * 8) :: Ptr SurfaceFormatKHR) . ($ ())) [0..(fromIntegral (pSurfaceFormatCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceSurfaceFormatsKHR' physicalDevice' (surface) (pPSurfaceFormatCount) ((pPSurfaceFormats))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormatsKHR" (vkGetPhysicalDeviceSurfaceFormatsKHR' physicalDevice' (surface) (pPSurfaceFormatCount) ((pPSurfaceFormats))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pSurfaceFormatCount' <- lift $ peek @Word32 pPSurfaceFormatCount pSurfaceFormats' <- lift $ generateM (fromIntegral (pSurfaceFormatCount')) (\i -> peekCStruct @SurfaceFormatKHR (((pPSurfaceFormats) `advancePtrBytes` (8 * (i)) :: Ptr SurfaceFormatKHR)))@@ -928,11 +929,11 @@ let vkGetPhysicalDeviceSurfacePresentModesKHR' = mkVkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPresentModeCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceSurfacePresentModesKHR' physicalDevice' (surface) (pPPresentModeCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModesKHR" (vkGetPhysicalDeviceSurfacePresentModesKHR' physicalDevice' (surface) (pPPresentModeCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPresentModeCount <- lift $ peek @Word32 pPPresentModeCount pPPresentModes <- ContT $ bracket (callocBytes @PresentModeKHR ((fromIntegral (pPresentModeCount)) * 4)) free- r' <- lift $ vkGetPhysicalDeviceSurfacePresentModesKHR' physicalDevice' (surface) (pPPresentModeCount) (pPPresentModes)+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModesKHR" (vkGetPhysicalDeviceSurfacePresentModesKHR' physicalDevice' (surface) (pPPresentModeCount) (pPPresentModes)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPresentModeCount' <- lift $ peek @Word32 pPPresentModeCount pPresentModes' <- lift $ generateM (fromIntegral (pPresentModeCount')) (\i -> peek @PresentModeKHR ((pPPresentModes `advancePtrBytes` (4 * (i)) :: Ptr PresentModeKHR)))
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -1124,6 +1124,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -1296,6 +1297,16 @@ -- include the app not being set as high-dpi aware, or if the physical -- device and monitor are not compatible in this mode. --+-- When the 'Vulkan.Extensions.Handles.SurfaceKHR' in+-- 'SwapchainCreateInfoKHR' is a display surface, then the+-- 'Vulkan.Extensions.Handles.DisplayModeKHR' in display surface’s+-- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR' is+-- associated with a particular 'Vulkan.Extensions.Handles.DisplayKHR'.+-- Swapchain creation /may/ fail if that+-- 'Vulkan.Extensions.Handles.DisplayKHR' is not acquired by the+-- application. In this scenario+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' is returned.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCreateSwapchainKHR-device-parameter# @device@ /must/ be a@@ -1368,7 +1379,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSwapchain <- ContT $ bracket (callocBytes @SwapchainKHR 8) free- r <- lift $ vkCreateSwapchainKHR' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSwapchain)+ r <- lift $ traceAroundEvent "vkCreateSwapchainKHR" (vkCreateSwapchainKHR' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSwapchain)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSwapchain <- lift $ peek @SwapchainKHR pPSwapchain pure $ (pSwapchain)@@ -1482,7 +1493,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroySwapchainKHR' (deviceHandle (device)) (swapchain) pAllocator+ lift $ traceAroundEvent "vkDestroySwapchainKHR" (vkDestroySwapchainKHR' (deviceHandle (device)) (swapchain) pAllocator) pure $ () @@ -1565,11 +1576,11 @@ let vkGetSwapchainImagesKHR' = mkVkGetSwapchainImagesKHR vkGetSwapchainImagesKHRPtr let device' = deviceHandle (device) pPSwapchainImageCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetSwapchainImagesKHR' device' (swapchain) (pPSwapchainImageCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetSwapchainImagesKHR" (vkGetSwapchainImagesKHR' device' (swapchain) (pPSwapchainImageCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSwapchainImageCount <- lift $ peek @Word32 pPSwapchainImageCount pPSwapchainImages <- ContT $ bracket (callocBytes @Image ((fromIntegral (pSwapchainImageCount)) * 8)) free- r' <- lift $ vkGetSwapchainImagesKHR' device' (swapchain) (pPSwapchainImageCount) (pPSwapchainImages)+ r' <- lift $ traceAroundEvent "vkGetSwapchainImagesKHR" (vkGetSwapchainImagesKHR' device' (swapchain) (pPSwapchainImageCount) (pPSwapchainImages)) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pSwapchainImageCount' <- lift $ peek @Word32 pPSwapchainImageCount pSwapchainImages' <- lift $ generateM (fromIntegral (pSwapchainImageCount')) (\i -> peek @Image ((pPSwapchainImages `advancePtrBytes` (8 * (i)) :: Ptr Image)))@@ -1613,7 +1624,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireNextImageKHR is null" Nothing Nothing let vkAcquireNextImageKHR' = mkVkAcquireNextImageKHR vkAcquireNextImageKHRPtr pPImageIndex <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkAcquireNextImageKHR' (deviceHandle (device)) (swapchain) (timeout) (semaphore) (fence) (pPImageIndex)+ r <- lift $ traceAroundEvent "vkAcquireNextImageKHR" (vkAcquireNextImageKHR' (deviceHandle (device)) (swapchain) (timeout) (semaphore) (fence) (pPImageIndex)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pImageIndex <- lift $ peek @Word32 pPImageIndex pure $ (r, pImageIndex)@@ -1937,7 +1948,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueuePresentKHR is null" Nothing Nothing let vkQueuePresentKHR' = mkVkQueuePresentKHR vkQueuePresentKHRPtr pPresentInfo <- ContT $ withCStruct (presentInfo)- r <- lift $ vkQueuePresentKHR' (queueHandle (queue)) (forgetExtensions pPresentInfo)+ r <- lift $ traceAroundEvent "vkQueuePresentKHR" (vkQueuePresentKHR' (queueHandle (queue)) (forgetExtensions pPresentInfo)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pure $ (r) @@ -1981,7 +1992,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceGroupPresentCapabilitiesKHR is null" Nothing Nothing let vkGetDeviceGroupPresentCapabilitiesKHR' = mkVkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHRPtr pPDeviceGroupPresentCapabilities <- ContT (withZeroCStruct @DeviceGroupPresentCapabilitiesKHR)- r <- lift $ vkGetDeviceGroupPresentCapabilitiesKHR' (deviceHandle (device)) (pPDeviceGroupPresentCapabilities)+ r <- lift $ traceAroundEvent "vkGetDeviceGroupPresentCapabilitiesKHR" (vkGetDeviceGroupPresentCapabilitiesKHR' (deviceHandle (device)) (pPDeviceGroupPresentCapabilities)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pDeviceGroupPresentCapabilities <- lift $ peekCStruct @DeviceGroupPresentCapabilitiesKHR pPDeviceGroupPresentCapabilities pure $ (pDeviceGroupPresentCapabilities)@@ -2056,7 +2067,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceGroupSurfacePresentModesKHR is null" Nothing Nothing let vkGetDeviceGroupSurfacePresentModesKHR' = mkVkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHRPtr pPModes <- ContT $ bracket (callocBytes @DeviceGroupPresentModeFlagsKHR 4) free- r <- lift $ vkGetDeviceGroupSurfacePresentModesKHR' (deviceHandle (device)) (surface) (pPModes)+ r <- lift $ traceAroundEvent "vkGetDeviceGroupSurfacePresentModesKHR" (vkGetDeviceGroupSurfacePresentModesKHR' (deviceHandle (device)) (surface) (pPModes)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pModes <- lift $ peek @DeviceGroupPresentModeFlagsKHR pPModes pure $ (pModes)@@ -2091,7 +2102,7 @@ let vkAcquireNextImage2KHR' = mkVkAcquireNextImage2KHR vkAcquireNextImage2KHRPtr pAcquireInfo <- ContT $ withCStruct (acquireInfo) pPImageIndex <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkAcquireNextImage2KHR' (deviceHandle (device)) pAcquireInfo (pPImageIndex)+ r <- lift $ traceAroundEvent "vkAcquireNextImage2KHR" (vkAcquireNextImage2KHR' (deviceHandle (device)) pAcquireInfo (pPImageIndex)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pImageIndex <- lift $ peek @Word32 pPImageIndex pure $ (r, pImageIndex)@@ -2262,12 +2273,12 @@ let vkGetPhysicalDevicePresentRectanglesKHR' = mkVkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHRPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPRectCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDevicePresentRectanglesKHR' physicalDevice' (surface) (pPRectCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDevicePresentRectanglesKHR" (vkGetPhysicalDevicePresentRectanglesKHR' physicalDevice' (surface) (pPRectCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pRectCount <- lift $ peek @Word32 pPRectCount pPRects <- ContT $ bracket (callocBytes @Rect2D ((fromIntegral (pRectCount)) * 16)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPRects `advancePtrBytes` (i * 16) :: Ptr Rect2D) . ($ ())) [0..(fromIntegral (pRectCount)) - 1]- r' <- lift $ vkGetPhysicalDevicePresentRectanglesKHR' physicalDevice' (surface) (pPRectCount) ((pPRects))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDevicePresentRectanglesKHR" (vkGetPhysicalDevicePresentRectanglesKHR' physicalDevice' (surface) (pPRectCount) ((pPRects))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pRectCount' <- lift $ peek @Word32 pPRectCount pRects' <- lift $ generateM (fromIntegral (pRectCount')) (\i -> peekCStruct @Rect2D (((pPRects) `advancePtrBytes` (16 * (i)) :: Ptr Rect2D)))
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs view
@@ -201,6 +201,7 @@ 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)@@ -331,7 +332,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateWaylandSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateWaylandSurfaceKHR" (vkCreateWaylandSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)@@ -385,7 +386,7 @@ unless (vkGetPhysicalDeviceWaylandPresentationSupportKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceWaylandPresentationSupportKHR is null" Nothing Nothing let vkGetPhysicalDeviceWaylandPresentationSupportKHR' = mkVkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHRPtr- r <- vkGetPhysicalDeviceWaylandPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (display)+ r <- traceAroundEvent "vkGetPhysicalDeviceWaylandPresentationSupportKHR" (vkGetPhysicalDeviceWaylandPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (display)) pure $ ((bool32ToBool r))
src/Vulkan/Extensions/VK_KHR_win32_surface.hs view
@@ -227,6 +227,7 @@ 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)@@ -356,7 +357,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateWin32SurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateWin32SurfaceKHR" (vkCreateWin32SurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)@@ -404,7 +405,7 @@ unless (vkGetPhysicalDeviceWin32PresentationSupportKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceWin32PresentationSupportKHR is null" Nothing Nothing let vkGetPhysicalDeviceWin32PresentationSupportKHR' = mkVkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHRPtr- r <- vkGetPhysicalDeviceWin32PresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex)+ r <- traceAroundEvent "vkGetPhysicalDeviceWin32PresentationSupportKHR" (vkGetPhysicalDeviceWin32PresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex)) pure $ ((bool32ToBool r))
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs view
@@ -184,6 +184,7 @@ 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)@@ -312,7 +313,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateXcbSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateXcbSurfaceKHR" (vkCreateXcbSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)@@ -367,7 +368,7 @@ unless (vkGetPhysicalDeviceXcbPresentationSupportKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceXcbPresentationSupportKHR is null" Nothing Nothing let vkGetPhysicalDeviceXcbPresentationSupportKHR' = mkVkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHRPtr- r <- vkGetPhysicalDeviceXcbPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (connection) (visual_id)+ r <- traceAroundEvent "vkGetPhysicalDeviceXcbPresentationSupportKHR" (vkGetPhysicalDeviceXcbPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (connection) (visual_id)) pure $ ((bool32ToBool r))
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs view
@@ -184,6 +184,7 @@ 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)@@ -314,7 +315,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateXlibSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateXlibSurfaceKHR" (vkCreateXlibSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)@@ -369,7 +370,7 @@ unless (vkGetPhysicalDeviceXlibPresentationSupportKHRPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceXlibPresentationSupportKHR is null" Nothing Nothing let vkGetPhysicalDeviceXlibPresentationSupportKHR' = mkVkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHRPtr- r <- vkGetPhysicalDeviceXlibPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (dpy) (visualID)+ r <- traceAroundEvent "vkGetPhysicalDeviceXlibPresentationSupportKHR" (vkGetPhysicalDeviceXlibPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (dpy) (visualID)) pure $ ((bool32ToBool r))
src/Vulkan/Extensions/VK_MVK_ios_surface.hs view
@@ -122,6 +122,7 @@ 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)@@ -264,7 +265,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateIOSSurfaceMVK' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateIOSSurfaceMVK" (vkCreateIOSSurfaceMVK' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_MVK_macos_surface.hs view
@@ -122,6 +122,7 @@ 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)@@ -267,7 +268,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateMacOSSurfaceMVK' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateMacOSSurfaceMVK" (vkCreateMacOSSurfaceMVK' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_NN_vi_surface.hs view
@@ -121,6 +121,7 @@ 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)@@ -259,7 +260,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free- r <- lift $ vkCreateViSurfaceNN' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+ r <- lift $ traceAroundEvent "vkCreateViSurfaceNN" (vkCreateViSurfaceNN' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurface <- lift $ peek @SurfaceKHR pPSurface pure $ (pSurface)
src/Vulkan/Extensions/VK_NVX_image_view_handle.hs view
@@ -101,6 +101,7 @@ , pattern NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -183,7 +184,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageViewHandleNVX is null" Nothing Nothing let vkGetImageViewHandleNVX' = mkVkGetImageViewHandleNVX vkGetImageViewHandleNVXPtr pInfo <- ContT $ withCStruct (info)- r <- lift $ vkGetImageViewHandleNVX' (deviceHandle (device)) pInfo+ r <- lift $ traceAroundEvent "vkGetImageViewHandleNVX" (vkGetImageViewHandleNVX' (deviceHandle (device)) pInfo) pure $ (r) @@ -234,7 +235,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageViewAddressNVX is null" Nothing Nothing let vkGetImageViewAddressNVX' = mkVkGetImageViewAddressNVX vkGetImageViewAddressNVXPtr pPProperties <- ContT (withZeroCStruct @ImageViewAddressPropertiesNVX)- r <- lift $ vkGetImageViewAddressNVX' (deviceHandle (device)) (imageView) (pPProperties)+ r <- lift $ traceAroundEvent "vkGetImageViewAddressNVX" (vkGetImageViewAddressNVX' (deviceHandle (device)) (imageView) (pPProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pProperties <- lift $ peekCStruct @ImageViewAddressPropertiesNVX pPProperties pure $ (pProperties)
+ src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs view
@@ -0,0 +1,382 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_acquire_winrt_display - device extension+--+-- == VK_NV_acquire_winrt_display+--+-- [__Name String__]+-- @VK_NV_acquire_winrt_display@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 346+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_EXT_direct_mode_display@+--+-- [__Contact__]+--+-- - Jeff Juliano+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_acquire_winrt_display:%20&body=@jjuliano%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-09-29+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jeff Juliano, NVIDIA+--+-- == Description+--+-- This extension allows an application to take exclusive control of a+-- display on Windows 10 provided that the display is not already+-- controlled by a compositor. Examples of compositors include the Windows+-- desktop compositor, other applications using this Vulkan extension, and+-- applications that+-- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaymanager.tryacquiretarget “Acquire”>+-- a+-- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget “DisplayTarget”>+-- using a <https://docs.microsoft.com/en-us/uwp/api/ “WinRT”> command such+-- as+-- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaymanager.tryacquiretarget “winrt::Windows::Devices::Display::Core::DisplayManager.TryAcquireTarget()”>.+--+-- When control is acquired the application has exclusive access to the+-- display until control is released or the application terminates. An+-- application’s attempt to acquire is denied if a different application+-- has already acquired the display.+--+-- == New Commands+--+-- - 'acquireWinrtDisplayNV'+--+-- - 'getWinrtDisplayNV'+--+-- == New Enum Constants+--+-- - 'NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME'+--+-- - 'NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION'+--+-- == Issues+--+-- 1) What should the platform substring be for this extension:+--+-- __RESOLVED__: The platform substring is “Winrt”.+--+-- The substring “Winrt” matches the fact that the OS API exposing the+-- acquire and release functionality is called “WinRT”.+--+-- The substring “Win32” is wrong because the related “WinRT” API is+-- explicitly __not__ a “Win32” API. “WinRT” is a competing API family to+-- the “Win32” API family.+--+-- The substring “Windows” is suboptimal because there could be more than+-- one relevant API on the Windows platform. There is preference to use the+-- more-specific substring “Winrt”.+--+-- 2) Should 'acquireWinrtDisplayNV' take a winRT DisplayTarget, or a+-- Vulkan display handle as input?+--+-- __RESOLVED__: A Vulkan display handle. This matches the design of+-- 'Vulkan.Extensions.VK_EXT_acquire_xlib_display.acquireXlibDisplayEXT'.+--+-- 3) Should the acquire command be platform-independent named+-- “vkAcquireDisplayNV”, or platform-specific named+-- “vkAcquireWinrtDisplayNV”?+--+-- __RESOLVED__: Add a platform-specific command.+--+-- The inputs to the Acquire command are all Vulkan types. None are WinRT+-- types. This opens the possibility of the winrt extension defining a+-- platform-independent acquire command.+--+-- The X11 acquire command does need to accept a platform-specific+-- parameter. This could be handled by adding to a platform-independent+-- acquire command a params struct to which platform-dependent types can be+-- chained by pNext pointer.+--+-- The prevailing opinion is that it would be odd to create a second+-- platform-independent function that is used on the Windows 10 platform,+-- but that is not used for the X11 platform. Since a Windows 10+-- platform-specific command is needed anyway for converting between+-- vkDisplayKHR and platform-native handles, opinion was to create a+-- platform-specific acquire function.+--+-- 4) Should the 'getWinrtDisplayNV' parameter identifying a display be+-- named “deviceRelativeId” or “adapterRelativeId”?+--+-- __RESOLVED__: The WinRT name is “AdapterRelativeId”. The name “adapter”+-- is the Windows analog to a Vulkan “physical device”. Vulkan already has+-- precedent to use the name @deviceLUID@ for the concept that Windows APIs+-- call “AdapterLuid”. Keeping form with this precedent, the name+-- “deviceRelativeId” is chosen.+--+-- 5) Does 'acquireWinrtDisplayNV' cause the Windows desktop compositor to+-- release a display?+--+-- __RESOLVED__: No. 'acquireWinrtDisplayNV' does not itself cause the+-- Windows desktop compositor to release a display. This action must be+-- performed outside of Vulkan.+--+-- Beginning with Windows 10 version 2004 it is possible to cause the+-- Windows desktop compositor to release a display by using the “Advanced+-- display settings” sub-page of the “Display settings” control panel. See+-- <https://docs.microsoft.com/en-us/windows-hardware/drivers/display/specialized-monitors>+--+-- 6) Where can one find additional information about custom compositors+-- for Windows 10?+--+-- __RESOLVED__: Relevant references are as follows.+--+-- According to Microsoft’s documentation on+-- <https://docs.microsoft.com/en-us/windows-hardware/drivers/display/specialized-monitors-compositor \"building a custom compositor\">,+-- the ability to write a custom compositor is not a replacement for a+-- fullscreen desktop window. The feature is for writing compositor apps+-- that drive specialized hardware.+--+-- Only certain editions of Windows 10 support custom compositors,+-- <https://docs.microsoft.com/en-us/windows-hardware/drivers/display/specialized-monitors#windows-10-version-2004 \"documented here\">.+-- The product type can be queried from Windows 10. See+-- <https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getproductinfo>+--+-- == Version History+--+-- - Revision 1, 2020-09-29 (Jeff Juliano)+--+-- - Initial draft+--+-- = See Also+--+-- 'acquireWinrtDisplayNV', 'getWinrtDisplayNV'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_acquire_winrt_display Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_acquire_winrt_display ( acquireWinrtDisplayNV+ , getWinrtDisplayNV+ , NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION+ , pattern NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION+ , NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME+ , pattern NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME+ , DisplayKHR(..)+ ) 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 (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Foreign.Storable (Storable(peek))+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.NamedType ((:::))+import Vulkan.Extensions.Handles (DisplayKHR)+import Vulkan.Extensions.Handles (DisplayKHR(..))+import Vulkan.Dynamic (InstanceCmds(pVkAcquireWinrtDisplayNV))+import Vulkan.Dynamic (InstanceCmds(pVkGetWinrtDisplayNV))+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.Exception (VulkanException(..))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (DisplayKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkAcquireWinrtDisplayNV+ :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> IO Result) -> Ptr PhysicalDevice_T -> DisplayKHR -> IO Result++-- | vkAcquireWinrtDisplayNV - Acquire access to a VkDisplayKHR+--+-- = Description+--+-- All permissions necessary to control the display are granted to the+-- Vulkan instance associated with @physicalDevice@ until the display is+-- released or the application is terminated. Permission to access the+-- display /may/ be revoked by events that cause Windows 10 itself to lose+-- access to @display@. If this has happened, operations which require+-- access to the display /must/ fail with an appropriate error code. If+-- permission to access @display@ has already been acquired by another+-- entity, the call /must/ return the error code+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'.+--+-- Note+--+-- The Vulkan instance acquires control of a+-- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget “winrt::Windows::Devices::Display::Core::DisplayTarget”>+-- by performing an operation equivalent to+-- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaymanager.tryacquiretarget “winrt::Windows::Devices::Display::Core::DisplayManager.TryAcquireTarget()”>+-- on the “DisplayTarget”.+--+-- Note+--+-- One example of when Windows 10 loses access to a display is when the+-- display is hot-unplugged.+--+-- Note+--+-- One example of when a display has already been acquired by another+-- entity is when the Windows desktop compositor (DWM) is in control of the+-- display. Beginning with Windows 10 version 2004 it is possible to cause+-- DWM to release a display by using the “Advanced display settings”+-- sub-page of the “Display settings” control panel.+-- 'acquireWinrtDisplayNV' does not itself cause DWM to release a display;+-- this action must be performed outside of Vulkan.+--+-- == 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_DEVICE_LOST'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'+--+-- = See Also+--+-- 'Vulkan.Extensions.Handles.DisplayKHR',+-- 'Vulkan.Core10.Handles.PhysicalDevice'+acquireWinrtDisplayNV :: forall io+ . (MonadIO io)+ => -- | @physicalDevice@ The physical device the display is on.+ --+ -- #VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter# @physicalDevice@+ -- /must/ be a valid 'Vulkan.Core10.Handles.PhysicalDevice' handle+ PhysicalDevice+ -> -- | @display@ The display the caller wishes to control in Vulkan.+ --+ -- #VUID-vkAcquireWinrtDisplayNV-display-parameter# @display@ /must/ be a+ -- valid 'Vulkan.Extensions.Handles.DisplayKHR' handle+ --+ -- #VUID-vkAcquireWinrtDisplayNV-display-parent# @display@ /must/ have been+ -- created, allocated, or retrieved from @physicalDevice@+ DisplayKHR+ -> io ()+acquireWinrtDisplayNV physicalDevice display = liftIO $ do+ let vkAcquireWinrtDisplayNVPtr = pVkAcquireWinrtDisplayNV (instanceCmds (physicalDevice :: PhysicalDevice))+ unless (vkAcquireWinrtDisplayNVPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireWinrtDisplayNV is null" Nothing Nothing+ let vkAcquireWinrtDisplayNV' = mkVkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNVPtr+ r <- traceAroundEvent "vkAcquireWinrtDisplayNV" (vkAcquireWinrtDisplayNV' (physicalDeviceHandle (physicalDevice)) (display))+ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetWinrtDisplayNV+ :: FunPtr (Ptr PhysicalDevice_T -> Word32 -> Ptr DisplayKHR -> IO Result) -> Ptr PhysicalDevice_T -> Word32 -> Ptr DisplayKHR -> IO Result++-- | vkGetWinrtDisplayNV - Query the VkDisplayKHR corresponding to a WinRT+-- DisplayTarget+--+-- = Description+--+-- If there is no 'Vulkan.Extensions.Handles.DisplayKHR' corresponding to+-- @deviceRelativeId@ on @physicalDevice@,+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be returned in+-- @pDisplay@.+--+-- == 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_DEVICE_LOST'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'+--+-- = See Also+--+-- 'Vulkan.Extensions.Handles.DisplayKHR',+-- 'Vulkan.Core10.Handles.PhysicalDevice'+getWinrtDisplayNV :: forall io+ . (MonadIO io)+ => -- | @physicalDevice@ The physical device on which to query the display+ -- handle.+ --+ -- #VUID-vkGetWinrtDisplayNV-physicalDevice-parameter# @physicalDevice@+ -- /must/ be a valid 'Vulkan.Core10.Handles.PhysicalDevice' handle+ PhysicalDevice+ -> -- | @deviceRelativeId@ The value of the+ -- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget.adapterrelativeid “AdapterRelativeId”>+ -- property of a+ -- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget “DisplayTarget”>+ -- that is enumerated by a+ -- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displayadapter “DisplayAdapter”>+ -- with an+ -- <https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displayadapter.id “Id”>+ -- property matching the @deviceLUID@ property of a+ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'+ -- for @physicalDevice@.+ ("deviceRelativeId" ::: Word32)+ -> io (DisplayKHR)+getWinrtDisplayNV physicalDevice deviceRelativeId = liftIO . evalContT $ do+ let vkGetWinrtDisplayNVPtr = pVkGetWinrtDisplayNV (instanceCmds (physicalDevice :: PhysicalDevice))+ lift $ unless (vkGetWinrtDisplayNVPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetWinrtDisplayNV is null" Nothing Nothing+ let vkGetWinrtDisplayNV' = mkVkGetWinrtDisplayNV vkGetWinrtDisplayNVPtr+ pPDisplay <- ContT $ bracket (callocBytes @DisplayKHR 8) free+ r <- lift $ traceAroundEvent "vkGetWinrtDisplayNV" (vkGetWinrtDisplayNV' (physicalDeviceHandle (physicalDevice)) (deviceRelativeId) (pPDisplay))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pDisplay <- lift $ peek @DisplayKHR pPDisplay+ pure $ (pDisplay)+++type NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION"+pattern NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION :: forall a . Integral a => a+pattern NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION = 1+++type NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display"++-- No documentation found for TopLevel "VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME"+pattern NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME = "VK_NV_acquire_winrt_display"+
src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs view
@@ -212,6 +212,7 @@ , pattern NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -343,7 +344,7 @@ let vkCmdSetViewportWScalingNV' = mkVkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNVPtr pPViewportWScalings <- ContT $ allocaBytesAligned @ViewportWScalingNV ((Data.Vector.length (viewportWScalings)) * 8) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPViewportWScalings `plusPtr` (8 * (i)) :: Ptr ViewportWScalingNV) (e)) (viewportWScalings)- lift $ vkCmdSetViewportWScalingNV' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewportWScalings)) :: Word32)) (pPViewportWScalings)+ lift $ traceAroundEvent "vkCmdSetViewportWScalingNV" (vkCmdSetViewportWScalingNV' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewportWScalings)) :: Word32)) (pPViewportWScalings)) pure $ ()
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs view
@@ -178,6 +178,7 @@ 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)@@ -305,12 +306,12 @@ let vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' = mkVkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNVPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' physicalDevice' (pPPropertyCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' physicalDevice' (pPPropertyCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPropertyCount <- lift $ peek @Word32 pPPropertyCount pPProperties <- ContT $ bracket (callocBytes @CooperativeMatrixPropertiesNV ((fromIntegral (pPropertyCount)) * 48)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 48) :: Ptr CooperativeMatrixPropertiesNV) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' physicalDevice' (pPPropertyCount) ((pPProperties))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' physicalDevice' (pPPropertyCount) ((pPProperties))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pPropertyCount' <- lift $ peek @Word32 pPPropertyCount pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @CooperativeMatrixPropertiesNV (((pPProperties) `advancePtrBytes` (48 * (i)) :: Ptr CooperativeMatrixPropertiesNV)))
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -147,6 +147,7 @@ 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)@@ -281,12 +282,12 @@ let vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' = mkVkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVPtr let physicalDevice' = physicalDeviceHandle (physicalDevice) pPCombinationCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' physicalDevice' (pPCombinationCount) (nullPtr)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" (vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' physicalDevice' (pPCombinationCount) (nullPtr)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pCombinationCount <- lift $ peek @Word32 pPCombinationCount pPCombinations <- ContT $ bracket (callocBytes @FramebufferMixedSamplesCombinationNV ((fromIntegral (pCombinationCount)) * 32)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCombinations `advancePtrBytes` (i * 32) :: Ptr FramebufferMixedSamplesCombinationNV) . ($ ())) [0..(fromIntegral (pCombinationCount)) - 1]- r' <- lift $ vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' physicalDevice' (pPCombinationCount) ((pPCombinations))+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" (vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' physicalDevice' (pPCombinationCount) ((pPCombinations))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pCombinationCount' <- lift $ peek @Word32 pPCombinationCount pCombinations' <- lift $ generateM (fromIntegral (pCombinationCount')) (\i -> peekCStruct @FramebufferMixedSamplesCombinationNV (((pPCombinations) `advancePtrBytes` (32 * (i)) :: Ptr FramebufferMixedSamplesCombinationNV)))
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs view
@@ -114,6 +114,7 @@ , pattern NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -221,7 +222,7 @@ unless (vkCmdSetCheckpointNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCheckpointNV is null" Nothing Nothing let vkCmdSetCheckpointNV' = mkVkCmdSetCheckpointNV vkCmdSetCheckpointNVPtr- vkCmdSetCheckpointNV' (commandBufferHandle (commandBuffer)) (checkpointMarker)+ traceAroundEvent "vkCmdSetCheckpointNV" (vkCmdSetCheckpointNV' (commandBufferHandle (commandBuffer)) (checkpointMarker)) pure $ () @@ -283,11 +284,11 @@ let vkGetQueueCheckpointDataNV' = mkVkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNVPtr let queue' = queueHandle (queue) pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free- lift $ vkGetQueueCheckpointDataNV' queue' (pPCheckpointDataCount) (nullPtr)+ lift $ traceAroundEvent "vkGetQueueCheckpointDataNV" (vkGetQueueCheckpointDataNV' queue' (pPCheckpointDataCount) (nullPtr)) pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointDataNV ((fromIntegral (pCheckpointDataCount)) * 32)) free _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointDataNV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]- lift $ vkGetQueueCheckpointDataNV' queue' (pPCheckpointDataCount) ((pPCheckpointData))+ lift $ traceAroundEvent "vkGetQueueCheckpointDataNV" (vkGetQueueCheckpointDataNV' queue' (pPCheckpointDataCount) ((pPCheckpointData))) pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointDataNV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointDataNV))) pure $ (pCheckpointData')
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -582,6 +582,7 @@ 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)@@ -1204,7 +1205,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteGeneratedCommandsNV is null" Nothing Nothing let vkCmdExecuteGeneratedCommandsNV' = mkVkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNVPtr pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)- lift $ vkCmdExecuteGeneratedCommandsNV' (commandBufferHandle (commandBuffer)) (boolToBool32 (isPreprocessed)) pGeneratedCommandsInfo+ lift $ traceAroundEvent "vkCmdExecuteGeneratedCommandsNV" (vkCmdExecuteGeneratedCommandsNV' (commandBufferHandle (commandBuffer)) (boolToBool32 (isPreprocessed)) pGeneratedCommandsInfo) pure $ () @@ -1290,7 +1291,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPreprocessGeneratedCommandsNV is null" Nothing Nothing let vkCmdPreprocessGeneratedCommandsNV' = mkVkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNVPtr pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)- lift $ vkCmdPreprocessGeneratedCommandsNV' (commandBufferHandle (commandBuffer)) pGeneratedCommandsInfo+ lift $ traceAroundEvent "vkCmdPreprocessGeneratedCommandsNV" (vkCmdPreprocessGeneratedCommandsNV' (commandBufferHandle (commandBuffer)) pGeneratedCommandsInfo) pure $ () @@ -1391,7 +1392,7 @@ unless (vkCmdBindPipelineShaderGroupNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipelineShaderGroupNV is null" Nothing Nothing let vkCmdBindPipelineShaderGroupNV' = mkVkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNVPtr- vkCmdBindPipelineShaderGroupNV' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline) (groupIndex)+ traceAroundEvent "vkCmdBindPipelineShaderGroupNV" (vkCmdBindPipelineShaderGroupNV' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline) (groupIndex)) pure $ () @@ -1447,7 +1448,7 @@ let vkGetGeneratedCommandsMemoryRequirementsNV' = mkVkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNVPtr pInfo <- ContT $ withCStruct (info) pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))- lift $ vkGetGeneratedCommandsMemoryRequirementsNV' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements))+ lift $ traceAroundEvent "vkGetGeneratedCommandsMemoryRequirementsNV" (vkGetGeneratedCommandsMemoryRequirementsNV' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements))) pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements pure $ (pMemoryRequirements) @@ -1527,7 +1528,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPIndirectCommandsLayout <- ContT $ bracket (callocBytes @IndirectCommandsLayoutNV 8) free- r <- lift $ vkCreateIndirectCommandsLayoutNV' (deviceHandle (device)) pCreateInfo pAllocator (pPIndirectCommandsLayout)+ r <- lift $ traceAroundEvent "vkCreateIndirectCommandsLayoutNV" (vkCreateIndirectCommandsLayoutNV' (deviceHandle (device)) pCreateInfo pAllocator (pPIndirectCommandsLayout)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pIndirectCommandsLayout <- lift $ peek @IndirectCommandsLayoutNV pPIndirectCommandsLayout pure $ (pIndirectCommandsLayout)@@ -1625,7 +1626,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyIndirectCommandsLayoutNV' (deviceHandle (device)) (indirectCommandsLayout) pAllocator+ lift $ traceAroundEvent "vkDestroyIndirectCommandsLayoutNV" (vkDestroyIndirectCommandsLayoutNV' (deviceHandle (device)) (indirectCommandsLayout) pAllocator) pure $ ()
src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs view
@@ -159,6 +159,7 @@ import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -317,7 +318,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceExternalImageFormatPropertiesNV is null" Nothing Nothing let vkGetPhysicalDeviceExternalImageFormatPropertiesNV' = mkVkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNVPtr pPExternalImageFormatProperties <- ContT (withZeroCStruct @ExternalImageFormatPropertiesNV)- r <- lift $ vkGetPhysicalDeviceExternalImageFormatPropertiesNV' (physicalDeviceHandle (physicalDevice)) (format) (type') (tiling) (usage) (flags) (externalHandleType) (pPExternalImageFormatProperties)+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" (vkGetPhysicalDeviceExternalImageFormatPropertiesNV' (physicalDeviceHandle (physicalDevice)) (format) (type') (tiling) (usage) (flags) (externalHandleType) (pPExternalImageFormatProperties)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pExternalImageFormatProperties <- lift $ peekCStruct @ExternalImageFormatPropertiesNV pPExternalImageFormatProperties pure $ (pExternalImageFormatProperties)
src/Vulkan/Extensions/VK_NV_external_memory_win32.hs view
@@ -289,6 +289,7 @@ , ExternalMemoryHandleTypeFlagsNV ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)@@ -404,7 +405,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryWin32HandleNV is null" Nothing Nothing let vkGetMemoryWin32HandleNV' = mkVkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNVPtr pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free- r <- lift $ vkGetMemoryWin32HandleNV' (deviceHandle (device)) (memory) (handleType) (pPHandle)+ r <- lift $ traceAroundEvent "vkGetMemoryWin32HandleNV" (vkGetMemoryWin32HandleNV' (deviceHandle (device)) (memory) (handleType) (pPHandle)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pHandle <- lift $ peek @HANDLE pPHandle pure $ (pHandle)
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -205,6 +205,7 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -397,7 +398,7 @@ (e0, e1) -> do poke (pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (e0) poke (pCombinerOps' `plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (e1)- lift $ vkCmdSetFragmentShadingRateEnumNV' (commandBufferHandle (commandBuffer)) (shadingRate) (pCombinerOps)+ lift $ traceAroundEvent "vkCmdSetFragmentShadingRateEnumNV" (vkCmdSetFragmentShadingRateEnumNV' (commandBufferHandle (commandBuffer)) (shadingRate) (pCombinerOps)) pure $ ()
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -268,6 +268,7 @@ ) where import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -779,7 +780,7 @@ unless (vkCmdDrawMeshTasksNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksNV is null" Nothing Nothing let vkCmdDrawMeshTasksNV' = mkVkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNVPtr- vkCmdDrawMeshTasksNV' (commandBufferHandle (commandBuffer)) (taskCount) (firstTask)+ traceAroundEvent "vkCmdDrawMeshTasksNV" (vkCmdDrawMeshTasksNV' (commandBufferHandle (commandBuffer)) (taskCount) (firstTask)) pure $ () @@ -1306,7 +1307,7 @@ unless (vkCmdDrawMeshTasksIndirectNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectNV is null" Nothing Nothing let vkCmdDrawMeshTasksIndirectNV' = mkVkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNVPtr- vkCmdDrawMeshTasksIndirectNV' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride)+ traceAroundEvent "vkCmdDrawMeshTasksIndirectNV" (vkCmdDrawMeshTasksIndirectNV' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride)) pure $ () @@ -1865,7 +1866,7 @@ unless (vkCmdDrawMeshTasksIndirectCountNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountNV is null" Nothing Nothing let vkCmdDrawMeshTasksIndirectCountNV' = mkVkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNVPtr- vkCmdDrawMeshTasksIndirectCountNV' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride)+ traceAroundEvent "vkCmdDrawMeshTasksIndirectCountNV" (vkCmdDrawMeshTasksIndirectCountNV' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride)) pure $ ()
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -347,7 +347,7 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIDNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV> -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV> --@@ -570,6 +570,7 @@ 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)@@ -816,6 +817,9 @@ Device -> -- | @pipeline@ is the ray tracing pipeline object containing the shaders. --+ -- #VUID-vkCompileDeferredNV-pipeline-04621# @pipeline@ /must/ be a ray+ -- tracing pipeline+ -- -- #VUID-vkCompileDeferredNV-pipeline-02237# @pipeline@ /must/ have been -- created with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEFER_COMPILE_BIT_NV'@@ -837,7 +841,7 @@ unless (vkCompileDeferredNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCompileDeferredNV is null" Nothing Nothing let vkCompileDeferredNV' = mkVkCompileDeferredNV vkCompileDeferredNVPtr- r <- vkCompileDeferredNV' (deviceHandle (device)) (pipeline) (shader)+ r <- traceAroundEvent "vkCompileDeferredNV" (vkCompileDeferredNV' (deviceHandle (device)) (pipeline) (shader)) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -920,7 +924,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPAccelerationStructure <- ContT $ bracket (callocBytes @AccelerationStructureNV 8) free- r <- lift $ vkCreateAccelerationStructureNV' (deviceHandle (device)) pCreateInfo pAllocator (pPAccelerationStructure)+ r <- lift $ traceAroundEvent "vkCreateAccelerationStructureNV" (vkCreateAccelerationStructureNV' (deviceHandle (device)) pCreateInfo pAllocator (pPAccelerationStructure)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pAccelerationStructure <- lift $ peek @AccelerationStructureNV pPAccelerationStructure pure $ (pAccelerationStructure)@@ -1014,7 +1018,7 @@ pAllocator <- case (allocator) of Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j)- lift $ vkDestroyAccelerationStructureNV' (deviceHandle (device)) (accelerationStructure) pAllocator+ lift $ traceAroundEvent "vkDestroyAccelerationStructureNV" (vkDestroyAccelerationStructureNV' (deviceHandle (device)) (accelerationStructure) pAllocator) pure $ () @@ -1058,7 +1062,7 @@ let vkGetAccelerationStructureMemoryRequirementsNV' = mkVkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNVPtr pInfo <- ContT $ withCStruct (info) pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2KHR _))- lift $ vkGetAccelerationStructureMemoryRequirementsNV' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements))+ lift $ traceAroundEvent "vkGetAccelerationStructureMemoryRequirementsNV" (vkGetAccelerationStructureMemoryRequirementsNV' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements))) pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2KHR _) pPMemoryRequirements pure $ (pMemoryRequirements) @@ -1111,7 +1115,7 @@ let vkBindAccelerationStructureMemoryNV' = mkVkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNVPtr pPBindInfos <- ContT $ allocaBytesAligned @BindAccelerationStructureMemoryInfoNV ((Data.Vector.length (bindInfos)) * 56) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPBindInfos `plusPtr` (56 * (i)) :: Ptr BindAccelerationStructureMemoryInfoNV) (e) . ($ ())) (bindInfos)- r <- lift $ vkBindAccelerationStructureMemoryNV' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (pPBindInfos)+ r <- lift $ traceAroundEvent "vkBindAccelerationStructureMemoryNV" (vkBindAccelerationStructureMemoryNV' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (pPBindInfos)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) @@ -1233,7 +1237,7 @@ unless (vkCmdCopyAccelerationStructureNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyAccelerationStructureNV is null" Nothing Nothing let vkCmdCopyAccelerationStructureNV' = mkVkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNVPtr- vkCmdCopyAccelerationStructureNV' (commandBufferHandle (commandBuffer)) (dst) (src) (mode)+ traceAroundEvent "vkCmdCopyAccelerationStructureNV" (vkCmdCopyAccelerationStructureNV' (commandBufferHandle (commandBuffer)) (dst) (src) (mode)) pure $ () @@ -1374,7 +1378,7 @@ let vkCmdWriteAccelerationStructuresPropertiesNV' = mkVkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNVPtr pPAccelerationStructures <- ContT $ allocaBytesAligned @AccelerationStructureNV ((Data.Vector.length (accelerationStructures)) * 8) 8 lift $ Data.Vector.imapM_ (\i e -> poke (pPAccelerationStructures `plusPtr` (8 * (i)) :: Ptr AccelerationStructureNV) (e)) (accelerationStructures)- lift $ vkCmdWriteAccelerationStructuresPropertiesNV' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (queryPool) (firstQuery)+ lift $ traceAroundEvent "vkCmdWriteAccelerationStructuresPropertiesNV" (vkCmdWriteAccelerationStructuresPropertiesNV' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (queryPool) (firstQuery)) pure $ () @@ -1585,7 +1589,7 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBuildAccelerationStructureNV is null" Nothing Nothing let vkCmdBuildAccelerationStructureNV' = mkVkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNVPtr pInfo <- ContT $ withCStruct (info)- lift $ vkCmdBuildAccelerationStructureNV' (commandBufferHandle (commandBuffer)) pInfo (instanceData) (instanceOffset) (boolToBool32 (update)) (dst) (src) (scratch) (scratchOffset)+ lift $ traceAroundEvent "vkCmdBuildAccelerationStructureNV" (vkCmdBuildAccelerationStructureNV' (commandBufferHandle (commandBuffer)) pInfo (instanceData) (instanceOffset) (boolToBool32 (update)) (dst) (src) (scratch) (scratchOffset)) pure $ () @@ -1817,16 +1821,8 @@ -- referenced by this call /must/ have been queried from the currently -- bound ray tracing shader pipeline ----- - #VUID-vkCmdTraceRaysNV-commandBuffer-02712# If @commandBuffer@ is a--- protected command buffer, any resource written to by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be an unprotected resource------ - #VUID-vkCmdTraceRaysNV-commandBuffer-02713# If @commandBuffer@ is a--- protected command buffer, pipeline stages other than the--- framebuffer-space and compute stages in the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point /must/ not write to any resource+-- - #VUID-vkCmdTraceRaysNV-commandBuffer-04624# @commandBuffer@ /must/+-- not be a protected command buffer -- -- - #VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625# This command /must/ -- not cause a trace ray instruction to be executed from a shader@@ -2044,7 +2040,7 @@ unless (vkCmdTraceRaysNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdTraceRaysNV is null" Nothing Nothing let vkCmdTraceRaysNV' = mkVkCmdTraceRaysNV vkCmdTraceRaysNVPtr- vkCmdTraceRaysNV' (commandBufferHandle (commandBuffer)) (raygenShaderBindingTableBuffer) (raygenShaderBindingOffset) (missShaderBindingTableBuffer) (missShaderBindingOffset) (missShaderBindingStride) (hitShaderBindingTableBuffer) (hitShaderBindingOffset) (hitShaderBindingStride) (callableShaderBindingTableBuffer) (callableShaderBindingOffset) (callableShaderBindingStride) (width) (height) (depth)+ traceAroundEvent "vkCmdTraceRaysNV" (vkCmdTraceRaysNV' (commandBufferHandle (commandBuffer)) (raygenShaderBindingTableBuffer) (raygenShaderBindingOffset) (missShaderBindingTableBuffer) (missShaderBindingOffset) (missShaderBindingStride) (hitShaderBindingTableBuffer) (hitShaderBindingOffset) (hitShaderBindingStride) (callableShaderBindingTableBuffer) (callableShaderBindingOffset) (callableShaderBindingStride) (width) (height) (depth)) pure $ () @@ -2117,7 +2113,7 @@ unless (vkGetAccelerationStructureHandleNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureHandleNV is null" Nothing Nothing let vkGetAccelerationStructureHandleNV' = mkVkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNVPtr- r <- vkGetAccelerationStructureHandleNV' (deviceHandle (device)) (accelerationStructure) (CSize (dataSize)) (data')+ r <- traceAroundEvent "vkGetAccelerationStructureHandleNV" (vkGetAccelerationStructureHandleNV' (deviceHandle (device)) (accelerationStructure) (CSize (dataSize)) (data')) when (r < SUCCESS) (throwIO (VulkanException r)) @@ -2238,7 +2234,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free- r <- lift $ vkCreateRayTracingPipelinesNV' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)+ r <- lift $ traceAroundEvent "vkCreateRayTracingPipelinesNV" (vkCreateRayTracingPipelinesNV' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline))) pure $ (r, pPipelines)@@ -3285,6 +3281,9 @@ -- 'ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV' then the -- @geometryType@ member of each geometry in @pGeometries@ /must/ be -- the same+--+-- - #VUID-VkAccelerationStructureInfoNV-type-04623# @type@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' -- -- - #VUID-VkAccelerationStructureInfoNV-flags-02592# If @flags@ has the -- 'BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV' bit set,
src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot view
@@ -347,7 +347,7 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIDNV>+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV> -- -- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV> --
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs view
@@ -130,6 +130,7 @@ , pattern NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME ) where +import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -296,7 +297,7 @@ let vkCmdSetExclusiveScissorNV' = mkVkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNVPtr pPExclusiveScissors <- ContT $ allocaBytesAligned @Rect2D ((Data.Vector.length (exclusiveScissors)) * 16) 4 lift $ Data.Vector.imapM_ (\i e -> poke (pPExclusiveScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (exclusiveScissors)- lift $ vkCmdSetExclusiveScissorNV' (commandBufferHandle (commandBuffer)) (firstExclusiveScissor) ((fromIntegral (Data.Vector.length $ (exclusiveScissors)) :: Word32)) (pPExclusiveScissors)+ lift $ traceAroundEvent "vkCmdSetExclusiveScissorNV" (vkCmdSetExclusiveScissorNV' (commandBufferHandle (commandBuffer)) (firstExclusiveScissor) ((fromIntegral (Data.Vector.length $ (exclusiveScissors)) :: Word32)) (pPExclusiveScissors)) pure $ ()
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -312,6 +312,7 @@ import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) import Foreign.Marshal.Alloc (allocaBytesAligned)@@ -484,7 +485,7 @@ unless (vkCmdBindShadingRateImageNVPtr /= nullFunPtr) $ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindShadingRateImageNV is null" Nothing Nothing let vkCmdBindShadingRateImageNV' = mkVkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNVPtr- vkCmdBindShadingRateImageNV' (commandBufferHandle (commandBuffer)) (imageView) (imageLayout)+ traceAroundEvent "vkCmdBindShadingRateImageNV" (vkCmdBindShadingRateImageNV' (commandBufferHandle (commandBuffer)) (imageView) (imageLayout)) pure $ () @@ -581,7 +582,7 @@ let vkCmdSetViewportShadingRatePaletteNV' = mkVkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNVPtr pPShadingRatePalettes <- ContT $ allocaBytesAligned @ShadingRatePaletteNV ((Data.Vector.length (shadingRatePalettes)) * 16) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPShadingRatePalettes `plusPtr` (16 * (i)) :: Ptr ShadingRatePaletteNV) (e) . ($ ())) (shadingRatePalettes)- lift $ vkCmdSetViewportShadingRatePaletteNV' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (shadingRatePalettes)) :: Word32)) (pPShadingRatePalettes)+ lift $ traceAroundEvent "vkCmdSetViewportShadingRatePaletteNV" (vkCmdSetViewportShadingRatePaletteNV' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (shadingRatePalettes)) :: Word32)) (pPShadingRatePalettes)) pure $ () @@ -677,7 +678,7 @@ let vkCmdSetCoarseSampleOrderNV' = mkVkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNVPtr pPCustomSampleOrders <- ContT $ allocaBytesAligned @CoarseSampleOrderCustomNV ((Data.Vector.length (customSampleOrders)) * 24) 8 Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPCustomSampleOrders `plusPtr` (24 * (i)) :: Ptr CoarseSampleOrderCustomNV) (e) . ($ ())) (customSampleOrders)- lift $ vkCmdSetCoarseSampleOrderNV' (commandBufferHandle (commandBuffer)) (sampleOrderType) ((fromIntegral (Data.Vector.length $ (customSampleOrders)) :: Word32)) (pPCustomSampleOrders)+ lift $ traceAroundEvent "vkCmdSetCoarseSampleOrderNV" (vkCmdSetCoarseSampleOrderNV' (commandBufferHandle (commandBuffer)) (sampleOrderType) ((fromIntegral (Data.Vector.length $ (customSampleOrders)) :: Word32)) (pPCustomSampleOrders)) pure $ ()
+ src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs view
@@ -0,0 +1,461 @@+{-# language CPP #-}+-- | = Name+--+-- VK_VALVE_mutable_descriptor_type - device extension+--+-- == VK_VALVE_mutable_descriptor_type+--+-- [__Name String__]+-- @VK_VALVE_mutable_descriptor_type@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 352+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_maintenance3@+--+-- [__Special Use__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+--+-- [__Contact__]+--+-- - Joshua Ashton+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 >+--+-- - Hans-Kristian Arntzen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@HansKristian-Work%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-12-02+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Joshua Ashton, Valve+--+-- - Hans-Kristian Arntzen, Valve+--+-- == Description+--+-- This extension allows applications to reduce descriptor memory footprint+-- by allowing a descriptor to be able to mutate to a given list of+-- descriptor types depending on which descriptor types are written into,+-- or copied into a descriptor set.+--+-- The main use case this extension intends to address is descriptor+-- indexing with+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'+-- where the descriptor types are completely generic, as this means+-- applications can allocate one large descriptor set, rather than having+-- one large descriptor set per descriptor type, which significantly bloats+-- descriptor memory usage and causes performance issues.+--+-- This extension also adds a mechanism to declare that a descriptor pool,+-- and therefore the descriptor sets that are allocated from it, reside+-- only in host memory; as such these descriptors can only be+-- updated\/copied, but not bound.+--+-- These features together allow much more efficient emulation of the raw+-- D3D12 binding model. This extension is primarily intended to be useful+-- for API layering efforts.+--+-- == New Structures+--+-- - 'MutableDescriptorTypeListVALVE'+--+-- - Extending+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':+--+-- - 'MutableDescriptorTypeCreateInfoVALVE'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'+--+-- == New Enum Constants+--+-- - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME'+--+-- - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+--+-- - Extending+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+--+-- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE'+--+-- == Version History+--+-- - Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen)+--+-- - Initial specification, squashed from public draft.+--+-- = See Also+--+-- 'MutableDescriptorTypeCreateInfoVALVE',+-- 'MutableDescriptorTypeListVALVE',+-- 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_VALVE_mutable_descriptor_type ( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE(..)+ , MutableDescriptorTypeListVALVE(..)+ , MutableDescriptorTypeCreateInfoVALVE(..)+ , VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION+ , pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION+ , VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME+ , pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.DescriptorType (DescriptorType)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE))+-- | VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - Structure+-- describing whether the mutable descriptor type is supported+--+-- = Members+--+-- The members of the 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'+-- structure describe the following features:+--+-- = Description+--+-- - #features-mutableDescriptorType# @mutableDescriptorType@ indicates+-- that the implementation /must/ support using the+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- with at least the following descriptor types, where any combination+-- of the types /must/ be supported:+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'+--+-- - Additionally, @mutableDescriptorType@ indicates that:+--+-- - Non-uniform descriptor indexing /must/ be supported if all+-- descriptor types in a 'MutableDescriptorTypeListVALVE' for+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- have the corresponding non-uniform indexing features enabled in+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures'.+--+-- - 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'+-- with @descriptorType@ of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- relaxes the list of required descriptor types to the descriptor+-- types which have the corresponding update-after-bind feature+-- enabled in+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures'.+--+-- - Dynamically uniform descriptor indexing /must/ be supported if+-- all descriptor types in a 'MutableDescriptorTypeListVALVE' for+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- have the corresponding dynamic indexing features enabled.+--+-- - 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+-- /must/ be supported.+--+-- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- /must/ be supported.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE-sType-sType#+-- @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE'+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesVALVE+ { -- No documentation found for Nested "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE" "mutableDescriptorType"+ mutableDescriptorType :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE)+#endif+deriving instance Show PhysicalDeviceMutableDescriptorTypeFeaturesVALVE++instance ToCStruct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceMutableDescriptorTypeFeaturesVALVE{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (mutableDescriptorType))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE where+ peekCStruct p = do+ mutableDescriptorType <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceMutableDescriptorTypeFeaturesVALVE+ (bool32ToBool mutableDescriptorType)++instance Storable PhysicalDeviceMutableDescriptorTypeFeaturesVALVE where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMutableDescriptorTypeFeaturesVALVE where+ zero = PhysicalDeviceMutableDescriptorTypeFeaturesVALVE+ zero+++-- | VkMutableDescriptorTypeListVALVE - Structure describing descriptor types+-- that a given descriptor may mutate to+--+-- == Valid Usage+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-descriptorTypeCount-04597#+-- @descriptorTypeCount@ /must/ not be @0@ if the corresponding binding+-- is of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04598#+-- @pDescriptorTypes@ /must/ be a valid pointer to an array of+-- @descriptorTypeCount@ valid, unique+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' values if the+-- given binding is of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+-- type+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-descriptorTypeCount-04599#+-- @descriptorTypeCount@ /must/ be @0@ if the corresponding binding is+-- not of+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04600#+-- @pDescriptorTypes@ /must/ not contain+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04601#+-- @pDescriptorTypes@ /must/ not contain+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04602#+-- @pDescriptorTypes@ /must/ not contain+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04603#+-- @pDescriptorTypes@ /must/ not contain+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-parameter#+-- If @descriptorTypeCount@ is not @0@, @pDescriptorTypes@ /must/ be a+-- valid pointer to an array of @descriptorTypeCount@ valid+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' values+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType',+-- 'MutableDescriptorTypeCreateInfoVALVE'+data MutableDescriptorTypeListVALVE = MutableDescriptorTypeListVALVE+ { -- | @pDescriptorTypes@ is @NULL@ or a pointer to an array of+ -- @descriptorTypeCount@+ -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' values which define+ -- which descriptor types a given binding may mutate to.+ descriptorTypes :: Vector DescriptorType }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MutableDescriptorTypeListVALVE)+#endif+deriving instance Show MutableDescriptorTypeListVALVE++instance ToCStruct MutableDescriptorTypeListVALVE where+ withCStruct x f = allocaBytesAligned 16 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MutableDescriptorTypeListVALVE{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (descriptorTypes)) :: Word32))+ pPDescriptorTypes' <- ContT $ allocaBytesAligned @DescriptorType ((Data.Vector.length (descriptorTypes)) * 4) 4+ lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorTypes' `plusPtr` (4 * (i)) :: Ptr DescriptorType) (e)) (descriptorTypes)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr DescriptorType))) (pPDescriptorTypes')+ lift $ f+ cStructSize = 16+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ pPDescriptorTypes' <- ContT $ allocaBytesAligned @DescriptorType ((Data.Vector.length (mempty)) * 4) 4+ lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorTypes' `plusPtr` (4 * (i)) :: Ptr DescriptorType) (e)) (mempty)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr DescriptorType))) (pPDescriptorTypes')+ lift $ f++instance FromCStruct MutableDescriptorTypeListVALVE where+ peekCStruct p = do+ descriptorTypeCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ pDescriptorTypes <- peek @(Ptr DescriptorType) ((p `plusPtr` 8 :: Ptr (Ptr DescriptorType)))+ pDescriptorTypes' <- generateM (fromIntegral descriptorTypeCount) (\i -> peek @DescriptorType ((pDescriptorTypes `advancePtrBytes` (4 * (i)) :: Ptr DescriptorType)))+ pure $ MutableDescriptorTypeListVALVE+ pDescriptorTypes'++instance Zero MutableDescriptorTypeListVALVE where+ zero = MutableDescriptorTypeListVALVE+ mempty+++-- | VkMutableDescriptorTypeCreateInfoVALVE - Structure describing the list+-- of possible active descriptor types for mutable type descriptors+--+-- = Description+--+-- If @mutableDescriptorTypeListCount@ is zero or if this structure is not+-- included in the @pNext@ chain, the 'MutableDescriptorTypeListVALVE' for+-- each element is considered to be zero or @NULL@ for each member.+-- Otherwise, the descriptor set layout binding at+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo'::@pBindings@[i]+-- uses the descriptor type lists in+-- 'MutableDescriptorTypeCreateInfoVALVE'::@pMutableDescriptorTypeLists@[i].+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkMutableDescriptorTypeCreateInfoVALVE-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE'+--+-- - #VUID-VkMutableDescriptorTypeCreateInfoVALVE-pMutableDescriptorTypeLists-parameter#+-- If @mutableDescriptorTypeListCount@ is not @0@,+-- @pMutableDescriptorTypeLists@ /must/ be a valid pointer to an array+-- of @mutableDescriptorTypeListCount@ valid+-- 'MutableDescriptorTypeListVALVE' structures+--+-- = See Also+--+-- 'MutableDescriptorTypeListVALVE',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoVALVE+ { -- | @pMutableDescriptorTypeLists@ is a pointer to an array of+ -- 'MutableDescriptorTypeListVALVE' structures.+ mutableDescriptorTypeLists :: Vector MutableDescriptorTypeListVALVE }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MutableDescriptorTypeCreateInfoVALVE)+#endif+deriving instance Show MutableDescriptorTypeCreateInfoVALVE++instance ToCStruct MutableDescriptorTypeCreateInfoVALVE where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MutableDescriptorTypeCreateInfoVALVE{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (mutableDescriptorTypeLists)) :: Word32))+ pPMutableDescriptorTypeLists' <- ContT $ allocaBytesAligned @MutableDescriptorTypeListVALVE ((Data.Vector.length (mutableDescriptorTypeLists)) * 16) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPMutableDescriptorTypeLists' `plusPtr` (16 * (i)) :: Ptr MutableDescriptorTypeListVALVE) (e) . ($ ())) (mutableDescriptorTypeLists)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MutableDescriptorTypeListVALVE))) (pPMutableDescriptorTypeLists')+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pPMutableDescriptorTypeLists' <- ContT $ allocaBytesAligned @MutableDescriptorTypeListVALVE ((Data.Vector.length (mempty)) * 16) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPMutableDescriptorTypeLists' `plusPtr` (16 * (i)) :: Ptr MutableDescriptorTypeListVALVE) (e) . ($ ())) (mempty)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MutableDescriptorTypeListVALVE))) (pPMutableDescriptorTypeLists')+ lift $ f++instance FromCStruct MutableDescriptorTypeCreateInfoVALVE where+ peekCStruct p = do+ mutableDescriptorTypeListCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pMutableDescriptorTypeLists <- peek @(Ptr MutableDescriptorTypeListVALVE) ((p `plusPtr` 24 :: Ptr (Ptr MutableDescriptorTypeListVALVE)))+ pMutableDescriptorTypeLists' <- generateM (fromIntegral mutableDescriptorTypeListCount) (\i -> peekCStruct @MutableDescriptorTypeListVALVE ((pMutableDescriptorTypeLists `advancePtrBytes` (16 * (i)) :: Ptr MutableDescriptorTypeListVALVE)))+ pure $ MutableDescriptorTypeCreateInfoVALVE+ pMutableDescriptorTypeLists'++instance Zero MutableDescriptorTypeCreateInfoVALVE where+ zero = MutableDescriptorTypeCreateInfoVALVE+ mempty+++type VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION"+pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION :: forall a . Integral a => a+pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1+++type VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_VALVE_mutable_descriptor_type"++-- No documentation found for TopLevel "VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME"+pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_VALVE_mutable_descriptor_type"+
+ src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot view
@@ -0,0 +1,167 @@+{-# language CPP #-}+-- | = Name+--+-- VK_VALVE_mutable_descriptor_type - device extension+--+-- == VK_VALVE_mutable_descriptor_type+--+-- [__Name String__]+-- @VK_VALVE_mutable_descriptor_type@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 352+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_maintenance3@+--+-- [__Special Use__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+--+-- [__Contact__]+--+-- - Joshua Ashton+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 >+--+-- - Hans-Kristian Arntzen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@HansKristian-Work%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-12-02+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Joshua Ashton, Valve+--+-- - Hans-Kristian Arntzen, Valve+--+-- == Description+--+-- This extension allows applications to reduce descriptor memory footprint+-- by allowing a descriptor to be able to mutate to a given list of+-- descriptor types depending on which descriptor types are written into,+-- or copied into a descriptor set.+--+-- The main use case this extension intends to address is descriptor+-- indexing with+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'+-- where the descriptor types are completely generic, as this means+-- applications can allocate one large descriptor set, rather than having+-- one large descriptor set per descriptor type, which significantly bloats+-- descriptor memory usage and causes performance issues.+--+-- This extension also adds a mechanism to declare that a descriptor pool,+-- and therefore the descriptor sets that are allocated from it, reside+-- only in host memory; as such these descriptors can only be+-- updated\/copied, but not bound.+--+-- These features together allow much more efficient emulation of the raw+-- D3D12 binding model. This extension is primarily intended to be useful+-- for API layering efforts.+--+-- == New Structures+--+-- - 'MutableDescriptorTypeListVALVE'+--+-- - Extending+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':+--+-- - 'MutableDescriptorTypeCreateInfoVALVE'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'+--+-- == New Enum Constants+--+-- - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME'+--+-- - 'VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+--+-- - Extending+-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+--+-- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE'+--+-- == Version History+--+-- - Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen)+--+-- - Initial specification, squashed from public draft.+--+-- = See Also+--+-- 'MutableDescriptorTypeCreateInfoVALVE',+-- 'MutableDescriptorTypeListVALVE',+-- 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_VALVE_mutable_descriptor_type ( MutableDescriptorTypeCreateInfoVALVE+ , MutableDescriptorTypeListVALVE+ , PhysicalDeviceMutableDescriptorTypeFeaturesVALVE+ ) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data MutableDescriptorTypeCreateInfoVALVE++instance ToCStruct MutableDescriptorTypeCreateInfoVALVE+instance Show MutableDescriptorTypeCreateInfoVALVE++instance FromCStruct MutableDescriptorTypeCreateInfoVALVE+++data MutableDescriptorTypeListVALVE++instance ToCStruct MutableDescriptorTypeListVALVE+instance Show MutableDescriptorTypeListVALVE++instance FromCStruct MutableDescriptorTypeListVALVE+++data PhysicalDeviceMutableDescriptorTypeFeaturesVALVE++instance ToCStruct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE+instance Show PhysicalDeviceMutableDescriptorTypeFeaturesVALVE++instance FromCStruct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE+
src/Vulkan/Version.hs view
@@ -15,11 +15,11 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 163+pattern HEADER_VERSION = 164 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 163+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 164 pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: vulkan-version: 3.8+version: 3.8.1 synopsis: Bindings to the Vulkan graphics API. category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme@@ -32,6 +32,11 @@ manual: True default: False +flag trace-calls+ description: Inserts calls to Debug.Trace.traceEventIO around every Vulkan call.+ manual: True+ default: False+ library exposed-modules: Vulkan@@ -432,6 +437,7 @@ Vulkan.Extensions.VK_MVK_ios_surface Vulkan.Extensions.VK_MVK_macos_surface Vulkan.Extensions.VK_NN_vi_surface+ Vulkan.Extensions.VK_NV_acquire_winrt_display Vulkan.Extensions.VK_NV_clip_space_w_scaling Vulkan.Extensions.VK_NV_compute_shader_derivatives Vulkan.Extensions.VK_NV_cooperative_matrix@@ -470,6 +476,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_VALVE_mutable_descriptor_type Vulkan.NamedType Vulkan.SPIRVRequirements Vulkan.Version@@ -496,4 +503,6 @@ cpp-options: -DSAFE_FOREIGN_CALLS if flag(generic-instances) cpp-options: -DGENERIC_INSTANCES+ if flag(trace-calls)+ cpp-options: -DTRACE_CALLS default-language: Haskell2010