mirror of
https://github.com/KhronosGroup/Vulkan-Headers.git
synced 2025-04-21 04:08:44 +00:00
60 lines
4.1 KiB
JSON
60 lines
4.1 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"id": "https://schema.khronos.org/vulkan/vkpcc.json#",
|
|
"title": "JSON schema for Vulkan pipeline state",
|
|
"description": "Schema for representing Vulkan pipeline state for use with the offline Pipeline Cache Compiler.",
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
|
|
"definitions": {
|
|
"ShaderInfo" : {
|
|
"stage" : {"type": "string", "format": "uri"},
|
|
"filename" : {"type": "string", "format": "uri"}
|
|
},
|
|
|
|
"GraphicsPipelineState": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"Renderpass": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkRenderPassCreateInfo"},
|
|
"Renderpass2": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkRenderPassCreateInfo2"},
|
|
"YcbcrSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerYcbcrConversionCreateInfo"}}}},
|
|
"ImmutableSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerCreateInfo"}}}},
|
|
"DescriptorSetLayouts": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkDescriptorSetLayoutCreateInfo"}}}},
|
|
"PipelineLayout": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPipelineLayoutCreateInfo"},
|
|
"GraphicsPipeline": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkGraphicsPipelineCreateInfo"},
|
|
"ShaderFileNames": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"$ref": "#/definitions/ShaderInfo"}},
|
|
"PhysicalDeviceFeatures": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPhysicalDeviceFeatures2"}
|
|
},
|
|
"oneOf" : [{"required" : ["Renderpass"]}, {"required" : ["Renderpass2"]}],
|
|
"required" : ["PipelineLayout", "GraphicsPipeline", "ShaderFileNames"]
|
|
},
|
|
|
|
"ComputePipelineState": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"YcbcrSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerYcbcrConversionCreateInfo"}}}},
|
|
"ImmutableSamplers": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkSamplerCreateInfo"}}}},
|
|
"DescriptorSetLayouts": {"type": "array", "minItems": 0, "maxItems": 255, "items": {"type": "object", "patternProperties": {"^\\w+$": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkDescriptorSetLayoutCreateInfo"}}}},
|
|
"PipelineLayout": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPipelineLayoutCreateInfo"},
|
|
"ComputePipeline": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkComputePipelineCreateInfo"},
|
|
"ShaderFileNames": {"$ref": "#/definitions/ShaderInfo"},
|
|
"PhysicalDeviceFeatures": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/VkPhysicalDeviceFeatures2"}
|
|
},
|
|
"required" : ["PipelineLayout", "ComputePipeline", "ShaderFileNames"]
|
|
}
|
|
},
|
|
|
|
"properties": {
|
|
"GraphicsPipelineState" : {"$ref": "#/definitions/GraphicsPipelineState"},
|
|
"ComputePipelineState" : {"$ref": "#/definitions/ComputePipelineState"},
|
|
"PipelineUUID" : {"type": "array", "minItems": 16, "maxItems": 16, "items": {"$ref": "https://schema.khronos.org/vulkan/vk.json#/definitions/uint8_t"}},
|
|
"DeviceExtensions" : {"type": "array", "items": {"type": "string", "format": "uri"}}
|
|
},
|
|
|
|
"anyOf": [
|
|
{"required": ["GraphicsPipelineState"]},
|
|
{"required": ["ComputePipelineState"]}
|
|
]
|
|
}
|