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: