1{ 2 "description": [ 3 "Copyright 2019 The ANGLE Project Authors. All rights reserved.", 4 "Use of this source code is governed by a BSD-style license that can be", 5 "found in the LICENSE file.", 6 "", 7 "overlay_widgets.json: Layout of Overlay widgets.", 8 "", 9 "Data for every overlay widget 'Widget' is a map with the following keys:", 10 "", 11 " - type: one of WidgetType types (with constructor params), such as 'PerSecond' or", 12 " 'RunningGraph(64)'", 13 " - color: in [R,G,B,A] format where every value is in [0,255]", 14 " - coords: in [X,Y] which is the distance from the edges of the window, with negative", 15 " values representing distance from the right/bottom edge. If a value is given", 16 " in the form of 'Widget2.<edge>.<mode>', the calculated value for <edge> in", 17 " Widget2 is used. <edge> is one of:", 18 " - 'left', 'right': valid for x", 19 " - 'top', 'bottom': valid for y", 20 " <mode> is one of:", 21 " - 'align': the requested value is used", 22 " - 'adjacent': the value is calculated such that two widgets become adjacent.", 23 " Optionally, Widget2.desc.<edge>.<mode> can be used to align with a graph's", 24 " implicit text widget", 25 " - font: for Text widgets, one of 'large' or 'small'", 26 " - length: for Text widgets, maximum number of characters for this widget", 27 " - bar_width: for Graph widgets, size of each graph bar.", 28 " - height: for Graph widgets, the height of the graph.", 29 " - match_to: a reference to another widget", 30 " - description: for Graph widgets, data for the attached Text widget. This is a map with", 31 " the same Text keys as above except type, which is implicitly Text." 32 ], 33 "widgets": [ 34 { 35 "name": "FPS", 36 "comment": "Frames per second (Count/Second).", 37 "type": "PerSecond", 38 "color": [127, 191, 255, 255], 39 "coords": [10, 10], 40 "font": "large", 41 "length": 12 42 }, 43 { 44 "name": "VulkanLastValidationMessage", 45 "comment": "Last validation error (Text).", 46 "type": "Text", 47 "color": [255, 0, 0, 255], 48 "coords": [10, -10], 49 "font": "small", 50 "length": 150 51 }, 52 { 53 "name": "VulkanValidationMessageCount", 54 "comment": "Number of validation errors and warnings (Count).", 55 "type": "Count", 56 "color": [255, 0, 0, 255], 57 "coords": [10, "VulkanLastValidationMessage.top.adjacent"], 58 "font": "small", 59 "length": 25 60 }, 61 { 62 "name": "VulkanRenderPassCount", 63 "comment": "Number of RenderPasses in a frame (Count).", 64 "type": "RunningGraph(60)", 65 "color": [75, 200, 0, 200], 66 "coords": [10, 100], 67 "bar_width": 5, 68 "height": 100, 69 "description": { 70 "color": [75, 200, 0, 255], 71 "coords": ["VulkanRenderPassCount.left.align", "VulkanRenderPassCount.top.adjacent"], 72 "font": "small", 73 "length": 40 74 } 75 }, 76 { 77 "name": "VulkanSecondaryCommandBufferPoolWaste", 78 "comment": "Secondary Command Buffer pool memory waste (Bytes).", 79 "type": "RunningHistogram(50)", 80 "color": [255, 200, 75, 200], 81 "coords": [-50, 100], 82 "bar_width": 6, 83 "height": 100, 84 "description": { 85 "color": [255, 200, 75, 255], 86 "coords": ["VulkanSecondaryCommandBufferPoolWaste.left.align", 87 "VulkanSecondaryCommandBufferPoolWaste.top.adjacent"], 88 "font": "small", 89 "length": 40 90 } 91 }, 92 { 93 "name": "VulkanWriteDescriptorSetCount", 94 "comment": "Number of Descriptor Set writes in a frame (Count).", 95 "type": "RunningGraph(60)", 96 "color": [75, 200, 0, 200], 97 "coords": [10, 220], 98 "bar_width": 5, 99 "height": 100, 100 "description": { 101 "color": [75, 200, 0, 255], 102 "coords": ["VulkanWriteDescriptorSetCount.left.align", "VulkanWriteDescriptorSetCount.top.adjacent"], 103 "font": "small", 104 "length": 40 105 } 106 }, 107 { 108 "name": "VulkanDescriptorSetAllocations", 109 "comment": "Descriptor Set Allocations.", 110 "type": "RunningGraph(60)", 111 "color": [255, 0, 75, 200], 112 "coords": [0, 250], 113 "bar_width": 6, 114 "height": 100, 115 "description": { 116 "color": [255, 0, 75, 255], 117 "coords": ["VulkanDescriptorSetAllocations.left.align", 118 "VulkanDescriptorSetAllocations.top.adjacent"], 119 "font": "small", 120 "length": 40 121 } 122 }, 123 { 124 "name": "VulkanShaderResourceDSHitRate", 125 "comment": "Shader Resource Descriptor Set Cache Hit Rate.", 126 "type": "RunningGraph(60)", 127 "color": [255, 0, 75, 200], 128 "coords": [-50, 360], 129 "bar_width": 6, 130 "height": 100, 131 "description": { 132 "color": [255, 0, 75, 255], 133 "coords": ["VulkanShaderResourceDSHitRate.left.align", 134 "VulkanShaderResourceDSHitRate.top.adjacent"], 135 "font": "small", 136 "length": 40 137 } 138 }, 139 { 140 "name": "VulkanDynamicBufferAllocations", 141 "comment": "Buffer Allocations Made By vk::DynamicBuffer.", 142 "type": "RunningGraph(120)", 143 "color": [0, 200, 75, 200], 144 "coords": [-50, -50], 145 "bar_width": 5, 146 "height": 100, 147 "description": { 148 "color": [0, 200, 75, 255], 149 "coords": ["VulkanDynamicBufferAllocations.right.align", 150 "VulkanDynamicBufferAllocations.top.adjacent"], 151 "font": "small", 152 "length": 40 153 } 154 }, 155 { 156 "name": "VulkanDescriptorCacheSize", 157 "comment": "Total size of all descriptor set caches", 158 "type": "RunningGraph(60)", 159 "color": [0, 200, 185, 200], 160 "coords": [0, 450], 161 "bar_width": 5, 162 "height": 100, 163 "description": { 164 "color": [0, 200, 75, 255], 165 "coords": ["VulkanDescriptorCacheSize.left.align", 166 "VulkanDescriptorCacheSize.top.adjacent"], 167 "font": "small", 168 "length": 90 169 } 170 }, 171 { 172 "name": "VulkanTextureDescriptorCacheSize", 173 "comment": "Number of cached Texture descriptor sets", 174 "type": "RunningGraph(60)", 175 "color": [0, 200, 75, 200], 176 "coords": [0, 450], 177 "bar_width": 5, 178 "height": 100, 179 "description": { 180 "color": [0, 200, 75, 255], 181 "coords": ["VulkanTextureDescriptorCacheSize.left.align", 182 "VulkanTextureDescriptorCacheSize.top.adjacent"], 183 "font": "small", 184 "length": 90 185 } 186 }, 187 { 188 "name": "VulkanUniformDescriptorCacheSize", 189 "comment": "Number of cached default uniform descriptor sets", 190 "type": "RunningGraph(60)", 191 "color": [0, 200, 255, 200], 192 "coords": [0, 450], 193 "bar_width": 5, 194 "height": 100, 195 "description": { 196 "color": [0, 200, 75, 255], 197 "coords": ["VulkanUniformDescriptorCacheSize.left.align", 198 "VulkanUniformDescriptorCacheSize.top.adjacent"], 199 "font": "small", 200 "length": 90 201 } 202 }, 203 { 204 "name": "VulkanDescriptorCacheKeySize", 205 "comment": "Total size of all keys in the descriptor set caches", 206 "type": "Count", 207 "color": [255, 255, 255, 255], 208 "coords": [10, 100], 209 "font": "small", 210 "length": 30 211 }, 212 { 213 "name": "VulkanAttemptedSubmissions", 214 "comment": "Number of times the Vulkan backend attempted to submit commands", 215 "type": "RunningGraph(60)", 216 "color": [255, 0, 0, 100], 217 "coords": [-50, 50], 218 "bar_width": 5, 219 "height": 100, 220 "description": { 221 "color": [200, 0, 75, 255], 222 "coords": ["VulkanAttemptedSubmissions.left.align", 223 "VulkanAttemptedSubmissions.top.adjacent"], 224 "font": "small", 225 "length": 45 226 } 227 }, 228 { 229 "name": "VulkanActualSubmissions", 230 "comment": "Number of times the Vulkan backend actually submitted commands", 231 "type": "RunningGraph(60)", 232 "color": [0, 255, 0, 200], 233 "coords": ["VulkanAttemptedSubmissions.left.align", 234 "VulkanAttemptedSubmissions.top.align"], 235 "bar_width": 5, 236 "height": 100, 237 "match_to": "VulkanAttemptedSubmissions", 238 "description": { 239 "color": [0, 200, 75, 255], 240 "coords": ["VulkanActualSubmissions.left.align", 241 "VulkanActualSubmissions.bottom.adjacent"], 242 "font": "small", 243 "length": 45 244 } 245 }, 246 { 247 "name": "VulkanPipelineCacheLookups", 248 "comment": "Number of times the Vulkan backend has looked up the pipeline cache", 249 "type": "RunningGraph(60)", 250 "color": [0, 255, 0, 100], 251 "coords": [-50, -50], 252 "bar_width": 5, 253 "height": 100, 254 "description": { 255 "color": [0, 200, 75, 255], 256 "coords": ["VulkanPipelineCacheLookups.left.align", 257 "VulkanPipelineCacheLookups.top.adjacent"], 258 "font": "small", 259 "length": 45 260 } 261 }, 262 { 263 "name": "VulkanPipelineCacheMisses", 264 "comment": "Number of times the Vulkan backend has missed the pipeline cache", 265 "type": "RunningGraph(60)", 266 "color": [255, 0, 0, 200], 267 "coords": ["VulkanPipelineCacheLookups.left.align", 268 "VulkanPipelineCacheLookups.top.align"], 269 "bar_width": 5, 270 "height": 100, 271 "match_to": "VulkanPipelineCacheLookups", 272 "description": { 273 "color": [200, 0, 75, 255], 274 "coords": ["VulkanPipelineCacheLookups.desc.left.align", 275 "VulkanPipelineCacheLookups.desc.top.adjacent"], 276 "font": "small", 277 "length": 45 278 } 279 }, 280 { 281 "name": "VulkanTotalPipelineCacheMissTimeMs", 282 "comment": "Total time spent creating pipelines that missed the cache.", 283 "type": "Count", 284 "color": [255, 0, 0, 255], 285 "coords": ["VulkanPipelineCacheMisses.left.align", 286 "VulkanPipelineCacheMisses.bottom.adjacent"], 287 "font": "small", 288 "length": 45 289 }, 290 { 291 "name": "VulkanTotalPipelineCacheHitTimeMs", 292 "comment": "Total time spent creating pipelines that hit the cache.", 293 "type": "Count", 294 "color": [0, 255, 0, 255], 295 "coords": ["VulkanTotalPipelineCacheMissTimeMs.left.align", 296 "VulkanTotalPipelineCacheMissTimeMs.bottom.adjacent"], 297 "font": "small", 298 "length": 45 299 } 300 ] 301} 302