Hash :
ccc0fbaa
Author :
Date :
2021-03-24T17:56:38
Vulkan: Related fixes for buffer descriptor set cache. Includes some stats counter gathering and a few related refactors and cleanups. Also includes a new overlay widget. Bug: angleproject:5736 Change-Id: Ida8d2cd815c5b598c6a442dd9bbfdf51e9c05180 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2785431 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
{
"description": [
"Copyright 2019 The ANGLE Project Authors. All rights reserved.",
"Use of this source code is governed by a BSD-style license that can be",
"found in the LICENSE file.",
"",
"overlay_widgets.json: Layout of Overlay widgets.",
"",
"Data for every overlay widget 'Widget' is a map with the following keys:",
"",
" - type: one of WidgetType types (with constructor params), such as 'PerSecond' or",
" 'RunningGraph(64)'",
" - color: in [R,G,B,A] format where every value is in [0,255]",
" - coords: in [X,Y] which is the distance from the edges of the window, with negative",
" values representing distance from the right/bottom edge. If a value is given",
" in the form of 'Widget2.<edge>.<mode>', the calculated value for <edge> in",
" Widget2 is used. <edge> is one of:",
" - 'left', 'right': valid for x",
" - 'top', 'bottom': valid for y",
" <mode> is one of:",
" - 'align': the requested value is used",
" - 'adjacent': the value is calculated such that two widgets become adjacent",
" - font: for Text widgets, one of 'large', 'medium' and 'small'",
" - length: for Text widgets, maximum number of characters for this widget",
" - bar_width: for Graph widgets, size of each graph bar.",
" - height: for Graph widgets, the height of the graph.",
" - text: for Graph widgets, data for the attached Text widget. This is a map with the same",
" Text keys as above except type, which is implicitly Text."
],
"widgets": [
{
"name": "FPS",
"comment": "Frames per second (Count/Second).",
"type": "PerSecond",
"color": [127, 191, 255, 255],
"coords": [10, 10],
"font": "medium",
"length": 12
},
{
"name": "VulkanLastValidationMessage",
"comment": "Last validation error (Text).",
"type": "Text",
"color": [255, 0, 0, 255],
"coords": [10, -10],
"font": "small",
"length": 150
},
{
"name": "VulkanValidationMessageCount",
"comment": "Number of validation errors and warnings (Count).",
"type": "Count",
"color": [255, 0, 0, 255],
"coords": [10, "VulkanLastValidationMessage.top.adjacent"],
"font": "small",
"length": 25
},
{
"name": "VulkanRenderPassCount",
"comment": "Number of RenderPasses in a frame (Count).",
"type": "RunningGraph(60)",
"color": [75, 200, 0, 200],
"coords": [10, 100],
"bar_width": 5,
"height": 100,
"description": {
"color": [75, 200, 0, 255],
"coords": ["VulkanRenderPassCount.left.align", "VulkanRenderPassCount.top.adjacent"],
"font": "small",
"length": 40
}
},
{
"name": "VulkanRenderPassBufferCount",
"comment": "Number of buffers used in RenderPasses (Count).",
"type": "RunningHistogram(100)",
"color": [255, 200, 75, 200],
"coords": [-50, 100],
"bar_width": 6,
"height": 100,
"description": {
"color": [255, 200, 75, 255],
"coords": ["VulkanRenderPassBufferCount.left.align",
"VulkanRenderPassBufferCount.top.adjacent"],
"font": "small",
"length": 40
}
},
{
"name": "VulkanSecondaryCommandBufferPoolWaste",
"comment": "Secondary Command Buffer pool memory waste (Bytes).",
"type": "RunningHistogram(50)",
"color": [255, 200, 75, 200],
"coords": [-50, 100],
"bar_width": 6,
"height": 100,
"description": {
"color": [255, 200, 75, 255],
"coords": ["VulkanSecondaryCommandBufferPoolWaste.left.align",
"VulkanSecondaryCommandBufferPoolWaste.top.adjacent"],
"font": "small",
"length": 40
}
},
{
"name": "VulkanWriteDescriptorSetCount",
"comment": "Number of Descriptor Set writes in a frame (Count).",
"type": "RunningGraph(60)",
"color": [75, 200, 0, 200],
"coords": [10, 220],
"bar_width": 5,
"height": 100,
"description": {
"color": [75, 200, 0, 255],
"coords": ["VulkanWriteDescriptorSetCount.left.align", "VulkanWriteDescriptorSetCount.top.adjacent"],
"font": "small",
"length": 40
}
},
{
"name": "VulkanDescriptorSetAllocations",
"comment": "Descriptor Set Allocations.",
"type": "RunningGraph(60)",
"color": [255, 0, 75, 200],
"coords": [-50, 250],
"bar_width": 6,
"height": 100,
"description": {
"color": [255, 0, 75, 255],
"coords": ["VulkanDescriptorSetAllocations.left.align",
"VulkanDescriptorSetAllocations.top.adjacent"],
"font": "small",
"length": 40
}
},
{
"name": "VulkanShaderBufferDSHitRate",
"comment": "Shader Buffer Descriptor Set Cache Hit Rate.",
"type": "RunningGraph(60)",
"color": [255, 0, 75, 200],
"coords": [-50, 360],
"bar_width": 6,
"height": 100,
"description": {
"color": [255, 0, 75, 255],
"coords": ["VulkanShaderBufferDSHitRate.left.align",
"VulkanShaderBufferDSHitRate.top.adjacent"],
"font": "small",
"length": 40
}
},
{
"name": "VulkanDynamicBufferAllocations",
"comment": "Buffer Allocations Made By vk::DynamicBuffer.",
"type": "RunningGraph(120)",
"color": [0, 200, 75, 200],
"coords": [-50, -50],
"bar_width": 5,
"height": 100,
"description": {
"color": [0, 200, 75, 255],
"coords": ["VulkanDynamicBufferAllocations.right.align",
"VulkanDynamicBufferAllocations.top.adjacent"],
"font": "small",
"length": 40
}
}
]
}