packages feed

vulkan 3.11.0.2 → 3.11.1

raw patch · 33 files changed

+270/−123 lines, 33 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.11.1] - 2021-06-28+- Bump API version to v1.2.183+ ## [3.11.0.2] - 2021-06-26 - Tweak cabal file to please `cabal check` 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.11.0.2"+version: "3.11.1" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -828,6 +828,7 @@   Extends DeviceCreateInfo PhysicalDeviceShaderDrawParametersFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceShaderFloat16Int8Features = ()   Extends DeviceCreateInfo PhysicalDeviceHostQueryResetFeatures = ()+  Extends DeviceCreateInfo PhysicalDeviceGlobalPriorityQueryFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDeviceMemoryReportFeaturesEXT = ()   Extends DeviceCreateInfo DeviceDeviceMemoryReportCreateInfoEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDescriptorIndexingFeatures = ()@@ -1049,6 +1050,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()@@ -1104,7 +1106,6 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = ()-  Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()   Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()
src/Vulkan/Core10/CommandBuffer.hs view
@@ -537,6 +537,9 @@ -- -- -   Host access to @commandBuffer@ /must/ be externally synchronized --+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+-- -- == Return Codes -- -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -7106,6 +7106,9 @@ -- -   #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a --     compressed or depth\/stencil format --+-- -   #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid+--     pointer to a 'ClearColorValue' union+-- -- -   #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@ --     is an unprotected command buffer, then @image@ /must/ not be a --     protected image@@ -11448,6 +11451,10 @@ --     that specifies a @loadOp@ (or @stencilLoadOp@, if the attachment has --     a depth\/stencil format) of --     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'+--+-- -   #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If+--     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid+--     pointer to an array of @clearValueCount@ 'ClearValue' unions -- -- -   #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>
src/Vulkan/Core10/Device.hs view
@@ -120,6 +120,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority_query (PhysicalDeviceGlobalPriorityQueryFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)@@ -745,6 +746,7 @@ --     'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT', --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',+--     'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', --     'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',@@ -962,6 +964,7 @@     | Just Refl <- eqT @e @PhysicalDeviceDescriptorIndexingFeatures = Just f     | Just Refl <- eqT @e @DeviceDeviceMemoryReportCreateInfoEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDeviceMemoryReportFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -149,7 +149,7 @@ --     pipelines. -- -- -   'PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' specifies that the---     pipeline is allowed to use OpTraceRaysMotionNV.+--     pipeline is allowed to use OpTraceRayMotionNV. -- -- It is valid to set both 'PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT' and -- 'PIPELINE_CREATE_DERIVATIVE_BIT'. This allows a pipeline to be both a
src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs view
@@ -46,9 +46,10 @@ -- multiple times, affecting some of the counts. -- -- If a pipeline has @rasterizerDiscardEnable@ enabled, implementations--- /may/ discard primitives after the final vertex processing stage. As a--- result, if @rasterizerDiscardEnable@ is enabled, the clipping input and--- output primitives counters /may/ not be incremented.+-- /may/ discard primitives after the final+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- As a result, if @rasterizerDiscardEnable@ is enabled, the clipping input+-- and output primitives counters /may/ not be incremented. -- -- When a pipeline statistics query finishes, the result for that query is -- marked as available. The application /can/ copy the result to a buffer
src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs view
@@ -57,10 +57,11 @@ pattern SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = SubpassDescriptionFlagBits 0x00000002 -- | 'SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX' specifies that shaders -- compiled for this subpass write the attributes for all views in a single--- invocation of each vertex processing stage. All pipelines compiled--- against a subpass that includes this bit /must/ write per-view--- attributes to the @*PerViewNV[]@ shader outputs, in addition to the--- non-per-view (e.g. @Position@) outputs.+-- invocation of each+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- All pipelines compiled against a subpass that includes this bit /must/+-- write per-view attributes to the @*PerViewNV[]@ shader outputs, in+-- addition to the non-per-view (e.g. @Position@) outputs. pattern SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX      = SubpassDescriptionFlagBits 0x00000001  conNameSubpassDescriptionFlagBits :: String
src/Vulkan/Core10/Event.hs view
@@ -409,15 +409,12 @@ -- == Valid Usage -- -- -   #VUID-vkResetEvent-event-03821# There /must/ be an execution---     dependency between---     'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' and the---     execution of any 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents'---     that includes @event@ in its @pEvents@ parameter+--     dependency between 'resetEvent' and the execution of any+--     'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' that includes+--     @event@ in its @pEvents@ parameter -- -- -   #VUID-vkResetEvent-event-03822# There /must/ be an execution---     dependency between---     'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' and the---     execution of any+--     dependency between 'resetEvent' and the execution of any --     'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR' that --     includes @event@ in its @pEvents@ parameter --
src/Vulkan/Core10/Pass.hs view
@@ -1314,9 +1314,9 @@     -- @colorAttachmentCount@ 'AttachmentReference' structures defining the     -- resolve attachments for this subpass and their layouts.     resolveAttachments :: Vector AttachmentReference-  , -- | @pDepthStencilAttachment@ is a pointer to an array of-    -- 'AttachmentReference' structures specifying the depth\/stencil-    -- attachment for this subpass and its layout.+  , -- | @pDepthStencilAttachment@ is a pointer to a 'AttachmentReference'+    -- structure specifying the depth\/stencil attachment for this subpass and+    -- its layout.     depthStencilAttachment :: Maybe AttachmentReference   , -- | @pPreserveAttachments@ is a pointer to an array of     -- @preserveAttachmentCount@ render pass attachment indices identifying
src/Vulkan/Core10/Pipeline.hs view
@@ -643,8 +643,8 @@ -- also adjust the @y@ value to point to the lower left corner of the -- viewport instead of the upper left corner. Using the negative @height@ -- allows the application to avoid having to negate the y component of the--- @Position@ output from the last vertex processing stage in shaders that--- also target other graphics APIs.+-- @Position@ output from the last+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- -- The width and height of the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>@@ -1004,14 +1004,16 @@ --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryShaderInvocations@ -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02596# If @stage@ is a---     vertex processing stage, and the identified entry point writes to---     @Layer@ for any primitive, it /must/ write the same value to @Layer@---     for all vertices of a given primitive+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,+--     and the identified entry point writes to @Layer@ for any primitive,+--     it /must/ write the same value to @Layer@ for all vertices of a+--     given primitive -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-02597# If @stage@ is a---     vertex processing stage, and the identified entry point writes to---     @ViewportIndex@ for any primitive, it /must/ write the same value to---     @ViewportIndex@ for all vertices of a given primitive+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,+--     and the identified entry point writes to @ViewportIndex@ for any+--     primitive, it /must/ write the same value to @ViewportIndex@ for all+--     vertices of a given primitive -- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00718# If @stage@ is --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',@@ -3412,9 +3414,20 @@ -- -- Pre-rasterization shader state is defined by: ----- -   'PipelineShaderStageCreateInfo' entries for each vertex processing---     shader stage used+-- -   'PipelineShaderStageCreateInfo' entries for: --+--     -   Vertex shaders+--+--     -   Tessellation control shaders+--+--     -   Tessellation evaluation shaders+--+--     -   Geometry shaders+--+--     -   Task shaders+--+--     -   Mesh shaders+-- -- -   Within the 'Vulkan.Core10.Handles.PipelineLayout', all bindings that --     affect the specified shader stages --@@ -3653,9 +3666,10 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state> --     and --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,---     the fragment shader and last vertex processing shader stage and any---     relevant state /must/ adhere to the pipeline linking rules described---     in the+--     the fragment shader and last+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--     and any relevant state /must/ adhere to the pipeline linking rules+--     described in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces Shader Interfaces> --     chapter --@@ -4019,7 +4033,8 @@ --     being created with --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>, --     and any shader stage in @pStages@ specifies @Xfb@ execution mode it---     /must/ be the last vertex processing stage+--     /must/ be the last+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the --     pipeline is being created with@@ -4046,8 +4061,10 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the --     pipeline is being created with --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,---     and the last vertex processing stage is a geometry shader, and that---     geometry shader uses the @GeometryStreams@ capability, then+--     and the last+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--     is a geometry shader, and that geometry shader uses the+--     @GeometryStreams@ capability, then --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@ --     feature /must/ be enabled --
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -686,6 +686,7 @@   getNext PhysicalDeviceFeatures2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f@@ -856,7 +857,6 @@ --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties', --     'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', --     'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR',---     'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV', --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR', --     'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV', --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',@@ -907,7 +907,6 @@   getNext PhysicalDeviceProperties2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b   extends _ f-    | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs view
@@ -63,7 +63,7 @@ -- -- @subpass@ and @inputAttachmentIndex@ index into the render pass as: ----- > pname:pCreateInfo->pSubpasses[subpass].pInputAttachments[inputAttachmentIndex]+-- > pCreateInfo->pSubpasses[subpass].pInputAttachments[inputAttachmentIndex] -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs view
@@ -56,7 +56,8 @@ -- == New Structures -- -- -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2':+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo': -- --     -   'PhysicalDeviceGlobalPriorityQueryFeaturesEXT' --
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot view
@@ -56,7 +56,8 @@ -- == New Structures -- -- -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2':+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo': -- --     -   'PhysicalDeviceGlobalPriorityQueryFeaturesEXT' --
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -205,9 +205,11 @@ -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'. -- A query pool created with this type will capture 2 integers - -- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex--- stream output from the last vertex processing stage. The vertex stream--- output queried is zero by default, but can be specified with the new--- 'cmdBeginQueryIndexedEXT' and 'cmdEndQueryIndexedEXT' commands.+-- stream output from the last+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- The vertex stream output queried is zero by default, but can be+-- specified with the new 'cmdBeginQueryIndexedEXT' and+-- 'cmdEndQueryIndexedEXT' commands. -- -- == Version History --@@ -543,9 +545,10 @@ --     with a @usage@ value containing --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' ----- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-04128# The last vertex---     processing stage of the bound graphics pipeline /must/ have been---     declared with the @Xfb@ execution mode+-- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-04128# The last+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--     of the bound graphics pipeline /must/ have been declared with the+--     @Xfb@ execution mode -- -- -   #VUID-vkCmdBeginTransformFeedbackEXT-None-02373# Transform feedback --     /must/ not be made active in a render pass instance with multiview@@ -1914,7 +1917,8 @@     maxTransformFeedbackStreams :: Word32   , -- | #limits-maxTransformFeedbackBuffers# @maxTransformFeedbackBuffers@ is     -- the maximum number of transform feedback buffers that can be bound for-    -- capturing shader outputs from the last vertex processing stage.+    -- capturing shader outputs from the last+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.     maxTransformFeedbackBuffers :: Word32   , -- | #limits-maxTransformFeedbackBufferSize# @maxTransformFeedbackBufferSize@     -- is the maximum size that can be specified when binding a buffer for
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot view
@@ -205,9 +205,11 @@ -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'. -- A query pool created with this type will capture 2 integers - -- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex--- stream output from the last vertex processing stage. The vertex stream--- output queried is zero by default, but can be specified with the new--- 'cmdBeginQueryIndexedEXT' and 'cmdEndQueryIndexedEXT' commands.+-- stream output from the last+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- The vertex stream output queried is zero by default, but can be+-- specified with the new 'cmdBeginQueryIndexedEXT' and+-- 'cmdEndQueryIndexedEXT' commands. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -2205,6 +2205,10 @@ --     sum of @query@ plus @accelerationStructureCount@ /must/ be less than --     or equal to the number of queries in @queryPool@ --+-- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964#+--     All acceleration structures in @pAccelerationStructures@ /must/ have+--     been built prior to the execution of this command+-- -- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431# --     All acceleration structures in @pAccelerationStructures@ /must/ have --     been built with@@ -2326,6 +2330,10 @@ -- -- == Valid Usage --+-- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964#+--     All acceleration structures in @pAccelerationStructures@ /must/ have+--     been built prior to the execution of this command+-- -- -   #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431# --     All acceleration structures in @pAccelerationStructures@ /must/ have --     been built with@@ -6287,6 +6295,10 @@ --     be 'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR' or --     'COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR' --+-- -   #VUID-VkCopyAccelerationStructureInfoKHR-src-04963# The source+--     acceleration structure @src@ /must/ have been built prior to the+--     execution of this command+-- -- -   #VUID-VkCopyAccelerationStructureInfoKHR-src-03411# If @mode@ is --     'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR', @src@ /must/ have --     been built with@@ -6388,6 +6400,10 @@ -- -- == Valid Usage --+-- -   #VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959# The+--     source acceleration structure @src@ /must/ have been built prior to+--     the execution of this command+-- -- -   #VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561# The --     memory pointed to by @dst@ /must/ be at least as large as the --     serialization size of @src@, as reported by@@ -6467,6 +6483,12 @@ -- deserializing an acceleration structure -- -- == Valid Usage+--+-- -   #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960# The+--     source memory pointed to by @src@ /must/ contain data previously+--     serialized using 'cmdCopyAccelerationStructureToMemoryKHR',+--     potentially modified to relocate acceleration structure references+--     as described in that command -- -- -   #VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413# @mode@ --     /must/ be 'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR'
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -2200,6 +2200,7 @@ -- -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-03903# If @srcAccessMask@ --     includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', @srcStageMask@ --     /must/ include 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',+--     @VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI@, --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -2429,6 +2430,7 @@ -- -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-03903# If @dstAccessMask@ --     includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', @dstStageMask@ --     /must/ include 'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',+--     @VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI@, --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -2619,14 +2621,16 @@     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.     srcStageMask :: PipelineStageFlags2KHR-  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be+    -- included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.     srcAccessMask :: AccessFlags2KHR   , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.     dstStageMask :: PipelineStageFlags2KHR-  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be+    -- included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstAccessMask :: AccessFlags2KHR   }@@ -2829,6 +2833,7 @@ --     @srcAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', --     @srcStageMask@ /must/ include --     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',+--     @VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI@, --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -3076,6 +3081,7 @@ --     @dstAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', --     @dstStageMask@ /must/ include --     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',+--     @VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI@, --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -3596,14 +3602,16 @@     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.     srcStageMask :: PipelineStageFlags2KHR-  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be+    -- included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.     srcAccessMask :: AccessFlags2KHR   , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.     dstStageMask :: PipelineStageFlags2KHR-  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be+    -- included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstAccessMask :: AccessFlags2KHR   , -- | @oldLayout@ is the old layout in an@@ -3831,6 +3839,7 @@ --     @srcAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', --     @srcStageMask@ /must/ include --     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',+--     @VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI@, --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -4078,6 +4087,7 @@ --     @dstAccessMask@ includes 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR', --     @dstStageMask@ /must/ include --     'PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR',+--     @VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI@, --     'PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR', or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --@@ -4337,14 +4347,16 @@     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.     srcStageMask :: PipelineStageFlags2KHR-  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+  , -- | @srcAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be+    -- included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.     srcAccessMask :: AccessFlags2KHR   , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.     dstStageMask :: PipelineStageFlags2KHR-  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of access flags to be+    -- included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstAccessMask :: AccessFlags2KHR   , -- | @srcQueueFamilyIndex@ is the source queue family for a@@ -5591,7 +5603,8 @@ -- the pipeline where vertex buffers are consumed. pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR         = PipelineStageFlagBits2KHR 0x0000002000000000 -- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR' is equivalent to--- specifying all supported stages from:+-- specifying all supported+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>: -- -- -   'PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR' --
src/Vulkan/Extensions/VK_NVX_binary_import.hs view
@@ -155,6 +155,9 @@ import Data.Coerce (coerce) import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..)) import Vulkan.CStruct (ToCStruct)@@ -181,6 +184,8 @@ import Data.ByteString (ByteString) import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes) import Vulkan.NamedType ((:::)) import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) import Vulkan.Core10.Handles (CommandBuffer)@@ -496,16 +501,12 @@     blockDimZ :: Word32   , -- No documentation found for Nested "VkCuLaunchInfoNVX" "sharedMemBytes"     sharedMemBytes :: Word32-  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "paramCount"-    paramCount :: Word64   , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pParams"-    params :: Ptr (Ptr ())-  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "extraCount"-    extraCount :: Word64+    params :: Vector (Ptr ())   , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pExtras"-    extras :: Ptr (Ptr ())+    extras :: Vector (Ptr ())   }-  deriving (Typeable, Eq)+  deriving (Typeable) #if defined(GENERIC_INSTANCES) deriving instance Generic (CuLaunchInfoNVX) #endif@@ -513,22 +514,26 @@  instance ToCStruct CuLaunchInfoNVX where   withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CuLaunchInfoNVX{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr CuFunctionNVX)) (function)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (gridDimX)-    poke ((p `plusPtr` 28 :: Ptr Word32)) (gridDimY)-    poke ((p `plusPtr` 32 :: Ptr Word32)) (gridDimZ)-    poke ((p `plusPtr` 36 :: Ptr Word32)) (blockDimX)-    poke ((p `plusPtr` 40 :: Ptr Word32)) (blockDimY)-    poke ((p `plusPtr` 44 :: Ptr Word32)) (blockDimZ)-    poke ((p `plusPtr` 48 :: Ptr Word32)) (sharedMemBytes)-    poke ((p `plusPtr` 56 :: Ptr CSize)) (CSize (paramCount))-    poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (params)-    poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (extraCount))-    poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (extras)-    f+  pokeCStruct p CuLaunchInfoNVX{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr CuFunctionNVX)) (function)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (gridDimX)+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (gridDimY)+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (gridDimZ)+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (blockDimX)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (blockDimY)+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (blockDimZ)+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (sharedMemBytes)+    lift $ poke ((p `plusPtr` 56 :: Ptr CSize)) ((fromIntegral (Data.Vector.length $ (params)) :: CSize))+    pPParams' <- ContT $ allocaBytes @(Ptr ()) ((Data.Vector.length (params)) * 8)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPParams' `plusPtr` (8 * (i)) :: Ptr (Ptr ())) (e)) (params)+    lift $ poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (pPParams')+    lift $ poke ((p `plusPtr` 72 :: Ptr CSize)) ((fromIntegral (Data.Vector.length $ (extras)) :: CSize))+    pPExtras' <- ContT $ allocaBytes @(Ptr ()) ((Data.Vector.length (extras)) * 8)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPExtras' `plusPtr` (8 * (i)) :: Ptr (Ptr ())) (e)) (extras)+    lift $ poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (pPExtras')+    lift $ f   cStructSize = 88   cStructAlignment = 8   pokeZeroCStruct p f = do@@ -542,10 +547,6 @@     poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)     poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)     poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 56 :: Ptr CSize)) (CSize (zero))-    poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (zero)-    poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (zero))-    poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (zero)     f  instance FromCStruct CuLaunchInfoNVX where@@ -560,16 +561,12 @@     sharedMemBytes <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))     paramCount <- peek @CSize ((p `plusPtr` 56 :: Ptr CSize))     pParams <- peek @(Ptr (Ptr ())) ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ()))))+    pParams' <- generateM (fromIntegral (coerce @CSize @Word64 paramCount)) (\i -> peek @(Ptr ()) ((pParams `advancePtrBytes` (8 * (i)) :: Ptr (Ptr ()))))     extraCount <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize))     pExtras <- peek @(Ptr (Ptr ())) ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ()))))+    pExtras' <- generateM (fromIntegral (coerce @CSize @Word64 extraCount)) (\i -> peek @(Ptr ()) ((pExtras `advancePtrBytes` (8 * (i)) :: Ptr (Ptr ()))))     pure $ CuLaunchInfoNVX-             function gridDimX gridDimY gridDimZ blockDimX blockDimY blockDimZ sharedMemBytes (coerce @CSize @Word64 paramCount) pParams (coerce @CSize @Word64 extraCount) pExtras--instance Storable CuLaunchInfoNVX where-  sizeOf ~_ = 88-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())+             function gridDimX gridDimY gridDimZ blockDimX blockDimY blockDimZ sharedMemBytes pParams' pExtras'  instance Zero CuLaunchInfoNVX where   zero = CuLaunchInfoNVX@@ -581,10 +578,8 @@            zero            zero            zero-           zero-           zero-           zero-           zero+           mempty+           mempty   type NVX_BINARY_IMPORT_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs view
@@ -56,14 +56,17 @@ -- -- This extension adds a new way to write shaders to be used with multiview -- subpasses, where the attributes for all views are written out by a--- single invocation of the vertex processing stages. Related SPIR-V and--- GLSL extensions @SPV_NVX_multiview_per_view_attributes@ and+-- single invocation of the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- Related SPIR-V and GLSL extensions+-- @SPV_NVX_multiview_per_view_attributes@ and -- @GL_NVX_multiview_per_view_attributes@ introduce per-view position and -- viewport mask attributes arrays, and this extension defines how those -- per-view attribute arrays are interpreted by Vulkan. Pipelines using--- per-view attributes /may/ only execute the vertex processing stages once--- for all views rather than once per-view, which reduces redundant shading--- work.+-- per-view attributes /may/ only execute the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- once for all views rather than once per-view, which reduces redundant+-- shading work. -- -- A subpass creation flag controls whether the subpass uses this -- extension. A subpass /must/ either exclusively use this extension or not
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot view
@@ -56,14 +56,17 @@ -- -- This extension adds a new way to write shaders to be used with multiview -- subpasses, where the attributes for all views are written out by a--- single invocation of the vertex processing stages. Related SPIR-V and--- GLSL extensions @SPV_NVX_multiview_per_view_attributes@ and+-- single invocation of the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- Related SPIR-V and GLSL extensions+-- @SPV_NVX_multiview_per_view_attributes@ and -- @GL_NVX_multiview_per_view_attributes@ introduce per-view position and -- viewport mask attributes arrays, and this extension defines how those -- per-view attribute arrays are interpreted by Vulkan. Pipelines using--- per-view attributes /may/ only execute the vertex processing stages once--- for all views rather than once per-view, which reduces redundant shading--- work.+-- per-view attributes /may/ only execute the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- once for all views rather than once per-view, which reduces redundant+-- shading work. -- -- A subpass creation flag controls whether the subpass uses this -- extension. A subpass /must/ either exclusively use this extension or not
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -63,10 +63,11 @@ -- -- There are new programmable shader types — the task and mesh shader — to -- generate these collections to be processed by fixed-function primitive--- assembly and rasterization logic. When the task and mesh shaders are--- dispatched, they replace the standard programmable vertex processing--- pipeline, including vertex array attribute fetching, vertex shader--- processing, tessellation, and the geometry shader processing.+-- assembly and rasterization logic. When task and mesh shaders are+-- dispatched, they replace the core+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- including vertex array attribute fetching, vertex shader processing,+-- tessellation, and geometry shader processing. -- -- This extension also adds support for the following SPIR-V extension in -- Vulkan:
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -63,10 +63,11 @@ -- -- There are new programmable shader types — the task and mesh shader — to -- generate these collections to be processed by fixed-function primitive--- assembly and rasterization logic. When the task and mesh shaders are--- dispatched, they replace the standard programmable vertex processing--- pipeline, including vertex array attribute fetching, vertex shader--- processing, tessellation, and the geometry shader processing.+-- assembly and rasterization logic. When task and mesh shaders are+-- dispatched, they replace the core+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- including vertex array attribute fetching, vertex shader processing,+-- tessellation, and geometry shader processing. -- -- This extension also adds support for the following SPIR-V extension in -- Vulkan:
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -1151,6 +1151,10 @@ --     or --     'Vulkan.Extensions.VK_KHR_acceleration_structure.COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR' --+-- -   #VUID-vkCmdCopyAccelerationStructureNV-src-04963# The source+--     acceleration structure @src@ /must/ have been built prior to the+--     execution of this command+-- -- -   #VUID-vkCmdCopyAccelerationStructureNV-src-03411# If @mode@ is --     'Vulkan.Extensions.VK_KHR_acceleration_structure.COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR', --     @src@ /must/ have been built with@@ -1279,6 +1283,10 @@ --     @accelerationStructure@ /must/ be bound completely and contiguously --     to a single 'Vulkan.Core10.Handles.DeviceMemory' object via --     'bindAccelerationStructureMemoryNV'+--+-- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-04958#+--     All acceleration structures in @pAccelerationStructures@ /must/ have+--     been built prior to the execution of this command -- -- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructures-03431# --     All acceleration structures in @pAccelerationStructures@ /must/ have
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs view
@@ -63,7 +63,7 @@ -- -   Motion instances to move existing instances over time -- -- The motion represented here is parameterized across a normalized--- timestep between 0.0 and 1.0. A motion trace using OpTraceRaysMotionNV+-- timestep between 0.0 and 1.0. A motion trace using OpTraceRayMotionNV -- provides a time within that normalized range to be used when -- intersecting that ray with geometry. The geometry can be provided with -- motion by a combination of adding a second vertex position for time of@@ -92,7 +92,7 @@ --     -   'AccelerationStructureGeometryMotionTrianglesDataNV' -- -- -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', --     'Vulkan.Core10.Device.DeviceCreateInfo': -- --     -   'PhysicalDeviceRayTracingMotionBlurFeaturesNV'
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot view
@@ -63,7 +63,7 @@ -- -   Motion instances to move existing instances over time -- -- The motion represented here is parameterized across a normalized--- timestep between 0.0 and 1.0. A motion trace using OpTraceRaysMotionNV+-- timestep between 0.0 and 1.0. A motion trace using OpTraceRayMotionNV -- provides a time within that normalized range to be used when -- intersecting that ray with geometry. The geometry can be provided with -- motion by a combination of adding a second vertex position for time of@@ -92,7 +92,7 @@ --     -   'AccelerationStructureGeometryMotionTrianglesDataNV' -- -- -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', --     'Vulkan.Core10.Device.DeviceCreateInfo': -- --     -   'PhysicalDeviceRayTracingMotionBlurFeaturesNV'
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -208,7 +208,8 @@ -- implementations that access the image in a different pipeline location? -- -- __RESOLVED__ We are specifying the pipeline stage to be between the--- final stage used for vertex processing+-- final+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT') -- and before the first stage used for fragment processing -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'),
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot view
@@ -208,7 +208,8 @@ -- implementations that access the image in a different pipeline location? -- -- __RESOLVED__ We are specifying the pipeline stage to be between the--- final stage used for vertex processing+-- final+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT') -- and before the first stage used for fragment processing -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'),
src/Vulkan/SPIRVRequirements.hs view
@@ -36,6 +36,8 @@ import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures(..)) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR(..))+import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV)+import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)@@ -116,6 +118,7 @@ import Vulkan.Extensions.VK_KHR_shader_float16_int8 (pattern KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_float_controls (pattern KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_non_semantic_info (pattern KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (pattern KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_terminate_invocation (pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_spirv_1_4 (pattern KHR_SPIRV_1_4_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_storage_buffer_storage_class (pattern KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME)@@ -130,6 +133,7 @@ import Vulkan.Extensions.VK_NV_geometry_shader_passthrough (pattern NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_mesh_shader (pattern NV_MESH_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_ray_tracing (pattern NV_RAY_TRACING_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (pattern NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_sample_mask_override_coverage (pattern NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_shader_image_footprint (pattern NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_shader_sm_builtins (pattern NV_SHADER_SM_BUILTINS_EXTENSION_NAME)@@ -636,6 +640,13 @@                              , deviceExtensionMinVersion = 0                              }     ]+  "SPV_KHR_subgroup_uniform_control_flow" -> (,)+    []+    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]   _ -> ([], [])  spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -1879,6 +1890,54 @@                              }     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    ]+  "RayTracingMotionBlurNV" -> (,)+    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing+                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+                               , instanceExtensionMinVersion = 0+                               }+    ]+    [ RequireDeviceFeature+      { featureName   = "rayTracingMotionBlur"+      , checkFeature  = rayTracingMotionBlur :: PhysicalDeviceRayTracingMotionBlurFeaturesNV -> Bool+      , enableFeature = \f -> f { rayTracingMotionBlur = True } :: PhysicalDeviceRayTracingMotionBlurFeaturesNV+      }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+                             , deviceExtensionMinVersion = 0+                             }+    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing+                             , deviceExtensionName       = KHR_MAINTENANCE3_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 182+pattern HEADER_VERSION = 183   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 182+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 183   pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.11.0.2+version:        3.11.1 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics