{-# language CPP #-} -- | = Name -- -- VK_KHR_maintenance5 - device extension -- -- == VK_KHR_maintenance5 -- -- [__Name String__] -- @VK_KHR_maintenance5@ -- -- [__Extension Type__] -- Device extension -- -- [__Registered Extension Number__] -- 471 -- -- [__Revision__] -- 1 -- -- [__Ratification Status__] -- Ratified -- -- [__Extension and Version Dependencies__] -- -- and -- -- -- [__Contact__] -- -- - Stu Smith -- -- -- [__Extension Proposal__] -- -- -- == Other Extension Metadata -- -- [__Last Modified Date__] -- 2023-05-02 -- -- [__Interactions and External Dependencies__; __Contributors__] -- -- - Stu Smith, AMD -- -- - Tobias Hector, AMD -- -- - Shahbaz Youssefi, Google -- -- - Slawomir Cygan, Intel -- -- - Lionel Landwerlin, Intel -- -- - James Fitzpatrick, Imagination Technologies -- -- - Andrew Garrard, Imagination Technologies -- -- - Ralph Potter, Samsung -- -- - Pan Gao, Huawei -- -- - Jan-Harald Fredriksen, ARM -- -- - Jon Leech, Khronos -- -- - Mike Blumenkrantz, Valve -- -- == Description -- -- @VK_KHR_maintenance5@ adds a collection of minor features, none of which -- would warrant an entire extension of their own. -- -- The new features are as follows: -- -- - A new 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR' -- format -- -- - A new 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' format -- -- - A property to indicate that multisample coverage operations are -- performed after sample counting in EarlyFragmentTests mode -- -- - Relax VkBufferView creation requirements by allowing subsets of the -- associated VkBuffer usage using 'BufferUsageFlags2CreateInfoKHR' -- -- - A new entry point 'cmdBindIndexBuffer2KHR', allowing a range of -- memory to be bound as an index buffer -- -- - 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' must return -- @NULL@ for supported core functions beyond the version requested by -- the application. -- -- - A property to indicate that the sample mask test is performed after -- sample counting in EarlyFragmentTests mode -- -- - 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' -- now supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the -- @pSizes@ parameter. -- -- - A default size of 1.0 is used if @PointSize@ is not written -- -- - Shader modules are deprecated - applications can now pass -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' as a chained struct to -- pipeline creation via -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' -- -- - A function 'getRenderingAreaGranularityKHR' to query the optimal -- render area for a dynamic rendering instance. -- -- - A property to indicate that depth\/stencil texturing operations with -- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have -- defined behavior -- -- - Add 'getImageSubresourceLayout2KHR' and a new function -- 'getDeviceImageSubresourceLayoutKHR' to allow the application to -- query the image memory layout without having to create an image -- object and query it. -- -- - Allow 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the -- @layerCount@ member of -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' -- -- - Adds stronger guarantees for propagation of -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' return values -- -- - A property to indicate whether @PointSize@ controls the final -- rasterization of polygons if -- -- is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT' -- -- - Two properties to indicate the non-strict line rasterization -- algorithm used -- -- - Two new flags words 'PipelineCreateFlagBits2KHR' and -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' -- -- - Physical-device-level functions can now be called with any value in -- the valid range for a type beyond the defined enumerants, such that -- applications can avoid checking individual features, extensions, or -- versions before querying supported properties of a particular -- enumerant. -- -- - Clarification that copies between images of any type are allowed, -- treating 1D images as 2D images with a height of 1. -- -- == New Commands -- -- - 'cmdBindIndexBuffer2KHR' -- -- - 'getDeviceImageSubresourceLayoutKHR' -- -- - 'getImageSubresourceLayout2KHR' -- -- - 'getRenderingAreaGranularityKHR' -- -- == New Structures -- -- - 'DeviceImageSubresourceInfoKHR' -- -- - 'ImageSubresource2KHR' -- -- - 'RenderingAreaInfoKHR' -- -- - 'SubresourceLayout2KHR' -- -- - Extending 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT': -- -- - 'BufferUsageFlags2CreateInfoKHR' -- -- - Extending 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR': -- -- - 'PipelineCreateFlags2CreateInfoKHR' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core10.Device.DeviceCreateInfo': -- -- - 'PhysicalDeviceMaintenance5FeaturesKHR' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': -- -- - 'PhysicalDeviceMaintenance5PropertiesKHR' -- -- == New Enums -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' -- -- - 'PipelineCreateFlagBits2KHR' -- -- == New Bitmasks -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR' -- -- - 'PipelineCreateFlags2KHR' -- -- == New Enum Constants -- -- - 'KHR_MAINTENANCE_5_EXTENSION_NAME' -- -- - 'KHR_MAINTENANCE_5_SPEC_VERSION' -- -- - Extending 'Vulkan.Core10.Enums.Format.Format': -- -- - 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR' -- -- - 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' -- -- - 'PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT' -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' -- -- - 'PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT' -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT' -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT' -- -- - 'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' -- -- If -- -- and -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' -- -- If -- -- and -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_LIBRARY_BIT_KHR' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR' -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR' -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR' -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'BUFFER_USAGE_2_RAY_TRACING_BIT_NV' -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV' -- -- If -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV' -- -- If -- -- or -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR' -- -- If -- -- or -- -- or -- -- is supported: -- -- - Extending -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': -- -- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR' -- -- If -- -- or -- -- is supported: -- -- - Extending 'PipelineCreateFlagBits2KHR': -- -- - 'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR' -- -- - 'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR' -- -- == Issues -- -- None. -- -- == Version History -- -- - Revision 1, 2022-12-12 (Stu Smith) -- -- - Initial revision -- -- == See Also -- -- 'DeviceImageSubresourceInfoKHR', 'ImageSubresource2KHR', -- 'PhysicalDeviceMaintenance5FeaturesKHR', -- 'PhysicalDeviceMaintenance5PropertiesKHR', 'RenderingAreaInfoKHR', -- 'SubresourceLayout2KHR', 'cmdBindIndexBuffer2KHR', -- 'getDeviceImageSubresourceLayoutKHR', 'getImageSubresourceLayout2KHR', -- 'getRenderingAreaGranularityKHR' -- -- == Document Notes -- -- For more information, see the -- -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_KHR_maintenance5 ( BufferUsageFlags2CreateInfoKHR , DeviceImageSubresourceInfoKHR , ImageSubresource2KHR , PhysicalDeviceMaintenance5FeaturesKHR , PhysicalDeviceMaintenance5PropertiesKHR , PipelineCreateFlags2CreateInfoKHR , RenderingAreaInfoKHR , SubresourceLayout2KHR ) where import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type) import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) data BufferUsageFlags2CreateInfoKHR instance ToCStruct BufferUsageFlags2CreateInfoKHR instance Show BufferUsageFlags2CreateInfoKHR instance FromCStruct BufferUsageFlags2CreateInfoKHR data DeviceImageSubresourceInfoKHR instance ToCStruct DeviceImageSubresourceInfoKHR instance Show DeviceImageSubresourceInfoKHR instance FromCStruct DeviceImageSubresourceInfoKHR data ImageSubresource2KHR instance ToCStruct ImageSubresource2KHR instance Show ImageSubresource2KHR instance FromCStruct ImageSubresource2KHR data PhysicalDeviceMaintenance5FeaturesKHR instance ToCStruct PhysicalDeviceMaintenance5FeaturesKHR instance Show PhysicalDeviceMaintenance5FeaturesKHR instance FromCStruct PhysicalDeviceMaintenance5FeaturesKHR data PhysicalDeviceMaintenance5PropertiesKHR instance ToCStruct PhysicalDeviceMaintenance5PropertiesKHR instance Show PhysicalDeviceMaintenance5PropertiesKHR instance FromCStruct PhysicalDeviceMaintenance5PropertiesKHR data PipelineCreateFlags2CreateInfoKHR instance ToCStruct PipelineCreateFlags2CreateInfoKHR instance Show PipelineCreateFlags2CreateInfoKHR instance FromCStruct PipelineCreateFlags2CreateInfoKHR data RenderingAreaInfoKHR instance ToCStruct RenderingAreaInfoKHR instance Show RenderingAreaInfoKHR instance FromCStruct RenderingAreaInfoKHR type role SubresourceLayout2KHR nominal data SubresourceLayout2KHR (es :: [Type]) instance ( Extendss SubresourceLayout2KHR es , PokeChain es ) => ToCStruct (SubresourceLayout2KHR es) instance Show (Chain es) => Show (SubresourceLayout2KHR es) instance ( Extendss SubresourceLayout2KHR es , PeekChain es ) => FromCStruct (SubresourceLayout2KHR es)