Skip to content

Commit

Permalink
Merge pull request #380 from ThreeOfTwelve/vulkan-update-v1.3.211
Browse files Browse the repository at this point in the history
  • Loading branch information
expipiplus1 authored Apr 8, 2022
2 parents 4e3905c + d9f3345 commit 94672e2
Show file tree
Hide file tree
Showing 30 changed files with 579 additions and 73 deletions.
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## WIP

## [3.17.1] - 2022-04-07
- Bump API version to v1.3.211

## [3.17] - 2022-03-31
- Bump API version to v1.3.210
- A significant breaking change is that
Expand Down
2 changes: 1 addition & 1 deletion package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: vulkan
version: "3.17"
version: "3.17.1"
synopsis: Bindings to the Vulkan graphics API.
description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
category: Graphics
Expand Down
5 changes: 5 additions & 0 deletions src/Vulkan/CStruct/Extends.hs
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (Physic
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)
Expand Down Expand Up @@ -981,6 +982,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where
Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()
Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeatures = ()
Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()
Extends DeviceCreateInfo PhysicalDeviceImage2DViewOf3DFeaturesEXT = ()
Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()
Extends DeviceCreateInfo PhysicalDeviceDepthClipControlFeaturesEXT = ()
Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
Expand Down Expand Up @@ -1157,6 +1159,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where
Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()
Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeatures = ()
Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()
Extends PhysicalDeviceFeatures2 PhysicalDeviceImage2DViewOf3DFeaturesEXT = ()
Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()
Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipControlFeaturesEXT = ()
Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()
Expand Down Expand Up @@ -1718,6 +1721,7 @@ peekChainHead ty p c = case ty of
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT -> go @PhysicalDeviceImage2DViewOf3DFeaturesEXT
STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE -> go @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE
STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -> go @MutableDescriptorTypeCreateInfoVALVE
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT -> go @PhysicalDeviceDepthClipControlFeaturesEXT
Expand Down Expand Up @@ -2110,6 +2114,7 @@ infix 6 ::&
{-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV #-}
{-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV #-}
{-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-}
{-# complete (::&) :: PhysicalDeviceImage2DViewOf3DFeaturesEXT #-}
{-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesVALVE #-}
{-# complete (::&) :: MutableDescriptorTypeCreateInfoVALVE #-}
{-# complete (::&) :: PhysicalDeviceDepthClipControlFeaturesEXT #-}
Expand Down
62 changes: 45 additions & 17 deletions src/Vulkan/Core10/CommandBufferBuilding.hs
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,11 @@ foreign import ccall
-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
-- @pipeline@ /must/ be a ray tracing pipeline
--
-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-06721# If
-- @pipelineBindPoint@ is
-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',
-- @commandBuffer@ /must/ not be a protected command buffer
--
-- - #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have
-- been created with
-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'
Expand Down Expand Up @@ -1080,9 +1085,8 @@ foreign import ccall
-- set in
-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.
-- Otherwise, this state is specified by the
-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@compareMask@
-- value used to create the currently active pipeline, for both front and
-- back faces.
-- 'Vulkan.Core10.Pipeline.StencilOpState'::@compareMask@ value used to
-- create the currently active pipeline, for both front and back faces.
--
-- == Valid Usage (Implicit)
--
Expand Down Expand Up @@ -1440,8 +1444,16 @@ foreign import ccall
--
-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979# For each
-- dynamic uniform or storage buffer binding in @pDescriptorSets@, the
-- sum of the effective offset, as defined above, and the range of the
-- binding /must/ be less than or equal to the size of the buffer
-- sum of the
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#dynamic-effective-offset effective offset>
-- and the range of the binding /must/ be less than or equal to the
-- size of the buffer
--
-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715# For each
-- dynamic uniform or storage buffer binding in @pDescriptorSets@, if
-- the range was set with 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then
-- @pDynamicOffsets@ which corresponds to the descriptor binding /must/
-- be 0
--
-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of
-- @pDescriptorSets@ /must/ not have been allocated from a
Expand All @@ -1453,7 +1465,7 @@ foreign import ccall
-- created with
-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',
-- each element of @pDescriptorSets@ /must/ be a valid
-- 'Vulkan.Core10.Handles.DescriptorSetLayout'
-- 'Vulkan.Core10.Handles.DescriptorSet'
--
-- == Valid Usage (Implicit)
--
Expand Down Expand Up @@ -6904,8 +6916,9 @@ foreign import ccall
-- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@
-- /must/ be @1@
--
-- - #VUID-vkCmdCopyImage-srcOffset-00147# For each element of
-- @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)
-- - #VUID-vkCmdCopyImage-srcOffset-00147# If @srcImage@ is of type
-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
-- of @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)
-- /must/ both be greater than or equal to @0@ and less than or equal
-- to the depth of the specified @srcSubresource@ of @srcImage@
--
Expand Down Expand Up @@ -6958,8 +6971,9 @@ foreign import ccall
-- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@
-- /must/ be @1@
--
-- - #VUID-vkCmdCopyImage-dstOffset-00153# For each element of
-- @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)
-- - #VUID-vkCmdCopyImage-dstOffset-00153# If @dstImage@ is of type
-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element
-- of @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)
-- /must/ both be greater than or equal to @0@ and less than or equal
-- to the depth of the specified @dstSubresource@ of @dstImage@
--
Expand Down Expand Up @@ -11137,16 +11151,28 @@ foreign import ccall
--
-- = Description
--
-- 'cmdWriteTimestamp' latches the value of the timer when all previous
-- commands have completed executing as far as the specified pipeline
-- stage, and writes the timestamp value to memory. When the timestamp
-- value is written, the availability status of the query is set to
-- available.
-- When 'cmdWriteTimestamp' is submitted to a queue, it defines an
-- execution dependency on commands that were submitted before it, and
-- writes a timestamp to a query pool.
--
-- The first
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
-- includes all commands that occur earlier in
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.
-- The synchronization scope is limited to operations on the pipeline stage
-- specified by @pipelineStage@.
--
-- The second
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
-- includes only the timestamp write operation.
--
-- When the timestamp value is written, the availability status of the
-- query is set to available.
--
-- Note
--
-- If an implementation is unable to detect completion and latch the timer
-- at any specific stage of the pipeline, it /may/ instead do so at any
-- immediately after @stage@ has completed, it /may/ instead do so at any
-- logically later stage.
--
-- Comparisons between timestamps are not meaningful if the timestamps are
Expand Down Expand Up @@ -12886,7 +12912,9 @@ instance Zero BufferCopy where
-- with different image types. If one image is
-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other image is
-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple layers, then
-- each slice is copied to or from a different layer.
-- each slice is copied to or from a different layer; @depth@ slices in the
-- 3D image correspond to @layerCount@ layers in the 2D image, with an
-- effective @depth@ of @1@ used for the 2D image.
--
-- Copies involving a
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>
Expand Down
56 changes: 43 additions & 13 deletions src/Vulkan/Core10/DescriptorSet.hs
Original file line number Diff line number Diff line change
Expand Up @@ -948,13 +948,11 @@ updateDescriptorSets device descriptorWrites descriptorCopies = liftIO . evalCon
-- | VkDescriptorBufferInfo - Structure specifying descriptor buffer
-- information
--
-- = Description
--
-- Note
-- = Members
--
-- When setting @range@ to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the
-- effective range /must/ not be larger than the maximum range for the
-- descriptor type
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>
-- /must/ not be larger than the maximum range for the descriptor type
-- (<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>).
Expand All @@ -963,6 +961,8 @@ updateDescriptorSets device descriptorWrites descriptorCopies = liftIO . evalCon
-- suballocated from a buffer that is much larger than
-- @maxUniformBufferRange@.
--
-- = Description
--
-- For
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'
-- and
Expand All @@ -971,6 +971,10 @@ updateDescriptorSets device descriptorWrites descriptorCopies = liftIO . evalCon
-- offset is applied and @range@ is the static size used for all dynamic
-- offsets.
--
-- When @range@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE' the effective
-- range is calculated at 'updateDescriptorSets' is by taking the size of
-- @buffer@ minus the @offset@.
--
-- == Valid Usage
--
-- - #VUID-VkDescriptorBufferInfo-offset-00340# @offset@ /must/ be less
Expand Down Expand Up @@ -1068,8 +1072,22 @@ instance Zero DescriptorBufferInfo where
--
-- == Valid Usage
--
-- - #VUID-VkDescriptorImageInfo-imageView-00343# @imageView@ /must/ not
-- be 2D or 2D array image view created from a 3D image
-- - #VUID-VkDescriptorImageInfo-imageView-06712# @imageView@ /must/ not
-- be a 2D array image view created from a 3D image
--
-- - #VUID-VkDescriptorImageInfo-descriptorType-06713# If the
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-image2DViewOf3D image2DViewOf3D>
-- feature is not enabled and @descriptorType@ is
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'
-- then @imageView@ /must/ not be a 2D view created from a 3D image
--
-- - #VUID-VkDescriptorImageInfo-descriptorType-06714# If the
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampler2DViewOf3D sampler2DViewOf3D>
-- feature is not enabled and @descriptorType@ is
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'
-- or
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
-- then @imageView@ /must/ not be a 2D view created from a 3D image
--
-- - #VUID-VkDescriptorImageInfo-imageView-01976# If @imageView@ is
-- created from a depth\/stencil image, the @aspectMask@ used to create
Expand Down Expand Up @@ -1461,9 +1479,9 @@ instance Zero DescriptorImageInfo where
-- or
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC',
-- the @range@ member of each element of @pBufferInfo@, or the
-- effective range if @range@ is
-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or
-- equal to
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>
-- if @range@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be
-- less than or equal to
-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxUniformBufferRange@
--
-- - #VUID-VkWriteDescriptorSet-descriptorType-00333# If @descriptorType@
Expand All @@ -1472,9 +1490,9 @@ instance Zero DescriptorImageInfo where
-- or
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC',
-- the @range@ member of each element of @pBufferInfo@, or the
-- effective range if @range@ is
-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or
-- equal to
-- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>
-- if @range@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be
-- less than or equal to
-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxStorageBufferRange@
--
-- - #VUID-VkWriteDescriptorSet-descriptorType-00334# If @descriptorType@
Expand Down Expand Up @@ -1553,6 +1571,18 @@ instance Zero DescriptorImageInfo where
-- been created with
-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT' set
--
-- - #VUID-VkWriteDescriptorSet-descriptorType-06710# If @descriptorType@
-- is
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
-- or
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
-- each @imageView@ member of each element of @pImageInfo@ that is a 2D
-- image view created from a 3D image /must/ have been created from an
-- image created with
-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'
-- set
--
-- - #VUID-VkWriteDescriptorSet-descriptorType-02752# If @descriptorType@
-- is 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER',
-- then @dstSet@ /must/ not have been allocated with a layout that
Expand Down
3 changes: 3 additions & 0 deletions src/Vulkan/Core10/Device.hs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDe
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)
Expand Down Expand Up @@ -820,6 +821,7 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where
-- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR',
-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',
-- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',
-- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures',
-- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',
Expand Down Expand Up @@ -992,6 +994,7 @@ instance Extensible DeviceCreateInfo where
| Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f
| Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f
| Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f
| Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f
| Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f
| Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f
| Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f
Expand Down
Loading

0 comments on commit 94672e2

Please sign in to comment.