vulkan 3.11.0.2 → 3.11.1
raw patch · 33 files changed
+270/−123 lines, 33 files
Files
- changelog.md +3/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +2/−1
- src/Vulkan/Core10/CommandBuffer.hs +3/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +7/−0
- src/Vulkan/Core10/Device.hs +3/−0
- src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs +4/−3
- src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs +5/−4
- src/Vulkan/Core10/Event.hs +4/−7
- src/Vulkan/Core10/Pass.hs +3/−3
- src/Vulkan/Core10/Pipeline.hs +33/−16
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +1/−2
- src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_global_priority_query.hs +2/−1
- src/Vulkan/Extensions/VK_EXT_global_priority_query.hs-boot +2/−1
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +11/−7
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot +5/−3
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +22/−0
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs +20/−7
- src/Vulkan/Extensions/VK_NVX_binary_import.hs +33/−38
- src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs +8/−5
- src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot +8/−5
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +5/−4
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot +5/−4
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +8/−0
- src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs +2/−2
- src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +2/−1
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot +2/−1
- src/Vulkan/SPIRVRequirements.hs +59/−0
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +1/−1
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