| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_QNX_external_memory_screen_buffer
Description
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_VERSIONExtending
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 #
Arguments
| :: 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
bufferis notNULL, QNX Screen Buffers must be supported for import, as reported byExternalImageFormatPropertiesorExternalBufferProperties
-
bufferis notNULL, it must be a pointer to valid QNX Screen buffer
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
See Also
Constructors
| ImportScreenBufferInfoQNX | |
Fields
| |
Instances
data ScreenBufferPropertiesQNX (es :: [Type]) Source #
VkScreenBufferPropertiesQNX - Properties of External Memory QNX Screen Buffers
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
-
pNextmust beNULLor a pointer to a valid instance ofScreenBufferFormatPropertiesQNX - The
sTypevalue of each struct in thepNextchain must be unique
See Also
VK_QNX_external_memory_screen_buffer,
DeviceSize,
StructureType,
getScreenBufferPropertiesQNX
Constructors
| ScreenBufferPropertiesQNX | |
Fields
| |
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
Constructors
| ScreenBufferFormatPropertiesQNX | |
Fields
| |
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
Constructors
| ExternalFormatQNX | |
Fields
| |
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
Constructors
| PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX | |
Fields
| |
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 #