{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "https://schema.khronos.org/vulkan/devsim_1_1_0.json#",
    "title": "JSON schema for Vulkan device simulation layer configuration file",
    "description": "Schema for Vulkan 1.1 data structures, as used to configure the device simulation layer.",
    "type": "object",
    "additionalProperties": true,

    "definitions": {
        "$schema": {"type": "string", "format": "uri"},
        "uint8_t": {"type": "integer", "minimum": 0, "maximum": 255},
        "int32_t": {"type": "integer", "minimum": -2147483648, "maximum": 2147483647},
        "uint32_t": {"type": "integer", "minimum": 0, "maximum": 4294967295},
        "uint64_t": {"type": "integer"},
        "float": {"type": "number"},
        "size_t": {"$ref": "#/definitions/uint32_t"},
        "enum": {"$ref": "#/definitions/int32_t"},
        "VkBool32": {"$ref": "#/definitions/uint32_t"},
        "VkDeviceSize": {"$ref": "#/definitions/uint64_t"},
        "VkFlags": {"$ref": "#/definitions/uint32_t"},
        "VkFormatFeatureFlags": {"$ref": "#/definitions/VkFlags"},
        "VkMemoryHeapFlags": {"$ref": "#/definitions/VkFlags"},
        "VkMemoryPropertyFlags": {"$ref": "#/definitions/VkFlags"},
        "VkQueueFlags": {"$ref": "#/definitions/VkFlags"},
        "VkSampleCountFlags": {"$ref": "#/definitions/VkFlags"},
        "VkPhysicalDeviceType": {"$ref": "#/definitions/enum"},
        "VkPointClippingBehavior": {"$ref": "#/definitions/enum"},
        "VkFormat": {"$ref": "#/definitions/enum"},
        "VkPhysicalDeviceLimits": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "maxImageDimension1D": {"$ref": "#/definitions/uint32_t"},
                "maxImageDimension2D": {"$ref": "#/definitions/uint32_t"},
                "maxImageDimension3D": {"$ref": "#/definitions/uint32_t"},
                "maxImageDimensionCube": {"$ref": "#/definitions/uint32_t"},
                "maxImageArrayLayers": {"$ref": "#/definitions/uint32_t"},
                "maxTexelBufferElements": {"$ref": "#/definitions/uint32_t"},
                "maxUniformBufferRange": {"$ref": "#/definitions/uint32_t"},
                "maxStorageBufferRange": {"$ref": "#/definitions/uint32_t"},
                "maxPushConstantsSize": {"$ref": "#/definitions/uint32_t"},
                "maxMemoryAllocationCount": {"$ref": "#/definitions/uint32_t"},
                "maxSamplerAllocationCount": {"$ref": "#/definitions/uint32_t"},
                "bufferImageGranularity": {"$ref": "#/definitions/VkDeviceSize"},
                "sparseAddressSpaceSize": {"$ref": "#/definitions/VkDeviceSize"},
                "maxBoundDescriptorSets": {"$ref": "#/definitions/uint32_t"},
                "maxPerStageDescriptorSamplers": {"$ref": "#/definitions/uint32_t"},
                "maxPerStageDescriptorUniformBuffers": {"$ref": "#/definitions/uint32_t"},
                "maxPerStageDescriptorStorageBuffers": {"$ref": "#/definitions/uint32_t"},
                "maxPerStageDescriptorSampledImages": {"$ref": "#/definitions/uint32_t"},
                "maxPerStageDescriptorStorageImages": {"$ref": "#/definitions/uint32_t"},
                "maxPerStageDescriptorInputAttachments": {"$ref": "#/definitions/uint32_t"},
                "maxPerStageResources": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetSamplers": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetUniformBuffers": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetUniformBuffersDynamic": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetStorageBuffers": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetStorageBuffersDynamic": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetSampledImages": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetStorageImages": {"$ref": "#/definitions/uint32_t"},
                "maxDescriptorSetInputAttachments": {"$ref": "#/definitions/uint32_t"},
                "maxVertexInputAttributes": {"$ref": "#/definitions/uint32_t"},
                "maxVertexInputBindings": {"$ref": "#/definitions/uint32_t"},
                "maxVertexInputAttributeOffset": {"$ref": "#/definitions/uint32_t"},
                "maxVertexInputBindingStride": {"$ref": "#/definitions/uint32_t"},
                "maxVertexOutputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationGenerationLevel": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationPatchSize": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationControlPerVertexInputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationControlPerVertexOutputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationControlPerPatchOutputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationControlTotalOutputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationEvaluationInputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxTessellationEvaluationOutputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxGeometryShaderInvocations": {"$ref": "#/definitions/uint32_t"},
                "maxGeometryInputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxGeometryOutputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxGeometryOutputVertices": {"$ref": "#/definitions/uint32_t"},
                "maxGeometryTotalOutputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxFragmentInputComponents": {"$ref": "#/definitions/uint32_t"},
                "maxFragmentOutputAttachments": {"$ref": "#/definitions/uint32_t"},
                "maxFragmentDualSrcAttachments": {"$ref": "#/definitions/uint32_t"},
                "maxFragmentCombinedOutputResources": {"$ref": "#/definitions/uint32_t"},
                "maxComputeSharedMemorySize": {"$ref": "#/definitions/uint32_t"},
                "maxComputeWorkGroupCount": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"$ref": "#/definitions/uint32_t"}},
                "maxComputeWorkGroupInvocations": {"$ref": "#/definitions/uint32_t"},
                "maxComputeWorkGroupSize": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"$ref": "#/definitions/uint32_t"}},
                "subPixelPrecisionBits": {"$ref": "#/definitions/uint32_t"},
                "subTexelPrecisionBits": {"$ref": "#/definitions/uint32_t"},
                "mipmapPrecisionBits": {"$ref": "#/definitions/uint32_t"},
                "maxDrawIndexedIndexValue": {"$ref": "#/definitions/uint32_t"},
                "maxDrawIndirectCount": {"$ref": "#/definitions/uint32_t"},
                "maxSamplerLodBias": {"$ref": "#/definitions/float"},
                "maxSamplerAnisotropy": {"$ref": "#/definitions/float"},
                "maxViewports": {"$ref": "#/definitions/uint32_t"},
                "maxViewportDimensions": {"type": "array", "minItems": 2, "maxItems": 2, "items": {"$ref": "#/definitions/uint32_t"}},
                "viewportBoundsRange": {"type": "array", "minItems": 2, "maxItems": 2, "items": {"$ref": "#/definitions/float"}},
                "viewportSubPixelBits": {"$ref": "#/definitions/uint32_t"},
                "minMemoryMapAlignment": {"$ref": "#/definitions/size_t"},
                "minTexelBufferOffsetAlignment": {"$ref": "#/definitions/VkDeviceSize"},
                "minUniformBufferOffsetAlignment": {"$ref": "#/definitions/VkDeviceSize"},
                "minStorageBufferOffsetAlignment": {"$ref": "#/definitions/VkDeviceSize"},
                "minTexelOffset": {"$ref": "#/definitions/int32_t"},
                "maxTexelOffset": {"$ref": "#/definitions/uint32_t"},
                "minTexelGatherOffset": {"$ref": "#/definitions/int32_t"},
                "maxTexelGatherOffset": {"$ref": "#/definitions/uint32_t"},
                "minInterpolationOffset": {"$ref": "#/definitions/float"},
                "maxInterpolationOffset": {"$ref": "#/definitions/float"},
                "subPixelInterpolationOffsetBits": {"$ref": "#/definitions/uint32_t"},
                "maxFramebufferWidth": {"$ref": "#/definitions/uint32_t"},
                "maxFramebufferHeight": {"$ref": "#/definitions/uint32_t"},
                "maxFramebufferLayers": {"$ref": "#/definitions/uint32_t"},
                "framebufferColorSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "framebufferDepthSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "framebufferStencilSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "framebufferNoAttachmentsSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "maxColorAttachments": {"$ref": "#/definitions/uint32_t"},
                "sampledImageColorSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "sampledImageIntegerSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "sampledImageDepthSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "sampledImageStencilSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "storageImageSampleCounts": {"$ref": "#/definitions/VkSampleCountFlags"},
                "maxSampleMaskWords": {"$ref": "#/definitions/uint32_t"},
                "timestampComputeAndGraphics": {"$ref": "#/definitions/VkBool32"},
                "timestampPeriod": {"$ref": "#/definitions/float"},
                "maxClipDistances": {"$ref": "#/definitions/uint32_t"},
                "maxCullDistances": {"$ref": "#/definitions/uint32_t"},
                "maxCombinedClipAndCullDistances": {"$ref": "#/definitions/uint32_t"},
                "discreteQueuePriorities": {"$ref": "#/definitions/uint32_t"},
                "pointSizeRange": {"type": "array", "minItems": 2, "maxItems": 2, "items": {"$ref": "#/definitions/float"}},
                "lineWidthRange": {"type": "array", "minItems": 2, "maxItems": 2, "items": {"$ref": "#/definitions/float"}},
                "pointSizeGranularity": {"$ref": "#/definitions/float"},
                "lineWidthGranularity": {"$ref": "#/definitions/float"},
                "strictLines": {"$ref": "#/definitions/VkBool32"},
                "standardSampleLocations": {"$ref": "#/definitions/VkBool32"},
                "optimalBufferCopyOffsetAlignment": {"$ref": "#/definitions/VkDeviceSize"},
                "optimalBufferCopyRowPitchAlignment": {"$ref": "#/definitions/VkDeviceSize"},
                "nonCoherentAtomSize": {"$ref": "#/definitions/VkDeviceSize"}
            }
        },
        "VkPhysicalDeviceSparseProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "residencyStandard2DBlockShape": {"$ref": "#/definitions/VkBool32"},
                "residencyStandard2DMultisampleBlockShape": {"$ref": "#/definitions/VkBool32"},
                "residencyStandard3DBlockShape": {"$ref": "#/definitions/VkBool32"},
                "residencyAlignedMipSize": {"$ref": "#/definitions/VkBool32"},
                "residencyNonResidentStrict": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDeviceProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "apiVersion": {"$ref": "#/definitions/uint32_t"},
                "driverVersion": {"$ref": "#/definitions/uint32_t"},
                "vendorID": {"$ref": "#/definitions/uint32_t"},
                "deviceID": {"$ref": "#/definitions/uint32_t"},
                "deviceType": {"$ref": "#/definitions/VkPhysicalDeviceType"},
                "deviceName": {"type": "string", "maxLength": 255},
                "pipelineCacheUUID": {"type": "array", "minItems": 16, "maxItems": 16, "items": {"$ref": "#/definitions/uint8_t"}},
                "limits": {"$ref": "#/definitions/VkPhysicalDeviceLimits"},
                "sparseProperties": {"$ref": "#/definitions/VkPhysicalDeviceSparseProperties"}
            }
        },
        "VkPhysicalDeviceMaintenance3Properties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "maxPerSetDescriptors": {"$ref": "#/definitions/uint32_t"},
                "maxMemoryAllocationSize" : {"$ref": "#/definitions/VkDeviceSize"}
            }
        },
        "VkPhysicalDeviceMultiviewProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "maxMultiviewViewCount": {"$ref": "#/definitions/uint32_t"},
                "maxMultiviewInstanceIndex" : {"$ref": "#/definitions/uint32_t"}
            }
        },
        "VkPhysicalDevicePointClippingProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "pointClippingBehavior": {"$ref": "#/definitions/VkPointClippingBehavior"}
            }
        },
        "VkPhysicalDeviceProtectedMemoryProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "protectedNoFault": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDeviceFeatures": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "robustBufferAccess": {"$ref": "#/definitions/VkBool32"},
                "fullDrawIndexUint32": {"$ref": "#/definitions/VkBool32"},
                "imageCubeArray": {"$ref": "#/definitions/VkBool32"},
                "independentBlend": {"$ref": "#/definitions/VkBool32"},
                "geometryShader": {"$ref": "#/definitions/VkBool32"},
                "tessellationShader": {"$ref": "#/definitions/VkBool32"},
                "sampleRateShading": {"$ref": "#/definitions/VkBool32"},
                "dualSrcBlend": {"$ref": "#/definitions/VkBool32"},
                "logicOp": {"$ref": "#/definitions/VkBool32"},
                "multiDrawIndirect": {"$ref": "#/definitions/VkBool32"},
                "drawIndirectFirstInstance": {"$ref": "#/definitions/VkBool32"},
                "depthClamp": {"$ref": "#/definitions/VkBool32"},
                "depthBiasClamp": {"$ref": "#/definitions/VkBool32"},
                "fillModeNonSolid": {"$ref": "#/definitions/VkBool32"},
                "depthBounds": {"$ref": "#/definitions/VkBool32"},
                "wideLines": {"$ref": "#/definitions/VkBool32"},
                "largePoints": {"$ref": "#/definitions/VkBool32"},
                "alphaToOne": {"$ref": "#/definitions/VkBool32"},
                "multiViewport": {"$ref": "#/definitions/VkBool32"},
                "samplerAnisotropy": {"$ref": "#/definitions/VkBool32"},
                "textureCompressionETC2": {"$ref": "#/definitions/VkBool32"},
                "textureCompressionASTC_LDR": {"$ref": "#/definitions/VkBool32"},
                "textureCompressionBC": {"$ref": "#/definitions/VkBool32"},
                "occlusionQueryPrecise": {"$ref": "#/definitions/VkBool32"},
                "pipelineStatisticsQuery": {"$ref": "#/definitions/VkBool32"},
                "vertexPipelineStoresAndAtomics": {"$ref": "#/definitions/VkBool32"},
                "fragmentStoresAndAtomics": {"$ref": "#/definitions/VkBool32"},
                "shaderTessellationAndGeometryPointSize": {"$ref": "#/definitions/VkBool32"},
                "shaderImageGatherExtended": {"$ref": "#/definitions/VkBool32"},
                "shaderStorageImageExtendedFormats": {"$ref": "#/definitions/VkBool32"},
                "shaderStorageImageMultisample": {"$ref": "#/definitions/VkBool32"},
                "shaderStorageImageReadWithoutFormat": {"$ref": "#/definitions/VkBool32"},
                "shaderStorageImageWriteWithoutFormat": {"$ref": "#/definitions/VkBool32"},
                "shaderUniformBufferArrayDynamicIndexing": {"$ref": "#/definitions/VkBool32"},
                "shaderSampledImageArrayDynamicIndexing": {"$ref": "#/definitions/VkBool32"},
                "shaderStorageBufferArrayDynamicIndexing": {"$ref": "#/definitions/VkBool32"},
                "shaderStorageImageArrayDynamicIndexing": {"$ref": "#/definitions/VkBool32"},
                "shaderClipDistance": {"$ref": "#/definitions/VkBool32"},
                "shaderCullDistance": {"$ref": "#/definitions/VkBool32"},
                "shaderFloat64": {"$ref": "#/definitions/VkBool32"},
                "shaderInt64": {"$ref": "#/definitions/VkBool32"},
                "shaderInt16": {"$ref": "#/definitions/VkBool32"},
                "shaderResourceResidency": {"$ref": "#/definitions/VkBool32"},
                "shaderResourceMinLod": {"$ref": "#/definitions/VkBool32"},
                "sparseBinding": {"$ref": "#/definitions/VkBool32"},
                "sparseResidencyBuffer": {"$ref": "#/definitions/VkBool32"},
                "sparseResidencyImage2D": {"$ref": "#/definitions/VkBool32"},
                "sparseResidencyImage3D": {"$ref": "#/definitions/VkBool32"},
                "sparseResidency2Samples": {"$ref": "#/definitions/VkBool32"},
                "sparseResidency4Samples": {"$ref": "#/definitions/VkBool32"},
                "sparseResidency8Samples": {"$ref": "#/definitions/VkBool32"},
                "sparseResidency16Samples": {"$ref": "#/definitions/VkBool32"},
                "sparseResidencyAliased": {"$ref": "#/definitions/VkBool32"},
                "variableMultisampleRate": {"$ref": "#/definitions/VkBool32"},
                "inheritedQueries": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDevice16BitStorageFeatures": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "storageBuffer16BitAccess": {"$ref": "#/definitions/VkBool32"},
                "uniformAndStorageBuffer16BitAccess": {"$ref": "#/definitions/VkBool32"},
                "storagePushConstant16": {"$ref": "#/definitions/VkBool32"},
                "storageInputOutput16": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDeviceMultiviewFeatures": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "multiview": {"$ref": "#/definitions/VkBool32"},
                "multiviewGeometryShader": {"$ref": "#/definitions/VkBool32"},
                "multiviewTessellationShader": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDeviceProtectedMemoryFeatures": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "protectedMemory": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDeviceSamplerYcbcrConversionFeatures": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "samplerYcbcrConversion": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDeviceShaderDrawParametersFeatures": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "shaderDrawParameters": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkPhysicalDeviceVariablePointersFeatures": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "variablePointersStorageBuffer": {"$ref": "#/definitions/VkBool32"},
                "variablePointers": {"$ref": "#/definitions/VkBool32"}
            }
        },
        "VkExtensionProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "extensionName": {"type": "string", "maxLength": 255},
                "specVersion": {"$ref": "#/definitions/uint32_t"}
            }
        },
        "VkLayerProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "layerName": {"type": "string", "maxLength": 255},
                "specVersion": {"$ref": "#/definitions/uint32_t"},
                "implementationVersion": {"$ref": "#/definitions/uint32_t"},
                "description": {"type": "string", "maxLength": 255}
            }
        },
        "VkMemoryType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "propertyFlags": {"$ref": "#/definitions/VkMemoryPropertyFlags"},
                "heapIndex": {"$ref": "#/definitions/uint32_t"}
            }
        },
        "VkMemoryHeap": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "size": {"$ref": "#/definitions/VkDeviceSize"},
                "flags": {"$ref": "#/definitions/VkMemoryHeapFlags"}
            }
        },
        "VkPhysicalDeviceMemoryProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "memoryTypes": {"type": "array", "maxItems": 32, "items": {"$ref": "#/definitions/VkMemoryType"}},
                "memoryHeaps": {"type": "array", "maxItems": 16, "items": {"$ref": "#/definitions/VkMemoryHeap"}}
            }
        },
        "VkExtent3D": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "width": {"$ref": "#/definitions/uint32_t"},
                "height": {"$ref": "#/definitions/uint32_t"},
                "depth": {"$ref": "#/definitions/uint32_t"}
            }
        },
        "VkFormatProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "formatID": {"$ref": "#/definitions/VkFormat"},
                "linearTilingFeatures": {"$ref": "#/definitions/VkFormatFeatureFlags"},
                "optimalTilingFeatures": {"$ref": "#/definitions/VkFormatFeatureFlags"},
                "bufferFeatures": {"$ref": "#/definitions/VkFormatFeatureFlags"}
            }
        },
        "VkQueueFamilyProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "queueFlags": {"$ref": "#/definitions/VkQueueFlags"},
                "queueCount": {"$ref": "#/definitions/uint32_t"},
                "timestampValidBits": {"$ref": "#/definitions/uint32_t"},
                "minImageTransferGranularity": {"$ref": "#/definitions/VkExtent3D"}
            }
        }
    },

    "required": ["$schema"],
    "properties": {
        "$schema": {"$ref": "#/definitions/$schema"},
        "VkPhysicalDeviceProperties": {"$ref": "#/definitions/VkPhysicalDeviceProperties"},
        "VkPhysicalDeviceMaintenance3Properties": {"$ref": "#/definitions/VkPhysicalDeviceMaintenance3Properties"},
        "VkPhysicalDeviceMultiviewProperties": {"$ref": "#/definitions/VkPhysicalDeviceMultiviewProperties"},
        "VkPhysicalDevicePointClippingProperties": {"$ref": "#/definitions/VkPhysicalDevicePointClippingProperties"},
        "VkPhysicalDeviceProtectedMemoryProperties": {"$ref": "#/definitions/VkPhysicalDeviceProtectedMemoryProperties"},
        "VkPhysicalDeviceFeatures": {"$ref": "#/definitions/VkPhysicalDeviceFeatures"},
        "VkPhysicalDevice16BitStorageFeatures": {"$ref": "#/definitions/VkPhysicalDevice16BitStorageFeatures"},
        "VkPhysicalDeviceMultiviewFeatures": {"$ref": "#/definitions/VkPhysicalDeviceMultiviewFeatures"},
        "VkPhysicalDeviceProtectedMemoryFeatures": {"$ref": "#/definitions/VkPhysicalDeviceProtectedMemoryFeatures"},
        "VkPhysicalDeviceSamplerYcbcrConversionFeatures": {"$ref": "#/definitions/VkPhysicalDeviceSamplerYcbcrConversionFeatures"},
        "VkPhysicalDeviceShaderDrawParametersFeatures": {"$ref": "#/definitions/VkPhysicalDeviceShaderDrawParametersFeatures"},
        "VkPhysicalDeviceVariablePointersFeatures": {"$ref": "#/definitions/VkPhysicalDeviceVariablePointersFeatures"},
        "VkPhysicalDeviceMemoryProperties": {"$ref": "#/definitions/VkPhysicalDeviceMemoryProperties"},
        "ArrayOfVkExtensionProperties": { "type": "array", "uniqueItems": true, "items": {"$ref": "#/definitions/VkExtensionProperties"} },
        "ArrayOfVkLayerProperties": { "type": "array", "uniqueItems": true, "items": {"$ref": "#/definitions/VkLayerProperties"} },
        "ArrayOfVkQueueFamilyProperties": { "type": "array", "uniqueItems": true, "items": {"$ref": "#/definitions/VkQueueFamilyProperties"} },
        "ArrayOfVkFormatProperties": { "type": "array", "uniqueItems": true, "items": {"$ref": "#/definitions/VkFormatProperties"} },
        "properties": {"type": "null"},
        "features": {"type": "null"},
        "memory": {"type": "null"},
        "queues": {"type": "null"},
        "extensions": {"type": "null"},
        "layers": {"type": "null"},
        "formats": {"type": "null"},
        "comments": {"type": "object"}
    }
}