Rendering |
public class RenderingStatistics
The RenderingStatistics type exposes the following members.
Name | Description | |
---|---|---|
RenderingStatistics | Constructor |
Name | Description | |
---|---|---|
CachedCommandListsCount | Gets or sets a number of cached DirectX CammandLists that were created in one of the previous frame and executed in the last rendered frame. | |
CachedRenderedObjectsCount | Gets or sets the total number of rendered objects (RenderablePrimitives) that were rendered in the cached DirectX CommandLists. | |
CompleteRenderTimeMs | Gets number of milliseconds that were needed to complete the rendering (resolve anti-aliasing, resolve stereoscopic images, calling Present on SwapChain (when using DirectXOverlay) or waiting for the graphics card to finish rendering the frame (when using DirectXImage)). | |
ConstantBufferChangesCount | Gets number of times constant buffer was changed in this frame. | |
CreatedCommandListsCount | Gets or sets a number of DirectX CommandList that were created in the last rendered frame. | |
DrawCallsCount | Gets number of draw calls in this frame. This value can be incremented by calling ReportDrawCall(Int32) method. | |
DrawnIndicesCount | Gets number of drawn triangle indices in this frame. This value can be incremented by calling ReportDrawCall(Int32) method. | |
DrawRenderTimeMs | Gets number of milliseconds that were needed to draw all objects for this frames (calling Draw methods and any needed state change methods). | |
ElapsedTimeInMs | When called during frame rendering (between StartNewFrame and EndFrame calls) the elapsed time in milliseconds from the StartNewFrame call is returned. When called after EndFrame method is called, the TotalRenderTimeMs is returned. | |
FrameNumber | Gets the frame number for this RenderingStatistics. | |
HitTestingTimeMs | Gets number of milliseconds that were used for hit testing. Note: this time is not automatically reset to zero when new frame is started (when calling StartNewFrame(Int32) or ResetTimerValues). To show correct results, user needs to manually reset the time when the value is shown (this is done in the DiagnosticsWindow). | |
IndexBuffersChangesCount | Gets number of times index buffer was changed in this frame. | |
MeshBytesUploaded | Gets the total uploaded bytes that were uploaded from CPU to GPU memory to update meshes (vertex and index buffers). | |
MeshUpdatesCount | Gets the number of mesh buffers (vertex and index buffers) that were updated during Update phase. | |
Other | Gets a Dictionary with string as key and object as value that can be used to store custom rendering statistics. This dictionary is cleared on each start of frame. | |
PostProcessingRenderTimeMs | Gets number of milliseconds that were needed to render all post processing effects. | |
PrepareRenderTimeMs | Gets number of milliseconds that were needed to prepare the frame to be rendered (clear the buffers, initialize render targets and states, sort rendering queues by material or camera distance). | |
RenderedObjectsCountPerThread | Gets or sets an array that shows how many objects were rendered by a specific thread (index = 0 means the main thread; other indexes means background threads). This array is set only when multi-threading is used. | |
RenderingQueuesRecreateCount | Gets the number of times RenderingQueues were recreated. | |
RenderShadowsMs | Gets number of milliseconds that were needed to draw the shadow map and process it (for example apply blur for VarianceShadowMapping). | |
RenderTimePerThread | Gets or sets an array that shows render times used on each thread (index = 0 means the main thread; other indexes means background threads). This array is set only when multi-threading is used. | |
ShaderChangesCount | Gets number of times shader was changed in this frame. | |
StateChangesCount | Gets number of state changes in this frame. | |
TotalRenderTimeMs | Gets number of milliseconds that were needed for this frame to render. | |
UpdateTimeMs | Gets number of milliseconds that were needed to update all SceneNodes. | |
UsedBackgroundThreadsCount | Gets the number of background threads that were used to render the frame. Zero means that all the objects were rendered on the main thread. | |
VertexBuffersChangesCount | Gets number of times vertex buffer was changed in this frame. |
Name | Description | |
---|---|---|
Clone | Returns a new RenderingStatistics with the same values as this RenderingStatistics. | |
Copy | Copies the values from this RenderingStatistics to targetRenderingStatistics. | |
EndFrame | EndFrame stops the timer. | |
ReportDrawCall | Increased the DrawCallsCount by one and DrawnIndicesCount by drawnIndicesCount. This method is thread safe and can be called from any thread. | |
ReportDrawCalls | Increased the DrawCallsCount by drawCallsCount and DrawnIndicesCount by drawnIndicesCount. This method is thread safe and can be called from any thread. | |
ReportStateChanges | Adds state changes statistics from the contextStatesManager. This method is automatically called from EndFrame(RenderingContext) for the main ContextStatesManager but needs to be called from the ContextStatesManager used in background threads. This method needs to be called from the main thread. | |
ResetTimerValues | Sets all timer values to 0 | |
StartNewFrame | StartNewFrame resets all the values in RenderingStatistics and start timer for new frame. |