Record frame num in view stats (#2908)

* Add 'frameNumber' to Frame struct

Previously, the frame number returned from bgfx::frame() was tracked separately in the Context. Now,
we store that information in the Frame. This will allow us to attach the frame number to ViewStats.

* Add frame number to ViewStats

When ViewStats are enabled, we tag each timer query with the current frame number, then include
that information in the final results. In this way, clients can correlate specific work that they
submitted to specific GPU timing information.

NOTE: Some backends not implemented, yet. They will always have 0 for frame number.
The ones which are implemented are:
 * OpenGL
 * Vulkan
 * D3D 9,11,12
 * Noop
This commit is contained in:
jwdevel
2022-09-18 19:09:48 -07:00
committed by GitHub
parent 6be057ba5c
commit f1f77a6cd3
25 changed files with 109 additions and 49 deletions

View File

@@ -2157,6 +2157,7 @@ public static partial class bgfx
public long cpuTimeEnd;
public long gpuTimeBegin;
public long gpuTimeEnd;
public uint gpuFrameNum;
}
public unsafe struct EncoderStats
@@ -2180,6 +2181,7 @@ public static partial class bgfx
public uint numCompute;
public uint numBlit;
public uint maxGpuLatency;
public uint gpuFrameNum;
public ushort numDynamicIndexBuffers;
public ushort numDynamicVertexBuffers;
public ushort numFrameBuffers;