Profile Viewport 2.0 rendering events
To locate events in the
that are related to execution within
, search for the prefix “Vp2”. In addition to the prefix Vp2, the rest of the event
label provides additional context as to the event that is being measured.
The list of important events can be broken down into a few logical groups as opposed
to
categories. For scene processing, the
update phase is required to prepare for rendering, and the
rendering phase for the actual rendering. There may also be resource management events that occur
during the update or rendering phases.
Resource events
Events related to managing render targets (where the scene is rendered to) are listed
below.
Note that this includes events related to managing custom off-screen targets allocated
via the API (MRenderTarget). On-screen targets are not
MRenderTargets.
- Vp2AcquireOffScreenTarget : Acquire offscreen buffer into which to render
- Vp2AcquireOnScreenTarget : Acquire onscreen buffer
- Vp2CloneOffScreenTarget : Make a copy of an offscreen buffer
- Vp2ReleaseTarget : Release offsceen buffer to buffer pool
- Vp2ResizeTarget : Resize a target. May involve reallocation
- Vp2MapToSystemMemory : Map a hardware target to system (CPU) raster
- Vp2CacheSystemRaster : Copy contents of target to system raster
- Vp2SaveCacheToDisk : Save system raster to disk file
- Vp2CopyRaster : Make a copy of a system raster
- Vp2BlitTargetToImage : Blit a target to a system image
- Vp2BlitTargetToGL : Blit a target to OpenGL context
- Vp2ReleaseTargetToCache : Release target from buffer cache
- Vp2BlitDepthTargetToBuffer : Blit a depth target to a system image
Events related to managing textures are listed below. Note that this includes events
related to textures acquired via the API (MTextureManager/MTexture).
- Vp2AcquireFileTexture : Acquire a texture from a file on disk
- Vp2AcquireDataTexture : Acquire a texture from CPU data
- Vp2SaveTexture : Save a texture to disk
- Vp2RawTextureData : Copy GPU texture data to CPU data
- Vp2UpdateTexture : Update a GPU texture in-place
Update phase
The following is a breakdown of some of the main update events. They are listed by
functional area and/or scope.
- Scene Level : Vp2UpdateScene is the main scene level update event
- Evaluator Level:
- Vp2UpdateGeometry : DG evaluation for geometry shapes
- Vp2UpdateDagObject : DG evaluation for DAG objects
- Vp2TranslateGeometry : Convert DG geometry data into a renderable form, and add any
missing geometry streams (for example, generate surface normals)
- Vp2UpdateGeometryBuffer : Geometry buffer update
- Shader Level:
- Vp2ShaderDoDG : DG evaluation for shaders
- Vp2ShaderItemCompileShader : Shader compilation
- Vp2ConstructFragmentGraph: Shader construction from fragment graph
- Vp2ShaderWrite : Shader parameter update
- Vp2AssignShaderInstance: Shader instance assignment to a render item
The above events generally occur before UI drawables or render items are processed.
The main
events associated with UI drawables lists and render lists are:
- Vp2UpdateUI: Build UI drawables. This is done every refresh.
- Vp2BuildRenderLists: Final categorization and filtering of render items before rendering. Will take UI
drawables as input as well as render items created by node evaluation. If tracing
is enabled via the
ogs command, then the trace label to examine the list counts is called
Build Render Lists.
- Vp2ClearRenderLists: The render lists that have been built will be flushed during this event, as appropriate.
Rendering
The event that represents a scene render is labelled: Vp2SceneRender.
The event lists can be divided into two: “high” level and “low” level. The “high”
level is the functional groupings of the “low” level passes, as well as rendering
of lists of UI drawables or render items.
High level events
This categorization of events is based on the output destination for rendering, as
well as the rendering pipeline logic used.
Internal rendering events
- Vp2DrawOverlay: Event that represents overlay drawing (for example, a 2d marquee drawing tool)
- Vp2DrawUVEditor: Event that represents drawing into the
- Vp2BuildShadowMap: Event that represents shadow map update
- Vp2Draw3dBeautyPass: Event that represents the rendering of a color / “beauty” pass
- Any UI drawable rendering that occurs as part of overlay,
or before/after a beauty pass has event labels of the form:
- Vp2<UI list name>: Where <UI list name> names are given in the Low Level Events section below
Plug-in rendering events
If a plug-in renderer (MPxRenderer) is used, then the Viewport 2.0 processing to render an image is represented by the
Vp2DrawPluginRenderer event.
If a render override (MRenderOverride) is used, then the Viewport 2.0 processing to render an image is represented by the
Vp2OverrideRenderer event. The event is broken down into the following sub-events:
- Vp2ExecuteRenderOverride: The execution of a render override. Excludes plug-in setup.
- Vp2UpdateOverrideOperation: Any parameter update required per operation. The operation event labels are as follows:
- Vp2ClearOperation: Background clear
- Vp2SceneOperation: 3d scene render
- Vp2QuadOperation: 2D quad render
- Vp2UserOperation: User operation
- Vp2HUDOperation: HUD operation
- Vp2PresentationOperation: Presentation operation
- The label
Vp2DrawOperation indicates that an event is measuring the rendering part of the above operations.
This label will be used instead of an internal rendering event label such as Vp2Draw3dBeautyPass.
Low level events
- Render “Pass” Events:
- From within the main 2d or 3d rendering passes, finer granularity events currently
use pass semantic names as labels. For example, the “colorPass” semantic is used to
show the processing for the color pass.
NOTE:These semantic names match those that are exposed in the API via
MPassContext. As an example, the GLSL and DX11 hardware shader plug-ins use these names.
- Events that render UI render lists have the following labels:
- Render before beauty pass:
- “Pre-Opaque UI”
- “Pre-Transparent UI"
- Render after beauty pass:
- “Post Render UI"
- "Post Alpha UI"
- "X-Ray UI” : X-ray drawing (for example, X-ray joints)
- Rendering that must be drawn on top of other elements in the scene:
- "On-Top UI" : 3d drawing
- "Orthographic On-Top UI" : 2d drawing
- "Manipulator" : Manipulator drawing (2D or 3D)
- Overlay drawing:
- "2D Overlay UI"
- "3D Overlay UI"
- HUD drawing: