專利名稱:用于調試圖形管線子單元的方法和系統的制作方法
技術領域:
本發明涉及圖形處理單元領域。更確切地說,本發明的實施例涉及一種用于調試圖 形管線子單元的方法和系統。
技術背景需要改進圖形處理單元(GPU)執行圖形應用程序的效率一直是軟件開發者的一個 主要關注問題。舉例來說,考慮到管線GPU的速度僅等于其最慢的管線單元的速度,瓶 頸分析對于優化應用程序來說是重要的。同樣,需要監測對圖形管線的每個單元的利用 率,從而在任何給定時間允許負載分布并確保充分利用每個單元。然而,考慮到可用的 性能工具的數目有限且常規工具提供的特征數目有限,優化GPU性能和調試圖形管線子 單元是一項艱難的任務。常規方法無法提供執行圖形操作(例如,繪圖調用)時圖形管線的每個子單元的設 置及其狀態信息的詳細信息。因此,通過試錯法進行校正動作時,并不真正了解用于繪 圖調用的每個子單元的設置及其相應的狀態信息。此外,任何用以補救GPU的有問題的 子單元的校正均可能負面地影響GPU的其它子單元。舉例來說,減小一個子單元的瓶頸 可能會負面地影響對其它子單元的利用。因此,由于不能夠檢測與管線子單元有關的利 用率信息,所以即使校正了瓶頸,開發者仍然經常會遇到最小性能增益。除了上述不足外,即使開發者能夠針對給定的幀或圖形操作而補救瓶頸且提高利用 不足的子單元的利用率,其它幀和/或圖形操作的性能也可能會降低。因此,使用常規性 能工具很可能花費大量時間和精力,而給定GPU上的圖形應用程序的性能卻很少或沒有 明顯提高。 發明內容因此,需要為執行圖形操作(例如,繪圖調用)時GPU管線的子單元的設置及其狀 態信息提供透明性。此外,需要為可編輯狀態信息提供透明性,因為編輯狀態信息可能 會實質上改進GPU管線的整體效率及其幀速率。進一步需要在還允許自動識別幀的有問 題的圖形操作的調試工具內提供上述透明性。所屬領域的技術人員在閱讀了本發明的詳 細描述之后將了解,本發明的實施例滿足以上提到的需要。在本發明的一個實施例中,通過圖形用戶界面存取和顯示多個可選擇的繪圖調用群 組,所述群組可依據其執行時間來分類。響應于用戶對所選的繪圖調用群組的選擇,從 所述群組顯示多個可選擇的繪圖調用。每個繪圖調用群組的所有繪圖調用共享指定狀態 的共同狀態屬性。還顯示多個可選擇的圖形管線子單元的識別符。響應于用戶對與繪圖 調用群組相關聯的繪圖調用的選擇以及子單元的選擇,自動顯示多個可編輯的狀態信息 (例如,文本窗口)。響應于用戶編輯狀態信息,改變多個數據儲存設置。此外,編輯狀 態信息響應于用戶選擇而應用于選出的繪圖調用或選出的繪圖調用群組。因為使用本發明的實施例,子單元設置信息和狀態信息對于開發者變成透明的。因 此,用戶可在編輯狀態信息方面作出明智的決定,從而改進GPU管線的整體效率及其幀 速率。更確切地說,本發明的實施例涉及一種調試和/或優化可在圖形管線子單元上操作的應用程序的方法,所述方法包含存取多個繪圖調用群組,其中每個繪圖調用群組包括各自的多個繪圖調用,所述多個繪圖調用全部共享指定狀態的共同狀態屬性;在第一窗 口中顯示所述多個繪圖調用群組,并允許用戶從中進行選擇;響應于用戶對繪圖調用群 組的選擇,顯示與選出的繪圖調用群組相關聯的多個繪圖調用,并允許用戶從中進行選 擇;在第二窗口中顯示多個圖形管線子單元的標識,并允許用戶從中進行選擇;以及響 應于用戶對選出的圖形管線子單元的選擇,顯示與選出的繪圖調用相關聯的選出的圖形 管線子單元的多個狀態信息。實施例包含上述內容,且其中所述方法進一步包含顯示由于執行所述選出的繪圖調 用而由選出的管線子單元渲染的圖形圖元。實施例進一步包含上述內容,且進一步包含 顯示涉及選出的圖形管線子單元的選出的繪圖調用和繪圖調用群組的性能數據,其中所 述性能數據指示所述多個圖形管線子單元執行選出的繪圖調用群組的時間,且其中所述 性能數據進一步指示選出的圖形管線子單元執行選出的繪圖調用的時間。 此外,實施例包含上述內容,且其中所述方法進一步包含允許用戶編輯多個狀態信 息。此外,實施例包含上述內容,且其中所述多個繪圖調用群組和多個繪圖調用分別根 據群組和繪圖調用的執行時間來排列。此外,實施例包含以上內容,且其中顯示多個狀 態信息進一步包含將多個狀態信息分組,使得所述多個狀態信息的在所述選出的繪圖調 用群組中共同的一部分被描繪在一起。
在附圖的各圖中以舉例而非限制的方式說明本發明,且其中相似參考標號指代類似 元件,且其中圖1展示根據本發明一個實施例用于顯示執行選出的繪圖調用的選出的子單元的狀 態信息的用戶界面的示范性屏幕截圖。圖2展示根據本發明一個實施例用于選擇繪圖調用群組的示范性用戶界面的屏幕截圖。圖3展示根據本發明一個實施例用于選擇繪圖調用的示范性用戶界面的屏幕截圖。圖4展示根據本發明一個實施例用于顯示執行選出的繪圖調用的選出的子單元的狀 態信息的示范性用戶界面的屏幕截圖。圖5展示根據本發明一個實施例用于顯示執行選出的繪圖調用的選出的子單元的狀 態信息的示范性用戶界面的屏幕截圖。圖6展示根據本發明一個實施例用于顯示執行選出的繪圖調用的選出的子單元的狀 態信息的示范性用戶界面的屏幕截圖。圖7展示根據本發明一個實施例用于顯示對應于在選出的子單元上執行的選出的繪 圖調用的狀態信息的示范性用戶界面的屏幕截圖。圖8展示根據本發明一個實施例用于顯示對應于在選出的子單元上執行的選出的繪 圖調用的狀態信息的示范性用戶界面的屏幕截圖。圖9展示根據本發明一個實施例用于調試可在圖形管線子單元上操作的應用程序的 計算機實施的過程的流程圖。圖IO說明可為本發明的實施例充當平臺的通用計算機系統。
具體實施方式
現將具體參照本發明的實施例,附圖中說明了實施例的實例。雖然將結合這些實施 例描述本發明,但將了解,所述實施例并不意圖將本發明局限于這些實施例。相反,本 發明意圖涵蓋可能包含在由所附權利要求書界定的本發明的精神和范圍內的替代物、修
改和均等物。此外,在對本發明的以下詳細描述中闡述了許多特定細節,目的是提供對 本發明的全面的了解。然而,所屬領域的一般技術人員將明了,可在沒有這些特定細節 的情況下實踐本發明。在其它示例中,并未詳細描述眾所周知的方法、程序、組件和電 路,以免不必要地混淆本發明的各方面。 符號和術語以下的詳細描述中的一些部分是按照程序、步驟、邏輯區塊、處理和可在計算機存 儲器上執行的對數據位的操作的其它符號表示形式呈現的。這些描述和表示形式是所屬 領域的技術人員用于向所屬領域的其他技術人員最有效地傳達其工作的主旨的手段。在 此處并且一般來說,認為程序、計算機執行的步驟、邏輯區塊、過程等是導致所要結果 的自相容的步驟或指令序列。所述步驟是需要對物理量進行物理操縱的步驟。通常(但不必要),這些量采用能夠在計算機系統中被存儲、傳送、組合、比較和以 其它方式操縱的電或磁信號的形式。已時常證明,主要因為通常使用的原因,將這些信 號稱為位、值、元素、符號、字符、項、數字等是方便的。然而,應記住,所有這些和類似術語應與適當的物理量相關聯,且僅是應用于這些 量的方便的標簽。除非從以下論述明顯看出另有特別規定,否則將了解,在整個本發明 中,利用例如"處理"或"創建"或"傳送"或"執行"或"確定"或"指示"或"發 布"或"暫停"或"清除"或"存取"或"聚集"或"獲得"或"選擇"或"計算"或 "測量"或"顯示"或"存取"或"允許"或"分組"等術語的論述是指計算機系統或 類似的電子計算裝置將計算機系統的寄存器和存儲器內表示為物理(電子)量的數據操 縱和轉換成計算機系統存儲器或寄存器或其它此類信息存儲、傳輸或顯示裝置內的同樣 表示為物理量的其它數據的動作和過程。用于調試圖形管線子單元的方法和系統GPU管線通常執行在主機計算機處理器上操作的驅動程序所指示的圖形操作(例如, 繪圖調用)。 一幀包含多個繪圖調用。計算GPU管線的子單元的各種性能參數(例如, 瓶頸和利用率信息)。2006年8月1日由Aguaviva等人申請的代理人案號為 NVID-P002603且題為"A Method And System For Calculating Performance.Parameters For A Processor"的第11/497,863 號美國專利申請案中論述了計算這些性能參數和其它 參數,該申請案全文并入本文中。繪圖調用可響應于用戶指定的共同狀態屬性而自動形 成為繪圖調用群組。2006年8月1日由Aguaviva等人申請的代理人案號為NVID-P002635 且題為"Method And User Interface For Enhanced Graphical Operation Organization "的第■8,229 號美國專利申請案中論述了基于共同狀態屬性對繪圖調用進行分組, 該申請案全文并入本文中。現參看圖1,展示根據本發明一個實施例用于顯示執行來自選出的繪圖調用群組的 選出的繪圖調用的選出的子單元的狀態信息的示范性計算機控制的用戶界面100。所述 用戶界面存取并在下拉菜單105中顯示可選擇的繪圖調用群組。如2006年8月1日由 Aguaviva等人申請的題為"Method And User Interface For Enhanced Graphical Operation Organization "的第11/498,229 號美國專利申請案中所述,每個繪圖調用群組具有共同的狀態屬性。下拉菜單105可顯示繪圖調用群組中的繪圖調用的數目、群組的總執 行時間和所處理的像素的數目。群組的執行時間是GPU管線執行繪圖調用群組所需的時 間量。在此實例中,選出的繪圖調用群組含有32個繪圖調用,且由GPU管線在3.056 ms 內執行。此外,GPU管線在完全執行選出的繪圖調用群組之后將已經寫入了 906240個像 素。應了解,對下拉菜單的使用是示范性的且并不是限制性的。舉例來說,其它實施例 可使用彈出窗口來顯示可選擇的信息。或者,可以其它可選擇的格式,在表中或通過鏈 接來顯示信息。下拉菜單110顯示選出的繪圖調用群組中的所有繪圖調用。下拉菜單110可進一步 顯示繪圖調用的執行時間和由GPU管線處理的像素的數目。在此實例中,繪圖調用由 GPU管線在0.458 ms內執行。此外,GPU管線在完全執行選出的繪圖調用之后將已經寫 入了 136473個像素。應了解,對下拉菜單的使用是示范性的且并不是限制性的。舉例來 說,其它實施例可使用彈出窗口來顯示可選擇的信息。或者,可以其它可選擇的格式, 在表中或通過鏈接來顯示信息。仍然參看圖1,用戶界面IOO包含多個用于選擇GPU管線內的管線子單元的可選擇 項。在此實施例中,可選擇的子單元是頂點集合115、頂點著色器120、像素著色器125 和光柵操作130。其它實施例可視管線結構而定而具有較少或較多或不同的子單元,應 了解,使用標記(tab)作為可選擇的工具是示范性而并非限制性的。舉例來說,其它實 施例可使用彈出窗口來顯示可選擇的信息。或者,可以其它可選擇的格式,在表中或通 過鏈接來顯示信息。響應于用戶選擇繪圖調用群組、所述群組的繪圖調用和子單元,實施例接著可顯示 與其有關的性能信息。性能信息可如135、 140和145中所示以條形圖格式顯示。條形圖 135顯示GPU子單元執行幀所需的時間。在此實例中,GPU子單元在9.651 ms內執行所 述幀。條形圖140顯示GPU子單元執行選出的繪圖調用群組所需的時間量。條形圖145
顯示選出的子單元執行選出的繪圖調用所需的時間量。因此,所展示的條形圖在幀改變 時、或選出的繪圖調用群組改變時、或選出的繪圖調用改變時、或選出的子單元改變時 改變。應了解,對條形圖的使用是示范性而并非限制性的。因此,其它實施例可使用其 它方法來顯示性能信息,可能會顯示較多或較少的信息。應進一步了解,所論述的性能 信息是示范性的而非限制性的。因此,可顯示其它性能信息(例如,利用率和瓶頸)。根據本發明的實施例,響應于用戶選擇繪圖調用群組、繪圖調用和子單元,在窗口 150中顯示對應于選出的子單元的選出的繪圖調用的狀態信息。在此實例中,選擇具有 32個繪圖調用的繪圖調用群組(其中繪圖調用在0.458 ms內執行)和頂點集合115子單 元。狀態信息包含與管線單元有關的用于設置、配置和編程以便處理繪圖調用(例如, 用于繪制圖元155)的可選擇的參數。用于繪制圖元的狀態信息是繪制圖元(例如,三 角形)所需的設置和值。在此實例中,所界定的圖元類型是三角形。還可顯示所使用的 頂點的數目或圖元計數。舉例來說,頂點數目是28385且圖元計數是4864。狀態信息還可包含對索引緩沖器160的描述。索引緩沖器可界定存儲器緩沖器的類 型和格式。此外,索引緩沖器可界定存儲集區的位置。狀態信息可進一步包含頂點緩沖器聲明165。頂點緩沖器聲明165界定(例如)頂 點大小、頂點緩沖器中每一個別頂點的位置、法線和切線被定位的偏移或流。在此實例 中,頂點大小為32。流頂點緩沖器描述170的狀態信息與頂點緩沖器描述的狀態信息類 似。狀態信息還可包含頂點緩沖器邊界框175。頂點緩沖器邊界框175可界定幾何形狀 在物體空間中的范圍。軟件開發者可針對低效等情況查看狀態信息。通常軟件開發者將選擇具有較高執行 時間的繪圖調用來進行狀態分析,并且對繪圖調用設置參數作出修改,且對于所述操作 共享相同參數的其它繪圖調用可能將在得到優化的情況下對幀速率性能具有顯著影響。此窗口 150內的狀態信息可由用戶編輯。可基于窗口 150中的狀態信息在窗口 180中渲染針對選出的子單元的選出的繪圖調 用的圖形圖元。這種渲染可能是線框渲染,其允許軟件開發者獲悉原始模型數據中的潛 在錯誤,或者可能是經過完全著色的渲染,用以查看渲染的不規則性。在此實施例中, 用戶可通過使用下拉菜單110而滾動到選出的繪圖調用群組中的其它繪圖調用。或者, 用戶可通過使用后退按鈕185而滾動經過繪圖調用以便以相反次序前進,或者通過使用 前進按鈕190而按照次序滾動。或者,用戶可使用滑動條195來滾動經過繪圖調用。因 此,可使用調試程序以每次一個繪圖調用的方式逐步經過整個場景。因此,對于每個繪
圖調用,用戶可看到所使用的幾何形狀、紋理、著色器和光柵操作設置。應了解,滾動 經過繪圖調用會更新條形圖145中的性能信息。應進一步了解,滾動經過繪圖調用會更 新窗口 150中的狀態信息。因此,滾動經過繪圖調用會以窗口 180中的圖形圖元的循序 執行次序來更新所述圖形圖元,從而允許用戶知曉有問題的繪圖調用或繪圖調用群組的 原因。仍然參看圖1,可通過下拉菜單196來修改窗口 180中描繪的渲染。響應于對菜單 196的菜單項的選擇,可顯示對應于選出的菜單項的渲染信息的不同描繪。舉例來說, 可在窗口 180內顯示幀緩沖器內的對應于一個或一個以上識別出的圖形操作的數據。或 者,可顯示對應于一個或一個以上識別出的圖形操作的渲染信息,其中所述渲染信息包 括線框視圖中的一個或一個以上渲染的對象。且在其它實施例中,菜單196中的其它選 擇可實現對所渲染對象的對應于一個或一個以上識別出的圖形操作的其它特征(例如, 深度緩沖器信息、a通道覆蓋圖等)的顯示。導出按鈕197提供導出執行、狀態信息和性能信息以供以替代形式査看的能力。導 出的數據可形成文本和/或圖形圖像。因此,可使用另一應用程序和/或用戶界面來存取和 呈現導出的數據。"簡單"按鈕198實現對與通過圖形處理管線的各個管線單元來處理數據流相關的 更少信息的呈現(例如,在單個彈出窗口中移除圖形界面覆蓋圖)。可使用所述信息來簡 化對數據流的處理。因此,用戶可使用對數據流的簡化處理來定位有問題的子單元和有 問題的繪圖調用群組。因此,可使用調試用戶界面來采取必要的校正動作,以補救有問 題的繪圖調用、有問題的繪圖調用群組或有問題的子單元。因此,改進了GPU管線的性 能和幀速率。在一個實施例中,用戶界面提供按鈕199,使得選擇按鈕199便會隱藏下拉菜單105 和110,以及條形圖135、 140和145,連同窗口 150和180以及可選擇的子單元115、 120、 125和130。因此,選擇按鈕199會顯示針對一幀引出的繪圖調用,直至所執行的最后的 繪圖調用。圖形界面元素可能會遮蓋潛在渲染中的所關注區域,因而為軟件開發者導致 混淆。軟件開發者可選擇"簡單"按鈕198來移除圖形界面,從而允許其重新獲得對情 形的知曉。接著,軟件工程師可重新啟用圖形界面并繼續進行優化活動。其它實施例可 隱藏上述圖形用戶界面的某些部分。在本發明的一個實施例中,用戶可將窗口 150中的狀態信息編輯(例如)成字處理 器函數。應了解,在一個實施例中,編輯狀態信息會改變潛在的應用程序。因此,狀態
信息向用戶提供關于針對有問題的繪圖調用和/或有問題的繪圖調用群組的不同子單元 處的確切狀態屬性值的透明性。此外,通過選擇具有較長執行時間的繪圖調用群組,用 戶可處理并優化過長的繪圖調用。因此,可通過較少的改變而實現顯著的幀改進。在一個實施例中,可將窗口 150的狀態信息分組,使得將在繪圖調用群組上具有共 同屬性的狀態信息分組在一起,且將其余的狀態信息分組在一起。因此,對具有共同屬 性的狀態信息進行編輯可應用于所有具有那些相同屬性的繪圖調用。因此,編輯此狀態 信息會影響選出的繪圖調用群組和其中所有的繪圖調用。或者,用戶可編輯不具有共同 屬性的群組。因此,編輯獨特的狀態信息會影響含有所述狀態信息的繪圖調用。應了解, 在一個實施例中,可通過對狀態信息進行彩色編碼而將狀態信息分組成上述這些群組。 或者,彈出窗口可詢問用戶用戶是希望僅將變化應用于選出的繪圖調用,還是應用于 選出的繪圖調用群組(如果共享那些屬性的話)。其它實施例可使用其它方法將狀態信息 分組在一起。現參看圖2,展示根據本發明一個實施例用于從群組列表中選擇繪圖調用群組的示 范性用戶界面。如上所述,每個繪圖調用群組通過一組共同的狀態屬性來界定。在此實 例中,下拉菜單105含有五個繪圖調用群組。在一個實施例中,繪圖調用群組按照其各 自的執行時間的次序來分類或排列。舉例來說,繪圖調用群組可按照其執行時間的升序 分類。因此,可選擇具有較長執行時間的繪圖調用群組,因為優化具有過長執行時間的 繪圖調用群組可比優化具有較短執行時間的繪圖調用群組更加有效地改進GPU管線的效 率。應了解,在此實施例中,通過從下拉菜單110中選擇繪圖調用,促使在窗口 150中 顯示狀態信息。因此,在此實施例中,選擇繪圖調用群組不會改變窗口 150中的狀態信 息的值。現參看圖3,展示根據本發明一個實施例用于選擇選出的群組的繪圖調用的示范性 用戶界面。如上所述,選出的繪圖調用群組在所述群組中含有32個繪圖調用。因此,使 用下拉菜單110,用戶可滾動經過不同的可選擇繪圖調用。在一個實施例中,繪圖調用按 照其各自的執行時間的次序來分類。舉例來說,繪圖調用可按照其執行時間的降序分類。 因此,執行時間最長的繪圖調用是GPU管線執行的花費最多的繪圖調用。因此,優化較 長的繪圖調用可有效地改進GPU管線的性能和執行時間。選擇繪圖調用會促使在窗口 150中顯示其相關聯的狀態信息。現參看圖4,展示根據本發明一個實施例用于顯示執行選出的繪圖調用的選出的子 單元的狀態信息的示范性用戶界面。圖4展示針對同一選出的繪圖調用群組、同一選出
的繪圖調用但不同的子單元顯示狀態信息。在此實施例中,選出的子單元是頂點著色器 120。在一個實施例中,選擇頂點著色器120會顯示頂點著色器窗口 410和頂點著色器常 數窗口 420。因此,顯示頂點著色器120所使用的任何常數和紋理以供查看。頂點著色 器窗口 410顯示正在每個頂點上執行的頂點著色器匯編語言。頂點著色器常數窗口 420 顯示常數。所述常數提供(例如)變換矩陣、平滑參數(smoothing parameter)、皮膚參 數(skinning parameter).照明和位移常數。 一般來說,頂點著色器常數窗口 420提供用 于修改幾何形狀的信息。選擇頂點著色器子單元120進一步提供紋理窗口 430。紋理窗 口 430使得能夠基于紋理的值來移動頂點。RGB標記440使用戶能夠査看不同的通道, 從而使用戶能夠看到可能在紋理中的各個顏色通道中編碼的不同信息。舉例來說,在此 實施例中,提供三個通道——紅、綠和藍。如上所述,可編輯狀態信息或紋理數據。因此,可編輯在頂點著色器窗口 410中顯 示的狀態信息。應了解,此實施例提供放大能力,從而使用戶能夠放大紋理。現參看圖5,展示根據本發明一個實施例用于顯示執行選出的繪圖調用的選出的子 單元的狀態信息的示范性用戶界面。圖5展示針對同一選出的繪圖調用群組、同一選出 的繪圖調用但不同的子單元顯示狀態信息。在此實例中,選出的子單元是像素著色器125。 在一個實施例中,選擇像素著色器125會顯示固定函數設置窗口 510。當選擇像素著色 器125程序時,會顯示像素著色器125所使用的任何常數和紋理以供查看。固定函數設 置窗口 510含有具有有限可編程性的預定義的函數。因此,可使用預定義的函數的參數 及預定義的函數的組合以便創建其它函數。因此,可編輯狀態信息以便基于預定義的函 數來創建新函數。或者,選擇像素著色器125,便可顯示可編程的窗口 (未圖示)。所述可編程的窗口 含有可編輯的狀態信息。這些狀態信息包含在像素著色器子單元上運行的匯編語言程序 設計和與所述程序有關的可能指定(例如)光位置、材料參數等的任何常數。選擇像素 著色器125可顯示紋理窗口 520。紋理窗口 520的功用與圖4中紋理窗口 430的功用類 似。因此,紋理窗口 520可提供(例如)光照貼圖、法線貼圖、正弦或余弦值的査找表 和平方根映射。現參看圖6,展示根據本發明一個實施例用于顯示執行選出的繪圖調用的選出的子 單元的狀態信息的示范性用戶界面。圖6展示針對同一選出的繪圖調用群組、同一選出 的繪圖調用但不同的子單元顯示狀態信息。在此實例中,選出的子單元是光柵操作130。 在一個實施例中,選擇光柵操作130會顯示渲染狀態窗口 610。渲染狀態窗口 610含有
多個設置的樹狀結構,所述設置以可分拆樹狀的形式提供以幫助管理大量數據。可改變 光柵操作130中的各種渲染狀態。舉例來說,可關閉a混合。渲染狀態窗口 610影響渲 染設置。選擇光柵操作130會在渲染目標窗口 620中顯示渲染目標。渲染目標窗口 620顯示 例如存儲器集區位置和位深度等狀態信息。 一般來說,渲染目標窗口 620顯示渲染操作 的結果被寫入到的位置。因此,編輯狀態信息可能會影響例如存儲器存取等各種操作。現參看圖7,展示根據本發明一個實施例用于顯示對應于在選出的子單元上執行的 選出的繪圖調用的狀態信息的示范性用戶界面。在此實例中,在窗口 150中顯示67個繪 圖調用中的30號繪圖調用的狀態信息。圖形圖元180描繪GPU管線正在繪制的容器。 如上所述,可編輯狀態信息,從而影響選出的繪圖調用和/或選出的繪圖調用群組的性能 和執行。現參看圖8,展示根據本發明一個實施例用于顯示對應于在選出的子單元上執行的 選出的繪圖調用的狀態信息的示范性用戶界面。在此實例中,在窗口 150中顯示67個繪 圖調用中的51號繪圖調用的狀態信息。圖形圖元180描繪GPU管線正在繪制的骷髏。 如上所述,可編輯狀態信息,從而影響選出的繪圖調用和/或選出的繪圖調用群組的性能 和執行。因此,用戶可滾動經過不同的繪圖調用,以便檢查狀態信息并按照順序檢查被 執行并作為新的圖形圖元而添加到所繪制的場景的每個繪圖調用。現參看圖9,展示根據本發明一個實施例用于調試可在圖形管線子單元上操作的應 用程序的計算機實施的過程的流程圖900。調試可在圖形管線子單元上操作的應用程序 的方法在步驟905處開始。在步驟910處,從存儲器存取多個繪圖調用群組。如上所述且如以引用方式并入的, 響應于用戶對指定狀態的共同狀態屬性的選擇來組織多個繪圖調用群組。因此,每個含 有多個繪圖調用的繪圖調用群組共享指定的共同狀態屬性。在步驟915處,在第一窗口中顯示表示被存取的多個繪圖調用群組的列表。舉例來 說,可使用下拉菜單顯示所述多個繪圖調用群組。應了解,可使用其它用以顯示所述信 息的方法。舉例來說,可使用彈出窗口。所述顯示進一步允許用戶選擇列表的繪圖調用 群組。在一個實施例中,按照繪圖調用群組的執行時間在列表中為繪圖調用群組排序。 繪圖調用群組的執行時間是GPU管線執行繪圖調用群組所需的時間。在一個實施例中, 所顯示的多個繪圖調用群組還可顯示額外信息,例如每個群組中繪圖調用的數目、群組 的執行時間以及所渲染的像素的數目。 在步驟920中,響應于用戶對繪圖調用群組的選擇,在第一窗口中或者在單獨窗口 中顯示與選出的繪圖調用群組相關聯的多個繪圖調用。在一個實施例中,可使用下拉菜 單將多個繪圖調用顯示為列表。應了解,可使用其它用以顯示信息的方法。舉例來說, 可使用彈出窗口。所述顯示進一步允許用戶選擇繪圖調用。在一個實施例中,按照針對 選出的子單元的繪圖調用的執行時間在列表中為繪圖調用排序。在步驟925處,在第一窗口或者在單獨窗口中顯示多個圖形管線子單元。此外,所 述多個圖形管線子單元可由用戶選擇。因此,用戶可選擇一子單元,使得用戶可查看針 對選出的子單元的選出的繪圖調用。在步驟930處,響應于用戶對繪圖調用群組、繪圖調用和子單元的選擇,可在第二 窗口中顯示多個相關聯的狀態信息。然而,應了解,可在第一窗口或在單獨窗口中顯示 狀態信息。在步驟935處,由于執行了選出的繪圖調用而通過選出的管線子單元來渲染 圖形圖元。改變繪圖調用或滾動經過各個繪圖調用除了更新狀態信息外還將更新圖形圖 元。因此,用戶可以每次一個步驟的方式查看每個繪圖調用的執行、其狀態信息及其相 應的圖形圖元。在步驟940處,顯示涉及選出的圖形管線子單元的選出的繪圖調用和繪圖調用群組 的性能數據。在一個實施例中,性能數據是GPU管線對幀的執行時間、GPU管線對選出 的繪圖調用群組的執行時間以及選出的子單元對選出的繪圖調用的執行時間。其它實施 例可提供每個子單元的利用率和瓶頸信息。在步驟945處,將多個狀態信息分組,使得所述多個狀態信息的共享共同狀態屬性 的一部分被描繪在一起。在一個實施例中,所述分組是通過將具有共同狀態屬性的狀態 信息分組在同一窗口中來進行的。在另一實施例中,分組是通過對群組進行彩色編碼來 進行的。應了解,可使用其它用于將狀態信息分組的方法。在步驟950處,用戶可編輯多個狀態信息。在一個實施例中,編輯狀態信息會改變 應用程序。在步驟955處,對多個狀態信息的編輯響應于用戶選擇而應用于選出的繪圖 調用或者應用于選出的繪圖調用群組。在步驟960處,調試可在圖形管線子單元上操作 的應用程序的過程結束。圖IO是說明可在上面實施本發明實施例的通用計算機系統1000的方框圖。計算機 系統1000可實施如圖9所示的用于調試圖形管線子單元的方法,且包含總線1002或其 它用于傳遞信息的通信機構,以及與總線1002耦合以處理信息的處理器1004。計算機 系統IOOO還包含主存儲器1006,例如隨機存取存儲器(RAM)或其它動態存儲裝置,
其耦合到總線1002以用于存儲信息和將由處理器1004執行的指令。主存儲器106還可 用于存儲將由處理器1004執行的指令的執行期間的臨時變量或其它中間信息。計算機系 統IOOO進一步包含只讀存儲器(ROM) 1008或其它靜態存儲裝置,其耦合到總線1002 以存儲供處理器1004用的靜態信息和指令。提供非易失性存儲裝置1010 (例如,磁盤 或光盤)并將其耦合到總線1002,以用于存儲信息和指令且可存儲持久的內部隊列。計算機系統1000可經由總線1002耦合到可選的顯示器1012 (例如,陰極射線管 (CRT)),以便向計算機用戶顯示信息。可選的輸入裝置1014 (包含字母數字和其它鍵) 可耦合到總線1002,以便向處理器1004傳遞信息和命令選擇。另一類型的用戶輸入裝 置是光標控制件1016 (例如,鼠標、跟蹤球或光標方向鍵),用于向處理器1004傳遞方 向信息和命令選擇,且用于控制光標在顯示器1012上的移動。本文所使用的術語"計算機可讀媒體"是指任何參與向處理器1004提供指令以供執 行的媒體。此種媒體可采用許多形式,其中包含但不限于非易失性媒體、易失性媒體和 傳輸媒體。非易失性媒體包含(例如)光盤或磁盤,例如存儲裝置IOIO。易失性媒體包 含動態存儲器,例如主存儲器1006。傳輸媒體包含同軸電纜、銅線和光纖,其中包含包 括總線1002的線。^輸媒體還可采用聲波或光波的形式,例如在無線電波和紅外數據通 信期間產生的聲波或光波。計算機可讀媒體的常見形式包含(例如)軟盤、柔性盤、硬盤、磁帶或其它任何磁 性媒體、CD-ROM、其它任何光學媒體、穿孔卡、紙帶、其它任何具有孔圖案的物理媒 體、RAM、 PROM和EPROM、 FLASH-EPROM、其它任何存儲器芯片或盒子、載波(例 如下文所述)或計算機可從中進行讀取的其它任何媒體。計算機系統IOOO可通過網絡、網絡鏈接1020和通信接口 1018發送和接收消息。在 因特網實例中,服務器1030可能通過因特網1028、 ISP 1026、局域網絡1022和通信接 口 1018傳輸用于應用程序的所請求的代碼。所接收的代碼可在接收到時由處理器1004 執行,且/或可存儲在存儲裝置IOIO或其它非易失性存儲裝置中以供以后執行。在以上說明書中,已參考許多特定細節描述了本發明的實施例,所述特定細節在各 個實施方案之間可能會有所變化。因此,本發明的實質和申請人希望作為本發明的實質 的唯一且排他的指示是由本申請案產生的一組權利要求,且其具體形式是產生這些權利 要求的形式,其中包含任何后續的改正。因此,權利要求中未明確陳述的任何限制、元 件、特性、特征、優點或屬性均不應以任何形式限制此權利要求的范圍。因此,應在說 明性而非限制性意義上看待說明書和圖式。
權利要求
1.一種用于調試可在圖形管線子單元上操作的應用程序的圖形用戶界面,所述圖形用戶界面包括第一窗口,其用于顯示多個繪圖調用群組,且可操作以允許用戶從中進行選擇,其中每個繪圖調用群組包括各自的多個繪圖調用,且其中每個繪圖調用群組的所有繪圖調用共享指定狀態的共同狀態屬性;第二窗口,其用于顯示多個圖形管線子單元的標識,且可操作以允許用戶從中進行選擇;以及第三窗口,其響應于對所述第一和第二窗口的選擇,且用于顯示與選出的繪圖調用相關聯的選出的管線子單元的多個狀態信息,其中所述選出的繪圖調用與選出的繪圖調用群組相關聯。
2. 根據權利要求l所述的圖形用戶界面,其進一步包括第四窗口,其用于顯示由于執行所述選出的繪圖調用而由所述選出的管線子單元 渲染的圖形圖元。
3. 根據權利要求l所述的圖形用戶界面,其進一步包括第四窗口,其用于顯示針對圖形管線子單元的選出的繪圖調用和選出的繪圖調用 群組的性能數據,其中所述性能數據指示所述多個圖形管線子單元執行所述選出的 繪圖調用群組的時間,且其中所述性能數據進一步指示所述選出的圖形管線子單元 執行所述選出的繪圖調用的時間。
4. 根據權利要求l所述的圖形用戶界面,其中所述多個狀態信息可由用戶在所述第三窗口內編輯。
5. 根據權利要求l所述的圖形用戶界面,其中所述多個繪圖調用群組按照執行時間排 列。
6. 根據權利要求l所述的圖形用戶界面,其中所述多個繪圖調用按照執行時間排列。
7. 根據權利要求l所述的圖形用戶界面,其中對所述多個狀態信息進行分組,使得所 述多個狀態信息的在所述選出的繪圖調用群組中共同的部分被共同描繪。
8. —種調試可在圖形管線子單元上操作的應用程序的方法,所述方法包括存取多個繪圖調用群組,其中每個繪圖調用群組包括各自的多個繪圖調用,所述多個繪圖調用全部共享指定狀態的共同狀態屬性; 在第一窗口中顯示所述多個繪圖調用群組,并允許用戶從中進行選擇; 響應于用戶對繪圖調用群組的選擇,顯示與所述選出的繪圖調用群組相關聯的多個繪圖調用,并允許用戶從中進行選擇;在第二窗口中顯示多個圖形管線子單元的標識,并允許用戶從中進行選擇;以及 響應于用戶對選出的圖形管線子單元的選擇,顯示與選出的繪圖調用相關聯的選出的圖形管線子單元的多個狀態信息。
9. 根據權利要求8所述的方法,其進一步包括顯示由于執行所述選出的繪圖調用而由所述選出的管線子單元渲染的圖形圖元。
10. 根據權利要求8所述的方法,其進一步包括顯示涉及所述選出的圖形管線子單元的所述選出的繪圖調用和所述繪圖調用群 組的性能數據,其中所述性能數據指示所述多個圖形管線子單元執行所述選出的繪 圖調用群組的時間,且其中所述性能數據進一步指示所述選出的圖形管線子單元執 行所述選出的繪圖調用的時間。
11. 根據權利要求8所述的方法,其進一步包括允許用戶編輯所述多個狀態信息。
12. 根據權利要求8所述的方法,其中按照執行時間排列所述多個繪圖調用群組。
13. 根據權利要求8所述的方法,其中按照執行時間排列所述多個繪圖調用。
14. 根據權利要求8所述的方法,其中顯示所述多個狀態信息進一步包括對所述多個狀態信息進行分組,使得所述多個狀態信息的在所述選出的繪圖調用 群組中共同的部分被描繪在一起。
15. —種包括在執行時會實施用于調試圖形管線子單元的方法的指令的計算機可讀媒體,所述方法包括在第一窗口中顯示多個繪圖調用群組,并允許用戶從中進行選擇,其中每個繪圖 調用群組包括各自的多個繪圖調用,所述多個繪圖調用全部共享指定狀態的共同狀態屬性;響應于用戶對繪圖調用群組的選擇,顯示與所述選出的繪圖調用群組相關聯的多 個繪圖調用,并允許用戶從中進行選擇;在第二窗口中顯示多個圖形管線子單元的標識,并允許用戶從中進行選擇;以及響應于用戶對選出的圖形管線子單元的選擇,顯示與所述選出的圖形管線子單元 相關聯且與選出的繪圖調用相關聯的狀態信息。
16. 根據權利要求15所述的媒體,其中所述方法進一步包括-顯示由于執行所述選出的繪圖調用而由所述選出的管線子單元渲染的圖形圖元。
17. 根據權利要求15所述的媒體,其中所述方法進一步包括顯示涉及所述選出的圖形管線子單元的所述選出的繪圖調用和所述繪圖調用群 組的性能數據,其中所述性能數據指示所述多個圖形管線子單元執行所述選出的繪 圖調用群組的時間,且其中所述性能數據進一步指示所述選出的圖形管線子單元執 行所述選出的繪圖調用的時間。
18. 根據權利要求15所述的媒體,其中所述顯示所述狀態信息進一步包括-對所述狀態信息進行分組,使得所述狀態信息的在所述選出的繪圖調用群組中共 同的部分被共同描繪。
19. 根據權利要求15所述的媒體,其中所述方法進一步包括-允許用戶編輯所述狀態信息。
20. 根據權利要求15所述的媒體,其中所述多個繪圖調用群組按照執行時間排列。
21. 根據權利要求15所述的媒體,其中所述多個繪圖調用按照執行時間排列。
全文摘要
本發明提供一種調試可在圖形管線子單元上操作的應用程序的方法。存取多個繪圖調用群組。每個繪圖調用群組包括各自的多個繪圖調用,其共享指定狀態的共同狀態屬性。顯示所述多個可選擇的繪圖調用群組。響應于用戶選擇,顯示與所述選出的繪圖調用群組相關聯的多個可選擇的繪圖調用。顯示多個可選擇的圖形管線子單元。響應于用戶對選出的子單元的選擇,顯示與選出的繪圖調用相關聯的多個可編輯的狀態信息和圖形圖元。可將所述多個可編輯的狀態信息分組,使得共享所述指定狀態的共同屬性的部分在一個群組中。響應于用戶選擇,可對所述選出的繪圖調用或所述選出的繪圖調用群組作出改變。
文檔編號G06T1/00GK101118643SQ200710143498
公開日2008年2月6日 申請日期2007年8月1日 優先權日2006年8月1日
發明者勞爾·阿古瓦比瓦, 塞巴斯蒂安·朱利安·多米內, 威廉·奧維爾·雷米二世 申請人:輝達公司