1e5c31af7Sopenharmony_ci{ 2e5c31af7Sopenharmony_ci"$schema": "http://json-schema.org/draft-04/schema#", 3e5c31af7Sopenharmony_ci"id": "https://schema.khronos.org/vulkan/vkpcc.json#", 4e5c31af7Sopenharmony_ci"title": "JSON schema for Vulkan pipeline state", 5e5c31af7Sopenharmony_ci"description": "Schema for representing Vulkan pipeline state for use with the offline Pipeline Cache Compiler.", 6e5c31af7Sopenharmony_ci"type": "object", 7e5c31af7Sopenharmony_ci"additionalProperties": true, 8e5c31af7Sopenharmony_ci 9e5c31af7Sopenharmony_ci"definitions": { 10e5c31af7Sopenharmony_ci "ShaderInfo" : { 11e5c31af7Sopenharmony_ci "stage" : {"type": "string", "format": "uri"}, 12e5c31af7Sopenharmony_ci "filename" : {"type": "string", "format": "uri"} 13e5c31af7Sopenharmony_ci }, 14e5c31af7Sopenharmony_ci 15e5c31af7Sopenharmony_ci "GraphicsPipelineState": { 16e5c31af7Sopenharmony_ci "type": "object", 17e5c31af7Sopenharmony_ci "additionalProperties": false, 18e5c31af7Sopenharmony_ci "properties": { 19e5c31af7Sopenharmony_ci "Renderpass": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkRenderPassCreateInfo"}, 20e5c31af7Sopenharmony_ci "Renderpass2": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkRenderPassCreateInfo2"}, 21e5c31af7Sopenharmony_ci "YcbcrSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerYcbcrConversionCreateInfo"}}}}, 22e5c31af7Sopenharmony_ci "ImmutableSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerCreateInfo"}}}}, 23e5c31af7Sopenharmony_ci "DescriptorSetLayouts": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkDescriptorSetLayoutCreateInfo"}}}}, 24e5c31af7Sopenharmony_ci "PipelineLayout": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPipelineLayoutCreateInfo"}, 25e5c31af7Sopenharmony_ci "GraphicsPipeline": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkGraphicsPipelineCreateInfo"}, 26e5c31af7Sopenharmony_ci "ShaderFileNames": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"$ref": "#/definitions/ShaderInfo"}}, 27e5c31af7Sopenharmony_ci "PhysicalDeviceFeatures": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPhysicalDeviceFeatures2"} 28e5c31af7Sopenharmony_ci }, 29e5c31af7Sopenharmony_ci "oneOf" : [{"required" : ["Renderpass"]}, {"required" : ["Renderpass2"]}], 30e5c31af7Sopenharmony_ci "required" : ["PipelineLayout", "GraphicsPipeline", "ShaderFileNames"] 31e5c31af7Sopenharmony_ci }, 32e5c31af7Sopenharmony_ci 33e5c31af7Sopenharmony_ci "ComputePipelineState": { 34e5c31af7Sopenharmony_ci "type": "object", 35e5c31af7Sopenharmony_ci "additionalProperties": false, 36e5c31af7Sopenharmony_ci "properties": { 37e5c31af7Sopenharmony_ci "YcbcrSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerYcbcrConversionCreateInfo"}}}}, 38e5c31af7Sopenharmony_ci "ImmutableSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerCreateInfo"}}}}, 39e5c31af7Sopenharmony_ci "DescriptorSetLayouts": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkDescriptorSetLayoutCreateInfo"}}}}, 40e5c31af7Sopenharmony_ci "PipelineLayout": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPipelineLayoutCreateInfo"}, 41e5c31af7Sopenharmony_ci "ComputePipeline": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkComputePipelineCreateInfo"}, 42e5c31af7Sopenharmony_ci "ShaderFileNames": {"$ref": "#/definitions/ShaderInfo"}, 43e5c31af7Sopenharmony_ci "PhysicalDeviceFeatures": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPhysicalDeviceFeatures2"} 44e5c31af7Sopenharmony_ci }, 45e5c31af7Sopenharmony_ci "required" : ["PipelineLayout", "ComputePipeline", "ShaderFileNames"] 46e5c31af7Sopenharmony_ci } 47e5c31af7Sopenharmony_ci}, 48e5c31af7Sopenharmony_ci 49e5c31af7Sopenharmony_ci"properties": { 50e5c31af7Sopenharmony_ci "GraphicsPipelineState" : {"$ref": "#/definitions/GraphicsPipelineState"}, 51e5c31af7Sopenharmony_ci "ComputePipelineState" : {"$ref": "#/definitions/ComputePipelineState"}, 52e5c31af7Sopenharmony_ci "PipelineUUID" : {"type": "array", "minItems": 16, "maxItems": 16, "items": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/uint8_t"}}, 53e5c31af7Sopenharmony_ci "DeviceExtensions" : {"type": "array", "items": {"type": "string", "format": "uri"}} 54e5c31af7Sopenharmony_ci}, 55e5c31af7Sopenharmony_ci 56e5c31af7Sopenharmony_ci"anyOf": [ 57e5c31af7Sopenharmony_ci {"required": ["GraphicsPipelineState"]}, 58e5c31af7Sopenharmony_ci {"required": ["ComputePipelineState"]} 59e5c31af7Sopenharmony_ci] 60e5c31af7Sopenharmony_ci} 61