packages feed

vulkan-3.21: src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot

{-# language CPP #-}
-- | = Name
--
-- VK_FUCHSIA_buffer_collection - device extension
--
-- == VK_FUCHSIA_buffer_collection
--
-- [__Name String__]
--     @VK_FUCHSIA_buffer_collection@
--
-- [__Extension Type__]
--     Device extension
--
-- [__Registered Extension Number__]
--     367
--
-- [__Revision__]
--     2
--
-- [__Extension and Version Dependencies__]
--
--     -   Requires support for Vulkan 1.0
--
--     -   Requires @VK_FUCHSIA_external_memory@ to be enabled for any
--         device-level functionality
--
--     -   Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any
--         device-level functionality
--
-- [__Contact__]
--
--     -   John Rosasco
--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_FUCHSIA_buffer_collection] @rosasco%0A<<Here describe the issue or question you have about the VK_FUCHSIA_buffer_collection extension>> >
--
-- == Other Extension Metadata
--
-- [__Last Modified Date__]
--     2021-09-23
--
-- [__IP Status__]
--     No known IP claims.
--
-- [__Contributors__]
--
--     -   Craig Stout, Google
--
--     -   John Bauman, Google
--
--     -   John Rosasco, Google
--
-- == Description
--
-- A buffer collection is a collection of one or more buffers which were
-- allocated together as a group and which all have the same properties.
-- These properties describe the buffers\' internal representation such as
-- its dimensions and memory layout. This ensures that all of the buffers
-- can be used interchangeably by tasks that require swapping among
-- multiple buffers, such as double-buffered graphics rendering.
--
-- By sharing such a collection of buffers between components,
-- communication about buffer lifecycle can be made much simpler and more
-- efficient. For example, when a content producer finishes writing to a
-- buffer, it can message the consumer of the buffer with the buffer index,
-- rather than passing a handle to the shared memory.
--
-- On Fuchsia, the Sysmem service uses buffer collections as a core
-- construct in its design. VK_FUCHSIA_buffer_collection is the Vulkan
-- extension that allows Vulkan applications to interoperate with the
-- Sysmem service on Fuchsia.
--
-- == New Object Types
--
-- -   'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA'
--
-- == New Commands
--
-- -   'createBufferCollectionFUCHSIA'
--
-- -   'destroyBufferCollectionFUCHSIA'
--
-- -   'getBufferCollectionPropertiesFUCHSIA'
--
-- -   'setBufferCollectionBufferConstraintsFUCHSIA'
--
-- -   'setBufferCollectionImageConstraintsFUCHSIA'
--
-- == New Structures
--
-- -   'BufferCollectionConstraintsInfoFUCHSIA'
--
-- -   'BufferCollectionCreateInfoFUCHSIA'
--
-- -   'BufferCollectionPropertiesFUCHSIA'
--
-- -   'BufferConstraintsInfoFUCHSIA'
--
-- -   'ImageConstraintsInfoFUCHSIA'
--
-- -   'ImageFormatConstraintsInfoFUCHSIA'
--
-- -   'SysmemColorSpaceFUCHSIA'
--
-- -   Extending 'Vulkan.Core10.Buffer.BufferCreateInfo':
--
--     -   'BufferCollectionBufferCreateInfoFUCHSIA'
--
-- -   Extending 'Vulkan.Core10.Image.ImageCreateInfo':
--
--     -   'BufferCollectionImageCreateInfoFUCHSIA'
--
-- -   Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':
--
--     -   'ImportMemoryBufferCollectionFUCHSIA'
--
-- == New Enums
--
-- -   'ImageConstraintsInfoFlagBitsFUCHSIA'
--
-- == New Bitmasks
--
-- -   'ImageConstraintsInfoFlagsFUCHSIA'
--
-- -   'ImageFormatConstraintsFlagsFUCHSIA'
--
-- == New Enum Constants
--
-- -   'FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME'
--
-- -   'FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION'
--
-- -   Extending
--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':
--
--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT'
--
-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':
--
--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA'
--
-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA'
--
-- == Issues
--
-- 1) When configuring a 'ImageConstraintsInfoFUCHSIA' structure for
-- constraint setting, should a NULL @pFormatConstraints@ parameter be
-- allowed ?
--
-- __RESOLVED__: No. Specifying a NULL @pFormatConstraints@ results in
-- logical complexity of interpreting the relationship between the
-- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ settings of the elements
-- of the @pImageCreateInfos@ array and the implied or desired
-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlags'.
--
-- The explicit requirement for @pFormatConstraints@ to be non-NULL
-- simplifies the implied logic of the implementation and expectations for
-- the Vulkan application.
--
-- == Version History
--
-- -   Revision 2, 2021-09-23 (John Rosasco)
--
--     -   Review passes
--
-- -   Revision 1, 2021-03-09 (John Rosasco)
--
--     -   Initial revision
--
-- == See Also
--
-- 'BufferCollectionBufferCreateInfoFUCHSIA',
-- 'BufferCollectionConstraintsInfoFUCHSIA',
-- 'BufferCollectionCreateInfoFUCHSIA',
-- 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA',
-- 'BufferCollectionImageCreateInfoFUCHSIA',
-- 'BufferCollectionPropertiesFUCHSIA', 'BufferConstraintsInfoFUCHSIA',
-- 'ImageConstraintsInfoFUCHSIA', 'ImageConstraintsInfoFlagBitsFUCHSIA',
-- 'ImageConstraintsInfoFlagsFUCHSIA',
-- 'ImageFormatConstraintsFlagsFUCHSIA',
-- 'ImageFormatConstraintsInfoFUCHSIA',
-- 'ImportMemoryBufferCollectionFUCHSIA', 'SysmemColorSpaceFUCHSIA',
-- 'createBufferCollectionFUCHSIA', 'destroyBufferCollectionFUCHSIA',
-- 'getBufferCollectionPropertiesFUCHSIA',
-- 'setBufferCollectionBufferConstraintsFUCHSIA',
-- 'setBufferCollectionImageConstraintsFUCHSIA'
--
-- == Document Notes
--
-- For more information, see the
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification>
--
-- This page is a generated document. Fixes and changes should be made to
-- the generator scripts, not directly.
module Vulkan.Extensions.VK_FUCHSIA_buffer_collection  ( BufferCollectionBufferCreateInfoFUCHSIA
                                                       , BufferCollectionConstraintsInfoFUCHSIA
                                                       , BufferCollectionCreateInfoFUCHSIA
                                                       , BufferCollectionImageCreateInfoFUCHSIA
                                                       , BufferCollectionPropertiesFUCHSIA
                                                       , BufferConstraintsInfoFUCHSIA
                                                       , ImageConstraintsInfoFUCHSIA
                                                       , ImageFormatConstraintsInfoFUCHSIA
                                                       , ImportMemoryBufferCollectionFUCHSIA
                                                       , SysmemColorSpaceFUCHSIA
                                                       ) where

import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (ToCStruct)
import Data.Kind (Type)

data BufferCollectionBufferCreateInfoFUCHSIA

instance ToCStruct BufferCollectionBufferCreateInfoFUCHSIA
instance Show BufferCollectionBufferCreateInfoFUCHSIA

instance FromCStruct BufferCollectionBufferCreateInfoFUCHSIA


data BufferCollectionConstraintsInfoFUCHSIA

instance ToCStruct BufferCollectionConstraintsInfoFUCHSIA
instance Show BufferCollectionConstraintsInfoFUCHSIA

instance FromCStruct BufferCollectionConstraintsInfoFUCHSIA


data BufferCollectionCreateInfoFUCHSIA

instance ToCStruct BufferCollectionCreateInfoFUCHSIA
instance Show BufferCollectionCreateInfoFUCHSIA

instance FromCStruct BufferCollectionCreateInfoFUCHSIA


data BufferCollectionImageCreateInfoFUCHSIA

instance ToCStruct BufferCollectionImageCreateInfoFUCHSIA
instance Show BufferCollectionImageCreateInfoFUCHSIA

instance FromCStruct BufferCollectionImageCreateInfoFUCHSIA


data BufferCollectionPropertiesFUCHSIA

instance ToCStruct BufferCollectionPropertiesFUCHSIA
instance Show BufferCollectionPropertiesFUCHSIA

instance FromCStruct BufferCollectionPropertiesFUCHSIA


data BufferConstraintsInfoFUCHSIA

instance ToCStruct BufferConstraintsInfoFUCHSIA
instance Show BufferConstraintsInfoFUCHSIA

instance FromCStruct BufferConstraintsInfoFUCHSIA


data ImageConstraintsInfoFUCHSIA

instance ToCStruct ImageConstraintsInfoFUCHSIA
instance Show ImageConstraintsInfoFUCHSIA

instance FromCStruct ImageConstraintsInfoFUCHSIA


data ImageFormatConstraintsInfoFUCHSIA

instance ToCStruct ImageFormatConstraintsInfoFUCHSIA
instance Show ImageFormatConstraintsInfoFUCHSIA

instance FromCStruct ImageFormatConstraintsInfoFUCHSIA


data ImportMemoryBufferCollectionFUCHSIA

instance ToCStruct ImportMemoryBufferCollectionFUCHSIA
instance Show ImportMemoryBufferCollectionFUCHSIA

instance FromCStruct ImportMemoryBufferCollectionFUCHSIA


data SysmemColorSpaceFUCHSIA

instance ToCStruct SysmemColorSpaceFUCHSIA
instance Show SysmemColorSpaceFUCHSIA

instance FromCStruct SysmemColorSpaceFUCHSIA