The Event Browser is the primary method of browsing the frame and selecting different drawcalls. It displays the user-annotated hierarchical display of sections.
Annotating your frame¶
The Event Browser becomes most useful when the application has user-defined annotations of sections and subsections of the frames, to allow for a more logical and ordered browsing of the frame.
Doing this is API and platform specific. Example code for D3D11 is included below, using the
D3DPERF library that is exported by
d3d9.dll, which can still be used in D3D11. (The newer
ID3DUserDefinedAnnotation API is also supported).
D3DPERF_BeginEvent(0xffffffff, L"Start of example"); D3DPERF_BeginEvent(0xff00ff00, L"Sub section"); // events inside the subsection D3DPERF_EndEvent(); // events outside the subsection D3DPERF_EndEvent();
This will generate a section of the frame with a subsection that includes some events, and then some further events that are siblings of the subsection.
OpenGL can make use of the
KHR_debug extension, and Vulkan can use the
Selecting available columns¶
By default, the columns in the event browser are EID and Name. Name cannot be removed as it contains the tree, but otherwise the columns can be customised both to hide/display or reorder and resize.
To select which columns should be visible, right click the header or click the select columns button.
To rearrange the columns simply click and drag on the header.
Note that when timing drawcalls the duration column will automatically be added to display the data.
To time the GPU duration of each drawcall, click the timer button .
This will automatically run a process to get the time of each drawcall and display it in the duration column, which will be added if necessary.
You can configure which time unit is used for the duration column on the fly in the Options Window.
Browsing the frame¶
The event browser is primarily intended as a tool to browse through the frame. Events are listed as entries in the browser and the hierarchical labels mentioned above become tree nodes.
The currently selected event is highlighted and indicated with a green flag . This is the event that RenderDoc is inspecting and is reflected in all the other windows of the UI.
The EID column indicates the event ID of the drawcall listed. Event IDs are assigned starting from 1 and increase every time an API call is made - for this reason drawcall EIDs are not necessarily contiguous.
Simply clicking on a different event will select it as current, and selecting a parent node with some child events will act as if the final child is selected - in other words selecting a node with several children will show the results of all children having happened.
You can also use keyboard shortcuts to browse through the frame. Pressing up or down arrow key will move up and down through the visible elements, skipping over any sections which are collapsed. These keys will move into and out of a sub-section into the next sibling afterwards - essentially going straight up and down as if there is not a tree and it is a straight list.
The left and right arrows go into and out of hierarchy levels. When within a level pressing left will jump to the parent node of the current level. Pressing left again will collapse that node, and so on. Pressing right will (if on a node with children) expand that node.
This window supports copy and paste, so simply select the entries and ctrl-c to copy to the clipboard
The bookmark button will allow you to bookmark an event, the shortcut key is
A list of bookmarked events will show up on a toolbar at the top of the event browser, they and the shortcut keys
CTRL-0 will jump to the respective bookmarked EID. These shortcuts will work anywhere in the application.
Searching and Jumping¶
There are two other controls available in the Event Browser to aid in navigating the frame.
Ctrl-F will open the find-event toolbar . This toolbar allows you to type in a partial text filter that will be matched against both labels and drawcall events. The find will be executed when you press enter, although you can then adjust the text and re-search if you wish.
If the event found lies inside an unexpanded section, the sections will be expanded until the matching event is visible.
Matching events will be highlighted with a find icon , and pressing enter repeatedly will jump between matching events.
The find toolbar isn’t dismissed until you press escape in the text box, or click the close button .
You can also jump up and down between find results with the previous and next buttons.
Ctrl-G will open the jump to EID toolbar. This allows you to type in an EID and jump straight there, expanding nodes as necessary. If the EID typed doesn’t exist in the list of drawcalls, the closest matching EID will be jumped to.
When you hit enter to jump to an EID, the toolbar closes and if you wish to jump again you must press