vulkan-3.23: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_portability_subset

Description

Name

VK_KHR_portability_subset - device extension

VK_KHR_portability_subset

Name String
VK_KHR_portability_subset
Extension Type
Device extension
Registered Extension Number
164
Revision
1
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2 to be enabled for any device-level functionality
  • __This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.__
Contact

Other Extension Metadata

Last Modified Date
2020-07-21
IP Status
No known IP claims.
Contributors
  • Bill Hollings, The Brenwill Workshop Ltd.
  • Daniel Koch, NVIDIA
  • Dzmitry Malyshau, Mozilla
  • Chip Davis, CodeWeavers
  • Dan Ginsburg, Valve
  • Mike Weiblen, LunarG
  • Neil Trevett, NVIDIA
  • Alexey Knyazev, Independent

Description

The `VK_KHR_portability_subset extension allows a non-conformant Vulkan implementation to be built on top of another non-Vulkan graphics API, and identifies differences between that implementation and a fully-conformant native Vulkan implementation.

This extension provides Vulkan implementations with the ability to mark otherwise-required capabilities as unsupported, or to establish additional properties and limits that the application should adhere to in order to guarantee portable behaviour and operation across platforms, including platforms where Vulkan is not natively supported.

The goal of this specification is to document, and make queryable, capabilities which are required to be supported by a fully-conformant Vulkan 1.0 implementation, but may be optional for an implementation of the Vulkan 1.0 Portability Subset.

The intent is that this extension will be advertised only on implementations of the Vulkan 1.0 Portability Subset, and not on conformant implementations of Vulkan 1.0. Fully-conformant Vulkan implementations provide all the required capabilities, and so will not provide this extension. Therefore, the existence of this extension can be used to determine that an implementation is likely not fully conformant with the Vulkan spec.

If this extension is supported by the Vulkan implementation, the application must enable this extension.

This extension defines several new structures that can be chained to the existing structures used by certain standard Vulkan calls, in order to query for non-conformant portable behavior.

New Structures

New Enum Constants

Issues

None.

Version History

  • Revision 1, 2020-07-21 (Bill Hollings)

    • Initial draft.

See Also

PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDevicePortabilitySubsetPropertiesKHR

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

Documentation

data PhysicalDevicePortabilitySubsetFeaturesKHR Source #

VkPhysicalDevicePortabilitySubsetFeaturesKHR - Structure describing the features that may not be supported by an implementation of the Vulkan 1.0 Portability Subset

Members

This structure describes the following features:

Description

If the PhysicalDevicePortabilitySubsetFeaturesKHR 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. PhysicalDevicePortabilitySubsetFeaturesKHR can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_KHR_portability_subset, Bool32, StructureType

Constructors

PhysicalDevicePortabilitySubsetFeaturesKHR 

Fields

Instances

Instances details
Storable PhysicalDevicePortabilitySubsetFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

Show PhysicalDevicePortabilitySubsetFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

Eq PhysicalDevicePortabilitySubsetFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

FromCStruct PhysicalDevicePortabilitySubsetFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

ToCStruct PhysicalDevicePortabilitySubsetFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

Zero PhysicalDevicePortabilitySubsetFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

data PhysicalDevicePortabilitySubsetPropertiesKHR Source #

VkPhysicalDevicePortabilitySubsetPropertiesKHR - Structure describing additional properties supported by a portable implementation

Description

If the PhysicalDevicePortabilitySubsetPropertiesKHR structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Valid Usage (Implicit)

See Also

VK_KHR_portability_subset, StructureType

Constructors

PhysicalDevicePortabilitySubsetPropertiesKHR 

Fields

Instances

Instances details
Storable PhysicalDevicePortabilitySubsetPropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

Show PhysicalDevicePortabilitySubsetPropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

Eq PhysicalDevicePortabilitySubsetPropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

FromCStruct PhysicalDevicePortabilitySubsetPropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

ToCStruct PhysicalDevicePortabilitySubsetPropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

Zero PhysicalDevicePortabilitySubsetPropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_portability_subset

type KHR_PORTABILITY_SUBSET_EXTENSION_NAME = "VK_KHR_portability_subset" Source #

pattern KHR_PORTABILITY_SUBSET_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #