vulkan 3.9 → 3.9.1
raw patch · 53 files changed
+1367/−305 lines, 53 files
Files
- changelog.md +5/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +10/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +97/−32
- src/Vulkan/Core10/Device.hs +7/−1
- src/Vulkan/Core10/DeviceInitialization.hs +16/−11
- src/Vulkan/Core10/Enums/QueryType.hs +9/−2
- src/Vulkan/Core10/Enums/StructureType.hs +29/−13
- src/Vulkan/Core10/FundamentalTypes.hs +2/−0
- src/Vulkan/Core10/ImageView.hs +7/−0
- src/Vulkan/Core10/OtherTypes.hs +4/−4
- src/Vulkan/Core10/Pass.hs +11/−11
- src/Vulkan/Core10/Pipeline.hs +10/−9
- src/Vulkan/Core10/Queue.hs +1/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +4/−0
- src/Vulkan/Core12.hs +10/−10
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +3/−2
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +21/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs +8/−8
- src/Vulkan/Extensions.hs +4/−0
- src/Vulkan/Extensions/Dependencies.hs +8/−4
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_debug_marker.hs +7/−0
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +18/−9
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot +10/−9
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs +28/−14
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot +8/−2
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs +2/−0
- src/Vulkan/Extensions/VK_EXT_sample_locations.hs +3/−7
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +22/−1
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot +1/−1
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +43/−69
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +52/−26
- src/Vulkan/Extensions/VK_KHR_display.hs +6/−4
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs +7/−12
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs +5/−10
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs +1/−0
- src/Vulkan/Extensions/VK_KHR_push_descriptor.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +49/−1
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs +261/−0
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot +129/−0
- src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs +200/−0
- src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot +101/−0
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +13/−0
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +32/−0
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +2/−4
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +3/−3
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs +14/−14
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot +2/−2
- src/Vulkan/SPIRVRequirements.hs +69/−0
- src/Vulkan/Version.hs +4/−2
- vulkan.cabal +3/−1
changelog.md view
@@ -2,6 +2,11 @@ ## WIP +## [3.9.1] - 2021-02-06+- Bump API version to v1.2.169+- Add `COMPLETE` pragma to `MAKE_VERSION` pattern+ https://github.com/expipiplus1/vulkan/issues/256+ ## [3.10] - 2021-01-09 - Make zero instance for `TransformMatrixKHR` return identity matrix. See https://github.com/expipiplus1/vulkan/issues/240
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.9"+version: "3.9.1" synopsis: Bindings to the Vulkan graphics API. category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
src/Vulkan/CStruct/Extends.hs view
@@ -464,7 +464,9 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendAttachmentState)@@ -834,8 +836,10 @@ Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicStateFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = () Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()+ Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = () Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = () Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()@@ -963,8 +967,10 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()@@ -1441,9 +1447,11 @@ STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> go @PhysicalDeviceDiagnosticsConfigFeaturesNV STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> go @DeviceDiagnosticsConfigCreateInfoNV+ STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR -> go @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT -> go @PhysicalDeviceRobustness2FeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT -> go @PhysicalDeviceRobustness2PropertiesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDeviceImageRobustnessFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR -> go @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR -> go @PhysicalDevicePortabilitySubsetFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> go @PhysicalDevice4444FormatsFeaturesEXT@@ -1758,9 +1766,11 @@ {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-} {-# complete (::&) :: PhysicalDeviceDiagnosticsConfigFeaturesNV #-} {-# complete (::&) :: DeviceDiagnosticsConfigCreateInfoNV #-}+{-# complete (::&) :: PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR #-} {-# complete (::&) :: PhysicalDeviceRobustness2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceRobustness2PropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceImageRobustnessFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-} {-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-}
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -2091,6 +2091,16 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdDraw-blendEnable-04727# If rasterization is not disabled+-- in the bound graphics pipeline, then for each color attachment in+-- the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdDraw-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@@ -2614,6 +2624,16 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdDrawIndexed-blendEnable-04727# If rasterization is not+-- disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdDrawIndexed-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@@ -3131,6 +3151,16 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdDrawIndirect-blendEnable-04727# If rasterization is not+-- disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdDrawIndirect-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@@ -3676,6 +3706,16 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdDrawIndexedIndirect-blendEnable-04727# If rasterization+-- is not disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdDrawIndexedIndirect-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@@ -5692,18 +5732,6 @@ -- have been created with @flags@ containing -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- - #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue--- family used to create the 'Vulkan.Core10.Handles.CommandPool' which--- @commandBuffer@ was allocated from does not support--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the--- @bufferOffset@ member of any element of @pRegions@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdCopyBufferToImage-dstImage-04053# If @dstImage@ has a--- depth\/stencil format, the @bufferOffset@ member of any element of--- @pRegions@ /must/ be a multiple of @4@--- -- - #VUID-vkCmdCopyBufferToImage-commandBuffer-04477# If the queue -- family used to create the 'Vulkan.Core10.Handles.CommandPool' which -- @commandBuffer@ was allocated from does not support@@ -5824,6 +5852,29 @@ -- element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be -- @0@ and @imageSubresource.layerCount@ /must/ be @1@ --+-- - #VUID-vkCmdCopyBufferToImage-pRegions-04725# If @dstImage@ is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ multiplied by the+-- texel block size of @dstImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-04726# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ divided by the+-- compressed texel block width and then multiplied by the texel block+-- size of @dstImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue+-- family used to create the 'Vulkan.Core10.Handles.CommandPool' which+-- @commandBuffer@ was allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdCopyBufferToImage-srcImage-04053# If @dstImage@ has a+-- depth\/stencil format, the @bufferOffset@ member of any element of+-- @pRegions@ /must/ be a multiple of @4@+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#@@ -6037,18 +6088,6 @@ -- have been created with @flags@ containing -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-04054# If the queue--- family used to create the 'Vulkan.Core10.Handles.CommandPool' which--- @commandBuffer@ was allocated from does not support--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the--- @bufferOffset@ member of any element of @pRegions@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdCopyImageToBuffer-srcImage-04055# If @srcImage@ has a--- depth\/stencil format, the @bufferOffset@ member of any element of--- @pRegions@ /must/ be a multiple of @4@--- -- - #VUID-vkCmdCopyImageToBuffer-imageOffset-00197# For each element of -- @pRegions@ , @imageOffset.x@ and (@imageExtent.width@ + -- @imageOffset.x@) /must/ both be greater than or equal to @0@ and@@ -6160,6 +6199,29 @@ -- element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be -- @0@ and @imageSubresource.layerCount@ /must/ be @1@ --+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-04725# If @srcImage@ is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ multiplied by the+-- texel block size of @srcImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-04726# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ divided by the+-- compressed texel block width and then multiplied by the texel block+-- size of @srcImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-04052# If the queue+-- family used to create the 'Vulkan.Core10.Handles.CommandPool' which+-- @commandBuffer@ was allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-04053# If @srcImage@ has a+-- depth\/stencil format, the @bufferOffset@ member of any element of+-- @pRegions@ /must/ be a multiple of @4@+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#@@ -6641,9 +6703,6 @@ -- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' -- value ----- - #VUID-vkCmdClearColorImage-pColor-parameter# @pColor@ /must/ be a--- valid pointer to a valid 'ClearColorValue' union--- -- - #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a -- valid pointer to an array of @rangeCount@ valid -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures@@ -8612,6 +8671,16 @@ -- create @queryPool@ /must/ not be -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP' --+-- - #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to+-- create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+-- or+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--+-- - #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to+-- create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'+-- -- - #VUID-vkCmdBeginQuery-queryType-00800# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries> -- feature is not enabled, or the @queryType@ used to create@@ -10724,7 +10793,7 @@ -- For purpose of valid usage statements here and in related copy commands, -- a /blocked image/ is defined as: ----- - a image with a /single-plane/, “@_422@” format, which is treated as+-- - an image with a /single-plane/, “@_422@” format, which is treated as -- a format with a 2 × 1 compressed texel block, or -- -- - a compressed image.@@ -11204,10 +11273,6 @@ -- -- - #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@ -- /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle------ - #VUID-VkRenderPassBeginInfo-pClearValues-parameter# If--- @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid--- pointer to an array of @clearValueCount@ 'ClearValue' unions -- -- - #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and -- @renderPass@ /must/ have been created, allocated, or retrieved from
src/Vulkan/Core10/Device.hs view
@@ -165,7 +165,9 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -755,8 +757,10 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',+-- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', -- or--- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT'+-- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' -- -- - #VUID-VkDeviceCreateInfo-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique, with the exception of@@ -843,8 +847,10 @@ | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -3093,10 +3093,11 @@ -- This also specifies whether shader modules /can/ declare the @Int16@ -- capability. However, this only enables a subset of the storage classes -- that SPIR-V allows for the @Int16@ SPIR-V capability: Declaring and- -- using 16-bit integers in the @Private@, @Workgroup@, and @Function@- -- storage classes is enabled, while declaring them in the interface- -- storage classes (e.g., @UniformConstant@, @Uniform@, @StorageBuffer@,- -- @Input@, @Output@, and @PushConstant@) is not enabled.+ -- using 16-bit integers in the @Private@, @Workgroup@ (for non-Block+ -- variables), and @Function@ storage classes is enabled, while declaring+ -- them in the interface storage classes (e.g., @UniformConstant@,+ -- @Uniform@, @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is+ -- not enabled. shaderInt16 :: Bool , -- | #features-shaderResourceResidency# @shaderResourceResidency@ specifies -- whether image operations that return resource residency information are@@ -4063,13 +4064,17 @@ , -- | #limits-maxComputeSharedMemorySize# @maxComputeSharedMemorySize@ is the -- maximum total storage size, in bytes, available for variables declared -- with the @Workgroup@ storage class in shader modules (or with the- -- @shared@ storage qualifier in GLSL) in the compute shader stage. The- -- amount of storage consumed by the variables declared with the- -- @Workgroup@ storage class is implementation-dependent. However, the- -- amount of storage consumed may not exceed the largest block size that- -- would be obtained if all active variables declared with @Workgroup@- -- storage class were assigned offsets in an arbitrary order by- -- successively taking the smallest valid offset according to the+ -- @shared@ storage qualifier in GLSL) in the compute shader stage. When+ -- variables declared with the @Workgroup@ storage class are explicitly+ -- laid out (hence they are also decorated with @Block@), the amount of+ -- storage consumed is the size of the largest Block variable, not counting+ -- any padding at the end. The amount of storage consumed by the non-Block+ -- variables declared with the @Workgroup@ storage class is+ -- implementation-dependent. However, the amount of storage consumed may+ -- not exceed the largest block size that would be obtained if all active+ -- non-Block variables declared with @Workgroup@ storage class were+ -- assigned offsets in an arbitrary order by successively taking the+ -- smallest valid offset according to the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout> -- rules. (This is equivalent to using the GLSL std430 layout rules.) maxComputeSharedMemorySize :: Word32
src/Vulkan/Core10/Enums/QueryType.hs view
@@ -44,13 +44,20 @@ -- | 'QUERY_TYPE_PERFORMANCE_QUERY_INTEL' specifies a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-performance-intel Intel performance query>. pattern QUERY_TYPE_PERFORMANCE_QUERY_INTEL = QueryType 1000210000--- No documentation found for Nested "VkQueryType" "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV"+-- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' specifies a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- for use with+-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = QueryType 1000165000 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR' specifies a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying serialization acceleration structure size query> pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = QueryType 1000150001 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- for use with+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = QueryType 1000150000 -- | 'QUERY_TYPE_PERFORMANCE_QUERY_KHR' specifies a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-performance performance query>.
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -64,6 +64,7 @@ , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR , STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR , STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT@@ -71,6 +72,7 @@ , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT@@ -859,7 +861,9 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',+-- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR', -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',@@ -1110,6 +1114,8 @@ pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = StructureType 1000337001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR" pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = StructureType 1000337000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = StructureType 1000336000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = StructureType 1000335000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"@@ -1124,6 +1130,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = StructureType 1000326001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = StructureType 1000326000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = StructureType 1000325000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" pattern STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = StructureType 1000300001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"@@ -1992,6 +2000,7 @@ STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR, STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR, STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,@@ -1999,6 +2008,7 @@ STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR, STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,@@ -2463,19 +2473,22 @@ , ( 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_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_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR+ , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"+ ) , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, "PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT") , (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM , "COPY_COMMAND_TRANSFORM_INFO_QCOM") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT@@ -2492,6 +2505,9 @@ ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR+ , "PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR" ) , (STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV , "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, "PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV")
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -491,7 +491,9 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures',+-- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',
src/Vulkan/Core10/ImageView.hs view
@@ -959,6 +959,13 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', -- @format@ /must/ be identical to the @format@ used to create @image@ --+-- - #VUID-VkImageViewCreateInfo-format-04724# If @format@ is one of+-- those listed in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion>,+-- then the pNext chain /must/ include a+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'+-- structure with a conversion value other than VK_NULL_HANDLE+-- -- - #VUID-VkImageViewCreateInfo-format-04714# If @format@ has a @_422@ -- or @_420@ suffix then @image@ /must/ have been created with a width -- that is a multiple of 2
src/Vulkan/Core10/OtherTypes.hs view
@@ -529,7 +529,7 @@ -- or @oldLayout@ and @newLayout@ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, -- and @oldLayout@ or @newLayout@ is--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' -- then @image@ /must/ have been created with at least one of -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or@@ -542,7 +542,7 @@ -- or @oldLayout@ and @newLayout@ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, -- and @oldLayout@ or @newLayout@ is--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' -- then @image@ /must/ have been created with -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- set@@ -553,7 +553,7 @@ -- or @oldLayout@ and @newLayout@ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, -- and @oldLayout@ or @newLayout@ is--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' -- then @image@ /must/ have been created with at least one of -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', or@@ -566,7 +566,7 @@ -- or @oldLayout@ and @newLayout@ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, -- and @oldLayout@ or @newLayout@ is--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' -- then @image@ /must/ have been created with -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- set
src/Vulkan/Core10/Pass.hs view
@@ -934,11 +934,11 @@ -- be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR',--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR',--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR',--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or--- 'Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' -- -- == Valid Usage (Implicit) --@@ -1178,8 +1178,8 @@ -- -- - #VUID-VkSubpassDescription-pDepthStencilAttachment-02650# If -- @pDepthStencilAttachment@ is not @NULL@ and the attachment is not--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have a--- image format whose+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have+-- an image format whose -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'@@ -2274,12 +2274,12 @@ -- - #VUID-VkFramebufferCreateInfo-flags-03190# If @flags@ includes -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- the @pNext@ chain /must/ include an instance of--- 'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- -- - #VUID-VkFramebufferCreateInfo-flags-03191# If @flags@ includes -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- the @attachmentImageInfoCount@ member of an instance of--- 'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- in the @pNext@ chain /must/ be equal to either zero or -- @attachmentCount@ --@@ -2287,7 +2287,7 @@ -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- the @width@ member of any element of the @pAttachmentImageInfos@ -- member of an instance of--- 'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- in the @pNext@ chain that is used as an input, color, resolve or -- depth\/stencil attachment in @pRenderPass@ /must/ be greater than or -- equal to @width@@@ -2296,7 +2296,7 @@ -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- the @height@ member of any element of the @pAttachmentImageInfos@ -- member of an instance of--- 'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- in the @pNext@ chain that is used as an input, color, resolve or -- depth\/stencil attachment in @pRenderPass@ /must/ be greater than or -- equal to @height@@@ -2305,7 +2305,7 @@ -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- the @width@ member of any element of the @pAttachmentImageInfos@ -- member of an instance of--- 'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- in the @pNext@ chain that is referenced by -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment@ -- in @renderPass@ /must/ be greater than or equal to
src/Vulkan/Core10/Pipeline.hs view
@@ -3533,15 +3533,16 @@ -- of the @front@ and @back@ members of @pDepthStencilState@ /must/ be -- 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' ----- - #VUID-VkGraphicsPipelineCreateInfo-blendEnable-02023# If--- rasterization is not disabled and the subpass uses color--- attachments, then for each color attachment in the subpass the--- @blendEnable@ member of the corresponding element of the--- @pAttachment@ member of @pColorBlendState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE' if the attached image’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- does not contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+-- - #VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717# If+-- rasterization is not disabled, then for each color attachment in the+-- subpass, if the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>+-- of the format of the corresponding attachment description do not+-- contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746# If -- rasterization is not disabled and the subpass uses color
src/Vulkan/Core10/Queue.hs view
@@ -696,7 +696,7 @@ -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo' -- structure with @protectedSubmit@ set to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then each element of the--- @pCommandBuffers@ array /must/ be an protected command buffer+-- @pCommandBuffers@ array /must/ be a protected command buffer -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -218,7 +218,9 @@ import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -679,8 +681,10 @@ | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f
src/Vulkan/Core12.hs view
@@ -557,22 +557,22 @@ -- whether shader modules /can/ declare the @Float16@ capability. -- However, this only enables a subset of the storage classes that -- SPIR-V allows for the @Float16@ SPIR-V capability: Declaring and--- using 16-bit floats in the @Private@, @Workgroup@, and @Function@--- storage classes is enabled, while declaring them in the interface--- storage classes (e.g., @UniformConstant@, @Uniform@,--- @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is not--- enabled.+-- using 16-bit floats in the @Private@, @Workgroup@ (for non-Block+-- variables), and @Function@ storage classes is enabled, while+-- declaring them in the interface storage classes (e.g.,+-- @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@, @Output@,+-- and @PushConstant@) is not enabled. -- -- - #features-shaderInt8# @shaderInt8@ indicates whether 8-bit integers -- (signed and unsigned) are supported in shader code. This also -- indicates whether shader modules /can/ declare the @Int8@ -- capability. However, this only enables a subset of the storage -- classes that SPIR-V allows for the @Int8@ SPIR-V capability:--- Declaring and using 8-bit integers in the @Private@, @Workgroup@,--- and @Function@ storage classes is enabled, while declaring them in--- the interface storage classes (e.g., @UniformConstant@, @Uniform@,--- @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is not--- enabled.+-- Declaring and using 8-bit integers in the @Private@, @Workgroup@+-- (for non-Block variables), and @Function@ storage classes is+-- enabled, while declaring them in the interface storage classes+-- (e.g., @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@,+-- @Output@, and @PushConstant@) is not enabled. -- -- - #features-descriptorIndexing# @descriptorIndexing@ indicates whether -- the implementation supports the minimum set of descriptor indexing
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -1152,8 +1152,8 @@ -- -- - #VUID-VkSubpassDescription2-pDepthStencilAttachment-02900# If -- @pDepthStencilAttachment@ is not @NULL@ and the attachment is not--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have a--- image format whose+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have+-- an image format whose -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'@@ -1634,6 +1634,7 @@ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero) poke ((p `plusPtr` 24 :: Ptr PipelineStageFlags)) (zero) poke ((p `plusPtr` 28 :: Ptr PipelineStageFlags)) (zero)+ poke ((p `plusPtr` 44 :: Ptr Int32)) (zero) f instance FromCStruct SubpassDependency2 where
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -438,6 +438,16 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdDrawIndirectCount-blendEnable-04727# If rasterization is+-- not disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings -- accessed via vertex input variables declared in the vertex shader -- entry point’s interface /must/ have either valid or@@ -1008,6 +1018,17 @@ -- draw command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727# If+-- rasterization is not disabled in the bound graphics pipeline, then+-- for each color attachment in the subpass, if the corresponding image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs view
@@ -41,20 +41,20 @@ -- whether shader modules /can/ declare the @Float16@ capability. However, -- this only enables a subset of the storage classes that SPIR-V allows for -- the @Float16@ SPIR-V capability: Declaring and using 16-bit floats in- -- the @Private@, @Workgroup@, and @Function@ storage classes is enabled,- -- while declaring them in the interface storage classes (e.g.,- -- @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@, @Output@, and- -- @PushConstant@) is not enabled.+ -- the @Private@, @Workgroup@ (for non-Block variables), and @Function@+ -- storage classes is enabled, while declaring them in the interface+ -- storage classes (e.g., @UniformConstant@, @Uniform@, @StorageBuffer@,+ -- @Input@, @Output@, and @PushConstant@) is not enabled. shaderFloat16 :: Bool , -- | #extension-features-shaderInt8# @shaderInt8@ indicates whether 8-bit -- integers (signed and unsigned) are supported in shader code. This also -- indicates whether shader modules /can/ declare the @Int8@ capability. -- However, this only enables a subset of the storage classes that SPIR-V -- allows for the @Int8@ SPIR-V capability: Declaring and using 8-bit- -- integers in the @Private@, @Workgroup@, and @Function@ storage classes- -- is enabled, while declaring them in the interface storage classes (e.g.,- -- @UniformConstant@, @Uniform@, @StorageBuffer@, @Input@, @Output@, and- -- @PushConstant@) is not enabled.+ -- integers in the @Private@, @Workgroup@ (for non-Block variables), and+ -- @Function@ storage classes is enabled, while declaring them in the+ -- interface storage classes (e.g., @UniformConstant@, @Uniform@,+ -- @StorageBuffer@, @Input@, @Output@, and @PushConstant@) is not enabled. shaderInt8 :: Bool } deriving (Typeable, Eq)
src/Vulkan/Extensions.hs view
@@ -180,8 +180,10 @@ , module Vulkan.Extensions.VK_KHR_wayland_surface , module Vulkan.Extensions.VK_KHR_win32_keyed_mutex , module Vulkan.Extensions.VK_KHR_win32_surface+ , module Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout , module Vulkan.Extensions.VK_KHR_xcb_surface , module Vulkan.Extensions.VK_KHR_xlib_surface+ , module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory , module Vulkan.Extensions.VK_MVK_ios_surface , module Vulkan.Extensions.VK_MVK_macos_surface , module Vulkan.Extensions.VK_NN_vi_surface@@ -406,8 +408,10 @@ import Vulkan.Extensions.VK_KHR_wayland_surface import Vulkan.Extensions.VK_KHR_win32_keyed_mutex import Vulkan.Extensions.VK_KHR_win32_surface+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout import Vulkan.Extensions.VK_KHR_xcb_surface import Vulkan.Extensions.VK_KHR_xlib_surface+import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory import Vulkan.Extensions.VK_MVK_ios_surface import Vulkan.Extensions.VK_MVK_macos_surface import Vulkan.Extensions.VK_NN_vi_surface
src/Vulkan/Extensions/Dependencies.hs view
@@ -131,8 +131,10 @@ import Vulkan.Extensions.VK_KHR_wayland_surface (pattern KHR_WAYLAND_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_win32_keyed_mutex (pattern KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_win32_surface (pattern KHR_WIN32_SURFACE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_xcb_surface (pattern KHR_XCB_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_xlib_surface (pattern KHR_XLIB_SURFACE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME) import Vulkan.Version (pattern MAKE_VERSION) import Vulkan.Extensions.VK_MVK_ios_surface (pattern MVK_IOS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_MVK_macos_surface (pattern MVK_MACOS_SURFACE_EXTENSION_NAME)@@ -162,7 +164,7 @@ import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME) 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_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]@@ -452,6 +454,7 @@ QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME] EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME -> [ KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME , KHR_CREATE_RENDERPASS_2_EXTENSION_NAME@@ -461,10 +464,11 @@ ] EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME -> [EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- QCOM_rotated_copy_commands_EXTENSION_NAME ->+ 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_IMAGE_ROBUSTNESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_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]
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -347,7 +347,7 @@ -- coinciding timestamp values, however, depending on the nature of the -- time domains and other properties of the platform extrapolating values -- over a sufficiently long period of time /may/ no longer be accurate--- enough to fit any particular purpose so applications are expected to+-- enough to fit any particular purpose, so applications are expected to -- re-calibrate the timestamps on a regular basis. -- -- == Return Codes
src/Vulkan/Extensions/VK_EXT_debug_marker.hs view
@@ -920,6 +920,13 @@ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) pMarkerName'' <- ContT $ useAsCString (mempty) lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pMarkerName''+ let pColor' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 4 CFloat)))+ lift $ case ((zero, zero, zero, zero)) of+ (e0, e1, e2, e3) -> do+ poke (pColor' :: Ptr CFloat) (CFloat (e0))+ poke (pColor' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+ poke (pColor' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+ poke (pColor' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3)) lift $ f instance FromCStruct DebugMarkerMarkerInfoEXT where
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -232,8 +232,8 @@ -- > VkDebugUtilsMessengerEXT cb1, cb2, cb3; -- > -- > // Must call extension functions through a function pointer:--- > PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkCreateDebugUtilsMessengerEXT");--- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkDestroyDebugUtilsMessengerEXT");+-- > PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT");+-- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- > -- > VkDebugUtilsMessengeCreateInfoEXT callback1 = { -- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType@@ -287,11 +287,12 @@ -- or with validation layers that can print a friendly name when referring -- to objects in error messages. --+-- > extern VkInstance instance; -- > extern VkDevice device; -- > extern VkImage image; -- > -- > // Must call extension functions through a function pointer:--- > PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectNameEXT");+-- > PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT"); -- > -- > // Set a name on the image -- > const VkDebugUtilsObjectNameInfoEXT imageNameInfo =@@ -315,15 +316,15 @@ -- analysis tools can display a more usable visualization of the commands -- submitted. ----- > extern VkDevice device;+-- > extern VkInstance instance; -- > extern VkCommandBuffer commandBuffer; -- > -- > // Must call extension functions through a function pointer:--- > PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueBeginDebugUtilsLabelEXT");--- > PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueEndDebugUtilsLabelEXT");--- > PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdBeginDebugUtilsLabelEXT");--- > PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdEndDebugUtilsLabelEXT");--- > PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT");+-- > PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT");+-- > PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT");+-- > PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT");+-- > PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT");+-- > PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT"); -- > -- > // Describe the area being rendered -- > const VkDebugUtilsLabelEXT houseLabel =@@ -1613,6 +1614,13 @@ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) pLabelName'' <- ContT $ useAsCString (mempty) lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pLabelName''+ let pColor' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 4 CFloat)))+ lift $ case ((zero, zero, zero, zero)) of+ (e0, e1, e2, e3) -> do+ poke (pColor' :: Ptr CFloat) (CFloat (e0))+ poke (pColor' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+ poke (pColor' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+ poke (pColor' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3)) lift $ f instance FromCStruct DebugUtilsLabelEXT where@@ -1920,6 +1928,7 @@ pokeZeroCStruct p f = evalContT $ do lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT) lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 32 :: Ptr Int32)) (zero) pMessage'' <- ContT $ useAsCString (mempty) lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CChar))) pMessage'' lift $ f
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -232,8 +232,8 @@ -- > VkDebugUtilsMessengerEXT cb1, cb2, cb3; -- > -- > // Must call extension functions through a function pointer:--- > PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkCreateDebugUtilsMessengerEXT");--- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetDeviceProcAddr(device, "vkDestroyDebugUtilsMessengerEXT");+-- > PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT");+-- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- > -- > VkDebugUtilsMessengeCreateInfoEXT callback1 = { -- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType@@ -287,11 +287,12 @@ -- or with validation layers that can print a friendly name when referring -- to objects in error messages. --+-- > extern VkInstance instance; -- > extern VkDevice device; -- > extern VkImage image; -- > -- > // Must call extension functions through a function pointer:--- > PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectNameEXT");+-- > PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT"); -- > -- > // Set a name on the image -- > const VkDebugUtilsObjectNameInfoEXT imageNameInfo =@@ -315,15 +316,15 @@ -- analysis tools can display a more usable visualization of the commands -- submitted. ----- > extern VkDevice device;+-- > extern VkInstance instance; -- > extern VkCommandBuffer commandBuffer; -- > -- > // Must call extension functions through a function pointer:--- > PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueBeginDebugUtilsLabelEXT");--- > PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkQueueEndDebugUtilsLabelEXT");--- > PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdBeginDebugUtilsLabelEXT");--- > PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdEndDebugUtilsLabelEXT");--- > PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT");+-- > PFN_vkQueueBeginDebugUtilsLabelEXT pfnQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT");+-- > PFN_vkQueueEndDebugUtilsLabelEXT pfnQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT");+-- > PFN_vkCmdBeginDebugUtilsLabelEXT pfnCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT");+-- > PFN_vkCmdEndDebugUtilsLabelEXT pfnCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT");+-- > PFN_vkCmdInsertDebugUtilsLabelEXT pfnCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT"); -- > -- > // Describe the area being rendered -- > const VkDebugUtilsLabelEXT houseLabel =
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -15,7 +15,7 @@ -- 285 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --@@ -35,7 +35,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2020-08-26+-- 2021-01-06 -- -- [__IP Status__] -- No known IP claims.@@ -217,6 +217,12 @@ -- -- - Revision 1, 2020-08-26 (Yiwei Zhang) --+-- - Initial version+--+-- - Revision 2, 2021-01-06 (Yiwei Zhang)+--+-- - Minor description update+-- -- = See Also -- -- 'PFN_vkDeviceMemoryReportCallbackEXT',@@ -498,32 +504,36 @@ , -- | @size@ is the size of the memory object in bytes. If @type@ is -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT', -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT' or- -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @size@ /must/- -- be a valid 'Vulkan.Core10.FundamentalTypes.DeviceSize' value.+ -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @size@ is a+ -- valid 'Vulkan.Core10.FundamentalTypes.DeviceSize' value. Otherwise,+ -- @size@ is undefined. size :: DeviceSize , -- | @objectType@ is a 'Vulkan.Core10.Enums.ObjectType.ObjectType' value -- specifying the type of the object associated with this device memory -- report event. If @type@ is -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT',- -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT' or- -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @objectType@- -- /must/ be a valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' enum.+ -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT',+ -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT',+ -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT' or+ -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @objectType@ is+ -- a valid 'Vulkan.Core10.Enums.ObjectType.ObjectType' enum. Otherwise,+ -- @objectType@ is undefined. objectType :: ObjectType , -- | @objectHandle@ is the object this device memory report event is -- attributed to. If @type@ is -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT', -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT', -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT' or- -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT', @objectHandle@ /must/ be- -- a valid Vulkan handle of the type associated with @objectType@ as- -- defined in the+ -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT', @objectHandle@ is a+ -- valid Vulkan handle of the type associated with @objectType@ as defined+ -- in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types VkObjectType and Vulkan Handle Relationship>- -- table.+ -- table. Otherwise, @objectHandle@ is undefined. objectHandle :: Word64 , -- | @heapIndex@ describes which memory heap this device memory allocation is -- made from. If @type@ is 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT' -- or 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT', @heapIndex@- -- /must/ correspond to one of the valid heaps from the+ -- corresponds to one of the valid heaps from the -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties' -- structure. Otherwise, @heapIndex@ is undefined. heapIndex :: Word32@@ -555,6 +565,10 @@ poke ((p `plusPtr` 16 :: Ptr DeviceMemoryReportFlagsEXT)) (zero) poke ((p `plusPtr` 20 :: Ptr DeviceMemoryReportEventTypeEXT)) (zero) poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 40 :: Ptr ObjectType)) (zero)+ poke ((p `plusPtr` 48 :: Ptr Word64)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero) f instance FromCStruct DeviceMemoryReportCallbackDataEXT where@@ -691,11 +705,11 @@ type PFN_vkDeviceMemoryReportCallbackEXT = FunPtr FN_vkDeviceMemoryReportCallbackEXT -type EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 1+type EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION" pattern EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 1+pattern EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 2 type EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME = "VK_EXT_device_memory_report"
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -15,7 +15,7 @@ -- 285 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] --@@ -35,7 +35,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2020-08-26+-- 2021-01-06 -- -- [__IP Status__] -- No known IP claims.@@ -216,6 +216,12 @@ -- == Version History -- -- - Revision 1, 2020-08-26 (Yiwei Zhang)+--+-- - Initial version+--+-- - Revision 2, 2021-01-06 (Yiwei Zhang)+--+-- - Minor description update -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -547,6 +547,8 @@ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr LineRasterizationModeEXT)) (zero) poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 28 :: Ptr Word16)) (zero) f instance FromCStruct PipelineRasterizationLineStateCreateInfoEXT where
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -472,11 +472,6 @@ -- - #VUID-VkSampleLocationsInfoEXT-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT' ----- - #VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-parameter# If--- @sampleLocationsPerPixel@ is not @0@, @sampleLocationsPerPixel@--- /must/ be a valid--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value--- -- - #VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter# If -- @sampleLocationsCount@ is not @0@, @pSampleLocations@ /must/ be a -- valid pointer to an array of @sampleLocationsCount@@@ -492,8 +487,8 @@ -- 'SubpassSampleLocationsEXT', 'cmdSetSampleLocationsEXT' data SampleLocationsInfoEXT = SampleLocationsInfoEXT { -- | @sampleLocationsPerPixel@ is a- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying- -- the number of sample locations per pixel.+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the number of sample locations per pixel. sampleLocationsPerPixel :: SampleCountFlagBits , -- | @sampleLocationGridSize@ is the size of the sample location grid to -- select custom sample locations for.@@ -525,6 +520,7 @@ pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr SampleCountFlagBits)) (zero) poke ((p `plusPtr` 20 :: Ptr Extent2D)) (zero) f
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -192,7 +192,7 @@ -- to a destination access of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' -- at pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'.+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'. -- -- 2) How does this interact with multiview? --@@ -836,6 +836,16 @@ -- used to create @queryPool@ /must/ not be -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP' --+-- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-04728# The @queryType@+-- used to create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+-- or+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--+-- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-04729# The @queryType@+-- used to create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'+-- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-00800# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries> -- feature is not enabled, or the @queryType@ used to create@@ -1566,6 +1576,17 @@ -- draw command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727# If+-- rasterization is not disabled in the bound graphics pipeline, then+-- for each color attachment in the subpass, if the corresponding image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot view
@@ -192,7 +192,7 @@ -- to a destination access of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' -- at pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'.+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'. -- -- 2) How does this interact with multiview? --
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -1266,6 +1266,7 @@ import Data.Vector (generateM) import qualified Data.Vector (imapM_) import qualified Data.Vector (length)+import qualified Data.Vector (null) import Foreign.C.Types (CSize(..)) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..))@@ -4532,8 +4533,9 @@ -- 'AccelerationStructureBuildGeometryInfoKHR' structure -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameter#--- @pMaxPrimitiveCounts@ /must/ be a valid pointer to an array of--- @pBuildInfo->geometryCount@ @uint32_t@ values+-- If @pMaxPrimitiveCounts@ is not @NULL@, @pMaxPrimitiveCounts@ /must/+-- be a valid pointer to an array of @pBuildInfo->geometryCount@+-- @uint32_t@ values -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameter# -- @pSizeInfo@ /must/ be a valid pointer to a@@ -4567,10 +4569,14 @@ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureBuildSizesKHR is null" Nothing Nothing let vkGetAccelerationStructureBuildSizesKHR' = mkVkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHRPtr pBuildInfo <- ContT $ withCStruct (buildInfo)- 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)+ pMaxPrimitiveCounts <- if Data.Vector.null (maxPrimitiveCounts)+ then pure nullPtr+ else do+ 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))+ pure $ pPMaxPrimitiveCounts pPSizeInfo <- ContT (withZeroCStruct @AccelerationStructureBuildSizesInfoKHR)- lift $ traceAroundEvent "vkGetAccelerationStructureBuildSizesKHR" (vkGetAccelerationStructureBuildSizesKHR' (deviceHandle (device)) (buildType) pBuildInfo (pPMaxPrimitiveCounts) (pPSizeInfo))+ lift $ traceAroundEvent "vkGetAccelerationStructureBuildSizesKHR" (vkGetAccelerationStructureBuildSizesKHR' (deviceHandle (device)) (buildType) pBuildInfo pMaxPrimitiveCounts (pPSizeInfo)) pSizeInfo <- lift $ peekCStruct @AccelerationStructureBuildSizesInfoKHR pPSizeInfo pure $ (pSizeInfo) @@ -4916,57 +4922,8 @@ -- @vertexStride@ for acceleration structure geometry is instead restricted -- to being a 32-bit value. ----- == Valid Usage------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735#--- @vertexStride@ /must/ be a multiple of the size in bytes of the--- smallest component of @vertexFormat@------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819#--- @vertexStride@ /must/ be less than or equal to 232-1------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797#--- @vertexFormat@ /must/ support the--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'--- in--- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@--- as returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798#--- @indexType@ /must/ be--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16',--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', or--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'--- -- == Valid Usage (Implicit) ----- - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType#--- @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR'------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext#--- @pNext@ /must/ be @NULL@------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter#--- @vertexFormat@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format'--- value------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexData-parameter#--- @vertexData@ /must/ be a valid 'DeviceOrHostAddressConstKHR' union------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter#--- @indexType@ /must/ be a valid--- 'Vulkan.Core10.Enums.IndexType.IndexType' value------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexData-parameter#--- If @indexData@ is not @0@, @indexData@ /must/ be a valid--- 'DeviceOrHostAddressConstKHR' union------ - #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-transformData-parameter#--- If @transformData@ is not @0@, @transformData@ /must/ be a valid--- 'DeviceOrHostAddressConstKHR' union--- -- = See Also -- -- 'AccelerationStructureGeometryDataKHR', 'DeviceOrHostAddressConstKHR',@@ -4977,17 +4934,45 @@ data AccelerationStructureGeometryTrianglesDataKHR = AccelerationStructureGeometryTrianglesDataKHR { -- | @vertexFormat@ is the 'Vulkan.Core10.Enums.Format.Format' of each vertex -- element.+ --+ -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797#+ -- @vertexFormat@ /must/ support the+ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR'+ -- in+ -- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@+ -- as returned by+ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'+ --+ -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter#+ -- @vertexFormat@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format'+ -- value vertexFormat :: Format , -- | @vertexData@ is a device or host address to memory containing vertex -- data for this geometry. vertexData :: DeviceOrHostAddressConstKHR , -- | @vertexStride@ is the stride in bytes between each vertex.+ --+ -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735#+ -- @vertexStride@ /must/ be a multiple of the size in bytes of the smallest+ -- component of @vertexFormat@+ --+ -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819#+ -- @vertexStride@ /must/ be less than or equal to 232-1 vertexStride :: DeviceSize , -- | @maxVertex@ is the highest index of a vertex that will be addressed by a -- build command using this structure. maxVertex :: Word32 , -- | @indexType@ is the 'Vulkan.Core10.Enums.IndexType.IndexType' of each -- index element.+ --+ -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798#+ -- @indexType@ /must/ be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16',+ -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', or+ -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'+ --+ -- #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter#+ -- @indexType@ /must/ be a valid 'Vulkan.Core10.Enums.IndexType.IndexType'+ -- value indexType :: IndexType , -- | @indexData@ is a device or host address to memory containing index data -- for this geometry.@@ -5026,6 +5011,8 @@ lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero) lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero) lift $ poke ((p `plusPtr` 44 :: Ptr IndexType)) (zero)+ ContT $ pokeCStruct ((p `plusPtr` 48 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 56 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ()) lift $ f instance Zero AccelerationStructureGeometryTrianglesDataKHR where@@ -5054,9 +5041,6 @@ { -- | @data@ is a device or host address to memory containing -- 'AabbPositionsKHR' structures containing position data for each -- axis-aligned bounding box in the geometry.- --- -- #VUID-VkAccelerationStructureGeometryAabbsDataKHR-data-parameter# @data@- -- /must/ be a valid 'DeviceOrHostAddressConstKHR' union data' :: DeviceOrHostAddressConstKHR , -- | @stride@ is the stride in bytes between each entry in @data@. The stride -- /must/ be a multiple of @8@.@@ -5115,9 +5099,6 @@ -- referencing individual 'AccelerationStructureInstanceKHR' structures if -- @arrayOfPointers@ is 'Vulkan.Core10.FundamentalTypes.TRUE', or the -- address of an array of 'AccelerationStructureInstanceKHR' structures.- --- -- #VUID-VkAccelerationStructureGeometryInstancesDataKHR-data-parameter#- -- @data@ /must/ be a valid 'DeviceOrHostAddressConstKHR' union data' :: DeviceOrHostAddressConstKHR } deriving (Typeable)@@ -5345,9 +5326,6 @@ -- @geometryCount@ valid pointers to valid -- 'AccelerationStructureGeometryKHR' structures ----- - #VUID-VkAccelerationStructureBuildGeometryInfoKHR-scratchData-parameter#--- @scratchData@ /must/ be a valid 'DeviceOrHostAddressKHR' union--- -- - #VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent# Both -- of @dstAccelerationStructure@, and @srcAccelerationStructure@ that -- are valid handles of non-ignored parameters /must/ have been@@ -5548,6 +5526,8 @@ pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr Word32)) (zero) poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (zero) f instance FromCStruct AccelerationStructureBuildRangeInfoKHR where@@ -6304,9 +6284,6 @@ -- @src@ /must/ be a valid -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle ----- - #VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-parameter#--- @dst@ /must/ be a valid 'DeviceOrHostAddressKHR' union--- -- - #VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter# -- @mode@ /must/ be a valid 'CopyAccelerationStructureModeKHR' value --@@ -6384,9 +6361,6 @@ -- -- - #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext# -- @pNext@ /must/ be @NULL@------ - #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-parameter#--- @src@ /must/ be a valid 'DeviceOrHostAddressConstKHR' union -- -- - #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter# -- @dst@ /must/ be a valid
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -2364,18 +2364,6 @@ -- not have been created with @flags@ containing -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- - #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052# If the queue--- family used to create the 'Vulkan.Core10.Handles.CommandPool' which--- @commandBuffer@ was allocated from does not support--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the--- @bufferOffset@ member of any element of @pRegions@ /must/ be a--- multiple of @4@------ - #VUID-VkCopyBufferToImageInfo2KHR-dstImage-04053# If @dstImage@ has--- a depth\/stencil format, the @bufferOffset@ member of any element of--- @pRegions@ /must/ be a multiple of @4@--- -- - #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04477# If the queue -- family used to create the 'Vulkan.Core10.Handles.CommandPool' which -- @commandBuffer@ was allocated from does not support@@ -2507,6 +2495,30 @@ -- for each element of @pRegions@, @imageSubresource.baseArrayLayer@ -- /must/ be @0@ and @imageSubresource.layerCount@ /must/ be @1@ --+-- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04725# If @dstImage@ is+-- not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ multiplied by the+-- texel block size of @dstImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04726# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ divided by the+-- compressed texel block width and then multiplied by the texel block+-- size of @dstImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052# If the queue+-- family used to create the 'Vulkan.Core10.Handles.CommandPool' which+-- @commandBuffer@ was allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - #VUID-VkCopyBufferToImageInfo2KHR-srcImage-04053# If @dstImage@ has+-- a depth\/stencil format, the @bufferOffset@ member of any element of+-- @pRegions@ /must/ be a multiple of @4@+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkCopyBufferToImageInfo2KHR-sType-sType# @sType@ /must/ be@@ -2603,8 +2615,8 @@ mempty --- | VkCopyImageToBufferInfo2KHR - Structure specifying parameters of a image--- to buffer copy command+-- | VkCopyImageToBufferInfo2KHR - Structure specifying parameters of an+-- image to buffer copy command -- -- == Valid Usage --@@ -2709,18 +2721,6 @@ -- not have been created with @flags@ containing -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' ----- - #VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04054# If the queue--- family used to create the 'Vulkan.Core10.Handles.CommandPool' which--- @commandBuffer@ was allocated from does not support--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the--- @bufferOffset@ member of any element of @pRegions@ /must/ be a--- multiple of @4@------ - #VUID-VkCopyImageToBufferInfo2KHR-srcImage-04055# If @srcImage@ has--- a depth\/stencil format, the @bufferOffset@ member of any element of--- @pRegions@ /must/ be a multiple of @4@--- -- - #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197# For each -- element of @pRegions@ not containing -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'@@ -2843,6 +2843,32 @@ -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element of -- @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and -- @imageSubresource.layerCount@ /must/ be @1@+--+-- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04725# If {imageparam} is+-- not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ multiplied by the+-- texel block size of {imageparam} /must/ be less than or equal to+-- 231-1+--+-- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04726# If {imageparam} is+-- a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ divided by the+-- compressed texel block width and then multiplied by the texel block+-- size of {imageparam} /must/ be less than or equal to 231-1+--+-- - #VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04052# If the queue+-- family used to create the 'Vulkan.Core10.Handles.CommandPool' which+-- @commandBuffer@ was allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - #VUID-VkCopyImageToBufferInfo2KHR-srcImage-04053# If {imageparam}+-- has a depth\/stencil format, the @bufferOffset@ member of any+-- element of @pRegions@ /must/ be a multiple of @4@ -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -1591,6 +1591,9 @@ -- mode height) for @minSrcExtent@, @maxSrcExtent@, @minDstExtent@, and -- @maxDstExtent@. --+-- The value @supportedAlpha@ /must/ contain at least one valid+-- 'DisplayPlaneAlphaFlagBitsKHR' bit.+-- -- These values indicate the limits of the implementation’s individual -- fields. Not all combinations of values within the offset and extent -- ranges returned in 'DisplayPlaneCapabilitiesKHR' are guaranteed to be@@ -1737,10 +1740,9 @@ -- between @0@ and @1@, inclusive -- -- - #VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255# @alphaMode@--- /must/ be @0@ or one of the bits present in the @supportedAlpha@--- member of 'DisplayPlaneCapabilitiesKHR' returned by--- 'getDisplayPlaneCapabilitiesKHR' for the display plane corresponding--- to @displayMode@+-- /must/ be one of the bits present in the @supportedAlpha@ member of+-- 'DisplayPlaneCapabilitiesKHR' for the display plane corresponding to+-- @displayMode@ -- -- - #VUID-VkDisplaySurfaceCreateInfoKHR-width-01256# The @width@ and -- @height@ members of @imageExtent@ /must/ be less than or equal to
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -348,14 +348,13 @@ -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT', -- @name@ /must/ be @NULL@ ----- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460# If--- @handleType@ is not @0@ and @handle@ is @NULL@, @name@ /must/ name a--- valid synchronization primitive of the type specified by--- @handleType@+-- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460# If @handle@+-- is @NULL@, @name@ /must/ name a valid synchronization primitive of+-- the type specified by @handleType@ ----- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461# If--- @handleType@ is not @0@ and @name@ is @NULL@, @handle@ /must/ be a--- valid handle of the type specified by @handleType@+-- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461# If @name@ is+-- @NULL@, @handle@ /must/ be a valid handle of the type specified by+-- @handleType@ -- -- - #VUID-VkImportFenceWin32HandleInfoKHR-handle-01462# If @handle@ is -- not @NULL@, @name@ /must/ be @NULL@@@ -384,11 +383,6 @@ -- /must/ be a valid combination of -- 'Vulkan.Core11.Enums.FenceImportFlagBits.FenceImportFlagBits' values ----- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-parameter# If--- @handleType@ is not @0@, @handleType@ /must/ be a valid--- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'--- value--- -- == Host Synchronization -- -- - Host access to @fence@ /must/ be externally synchronized@@ -438,6 +432,7 @@ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr Fence)) (zero)+ poke ((p `plusPtr` 28 :: Ptr ExternalFenceHandleTypeFlagBits)) (zero) f instance FromCStruct ImportFenceWin32HandleInfoKHR where
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -347,11 +347,11 @@ -- physical device as @device@ -- -- - #VUID-VkImportMemoryFdInfoKHR-handleType-00669# If @handleType@ is--- not @0@, it /must/ be defined as a POSIX file descriptor handle+-- not @0@, it /must/ be+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'. -- -- - #VUID-VkImportMemoryFdInfoKHR-handleType-00670# If @handleType@ is--- not @0@, @fd@ /must/ be a valid handle of the type specified by--- @handleType@+-- not @0@, @fd@ /must/ be a valid POSIX file descriptor handle. -- -- - #VUID-VkImportMemoryFdInfoKHR-fd-01746# The memory represented by -- @fd@ /must/ have been created from a physical device and driver that
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -390,13 +390,12 @@ -- @name@ /must/ be @NULL@ -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467# If--- @handleType@ is not @0@ and @handle@ is @NULL@, @name@ /must/ name a--- valid synchronization primitive of the type specified by--- @handleType@+-- @handle@ is @NULL@, @name@ /must/ name a valid synchronization+-- primitive of the type specified by @handleType@ -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468# If--- @handleType@ is not @0@ and @name@ is @NULL@, @handle@ /must/ be a--- valid handle of the type specified by @handleType@+-- @name@ is @NULL@, @handle@ /must/ be a valid handle of the type+-- specified by @handleType@ -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469# If @handle@ -- is not @NULL@, @name@ /must/ be @NULL@@@ -457,11 +456,6 @@ -- 'Vulkan.Core11.Enums.SemaphoreImportFlagBits.SemaphoreImportFlagBits' -- values ----- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-parameter# If--- @handleType@ is not @0@, @handleType@ /must/ be a valid--- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'--- value--- -- == Host Synchronization -- -- - Host access to @semaphore@ /must/ be externally synchronized@@ -512,6 +506,7 @@ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero)+ poke ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (zero) f instance FromCStruct ImportSemaphoreWin32HandleInfoKHR where
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -1021,6 +1021,7 @@ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty) pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 272 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty) poke ((p `plusPtr` 528 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 536 :: Ptr CSize)) (CSize (zero)) f instance FromCStruct PipelineExecutableInternalRepresentationKHR where
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -373,7 +373,7 @@ -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', or -- 'Vulkan.Core10.Handles.BufferView' in a layout defined by -- @descriptorUpdateTemplate@ when it was created with--- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.createDescriptorUpdateTemplateKHR'+-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -2697,6 +2697,54 @@ -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' -- bit set --+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718# If @flags@+-- includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR',+-- each element of the @pLibraries@ member of @libraries@ /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'+-- bit set+--+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719# If @flags@+-- includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR',+-- each element of the @pLibraries@ member of @libraries@ /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'+-- bit set+--+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720# If @flags@+-- includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',+-- each element of the @pLibraries@ member of @libraries@ /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'+-- bit set+--+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721# If @flags@+-- includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',+-- each element of the @pLibraries@ member of @libraries@ /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'+-- bit set+--+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722# If @flags@+-- includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',+-- each element of the @pLibraries@ member of @libraries@ /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'+-- bit set+--+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723# If @flags@+-- includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',+-- each element of the @pLibraries@ member of @libraries@ /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'+-- bit set+-- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595# If the -- <VK_KHR_pipeline_library.html VK_KHR_pipeline_library> extension is -- not enabled, @pLibraryInfo@ and @pLibraryInterface@ /must/ be@@ -3227,7 +3275,7 @@ data StridedDeviceAddressRegionKHR = StridedDeviceAddressRegionKHR { -- | @deviceAddress@ is the device address (as returned by the -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'- -- command) at which the region starts.+ -- command) at which the region starts, or zero if the region is unused. deviceAddress :: DeviceAddress , -- | @stride@ is the byte stride between consecutive elements. stride :: DeviceSize
+ src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -0,0 +1,261 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_workgroup_memory_explicit_layout - device extension+--+-- == VK_KHR_workgroup_memory_explicit_layout+--+-- [__Name String__]+-- @VK_KHR_workgroup_memory_explicit_layout@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 337+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Caio Marcelo de Oliveira Filho+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_workgroup_memory_explicit_layout:%20&body=@cmarcelo%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-06-01+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+--+-- [__Contributors__]+--+-- - Caio Marcelo de Oliveira Filho, Intel+--+-- - Jeff Bolz, NVIDIA+--+-- - Graeme Leese, Broadcom+--+-- - Jason Ekstrand, Intel+--+-- - Daniel Koch, NVIDIA+--+-- == Description+--+-- This extension adds Vulkan support for the+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+-- SPIR-V extension, which allows shaders to explicitly define the layout+-- of @Workgroup@ storage class memory and create aliases between variables+-- from that storage class in a compute shader.+--+-- The aliasing feature allows different \"views\" on the same data, so the+-- shader can bulk copy data from another storage class using one type+-- (e.g. an array of large vectors), and then use the data with a more+-- specific type. It also enables reducing the amount of workgroup memory+-- consumed by allowing the shader to alias data whose lifetimes don’t+-- overlap.+--+-- The explicit layout support and some form of aliasing is also required+-- for layering OpenCL on top of Vulkan.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME'+--+-- - 'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR'+--+-- == New SPIR-V Capabilities+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout WorkgroupMemoryExplicitLayoutKHR>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-8-bit-access WorkgroupMemoryExplicitLayout8BitAccessKHR>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-16-bit-access WorkgroupMemoryExplicitLayout16BitAccessKHR>+--+-- == Version History+--+-- - Revision 1, 2020-06-01 (Caio Marcelo de Oliveira Filho)+--+-- - Initial version+--+-- = See Also+--+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout ( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..)+ , KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION+ , pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION+ , KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+ , pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR))+-- | VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR - Structure+-- describing the workgroup storage explicit layout features that can be+-- supported by an implementation+--+-- = Members+--+-- The members of the+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' structure+-- describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+-- structure is included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with values indicating whether the feature is supported.+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' /can/ also be+-- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to enable the feature.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+ { -- | #features-workgroupMemoryExplicitLayout# @workgroupMemoryExplicitLayout@+ -- indicates whether the implementation supports the SPIR-V+ -- @WorkgroupMemoryExplicitLayoutKHR@ capability.+ workgroupMemoryExplicitLayout :: Bool+ , -- | #features-workgroupMemoryExplicitLayoutScalarBlockLayout#+ -- @workgroupMemoryExplicitLayoutScalarBlockLayout@ indicates whether the+ -- implementation supports scalar alignment for laying out Workgroup+ -- Blocks.+ workgroupMemoryExplicitLayoutScalarBlockLayout :: Bool+ , -- | #features-workgroupMemoryExplicitLayout8BitAccess#+ -- @workgroupMemoryExplicitLayout8BitAccess@ indicates whether objects in+ -- the @Workgroup@ storage class with the @Block@ decoration /can/ have+ -- 8-bit integer members. If this feature is not enabled, 8-bit integer+ -- members /must/ not be used in such objects. This also indicates whether+ -- shader modules /can/ declare the+ -- @WorkgroupMemoryExplicitLayout8BitAccessKHR@ capability.+ workgroupMemoryExplicitLayout8BitAccess :: Bool+ , -- | #features-workgroupMemoryExplicitLayout16BitAccess#+ -- @workgroupMemoryExplicitLayout16BitAccess@ indicates whether objects in+ -- the @Workgroup@ storage class with the @Block@ decoration /can/ have+ -- 16-bit integer and 16-bit floating-point members. If this feature is not+ -- enabled, 16-bit integer or 16-bit floating-point members /must/ not be+ -- used in such objects. This also indicates whether shader modules /can/+ -- declare the @WorkgroupMemoryExplicitLayout16BitAccessKHR@ capability.+ workgroupMemoryExplicitLayout16BitAccess :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR++instance ToCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+ withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayout))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayoutScalarBlockLayout))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayout8BitAccess))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (workgroupMemoryExplicitLayout16BitAccess))+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+ peekCStruct p = do+ workgroupMemoryExplicitLayout <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ workgroupMemoryExplicitLayoutScalarBlockLayout <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ workgroupMemoryExplicitLayout8BitAccess <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ workgroupMemoryExplicitLayout16BitAccess <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+ pure $ PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+ (bool32ToBool workgroupMemoryExplicitLayout) (bool32ToBool workgroupMemoryExplicitLayoutScalarBlockLayout) (bool32ToBool workgroupMemoryExplicitLayout8BitAccess) (bool32ToBool workgroupMemoryExplicitLayout16BitAccess)++instance Storable PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where+ zero = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+ zero+ zero+ zero+ zero+++type KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION"+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION = 1+++type KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME = "VK_KHR_workgroup_memory_explicit_layout"++-- No documentation found for TopLevel "VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME"+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME = "VK_KHR_workgroup_memory_explicit_layout"+
+ src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -0,0 +1,129 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_workgroup_memory_explicit_layout - device extension+--+-- == VK_KHR_workgroup_memory_explicit_layout+--+-- [__Name String__]+-- @VK_KHR_workgroup_memory_explicit_layout@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 337+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Caio Marcelo de Oliveira Filho+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_workgroup_memory_explicit_layout:%20&body=@cmarcelo%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2020-06-01+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+--+-- [__Contributors__]+--+-- - Caio Marcelo de Oliveira Filho, Intel+--+-- - Jeff Bolz, NVIDIA+--+-- - Graeme Leese, Broadcom+--+-- - Jason Ekstrand, Intel+--+-- - Daniel Koch, NVIDIA+--+-- == Description+--+-- This extension adds Vulkan support for the+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_workgroup_memory_explicit_layout.html SPV_KHR_workgroup_memory_explicit_layout>+-- SPIR-V extension, which allows shaders to explicitly define the layout+-- of @Workgroup@ storage class memory and create aliases between variables+-- from that storage class in a compute shader.+--+-- The aliasing feature allows different \"views\" on the same data, so the+-- shader can bulk copy data from another storage class using one type+-- (e.g. an array of large vectors), and then use the data with a more+-- specific type. It also enables reducing the amount of workgroup memory+-- consumed by allowing the shader to alias data whose lifetimes don’t+-- overlap.+--+-- The explicit layout support and some form of aliasing is also required+-- for layering OpenCL on top of Vulkan.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME'+--+-- - 'KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR'+--+-- == New SPIR-V Capabilities+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout WorkgroupMemoryExplicitLayoutKHR>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-8-bit-access WorkgroupMemoryExplicitLayout8BitAccessKHR>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-workgroup-memory-explicit-layout-16-bit-access WorkgroupMemoryExplicitLayout16BitAccessKHR>+--+-- == Version History+--+-- - Revision 1, 2020-06-01 (Caio Marcelo de Oliveira Filho)+--+-- - Initial version+--+-- = See Also+--+-- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR++instance ToCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+instance Show PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR++instance FromCStruct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+
+ src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -0,0 +1,200 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_zero_initialize_workgroup_memory - device extension+--+-- == VK_KHR_zero_initialize_workgroup_memory+--+-- [__Name String__]+-- @VK_KHR_zero_initialize_workgroup_memory@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 326+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Alan Baker+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 >+--+-- [__Last Modified Date__]+-- 2020-11-18+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+-- None+--+-- [__Contributors__]+--+-- - Alan Baker, Google+--+-- - Jeff Bolz, Nvidia+--+-- - Jason Ekstrand, Intel+--+-- This extension allows the use of a null constant initializer on shader+-- Workgroup memory variables, allowing implementations to expose any+-- special hardware or instructions they may have. Zero initialization is+-- commonly used by applications running untrusted content (e.g. web+-- browsers) as way of defeating memory-scraping attacks.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME'+--+-- - 'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'+--+-- == Version History+--+-- - Revision 1, 2020-11-18 (Alan Baker)+--+-- - Internal draft version+--+-- = See Also+--+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory ( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(..)+ , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION+ , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION+ , KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME+ , pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR))+-- | VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR - Structure+-- describing support for zero initialization of workgroup memory by an+-- implementation+--+-- = Members+--+-- The member of the+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' structure+-- describe the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+-- structure is included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with a value indicating whether the feature is supported.+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' /can/ also be+-- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to enable the features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+ { -- | #features-shaderZeroInitializeWorkgroupMemory#+ -- @shaderZeroInitializeWorkgroupMemory@ specifies whether the+ -- implementation supports initializing a variable in Workgroup storage+ -- class.+ shaderZeroInitializeWorkgroupMemory :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderZeroInitializeWorkgroupMemory))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+ peekCStruct p = do+ shaderZeroInitializeWorkgroupMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+ (bool32ToBool shaderZeroInitializeWorkgroupMemory)++instance Storable PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR where+ zero = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+ zero+++type KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION"+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION = 1+++type KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME = "VK_KHR_zero_initialize_workgroup_memory"++-- No documentation found for TopLevel "VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME"+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME = "VK_KHR_zero_initialize_workgroup_memory"+
+ src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot view
@@ -0,0 +1,101 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_zero_initialize_workgroup_memory - device extension+--+-- == VK_KHR_zero_initialize_workgroup_memory+--+-- [__Name String__]+-- @VK_KHR_zero_initialize_workgroup_memory@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 326+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+-- - Alan Baker+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 >+--+-- [__Last Modified Date__]+-- 2020-11-18+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+-- None+--+-- [__Contributors__]+--+-- - Alan Baker, Google+--+-- - Jeff Bolz, Nvidia+--+-- - Jason Ekstrand, Intel+--+-- This extension allows the use of a null constant initializer on shader+-- Workgroup memory variables, allowing implementations to expose any+-- special hardware or instructions they may have. Zero initialization is+-- commonly used by applications running untrusted content (e.g. web+-- browsers) as way of defeating memory-scraping attacks.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME'+--+-- - 'KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR'+--+-- == Version History+--+-- - Revision 1, 2020-11-18 (Alan Baker)+--+-- - Internal draft version+--+-- = See Also+--+-- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR++instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR++instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR+
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -1099,6 +1099,17 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727# If+-- rasterization is not disabled in the bound graphics pipeline, then+-- for each color attachment in the subpass, if the corresponding image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex -- shader entry point’s interface /must/ have either valid or@@ -3015,6 +3026,8 @@ poke ((p `plusPtr` 64 :: Ptr Buffer)) (zero) poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero) poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 96 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 112 :: Ptr DeviceSize)) (zero) f instance FromCStruct GeneratedCommandsInfoNV where
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -723,6 +723,16 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdDrawMeshTasksNV-blendEnable-04727# If rasterization is+-- not disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be -- less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@@@ -1204,6 +1214,17 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@ --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727# If+-- rasterization is not disabled in the bound graphics pipeline, then+-- for each color attachment in the subpass, if the corresponding image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1728,6 +1749,17 @@ -- draw command, and the @viewportCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- /must/ be @1@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727# If+-- rasterization is not disabled in the bound graphics pipeline, then+-- for each color attachment in the subpass, if the corresponding image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -1284,13 +1284,11 @@ -- been built with -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR' -- if @queryType@ is--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' -- -- - #VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-03432# -- @queryType@ /must/ be--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'--- or--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -1119,9 +1119,9 @@ , -- | @sampleCount@ identifies the per-pixel coverage sample count for the -- combination of fragment area and coverage sample count to control. sampleCount :: Word32- , -- | @pSampleLocations@ is a pointer to an array of- -- 'CoarseSampleOrderCustomNV' structures specifying the location of each- -- sample in the custom ordering.+ , -- | @pSampleLocations@ is a pointer to an array of 'CoarseSampleLocationNV'+ -- structures specifying the location of each sample in the custom+ -- ordering. sampleLocations :: Vector CoarseSampleLocationNV } deriving (Typeable)
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs view
@@ -95,9 +95,9 @@ -- -- == New Enum Constants ----- - 'QCOM_rotated_copy_commands_EXTENSION_NAME'+-- - 'QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME' ----- - 'QCOM_rotated_copy_commands_SPEC_VERSION'+-- - 'QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -119,10 +119,10 @@ -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_QCOM_rotated_copy_commands ( CopyCommandTransformInfoQCOM(..)- , QCOM_rotated_copy_commands_SPEC_VERSION- , pattern QCOM_rotated_copy_commands_SPEC_VERSION- , QCOM_rotated_copy_commands_EXTENSION_NAME- , pattern QCOM_rotated_copy_commands_EXTENSION_NAME+ , QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION+ , pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION+ , QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME+ , pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME , SurfaceTransformFlagBitsKHR(..) , SurfaceTransformFlagsKHR ) where@@ -209,16 +209,16 @@ zero -type QCOM_rotated_copy_commands_SPEC_VERSION = 0+type QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0 --- No documentation found for TopLevel "VK_QCOM_rotated_copy_commands_SPEC_VERSION"-pattern QCOM_rotated_copy_commands_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_rotated_copy_commands_SPEC_VERSION = 0+-- No documentation found for TopLevel "VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION"+pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION :: forall a . Integral a => a+pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0 -type QCOM_rotated_copy_commands_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"+type QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands" --- No documentation found for TopLevel "VK_QCOM_rotated_copy_commands_EXTENSION_NAME"-pattern QCOM_rotated_copy_commands_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a-pattern QCOM_rotated_copy_commands_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"+-- No documentation found for TopLevel "VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME"+pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot view
@@ -95,9 +95,9 @@ -- -- == New Enum Constants ----- - 'QCOM_rotated_copy_commands_EXTENSION_NAME'+-- - 'QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME' ----- - 'QCOM_rotated_copy_commands_SPEC_VERSION'+-- - 'QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --
src/Vulkan/SPIRVRequirements.hs view
@@ -58,6 +58,8 @@ import Vulkan.Core12 (PhysicalDeviceVulkan12Features(..)) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties(..))+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..)) import Vulkan.Extensions.VK_AMD_gcn_shader (pattern AMD_GCN_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_half_float (pattern AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_int16 (pattern AMD_GPU_SHADER_INT16_EXTENSION_NAME)@@ -111,6 +113,7 @@ import Vulkan.Extensions.VK_KHR_storage_buffer_storage_class (pattern KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_variable_pointers (pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_vulkan_memory_model (pattern KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME) import Vulkan.Version (pattern MAKE_VERSION) import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME)@@ -601,6 +604,18 @@ , deviceExtensionMinVersion = 0 } ]+ "SPV_KHR_multiview" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+ "SPV_KHR_workgroup_memory_explicit_layout" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] _ -> ([], []) spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -2130,6 +2145,60 @@ } , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_MAINTENANCE2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "WorkgroupMemoryExplicitLayoutKHR" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "workgroupMemoryExplicitLayout"+ , checkFeature = workgroupMemoryExplicitLayout :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool+ , enableFeature = \f ->+ f { workgroupMemoryExplicitLayout = True } :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "WorkgroupMemoryExplicitLayout8BitAccessKHR" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "workgroupMemoryExplicitLayout8BitAccess"+ , checkFeature = workgroupMemoryExplicitLayout8BitAccess :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+ -> Bool+ , enableFeature =+ \f ->+ f { workgroupMemoryExplicitLayout8BitAccess = True } :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "WorkgroupMemoryExplicitLayout16BitAccessKHR" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "workgroupMemoryExplicitLayout16BitAccess"+ , checkFeature =+ workgroupMemoryExplicitLayout16BitAccess :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR -> Bool+ , enableFeature = \f ->+ f { workgroupMemoryExplicitLayout16BitAccess = True } :: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ]
src/Vulkan/Version.hs view
@@ -15,17 +15,19 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 166+pattern HEADER_VERSION = 169 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 166+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 169 pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32 pattern MAKE_VERSION major minor patch <- (\v -> (_VERSION_MAJOR v, _VERSION_MINOR v, _VERSION_PATCH v) -> (major, minor, patch)) where MAKE_VERSION major minor patch = major `shiftL` 22 .|. minor `shiftL` 12 .|. patch++{-# complete MAKE_VERSION #-} _VERSION_MAJOR :: Word32 -> Word32 _VERSION_MAJOR v = v `shiftR` 22
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: vulkan-version: 3.9+version: 3.9.1 synopsis: Bindings to the Vulkan graphics API. category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme@@ -431,8 +431,10 @@ Vulkan.Extensions.VK_KHR_wayland_surface Vulkan.Extensions.VK_KHR_win32_keyed_mutex Vulkan.Extensions.VK_KHR_win32_surface+ Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout Vulkan.Extensions.VK_KHR_xcb_surface Vulkan.Extensions.VK_KHR_xlib_surface+ Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory Vulkan.Extensions.VK_MVK_ios_surface Vulkan.Extensions.VK_MVK_macos_surface Vulkan.Extensions.VK_NN_vi_surface