• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "properties":
5        {
6            "register_extension":
7                {
8                    "type": "object",
9                    "description": "This section must be present for all KHR extensions, for all extensions that were promoted to the core and for all extensions for which aliases should be populated.",
10                    "properties":
11                        {
12                            "type":
13                                {
14                                    "type": "string",
15                                    "enum": [
16                                        "device",
17                                        "instance"
18                                    ],
19                                    "description": "This property specifies if this is device or instance extension."
20                                },
21                            "core":
22                                {
23                                    "type": "string",
24                                    "description": "This property specifies vulkan version to which this extension was fully promoted. Empty string is also accepted and must be used for partialy promoted extensions.",
25                                    "pattern": "^$|^[1-9]\\.[0-9]\\.[0-9]\\.[0-9]$"
26                                }
27                        },
28                    "required": [
29                        "type",
30                        "core"
31                    ],
32                    "additionalProperties": false
33                },
34            "mandatory_features":
35                {
36                    "type": "object",
37                    "description": "When this section is present it specifies mandatory features for extension or vulkan version.",
38                    "patternProperties":
39                        {
40                            "^VkPhysicalDevice[1-9A-Za-z]*Features(EXT|KHR|VALVE)?$":
41                                {
42                                    "type": "array",
43                                    "description": "List of mandatory features in given feature structure.",
44                                    "minItems": 1,
45                                    "items":
46                                        {
47                                            "type": "object",
48                                            "properties":
49                                                {
50                                                    "features":
51                                                        {
52                                                            "type": "array",
53                                                            "description": "List of structure attributes - at least one of them must be supported when requirements are meat.",
54                                                            "minItems": 1,
55                                                            "items":
56                                                                {
57                                                                    "type": "string"
58                                                                }
59                                                        },
60                                                    "requirements":
61                                                        {
62                                                            "type": "array",
63                                                            "description": "List of requirements (other features, extensions, vulkan version). This list can be empty.",
64                                                            "items":
65                                                                {
66                                                                    "type": "string"
67                                                                }
68                                                        },
69                                                    "mandatory_variant":
70                                                        {
71                                                            "type": "array",
72                                                            "description": "When this section is present it specifies mandatory features variant.",
73                                                            "items": {
74                                                                "type": "string",
75                                                                "enum": [
76                                                                    "vulkan",
77                                                                    "vulkansc"
78                                                                ]
79                                                            }
80                                                        }
81                                                },
82                                            "required": [
83                                                "features",
84                                                "requirements"
85                                            ],
86                                            "additionalProperties": false
87                                        }
88                                },
89                            "additionalProperties": {
90                                "type": "string"
91                            }
92                        },
93                    "additionalProperties": false
94                },
95            "mandatory_extensions":
96                {
97                    "type": "array",
98                    "description": "When this section is present it specifies mandatory extensions for the given features",
99                    "items":
100                        {
101                            "type": "object",
102                            "properties":
103                                {
104                                    "extension":
105                                        {
106                                            "type": "string"
107                                        },
108                                    "requirements":
109                                        {
110                                            "type": "array",
111                                            "description": "List of requirements (other features, extensions, vulkan version). This list can be empty.",
112                                            "minItems": 1,
113                                            "items":
114                                                {
115                                                    "type": "string"
116                                                }
117                                        },
118                                    "mandatory_variant":
119                                        {
120                                            "type": "array",
121                                            "description": "When this section is present it specifies mandatory features variant.",
122                                            "items": {
123                                                "type": "string",
124                                                "enum": [
125                                                    "vulkan",
126                                                    "vulkansc"
127                                                ]
128                                            }
129                                        }
130                                },
131                            "additionalProperties": false
132                        }
133                }
134        },
135    "additionalProperties": false
136}
137