Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_QNX_external_memory_screen_buffer - device extension
VK_QNX_external_memory_screen_buffer
- Name String
VK_QNX_external_memory_screen_buffer
- Extension Type
- Device extension
- Registered Extension Number
- 530
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
VK_KHR_sampler_ycbcr_conversion and
VK_KHR_dedicated_allocation or
Version 1.1 and VK_EXT_queue_family_foreign
- Contact
Other Extension Metadata
- Last Modified Date
- 2023-05-17
- IP Status
- No known IP claims.
- Contributors
- Mike Gorchak, QNX / Blackberry Limited
- Aaron Ruby, QNX / Blackberry Limited
Description
This extension enables an application to import QNX Screen
Screen_buffer
objects created outside of the Vulkan device into Vulkan
memory objects, where they can be bound to images and buffers.
Some Screen_buffer
images have implementation-defined /external
formats that may/ not correspond to Vulkan formats. Sampler Y′CBCR
conversion can be used to sample from these images and convert them to
a known color space.
Screen_buffer
is strongly typed, so naming the handle type is
redundant. The internal layout and therefore size of a Screen_buffer
image may depend on native usage flags that do not have corresponding
Vulkan counterparts.
New Commands
New Structures
Extending
ImageCreateInfo
,SamplerYcbcrConversionCreateInfo
:Extending
MemoryAllocateInfo
:Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:Extending
ScreenBufferPropertiesQNX
:
New Enum Constants
QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION
Extending
ExternalMemoryHandleTypeFlagBits
:Extending
StructureType
:
Version History
Revision 1, 2023-05-17 (Mike Gorchak)
- Initial version
See Also
ExternalFormatQNX
, ImportScreenBufferInfoQNX
,
PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
,
ScreenBufferFormatPropertiesQNX
, ScreenBufferPropertiesQNX
,
getScreenBufferPropertiesQNX
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- getScreenBufferPropertiesQNX :: forall a io. (Extendss ScreenBufferPropertiesQNX a, PokeChain a, PeekChain a, MonadIO io) => Device -> Ptr Screen_buffer -> io (ScreenBufferPropertiesQNX a)
- data ImportScreenBufferInfoQNX = ImportScreenBufferInfoQNX {}
- data ScreenBufferPropertiesQNX (es :: [Type]) = ScreenBufferPropertiesQNX {
- next :: Chain es
- allocationSize :: DeviceSize
- memoryTypeBits :: Word32
- data ScreenBufferFormatPropertiesQNX = ScreenBufferFormatPropertiesQNX {
- format :: Format
- externalFormat :: Word64
- screenUsage :: Word64
- formatFeatures :: FormatFeatureFlags
- samplerYcbcrConversionComponents :: ComponentMapping
- suggestedYcbcrModel :: SamplerYcbcrModelConversion
- suggestedYcbcrRange :: SamplerYcbcrRange
- suggestedXChromaOffset :: ChromaLocation
- suggestedYChromaOffset :: ChromaLocation
- data ExternalFormatQNX = ExternalFormatQNX {}
- data PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {}
- type QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION = 1
- pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION :: forall a. Integral a => a
- type QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME = "VK_QNX_external_memory_screen_buffer"
- pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- data Screen_buffer
Documentation
getScreenBufferPropertiesQNX Source #
:: forall a io. (Extendss ScreenBufferPropertiesQNX a, PokeChain a, PeekChain a, MonadIO io) | |
=> Device |
|
-> Ptr Screen_buffer |
|
-> io (ScreenBufferPropertiesQNX a) |
vkGetScreenBufferPropertiesQNX - Get Properties of External Memory QNX Screen Buffers
Return Codes
See Also
VK_QNX_external_memory_screen_buffer,
Device
, ScreenBufferPropertiesQNX
data ImportScreenBufferInfoQNX Source #
VkImportScreenBufferInfoQNX - Import memory from a QNX Screen buffer
Description
The implementation may not acquire a reference to the imported Screen
buffer. Therefore, the application must ensure that the object
referred to by buffer
stays valid as long as the device memory to
which it is imported is being used.
Valid Usage
- If
buffer
is notNULL
, QNX Screen Buffers must be supported for import, as reported byExternalImageFormatProperties
orExternalBufferProperties
-
buffer
is notNULL
, it must be a pointer to valid QNX Screen buffer
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
See Also
ImportScreenBufferInfoQNX | |
|
Instances
data ScreenBufferPropertiesQNX (es :: [Type]) Source #
VkScreenBufferPropertiesQNX - Properties of External Memory QNX Screen Buffers
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
-
pNext
must beNULL
or a pointer to a valid instance ofScreenBufferFormatPropertiesQNX
- The
sType
value of each struct in thepNext
chain must be unique
See Also
VK_QNX_external_memory_screen_buffer,
DeviceSize
,
StructureType
,
getScreenBufferPropertiesQNX
ScreenBufferPropertiesQNX | |
|
Instances
data ScreenBufferFormatPropertiesQNX Source #
VkScreenBufferFormatPropertiesQNX - Structure describing the image format properties of a QNX Screen buffer
Description
If the QNX Screen buffer has one of the formats listed in the
QNX Screen Format Equivalence table,
then format
must have the equivalent Vulkan format listed in the
table. Otherwise, format
may be
FORMAT_UNDEFINED
, indicating the QNX Screen
buffer can only be used with an external format. The formatFeatures
member must include
FORMAT_FEATURE_SAMPLED_IMAGE_BIT
and should include
FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
and
FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
.
Valid Usage (Implicit)
See Also
VK_QNX_external_memory_screen_buffer,
ChromaLocation
,
ComponentMapping
,
Format
,
FormatFeatureFlags
,
SamplerYcbcrModelConversion
,
SamplerYcbcrRange
,
StructureType
ScreenBufferFormatPropertiesQNX | |
|
Instances
data ExternalFormatQNX Source #
VkExternalFormatQNX - Structure containing a QNX Screen buffer external format
Description
If externalFormat
is zero, the effect is as if the ExternalFormatQNX
structure was not present. Otherwise, the image
will have the
specified external format.
Valid Usage (Implicit)
See Also
ExternalFormatQNX | |
|
Instances
data PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX Source #
VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX - Structure describing QNX Screen Buffer features that can be supported by an implementation
Members
The members of the PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
structure describe the following features:
Description
'
Features | Functionality |
screenBufferImport | ImportScreenBufferInfoQNX |
Always supported1 | getScreenBufferPropertiesQNX ,
ScreenBufferPropertiesQNX ,
ScreenBufferFormatPropertiesQNX ,
ExternalFormatQNX |
Functionality supported for QNX Screen Buffer features
- 1
- Functionality in this row is always available.
The
Functionality supported for QNX Screen buffer features
table summarizes the functionality enabled by the
PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
structure. Each
entry in the body of the table summarizes the functionality that can
be used when the given features are supported and enabled. This
summarizes Valid Usage statements that are added elsewhere in this
specification.
If the PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
structure
is included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
can
also be used in the pNext
chain of
DeviceCreateInfo
to selectively enable these
features.
Valid Usage (Implicit)
See Also
PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX | |
|
Instances
pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION :: forall a. Integral a => a Source #
type QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME = "VK_QNX_external_memory_screen_buffer" Source #
pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
data Screen_buffer Source #