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