summaryrefslogtreecommitdiff
path: root/appendices/VK_KHR_portability_subset.adoc
blob: 5400424ccc2c1b7d69d667871f00d51c19152d32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright 2018-2023 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_portability_subset.adoc[]

=== 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 `apiext: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.

include::{generated}/interfaces/VK_KHR_portability_subset.adoc[]

=== Issues

None.

=== Version History

  * Revision 1, 2020-07-21 (Bill Hollings)
  ** Initial draft.