1e8556ba3Sopenharmony_ci{
2e8556ba3Sopenharmony_ci    "$schema": "https://schema.khronos.org/vulkan/profiles-0.8.1-204.json#",
3e8556ba3Sopenharmony_ci    "capabilities": {
4e8556ba3Sopenharmony_ci        "vulkan10requirements": {
5e8556ba3Sopenharmony_ci            "features": {
6e8556ba3Sopenharmony_ci                "VkPhysicalDeviceFeatures": {
7e8556ba3Sopenharmony_ci                    "robustBufferAccess": true
8e8556ba3Sopenharmony_ci                }
9e8556ba3Sopenharmony_ci            }
10e8556ba3Sopenharmony_ci        },
11e8556ba3Sopenharmony_ci        "vulkan10requirements_roadmap2022": {
12e8556ba3Sopenharmony_ci            "features": {
13e8556ba3Sopenharmony_ci                "VkPhysicalDeviceFeatures": {
14e8556ba3Sopenharmony_ci                    "fullDrawIndexUint32": true,
15e8556ba3Sopenharmony_ci                    "imageCubeArray": true,
16e8556ba3Sopenharmony_ci                    "independentBlend": true,
17e8556ba3Sopenharmony_ci                    "sampleRateShading": true,
18e8556ba3Sopenharmony_ci                    "drawIndirectFirstInstance": true,
19e8556ba3Sopenharmony_ci                    "depthClamp": true,
20e8556ba3Sopenharmony_ci                    "depthBiasClamp": true,
21e8556ba3Sopenharmony_ci                    "samplerAnisotropy": true,
22e8556ba3Sopenharmony_ci                    "occlusionQueryPrecise": true,
23e8556ba3Sopenharmony_ci                    "fragmentStoresAndAtomics": true,
24e8556ba3Sopenharmony_ci                    "shaderStorageImageExtendedFormats": true,
25e8556ba3Sopenharmony_ci                    "shaderUniformBufferArrayDynamicIndexing": true,
26e8556ba3Sopenharmony_ci                    "shaderSampledImageArrayDynamicIndexing": true,
27e8556ba3Sopenharmony_ci                    "shaderStorageBufferArrayDynamicIndexing": true,
28e8556ba3Sopenharmony_ci                    "shaderStorageImageArrayDynamicIndexing": true
29e8556ba3Sopenharmony_ci                }
30e8556ba3Sopenharmony_ci            },
31e8556ba3Sopenharmony_ci            "properties": {
32e8556ba3Sopenharmony_ci                "VkPhysicalDeviceProperties": {
33e8556ba3Sopenharmony_ci                    "limits": {
34e8556ba3Sopenharmony_ci                        "maxImageDimension1D": 8192,
35e8556ba3Sopenharmony_ci                        "maxImageDimension2D": 8192,
36e8556ba3Sopenharmony_ci                        "maxImageDimensionCube": 8192,
37e8556ba3Sopenharmony_ci                        "maxImageArrayLayers": 2048,
38e8556ba3Sopenharmony_ci                        "maxUniformBufferRange": 65536,
39e8556ba3Sopenharmony_ci                        "bufferImageGranularity": 4096,
40e8556ba3Sopenharmony_ci                        "maxPerStageDescriptorSamplers": 64,
41e8556ba3Sopenharmony_ci                        "maxPerStageDescriptorUniformBuffers": 15,
42e8556ba3Sopenharmony_ci                        "maxPerStageDescriptorStorageBuffers": 30,
43e8556ba3Sopenharmony_ci                        "maxPerStageDescriptorSampledImages": 200,
44e8556ba3Sopenharmony_ci                        "maxPerStageDescriptorStorageImages": 16,
45e8556ba3Sopenharmony_ci                        "maxPerStageResources": 200,
46e8556ba3Sopenharmony_ci                        "maxDescriptorSetSamplers": 576,
47e8556ba3Sopenharmony_ci                        "maxDescriptorSetUniformBuffers": 90,
48e8556ba3Sopenharmony_ci                        "maxDescriptorSetStorageBuffers": 96,
49e8556ba3Sopenharmony_ci                        "maxDescriptorSetSampledImages": 1800,
50e8556ba3Sopenharmony_ci                        "maxDescriptorSetStorageImages": 144,
51e8556ba3Sopenharmony_ci                        "maxFragmentCombinedOutputResources": 16,
52e8556ba3Sopenharmony_ci                        "maxComputeWorkGroupInvocations": 256,
53e8556ba3Sopenharmony_ci                        "maxComputeWorkGroupSize": [ 256, 256, 64 ],
54e8556ba3Sopenharmony_ci                        "subTexelPrecisionBits": 8,
55e8556ba3Sopenharmony_ci                        "mipmapPrecisionBits": 6,
56e8556ba3Sopenharmony_ci                        "maxSamplerLodBias": 14,
57e8556ba3Sopenharmony_ci                        "standardSampleLocations": true,
58e8556ba3Sopenharmony_ci                        "maxColorAttachments": 7
59e8556ba3Sopenharmony_ci                    }
60e8556ba3Sopenharmony_ci                }
61e8556ba3Sopenharmony_ci            }
62e8556ba3Sopenharmony_ci        },
63e8556ba3Sopenharmony_ci        "vulkan10optionals_roadmap2022": {
64e8556ba3Sopenharmony_ci            "features": {
65e8556ba3Sopenharmony_ci                "VkPhysicalDeviceFeatures": {
66e8556ba3Sopenharmony_ci                    "largePoints": true,
67e8556ba3Sopenharmony_ci                    "wideLines": true
68e8556ba3Sopenharmony_ci                }
69e8556ba3Sopenharmony_ci            },
70e8556ba3Sopenharmony_ci            "properties": {
71e8556ba3Sopenharmony_ci                "VkPhysicalDeviceProperties": {
72e8556ba3Sopenharmony_ci                    "limits": {
73e8556ba3Sopenharmony_ci                        "pointSizeGranularity": 0.125,
74e8556ba3Sopenharmony_ci                        "lineWidthGranularity": 0.5
75e8556ba3Sopenharmony_ci                    }
76e8556ba3Sopenharmony_ci                }
77e8556ba3Sopenharmony_ci            }
78e8556ba3Sopenharmony_ci        },
79e8556ba3Sopenharmony_ci        "vulkan11requirements": {
80e8556ba3Sopenharmony_ci            "features": {
81e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan11Features": {
82e8556ba3Sopenharmony_ci                    "multiview": true
83e8556ba3Sopenharmony_ci                }
84e8556ba3Sopenharmony_ci            },
85e8556ba3Sopenharmony_ci            "properties": {
86e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan11Properties": {
87e8556ba3Sopenharmony_ci                    "maxMultiviewViewCount": 6,
88e8556ba3Sopenharmony_ci                    "maxMultiviewInstanceIndex": 134217727
89e8556ba3Sopenharmony_ci                }
90e8556ba3Sopenharmony_ci            }
91e8556ba3Sopenharmony_ci        },
92e8556ba3Sopenharmony_ci        "vulkan11requirements_roadmap2022": {
93e8556ba3Sopenharmony_ci            "features": {
94e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan11Features": {
95e8556ba3Sopenharmony_ci                    "samplerYcbcrConversion": true
96e8556ba3Sopenharmony_ci                }
97e8556ba3Sopenharmony_ci            },
98e8556ba3Sopenharmony_ci            "properties": {
99e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan11Properties": {
100e8556ba3Sopenharmony_ci                    "subgroupSize": 4,
101e8556ba3Sopenharmony_ci                    "subgroupSupportedStages": [ "VK_SHADER_STAGE_COMPUTE_BIT", "VK_SHADER_STAGE_FRAGMENT_BIT" ],
102e8556ba3Sopenharmony_ci                    "subgroupSupportedOperations": [ "VK_SUBGROUP_FEATURE_BASIC_BIT", "VK_SUBGROUP_FEATURE_VOTE_BIT", "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT", "VK_SUBGROUP_FEATURE_BALLOT_BIT", "VK_SUBGROUP_FEATURE_SHUFFLE_BIT", "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT", "VK_SUBGROUP_FEATURE_QUAD_BIT" ]
103e8556ba3Sopenharmony_ci                }
104e8556ba3Sopenharmony_ci            }
105e8556ba3Sopenharmony_ci        },
106e8556ba3Sopenharmony_ci        "vulkan12requirements": {
107e8556ba3Sopenharmony_ci            "features": {
108e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan12Features": {
109e8556ba3Sopenharmony_ci                    "uniformBufferStandardLayout": true,
110e8556ba3Sopenharmony_ci                    "subgroupBroadcastDynamicId": true,
111e8556ba3Sopenharmony_ci                    "imagelessFramebuffer": true,
112e8556ba3Sopenharmony_ci                    "separateDepthStencilLayouts": true,
113e8556ba3Sopenharmony_ci                    "hostQueryReset": true,
114e8556ba3Sopenharmony_ci                    "timelineSemaphore": true,
115e8556ba3Sopenharmony_ci                    "shaderSubgroupExtendedTypes": true
116e8556ba3Sopenharmony_ci                }
117e8556ba3Sopenharmony_ci            },
118e8556ba3Sopenharmony_ci            "properties": {
119e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan12Properties": {
120e8556ba3Sopenharmony_ci                    "maxTimelineSemaphoreValueDifference": 2147483647
121e8556ba3Sopenharmony_ci                }
122e8556ba3Sopenharmony_ci            }
123e8556ba3Sopenharmony_ci        },
124e8556ba3Sopenharmony_ci        "vulkan12requirements_roadmap2022": {
125e8556ba3Sopenharmony_ci            "features": {
126e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan12Features": {
127e8556ba3Sopenharmony_ci                    "samplerMirrorClampToEdge": true,
128e8556ba3Sopenharmony_ci                    "descriptorIndexing": true,
129e8556ba3Sopenharmony_ci                    "shaderUniformTexelBufferArrayDynamicIndexing": true,
130e8556ba3Sopenharmony_ci                    "shaderStorageTexelBufferArrayDynamicIndexing": true,
131e8556ba3Sopenharmony_ci                    "shaderUniformBufferArrayNonUniformIndexing": true,
132e8556ba3Sopenharmony_ci                    "shaderSampledImageArrayNonUniformIndexing": true,
133e8556ba3Sopenharmony_ci                    "shaderStorageBufferArrayNonUniformIndexing": true,
134e8556ba3Sopenharmony_ci                    "shaderStorageImageArrayNonUniformIndexing": true,
135e8556ba3Sopenharmony_ci                    "shaderUniformTexelBufferArrayNonUniformIndexing": true,
136e8556ba3Sopenharmony_ci                    "shaderStorageTexelBufferArrayNonUniformIndexing": true,
137e8556ba3Sopenharmony_ci                    "descriptorBindingSampledImageUpdateAfterBind": true,
138e8556ba3Sopenharmony_ci                    "descriptorBindingStorageImageUpdateAfterBind": true,
139e8556ba3Sopenharmony_ci                    "descriptorBindingStorageBufferUpdateAfterBind": true,
140e8556ba3Sopenharmony_ci                    "descriptorBindingUniformTexelBufferUpdateAfterBind": true,
141e8556ba3Sopenharmony_ci                    "descriptorBindingStorageTexelBufferUpdateAfterBind": true,
142e8556ba3Sopenharmony_ci                    "descriptorBindingUpdateUnusedWhilePending": true,
143e8556ba3Sopenharmony_ci                    "descriptorBindingPartiallyBound": true,
144e8556ba3Sopenharmony_ci                    "descriptorBindingVariableDescriptorCount": true,
145e8556ba3Sopenharmony_ci                    "runtimeDescriptorArray": true,
146e8556ba3Sopenharmony_ci                    "scalarBlockLayout": true
147e8556ba3Sopenharmony_ci                }
148e8556ba3Sopenharmony_ci            },
149e8556ba3Sopenharmony_ci            "properties": {
150e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan12Properties": {
151e8556ba3Sopenharmony_ci                    "shaderSignedZeroInfNanPreserveFloat16": true,
152e8556ba3Sopenharmony_ci                    "shaderSignedZeroInfNanPreserveFloat32": true,
153e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorUpdateAfterBindSamplers": 500000,
154e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorUpdateAfterBindUniformBuffers": 12,
155e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorUpdateAfterBindStorageBuffers": 500000,
156e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorUpdateAfterBindSampledImages": 500000,
157e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorUpdateAfterBindStorageImages": 500000,
158e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorUpdateAfterBindInputAttachments": 7,
159e8556ba3Sopenharmony_ci                    "maxPerStageUpdateAfterBindResources": 500000,
160e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindSamplers": 500000,
161e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindUniformBuffers": 72,
162e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic": 8,
163e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindStorageBuffers": 500000,
164e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic": 4,
165e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindSampledImages": 500000,
166e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindStorageImages": 500000,
167e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindInputAttachments": 7
168e8556ba3Sopenharmony_ci                }
169e8556ba3Sopenharmony_ci            }
170e8556ba3Sopenharmony_ci        },
171e8556ba3Sopenharmony_ci        "vulkan13requirements": {
172e8556ba3Sopenharmony_ci            "features": {
173e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan12Features": {
174e8556ba3Sopenharmony_ci                    "vulkanMemoryModel": true,
175e8556ba3Sopenharmony_ci                    "vulkanMemoryModelDeviceScope": true,
176e8556ba3Sopenharmony_ci                    "bufferDeviceAddress": true
177e8556ba3Sopenharmony_ci                },
178e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan13Features": {
179e8556ba3Sopenharmony_ci                    "robustImageAccess": true,
180e8556ba3Sopenharmony_ci                    "shaderTerminateInvocation": true,
181e8556ba3Sopenharmony_ci                    "shaderZeroInitializeWorkgroupMemory": true,
182e8556ba3Sopenharmony_ci                    "synchronization2": true,
183e8556ba3Sopenharmony_ci                    "shaderIntegerDotProduct": true,
184e8556ba3Sopenharmony_ci                    "maintenance4": true,
185e8556ba3Sopenharmony_ci                    "pipelineCreationCacheControl": true,
186e8556ba3Sopenharmony_ci                    "subgroupSizeControl": true,
187e8556ba3Sopenharmony_ci                    "computeFullSubgroups": true,
188e8556ba3Sopenharmony_ci                    "shaderDemoteToHelperInvocation": true,
189e8556ba3Sopenharmony_ci                    "inlineUniformBlock": true,
190e8556ba3Sopenharmony_ci                    "dynamicRendering": true
191e8556ba3Sopenharmony_ci                }
192e8556ba3Sopenharmony_ci            },
193e8556ba3Sopenharmony_ci            "properties": {
194e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan13Properties": {
195e8556ba3Sopenharmony_ci                    "maxBufferSize": 1073741824,
196e8556ba3Sopenharmony_ci                    "maxInlineUniformBlockSize": 256,
197e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorInlineUniformBlocks": 4,
198e8556ba3Sopenharmony_ci                    "maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks": 4,
199e8556ba3Sopenharmony_ci                    "maxDescriptorSetInlineUniformBlocks": 4,
200e8556ba3Sopenharmony_ci                    "maxDescriptorSetUpdateAfterBindInlineUniformBlocks": 4,
201e8556ba3Sopenharmony_ci                    "maxInlineUniformTotalSize": 256
202e8556ba3Sopenharmony_ci                }
203e8556ba3Sopenharmony_ci            }
204e8556ba3Sopenharmony_ci        },
205e8556ba3Sopenharmony_ci        "vulkan13requirements_roadmap2022": {
206e8556ba3Sopenharmony_ci            "extensions": {
207e8556ba3Sopenharmony_ci                "VK_KHR_global_priority": 1
208e8556ba3Sopenharmony_ci            },
209e8556ba3Sopenharmony_ci            "features": {
210e8556ba3Sopenharmony_ci                "VkPhysicalDeviceVulkan13Features": {
211e8556ba3Sopenharmony_ci                    "descriptorBindingInlineUniformBlockUpdateAfterBind": true
212e8556ba3Sopenharmony_ci                }
213e8556ba3Sopenharmony_ci            }
214e8556ba3Sopenharmony_ci        }
215e8556ba3Sopenharmony_ci    },
216e8556ba3Sopenharmony_ci    "profiles": {
217e8556ba3Sopenharmony_ci        "VP_KHR_roadmap_2022": {
218e8556ba3Sopenharmony_ci            "version": 1,
219e8556ba3Sopenharmony_ci            "api-version": "1.3.204",
220e8556ba3Sopenharmony_ci            "label": "Khronos Vulkan Roadmap 2022 profile",
221e8556ba3Sopenharmony_ci            "description": "This roadmap profile is intended to be supported by newer devices shipping in 2022 across mainstream smartphone, tablet, laptops, console and desktop devices.",
222e8556ba3Sopenharmony_ci            "contributors": {
223e8556ba3Sopenharmony_ci                "Tobias Hector": {
224e8556ba3Sopenharmony_ci                    "company": "AMD",
225e8556ba3Sopenharmony_ci                    "email": "tobias.hector@amd.com",
226e8556ba3Sopenharmony_ci                    "contact": true
227e8556ba3Sopenharmony_ci                },
228e8556ba3Sopenharmony_ci                "Christophe Riccio": {
229e8556ba3Sopenharmony_ci                    "company": "LunarG",
230e8556ba3Sopenharmony_ci                    "email": "christophe@lunarg.com",
231e8556ba3Sopenharmony_ci                    "contact": true
232e8556ba3Sopenharmony_ci                }
233e8556ba3Sopenharmony_ci            },
234e8556ba3Sopenharmony_ci            "history": [
235e8556ba3Sopenharmony_ci                {
236e8556ba3Sopenharmony_ci                    "revision": 8,
237e8556ba3Sopenharmony_ci                    "date": "2023-11-02",
238e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
239e8556ba3Sopenharmony_ci                    "comment": "Remove unreferenced capabilities blocks that were written against Vulkan 1.2 for testing before Vulkan 1.3 was released"
240e8556ba3Sopenharmony_ci                },
241e8556ba3Sopenharmony_ci                {
242e8556ba3Sopenharmony_ci                    "revision": 7,
243e8556ba3Sopenharmony_ci                    "date": "2022-11-16",
244e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
245e8556ba3Sopenharmony_ci                    "comment": "Fix wideLines and largePoints that are optionals"
246e8556ba3Sopenharmony_ci                },
247e8556ba3Sopenharmony_ci                {
248e8556ba3Sopenharmony_ci                    "revision": 6,
249e8556ba3Sopenharmony_ci                    "date": "2022-11-02",
250e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
251e8556ba3Sopenharmony_ci                    "comment": "Fix roadmap 2022 maxInlineUniformTotalSize limit, 256 instead of 4"
252e8556ba3Sopenharmony_ci                },
253e8556ba3Sopenharmony_ci                {
254e8556ba3Sopenharmony_ci                    "revision": 5,
255e8556ba3Sopenharmony_ci                    "date": "2022-05-02",
256e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
257e8556ba3Sopenharmony_ci                    "comment": "Add missing dynamicRendering that is a Vulkan 1.3 requirement"
258e8556ba3Sopenharmony_ci                },
259e8556ba3Sopenharmony_ci                {
260e8556ba3Sopenharmony_ci                    "revision": 4,
261e8556ba3Sopenharmony_ci                    "date": "2022-03-08",
262e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
263e8556ba3Sopenharmony_ci                    "comment": "Refactor requirements per Vulkan API version"
264e8556ba3Sopenharmony_ci                },
265e8556ba3Sopenharmony_ci                {
266e8556ba3Sopenharmony_ci                    "revision": 3,
267e8556ba3Sopenharmony_ci                    "date": "2022-03-08",
268e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
269e8556ba3Sopenharmony_ci                    "comment": "Fix Vulkan 1.3.204 API version requirement"
270e8556ba3Sopenharmony_ci                },
271e8556ba3Sopenharmony_ci                {
272e8556ba3Sopenharmony_ci                    "revision": 2,
273e8556ba3Sopenharmony_ci                    "date": "2022-01-03",
274e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
275e8556ba3Sopenharmony_ci                    "comment": "Rebase against Vulkan 1.3.203 revision"
276e8556ba3Sopenharmony_ci                },
277e8556ba3Sopenharmony_ci                {
278e8556ba3Sopenharmony_ci                    "revision": 1,
279e8556ba3Sopenharmony_ci                    "date": "2021-12-08",
280e8556ba3Sopenharmony_ci                    "author": "Christophe Riccio",
281e8556ba3Sopenharmony_ci                    "comment": "Initial revision"
282e8556ba3Sopenharmony_ci                }
283e8556ba3Sopenharmony_ci            ],
284e8556ba3Sopenharmony_ci            "capabilities": [
285e8556ba3Sopenharmony_ci                "vulkan10requirements",
286e8556ba3Sopenharmony_ci                "vulkan10requirements_roadmap2022",
287e8556ba3Sopenharmony_ci                "vulkan11requirements",
288e8556ba3Sopenharmony_ci                "vulkan11requirements_roadmap2022",
289e8556ba3Sopenharmony_ci                "vulkan12requirements",
290e8556ba3Sopenharmony_ci                "vulkan12requirements_roadmap2022",
291e8556ba3Sopenharmony_ci                "vulkan13requirements",
292e8556ba3Sopenharmony_ci                "vulkan13requirements_roadmap2022"
293e8556ba3Sopenharmony_ci            ],
294e8556ba3Sopenharmony_ci            "optionals": [
295e8556ba3Sopenharmony_ci                "vulkan10optionals_roadmap2022"
296e8556ba3Sopenharmony_ci            ]
297e8556ba3Sopenharmony_ci        }
298e8556ba3Sopenharmony_ci    }
299e8556ba3Sopenharmony_ci}
300