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": ["device", "instance"], 16 "description": "This property specifies if this is device or instance extension." 17 }, 18 "core": 19 { 20 "type": "string", 21 "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.", 22 "pattern": "^$|^[1-9]\\.[0-9]\\.[0-9]\\.[0-9]$" 23 } 24 }, 25 "required": ["type", "core"], 26 "additionalProperties": false 27 }, 28 "mandatory_features": 29 { 30 "type": "object", 31 "description": "When this section is present it specifies mandatory features for extension or vulkan version.", 32 "patternProperties": 33 { 34 "^VkPhysicalDevice[1-9A-Za-z]*Features(EXT|KHR|VALVE)?$": 35 { 36 "type": "array", 37 "description": "List of mandatory features in given feature structure.", 38 "minItems": 1, 39 "items": 40 { 41 "type": "object", 42 "properties": 43 { 44 "features": 45 { 46 "type": "array", 47 "description": "List of structure attributes - at least one of them must be supported when requirements are meat.", 48 "minItems": 1, 49 "items": 50 { 51 "type": "string" 52 } 53 }, 54 "requirements": 55 { 56 "type": "array", 57 "description": "List of requirements (other features, extensions, vulkan version). This list can be empty.", 58 "items": 59 { 60 "type": "string" 61 } 62 }, 63 "mandatory_variant": 64 { 65 "type": "array", 66 "description": "When this section is present it specifies mandatory features variant.", 67 "items": { 68 "type": "string", 69 "enum": ["vulkan", "vulkansc"] 70 } 71 } 72 }, 73 "required": ["features", "requirements"], 74 "additionalProperties": false 75 } 76 }, 77 "additionalProperties": { "type": "string" } 78 }, 79 "additionalProperties": false 80 }, 81 "mandatory_extensions": 82 { 83 "type": "array", 84 "description": "When this section is present it specifies mandatory extensions for the given features", 85 "items": 86 { 87 "type": "object", 88 "properties": 89 { 90 "extension": 91 { 92 "type": "string" 93 }, 94 "requirements": 95 { 96 "type": "array", 97 "description": "List of requirements (other features, extensions, vulkan version). This list can be empty.", 98 "minItems": 1, 99 "items": 100 { 101 "type": "string" 102 } 103 }, 104 "mandatory_variant": 105 { 106 "type": "array", 107 "description": "When this section is present it specifies mandatory features variant.", 108 "items": { 109 "type": "string", 110 "enum": ["vulkan", "vulkansc"] 111 } 112 } 113 }, 114 "additionalProperties": false 115 } 116 } 117 }, 118 "additionalProperties": false 119}