MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Update

Method Update

Source/Editor/Windows/Profiler/MemoryGPU.cs:129–226  ·  view source on GitHub ↗

(ref SharedUpdateData sharedData)

Source from the content-addressed store, hash-verified

127
128 /// <inheritdoc />
129 public override void Update(ref SharedUpdateData sharedData)
130 {
131 _memoryUsageChart.AddSample(sharedData.Stats.MemoryGPU.Used);
132
133 if (_resourceCache == null)
134 _resourceCache = new Dictionary<Guid, Resource>();
135 if (_assetPathToId == null)
136 _assetPathToId = new Dictionary<string, Guid>();
137 if (_stringBuilder == null)
138 _stringBuilder = new StringBuilder();
139
140 // Capture current GPU resources usage info
141 var contentDatabase = Editor.Instance.ContentDatabase;
142 GPUDevice.Instance.GetResources(ref _gpuResourcesCached, out var count);
143 var resources = new Resource[count];
144 var sb = _stringBuilder;
145 for (int i = 0; i < count; i++)
146 {
147 var gpuResource = _gpuResourcesCached[i];
148 ref var resource = ref resources[i];
149 if (!gpuResource)
150 continue;
151
152 // Try to reuse cached resource info
153 var gpuResourceId = gpuResource.ID;
154 if (!_resourceCache.TryGetValue(gpuResourceId, out resource))
155 {
156 resource = new Resource
157 {
158#if !BUILD_RELEASE
159 Name = gpuResource.Name,
160#endif
161 Type = gpuResource.ResourceType,
162 };
163 if (resource.Name == null)
164 resource.Name = string.Empty;
165
166 // Create tooltip
167 sb.Clear();
168 if (gpuResource is GPUTexture gpuTexture)
169 {
170 var desc = gpuTexture.Description;
171 sb.Append("Format: ").Append(desc.Format).AppendLine();
172 sb.Append("Size: ").Append(desc.Width).Append('x').Append(desc.Height);
173 if (desc.Depth != 1)
174 sb.Append('x').Append(desc.Depth);
175 if (desc.ArraySize != 1)
176 sb.Append('[').Append(desc.ArraySize).Append(']');
177 sb.AppendLine();
178 sb.Append("Mip Levels: ").Append(desc.MipLevels).AppendLine();
179 if (desc.IsMultiSample)
180 sb.Append("MSAA: ").Append('x').Append((int)desc.MultiSampleLevel).AppendLine();
181 sb.Append("Flags: ").Append(desc.Flags).AppendLine();
182 sb.Append("Usage: ").Append(desc.Usage);
183 }
184 else if (gpuResource is GPUBuffer gpuBuffer)
185 {
186 var desc = gpuBuffer.Description;

Callers

nothing calls this directly

Calls 10

AddSampleMethod · 0.80
SubstringMethod · 0.80
GetAssetMethod · 0.80
GetResourcesMethod · 0.45
TryGetValueMethod · 0.45
ClearMethod · 0.45
AppendMethod · 0.45
ToStringMethod · 0.45
AddMethod · 0.45
FindAssetMethod · 0.45

Tested by

no test coverage detected