才疏學淺,自學使用,手動翻譯,難免有錯,還望指正。

此文章只是Renderdoc官方文件的一個翻譯,其中加了一些自己的理解,並不完全正確,觀看請慎重。

Renderdoc官方文件連結:

翻譯筆記連結:

Renderdoc之Event Browser篇

事件瀏覽器[Event Browser]是瀏覽frame和選擇不同action的主要方法

它顯示使用者批註的部分分層顯示。

批註你的frame

當應用程式具有frame的部分和子部分的使用者自定義批註時, 事件瀏覽器變得最有用,

允許你對frame進行更符合邏輯和更有序的瀏覽

執行此操作是特定於API和平臺的

。有關如何執行此操作的更多資訊,請參見如何批註捕獲?

這些API函式提供的所有標記區域的顏色將用於標記該區域的行,並沿著樹的左側顯示一個條形圖,顯示事件所在的區域

Renderdoc之Event Browser篇

過濾顯示的event

預設情況下,Event Browser僅列出action。

action是諸如繪製、排程[dispatches]、複製、清除、解析[resolves]和其他呼叫之類的事件,這些事件會導致GPU執行工作,或者可能會影響記憶體和資源(如紋理和buffer)

。這有時被稱為Draw Call,但與實際的光柵化繪製相比,術語action通常不那麼含糊。

通常,瀏覽frame只需要檢視這些事件,但

在某些情況下,你可能希望看到一些狀態設定呼叫,以檢視狀態在哪裡發生了更改

。為此,你

可以將事件瀏覽器上的篩選器[filter]從預設更改為包括它們

Renderdoc之Event Browser篇

篩選器表示式可能非常複雜,在如何篩選可見事件?中有解釋。

篩選器表示式有一個下拉列表,允許你選擇任何預設的篩選器,並且可以在設定視窗中儲存新的篩選器

event顯示

事件瀏覽器中顯示的事件通常派生自API呼叫本身的引數。少數事件將具有自定義生成的名稱

-例如,這些通常是間接繪製,其中檢視使用的GPU繪製引數而不是原始CPU端buffer更有用,或者用於可以顯示載入和儲存操作的渲染過程[renderpasses]。

在配置過濾器時,可以使用

Settings & Help

視窗下的控制元件來調整這些名稱。

Renderdoc之Event Browser篇

要以示例的方式顯示這些選項,請以捕獲的幀的一部分的預設顯示為例:

Renderdoc之Event Browser篇

Show custom action names

預設:

Enabled

此選項控制是否如上文詳細說明的那樣將

自定義名稱用於間接繪製[indirect draws]和渲染過程[renderpasses]

。請注意,禁用它會對renderpass beginning邊界和command buffer邊界產生影響。

Renderdoc之Event Browser篇

Show parameter names and values

預設:

Disabled

此選項控制

是否包括引數名稱及其值

。預設情況下,不給出引數名稱,只有值可見。

這不會影響具有自定義名稱的action,正如上面在

Show custom action names

中所控制的那樣。

Renderdoc之Event Browser篇

Show all parameters

預設:

Disabled

此選項控制

是顯示所有引數,還是僅包括最重要的引數

。請注意,由於顯示了所有引數,因此很難辨別出任何內容,因為有些函式有一些沒有意義的隱式引數,比如command buffer。

這不會影響引數值,在結構的情況下,引數值在許多情況下仍將僅顯示省略結構。同樣,與上面的

Show parameter names and values

一樣,這對具有自定義名稱的操作沒有影響,正如上面在

Show custom action names

中所控制的那樣。

Renderdoc之Event Browser篇

選擇可用列

預設情況下,事件瀏覽器中的列為EID和Name。無法刪除名稱,因為它包含樹,但也可以自定義列以隱藏/顯示或重新排序和調整大小

要選擇哪些列應該可見,請右鍵單擊標題或單擊TIMLINE_MARKER選擇列按鈕

要重新排列列,只需單擊並拖動標題即可。

Renderdoc之Event Browser篇

請注意,在計時操作時,將自動新增持續時間[duration]列以顯示資料。

計時操作[Timing actions]

要對每個action的GPU持續時間計時,請單擊計時器按鈕時間

Renderdoc之Event Browser篇

Renderdoc之Event Browser篇

這將自動執行一個流程來獲取每個action的時間,並將其顯示在duration 列中,如有必要,新增該列。

你可以在Settings Window中動態配置用於duration 列的時間單位

要檢查更多的 GPU 計數器,而不僅僅是簡單的持續時間[duration],請參閱效能計數檢視器[Performance Counter Viewer]。

瀏覽frame

事件瀏覽器是瀏覽frame的主要方式。事件在瀏覽器中作為條目列出,上面提到的分層標籤成為樹節點。

當前選擇的事件突出顯示

,並用

綠色標誌FLAG_GREEN

表示。這是RenderDoc正在檢查的事件,並反映在UI的所有其他視窗中。

Renderdoc之Event Browser篇

Renderdoc之Event Browser篇

EID(事件ID)列表示事件的ID。

事件ID從1開始分配,並在每次呼叫API時遞增

。因此,

action EID通常不是連續的,因為在兩者之間有狀態設定事件,這些事件也具有EID

只需單擊不同的事件即可將其選為當前事件,而選擇帶有某些子事件的條目將如同選擇了最後一個子事件一樣-換句話說,

選擇具有多個子事件的節點將顯示已發生的所有子事件的結果

你還可以使用鍵盤快捷鍵瀏覽frame。

按向上或向下箭頭鍵將在可見元素中上下移動,跳過任何摺疊的部分

。之後,這些鍵[key]將移入和移出一個子部分,進入下一個相鄰節點 -

基本上直接上下移動,就好像沒有樹一樣,它是一個直線列表

此視窗支援複製和貼上,因此只需選擇要複製到剪貼簿的條目並按ctrl-c

書籤[Bookmarks]

書籤按鈕將允許你為事件新增書籤,快捷鍵是 Ctrl-B

Renderdoc之Event Browser篇

已新增書籤的事件列表將顯示在事件瀏覽器頂部的工具欄上,它們和快捷鍵Ctrl-1至Ctrl-0將跳轉到相應的已新增書籤的EID

。這些快捷鍵可以在應用程式中的任何位置執行。

有關詳細資訊,請參閱如何為捕獲添加註釋?

搜尋和跳轉[Searching and Jumping]

事件瀏覽器中還有另外兩個控制元件可用於幫助導航frame。

按Ctrl-F將開啟

**

查詢事件工具欄

**

查詢。此工具欄允許你輸入部分文字篩選

該篩選將與標籤和action事件進行匹配

。當你按Enter鍵時,將執行查詢,不過你可以根據需要調整文字並重新搜尋。

Renderdoc之Event Browser篇

如果你想定位到某個特定的事件,你可以搜尋它的EID

。查詢結果將只顯示匹配事件,而不顯示任何其他可能透過子字串匹配該數字的事件。

如果找到的事件位於未展開的部分內,則這些部分將被展開,直到匹配的事件可見

匹配事件將用查詢圖示突出顯示,重複按Enter鍵將在匹配事件之間跳轉

Renderdoc之Event Browser篇

Renderdoc之Event Browser篇

你還可以使用上一個

箭頭_左按鈕

和下一個

箭頭_右按鈕

在查詢結果之間上下跳轉

Renderdoc之Event Browser篇

Renderdoc之Event Browser篇

Renderdoc之Event Browser篇

也可以看看[See Also]

如何註釋捕獲?