用于基于瓦片的渲染的幀內(nèi)時(shí)戳的制作方法
【專利說明】
[0001] 本申請案主張2013年4月11日申請的第61/811,056號美國臨時(shí)申請案的權(quán)益, 所述臨時(shí)申請案的全部內(nèi)容以引用的方式并入本文中。
技術(shù)領(lǐng)域
[0002] 本發(fā)明涉及圖形處理系統(tǒng),且更明確地說涉及在圖形處理系統(tǒng)中使用時(shí)戳。
【背景技術(shù)】
[0003] 計(jì)算裝置常常利用圖形處理單元(GPU)以加速渲染用于顯示的圖形數(shù)據(jù)。此類計(jì) 算裝置可包含(例如)計(jì)算機(jī)工作站、移動(dòng)電話(例如所謂的智能電話)、嵌入系統(tǒng)、個(gè)人計(jì) 算機(jī)、平板計(jì)算機(jī)和視頻游戲控制臺。渲染通常指代將可包含一或多個(gè)3D圖形對象的三維 (3D)圖形場景轉(zhuǎn)換為二維(2D)光柵化圖像數(shù)據(jù)的過程。圖形場景可渲染為一或多個(gè)幀的 序列,其中每一幀描繪在時(shí)間上特定實(shí)例處的圖形場景。
[0004] GPU可包含3D渲染管線以提供用于3D圖形場景的渲染的至少部分硬件加速。場 景中的3D圖形對象可由圖形應(yīng)用細(xì)分為一或多個(gè)3D圖形基元(例如,點(diǎn)、線、三角形、補(bǔ)丁 等),且GPU可將場景的3D圖形基元轉(zhuǎn)換為待渲染的幀中的每一者的2D光柵化圖像數(shù)據(jù)。 因此,在GPU渲染的特定上下文中,渲染可指代將對應(yīng)于圖形場景中的3D對象的3D圖形基 元轉(zhuǎn)換為2D光柵化圖像數(shù)據(jù)的過程。
[0005] 為渲染特定幀的3D圖形基元,在主機(jī)中央處理單元(CPU)上執(zhí)行的圖形應(yīng)用可 將對應(yīng)于待渲染的基元的幾何形狀數(shù)據(jù)放置到GPU可存取存儲器中,將一或多個(gè)GPU狀態(tài) 設(shè)置命令放置到命令流中,且將一或多個(gè)繪制調(diào)用放置到命令流中,所述繪制調(diào)用致使GPU 基于幾何形狀數(shù)據(jù)渲染基元。GPU可以命令被放置于命令流中的次序處理命令流中包含的 命令,借此渲染場景。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明描述用于支持執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)中的幀內(nèi)時(shí)戳請求的 技術(shù)?;谕咂匿秩究缮婕皩秩灸繕?biāo)(例如,幀)細(xì)分為多個(gè)倉(例如,子區(qū)或瓦片), 以及針對所述倉中的每一者執(zhí)行單獨(dú)渲染遍次迭代。幀內(nèi)時(shí)戳請求可指代可放置在與待渲 染的圖形幀相關(guān)聯(lián)的圖形命令流中的任意位置處的時(shí)戳請求。時(shí)戳請求可指代對于指示時(shí) 戳請求由處理所述時(shí)戳請求的裝置(例如,GPU或CPU)處理的時(shí)間實(shí)例的時(shí)戳值的請求。 本發(fā)明的幀內(nèi)時(shí)戳產(chǎn)生技術(shù)可基于由圖形處理單元(GPU)在執(zhí)行基于瓦片的渲染時(shí)產(chǎn)生 的一或多個(gè)每倉時(shí)戳值產(chǎn)生應(yīng)用請求的時(shí)戳值。使用每倉時(shí)戳值來產(chǎn)生應(yīng)用請求的時(shí)戳值 可允許執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)支持幀內(nèi)時(shí)戳。
[0007] 在一個(gè)實(shí)例中,本發(fā)明描述一種方法,其包含利用一或多個(gè)處理器基于由GPU在 執(zhí)行圖形幀的基于瓦片的渲染時(shí)產(chǎn)生的多個(gè)每倉時(shí)戳值產(chǎn)生指示時(shí)間點(diǎn)的時(shí)戳值。所述時(shí) 戳值可為所述多個(gè)每倉時(shí)戳值的至少兩個(gè)每倉時(shí)戳值的函數(shù)。
[0008] 在另一實(shí)例中,本發(fā)明描述一種裝置,其包含一或多個(gè)處理器,所述一或多個(gè)處理 器經(jīng)配置以基于由GPU在執(zhí)行圖形幀的基于瓦片的渲染時(shí)產(chǎn)生的多個(gè)每倉時(shí)戳值產(chǎn)生指 示時(shí)間點(diǎn)的時(shí)戳值。所述時(shí)戳值可為所述多個(gè)每倉時(shí)戳值的至少兩個(gè)每倉時(shí)戳值的函數(shù)。
[0009] 在另一實(shí)例中,本發(fā)明描述一種設(shè)備,其包含GPU。所述設(shè)備進(jìn)一步包含用于基于 由GPU在執(zhí)行圖形幀的基于瓦片的渲染時(shí)產(chǎn)生的多個(gè)每倉時(shí)戳值產(chǎn)生指示時(shí)間點(diǎn)的時(shí)戳 值的裝置。所述時(shí)戳值可為所述多個(gè)每倉時(shí)戳值的至少兩個(gè)每倉時(shí)戳值的函數(shù)。
[0010] 在另一實(shí)例中,本發(fā)明描述一種存儲指令的計(jì)算機(jī)可讀存儲媒體,所述指令在執(zhí) 行時(shí)致使一或多個(gè)處理器基于由圖形處理單元GPU在執(zhí)行圖形幀的基于瓦片的渲染時(shí)產(chǎn) 生的多個(gè)每倉時(shí)戳值產(chǎn)生指示時(shí)間點(diǎn)的時(shí)戳值。所述時(shí)戳值可為所述多個(gè)每倉時(shí)戳值的至 少兩個(gè)每倉時(shí)戳值的函數(shù)。
[0011] 在附圖和下文描述中陳述本發(fā)明的一或多個(gè)實(shí)例的細(xì)節(jié)。本發(fā)明的其它特征、目 標(biāo)和優(yōu)點(diǎn)將從所述描述和圖式以及權(quán)利要求書而顯而易見。
【附圖說明】
[0012] 圖1是說明可用以實(shí)施本發(fā)明的幀內(nèi)時(shí)戳產(chǎn)生技術(shù)的實(shí)例計(jì)算裝置的框圖。
[0013] 圖2為說明圖1中更詳細(xì)地展示的計(jì)算裝置的CPU、GPU和存儲器的框圖。
[0014] 圖3為說明細(xì)分為多個(gè)子區(qū)(例如,瓦片)的實(shí)例渲染目標(biāo)和顯示在經(jīng)細(xì)分渲染 目標(biāo)上的基元的實(shí)例集合的概念圖。
[0015] 圖4為說明根據(jù)本發(fā)明由圖形應(yīng)用發(fā)布的實(shí)例命令流的概念圖。
[0016] 圖5為說明根據(jù)本發(fā)明用于執(zhí)行渲染遍次的實(shí)例執(zhí)行時(shí)間線的概念圖。
[0017] 圖6為說明根據(jù)本發(fā)明用于執(zhí)行多個(gè)渲染遍次迭代的實(shí)例命令流的概念圖。
[0018] 圖7為說明根據(jù)本發(fā)明用于支持執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)中的幀內(nèi) 時(shí)戳的實(shí)例技術(shù)的流程圖。
[0019] 圖8為說明根據(jù)本發(fā)明用于支持執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)中的幀內(nèi) 時(shí)戳的另一實(shí)例技術(shù)的流程圖。
【具體實(shí)施方式】
[0020] 本發(fā)明描述用于支持執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)中的幀內(nèi)時(shí)戳請求的 技術(shù)?;谕咂匿秩究缮婕皩秩灸繕?biāo)(例如,幀)細(xì)分為多個(gè)倉(例如,子區(qū)或瓦片), 以及針對所述倉中的每一者執(zhí)行單獨(dú)渲染遍次迭代。幀內(nèi)時(shí)戳請求可指代可放置在與待渲 染的圖形幀相關(guān)聯(lián)的圖形命令流中的任意位置處的時(shí)戳請求。時(shí)戳請求可指代對于指示時(shí) 戳請求由處理所述時(shí)戳請求的裝置(例如,GPU或CPU)處理的時(shí)間實(shí)例的時(shí)戳值的請求。 本發(fā)明的幀內(nèi)時(shí)戳產(chǎn)生技術(shù)可基于由圖形處理單元(GPU)在執(zhí)行基于瓦片的渲染時(shí)產(chǎn)生 的一或多個(gè)每倉時(shí)戳值產(chǎn)生應(yīng)用請求的時(shí)戳值。使用每倉時(shí)戳值來產(chǎn)生應(yīng)用請求的時(shí)戳值 可允許執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)支持幀內(nèi)時(shí)戳。
[0021] 發(fā)布位于兩個(gè)不同繪制調(diào)用命令之間的幀內(nèi)時(shí)戳請求的圖形應(yīng)用可(例如)期 望響應(yīng)于所述請求傳回的時(shí)戳值對應(yīng)于第一繪制調(diào)用命令的執(zhí)行與第二繪制調(diào)用命令的 執(zhí)行之間的時(shí)間。然而,基于瓦片的渲染系統(tǒng)可以非連續(xù)方式執(zhí)行用于圖形幀的繪制調(diào)用 命令,使得一個(gè)繪制調(diào)用命令的執(zhí)行與同相同圖形幀相關(guān)聯(lián)的其它繪制調(diào)用命令的執(zhí)行交 錯(cuò)。舉例來說,基于瓦片的渲染系統(tǒng)可將與待渲染的圖形幀相關(guān)聯(lián)的繪制調(diào)用命令的執(zhí)行 細(xì)分為多個(gè)每倉繪制調(diào)用,依據(jù)倉將所述每倉繪制調(diào)用分組在一起,且執(zhí)行每倉繪制調(diào)用 的群組中的每一者作為單獨(dú)渲染遍次迭代的一部分。執(zhí)行繪制調(diào)用命令的此非連續(xù)交錯(cuò)方 式使得基于瓦片的渲染系統(tǒng)難以支持幀內(nèi)時(shí)戳。
[0022] 本發(fā)明中描述的技術(shù)可允許基于瓦片的渲染系統(tǒng)支持幀內(nèi)時(shí)戳,即使在基于瓦片 的渲染系統(tǒng)以非連續(xù)交錯(cuò)方式執(zhí)行繪制調(diào)用命令的情況下也如此。舉例來說,本發(fā)明的幀 內(nèi)時(shí)戳產(chǎn)生技術(shù)可基于由GPU在執(zhí)行基于瓦片的渲染時(shí)產(chǎn)生的多個(gè)每倉時(shí)戳值產(chǎn)生應(yīng)用 請求的時(shí)戳值。可產(chǎn)生用于產(chǎn)生應(yīng)用請求的時(shí)戳值的至少一些每倉時(shí)戳值作為不同渲染遍 次迭代的一部分。使用不同渲染遍次迭代期間產(chǎn)生的每倉時(shí)戳值可允許圖形處理系統(tǒng)產(chǎn)生 至少在一定程度上反映不同繪制調(diào)用命令在圖形幀的渲染期間執(zhí)行所花費(fèi)的相對時(shí)間量 的應(yīng)用請求的時(shí)戳值。以此方式,有用時(shí)戳值可由基于瓦片的渲染系統(tǒng)提供到圖形應(yīng)用,所 述圖形應(yīng)用采用關(guān)于不同繪制調(diào)用命令花費(fèi)的相對執(zhí)行時(shí)間量的定時(shí)統(tǒng)計(jì)。
[0023] 如本文所使用,應(yīng)用請求的時(shí)戳值可指代響應(yīng)于由圖形應(yīng)用(例如,高于軟件堆 棧中的驅(qū)動(dòng)程序水平的應(yīng)用)產(chǎn)生的時(shí)戳請求而產(chǎn)生的時(shí)戳值。每倉時(shí)戳值可指代由GPU 在執(zhí)行特定倉(例如,渲染目標(biāo)的子區(qū))的渲染遍次迭代時(shí)產(chǎn)生的時(shí)戳值。由圖形應(yīng)用產(chǎn) 生的時(shí)戳請求可被稱為應(yīng)用產(chǎn)生的時(shí)戳請求。在一些情況下,每倉時(shí)戳請求可指代由GPU 驅(qū)動(dòng)程序或由GPU(例如,低于用戶應(yīng)用層的軟件/硬件層)產(chǎn)生的時(shí)戳請求。
[0024] 在一些實(shí)例中,GPU驅(qū)動(dòng)程序或其它應(yīng)用可產(chǎn)生針對命令流中接收的應(yīng)用產(chǎn)生的 時(shí)戳請求中的每一者的多個(gè)每倉時(shí)戳請求。每倉時(shí)戳請求可由GPU服務(wù),GPU可響應(yīng)于接 收每倉時(shí)戳請求中的每一者產(chǎn)生相應(yīng)每倉時(shí)戳值。每倉時(shí)戳值可指示GPU遇到在執(zhí)行基于 瓦片的渲染時(shí)執(zhí)行的命令流中的每倉時(shí)戳請求的時(shí)間。響應(yīng)于應(yīng)用產(chǎn)生的時(shí)戳請求而產(chǎn)生 的時(shí)戳和時(shí)戳值可分別稱為應(yīng)用請求的時(shí)戳和應(yīng)用請求的時(shí)戳值。類似地,響應(yīng)于每倉時(shí) 戳請求產(chǎn)生的時(shí)戳和時(shí)戳值可分別稱為每倉時(shí)戳和每倉時(shí)戳值。
[0025] 圖形應(yīng)用(例如,在包含致使GPU渲染一或多個(gè)圖形幀的指令的主機(jī)中央處理單 元(CPU)上執(zhí)行的應(yīng)用)可常常發(fā)布多個(gè)繪制調(diào)用命令以便渲染特定圖形幀。舉例來說, GPU通常經(jīng)配置以利用針對待執(zhí)行的每一繪制調(diào)用命令的渲染狀態(tài)設(shè)定的單一集合渲染單 一類型的基元(例如,點(diǎn)、線、三角形、補(bǔ)丁等)。在此些實(shí)例中,如果需要一個(gè)以上類型的基 元來渲染幀或如果需要一個(gè)以上類型的渲染狀態(tài)來渲染所述幀,那么圖形應(yīng)用可需要發(fā)布 多個(gè)繪制調(diào)用命令來渲染單一圖形幀。
[0026] 為當(dāng)多個(gè)繪制調(diào)用命令用于渲染圖形幀時(shí)獲得用于個(gè)別繪制調(diào)用命令或所述繪 制調(diào)用命令的子集的執(zhí)行的定時(shí)統(tǒng)計(jì),圖形應(yīng)用可將時(shí)戳請求放置在待由GPU執(zhí)行的命令 流中的繪制調(diào)用命令之間。放置在用于渲染個(gè)別圖形幀的繪制調(diào)用命令之間的時(shí)戳請求可 在本文中被稱作幀內(nèi)時(shí)戳請求,且響應(yīng)于此些請求產(chǎn)生的對應(yīng)時(shí)戳可被稱為幀內(nèi)時(shí)戳。
[0027] 圖形應(yīng)用可響應(yīng)于放置到命令流中的每一時(shí)戳請求接收時(shí)戳。所述時(shí)戳可包含指 定GPU執(zhí)行時(shí)戳請求的時(shí)間的時(shí)戳值。因?yàn)閳D形命令流通常由GPU以命令放置到命令流 中的次序執(zhí)行,所以圖形應(yīng)用可期望當(dāng)時(shí)戳請求放置在命令流中的兩個(gè)鄰近繪制調(diào)用之間 時(shí),所傳回的時(shí)戳值將對應(yīng)于第一繪制調(diào)用命令的執(zhí)行與第二繪制調(diào)用命令的執(zhí)行之間發(fā) 生的時(shí)間。
[0028] 滿足上文提及的期望的時(shí)戳值可允許圖形應(yīng)用(例如)執(zhí)行各種時(shí)戳處理技術(shù)。 舉例來說,此些時(shí)戳值可用于通過取在繪制調(diào)用命令之前和之后響應(yīng)于放置于命令流中的 時(shí)戳請求傳回的時(shí)戳值之間的差而確定繪制調(diào)用命令的近似執(zhí)行時(shí)間。
[0029] 在一些實(shí)例中,基于瓦片的渲染可涉及將渲染目標(biāo)(例如,幀)細(xì)分為多個(gè)子區(qū) (例如,倉或瓦片),以及執(zhí)行包含針對渲染目標(biāo)的所述子區(qū)中的每一者的單獨(dú)渲染遍次迭 代的渲染遍次。為執(zhí)行單獨(dú)渲染遍次迭代,基于瓦片的渲染系統(tǒng)可將與待渲染的圖形幀相 關(guān)聯(lián)的繪制調(diào)用命令的執(zhí)行細(xì)分為多個(gè)每倉繪制調(diào)用,且依據(jù)倉將每倉繪制調(diào)用分組在一 起??蓤?zhí)行每倉繪制調(diào)用的群組中的每一者,作為單獨(dú)渲染遍次迭代的一部分。
[0030] 如果待渲染的圖形幀包含多個(gè)繪制調(diào)用,那么與一個(gè)繪制調(diào)用命令相關(guān)聯(lián)的每倉 繪制調(diào)用的執(zhí)行可與同相同圖形幀的其它繪制調(diào)用命令相關(guān)聯(lián)的每倉繪制調(diào)用的執(zhí)行交 錯(cuò)。然而,如上文所論述,一些類型的時(shí)戳處理技術(shù)可假定以連續(xù)方式且以圖形命令放置于 命令流中的次序執(zhí)行繪制調(diào)用命令。當(dāng)執(zhí)行基于瓦片的渲染時(shí)發(fā)生的繪制調(diào)用命令的交錯(cuò) 執(zhí)行可使得難以針對此些時(shí)戳處理技術(shù)提供有用的幀內(nèi)時(shí)戳。
[0031] 本發(fā)明的技術(shù)可用于即使在以交錯(cuò)方式執(zhí)行繪制調(diào)用命令時(shí)(歸因于基于瓦片 的植染技術(shù)的執(zhí)行)也產(chǎn)生幀內(nèi)時(shí)戳。在一些實(shí)例中,根據(jù)本發(fā)明產(chǎn)生的幀內(nèi)時(shí)戳值可模 仿或近似在執(zhí)行連續(xù)按序繪制調(diào)用處理(盡管所述繪制調(diào)用可實(shí)際上以交錯(cuò)方式執(zhí)行)的 情況下原本將獲得的時(shí)戳值,同時(shí)提供指示針對命令流中的繪制調(diào)用命令發(fā)生的相對執(zhí)行 時(shí)間量的時(shí)戳值。以此方式,時(shí)戳值可與時(shí)戳處理技術(shù)一起使用,所述時(shí)戳處理技術(shù)假定以 連續(xù)方式且以圖形命令放置于命令流中的次序執(zhí)行繪制調(diào)用命令。
[0032] 圖1是說明可用以實(shí)施本發(fā)明的幀內(nèi)時(shí)戳產(chǎn)生技術(shù)的實(shí)例計(jì)算裝置2的框圖。計(jì) 算裝置2可包括個(gè)人計(jì)算機(jī)、臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、計(jì)算機(jī)工作站、視頻游戲平臺或 控制臺、無線通信裝置(例如,移動(dòng)電話、蜂窩式電話、衛(wèi)星電話和/或移動(dòng)電話手持機(jī))、陸 線電話、因特網(wǎng)電話、手持式裝置(例如,便攜式視頻游戲裝置或個(gè)人數(shù)字助理(PDA))、個(gè) 人音樂播放器、視頻播放器、顯示裝置、電視機(jī)、電視機(jī)頂盒、服務(wù)器、中間網(wǎng)絡(luò)裝置、主機(jī)計(jì) 算機(jī),或處理和/或顯示圖形數(shù)據(jù)的任何其它類型的裝置。
[0033] 如圖1的實(shí)例中所說明,計(jì)算裝置2包含用戶接口 4、CPU 6、存儲器控制器8、存儲 器10、圖形處理單元(GPU) 12、顯示接口 14、顯示器16和總線18。用戶接口 4、CPU6、存儲 器控制器8、GPU 12和顯示接口 14可使用總線18彼此通信。應(yīng)注意,圖1中展示的不同組 件之間的總線和通信接口的特定配置僅是示范性的,且具有相同或不同組件的計(jì)算裝置和 /或其它圖形處理系統(tǒng)的其它配置可用于實(shí)施本發(fā)明的技術(shù)。
[0034] CPU 6可包括控制計(jì)算裝置2的操作的通用或?qū)S锰幚砥?。用戶可將輸入提供?計(jì)算裝置2以致使CPU 6執(zhí)行一或多個(gè)軟件應(yīng)用。在CPU 6上執(zhí)行的軟件應(yīng)用可包含(例 如)圖形應(yīng)用、文字處理器應(yīng)用、電子郵件應(yīng)用、電子數(shù)據(jù)表應(yīng)用、媒體播放器應(yīng)用、視頻游 戲應(yīng)用、圖形用戶接口應(yīng)用、操作系統(tǒng)或任何其它類型的程序。用戶可經(jīng)由一或多個(gè)輸入裝 置(未圖示)(例如,鍵盤、鼠標(biāo)、麥克風(fēng)、觸摸墊或經(jīng)由用戶接口 4耦合到計(jì)算裝置2的另 一輸入裝置)將輸入提供到計(jì)算裝置2。
[0035] 在CPU 6上執(zhí)行的軟件應(yīng)用可包含一或多個(gè)圖形渲染指令,其指示GPU 12將圖形 數(shù)據(jù)渲染到幀緩沖器以供在顯示器16上顯示。在一些實(shí)例中,圖形渲染指令可符合圖形 應(yīng)用編程接口(API),例如開放圖形庫(OpoiGLK))API、開放圖形庫嵌入系統(tǒng)(OpenGL ES) API、Direct3D API、X3D API、RenderMan API、WebGL API 或任何其它公共或?qū)S袠?biāo)準(zhǔn)圖形 API。為了處理圖形渲染指令,CPU 6可將一或多個(gè)圖形渲染命令發(fā)布到GPU12以致使GPU 12執(zhí)行圖形數(shù)據(jù)的渲染的一些或全部。在一些實(shí)例中,待渲染的圖形數(shù)據(jù)可包含例如點(diǎn)、 線、三角形、四邊形、三角形條帶等圖形基元的列表。
[0036] 存儲器控制器8促進(jìn)數(shù)據(jù)進(jìn)出存儲器10的傳遞。舉例來說,存儲器控制器8可接 收存儲器讀取和寫入命令,且服務(wù)相對于存儲器系統(tǒng)10的此些命令以便為計(jì)算裝置2中的 組件提供存儲器服務(wù)。存儲器控制器8以通信方式耦合到存儲器10。雖然存儲器控制器8 在圖1的實(shí)例計(jì)算裝置2中被說明為與CPU 6和存儲器10兩者分開的處理模塊,但在其它 實(shí)例中,存儲器控制器8的功能性中的一些或全部可實(shí)施于CPU 6和存儲器10中的一或兩 者上。
[0037] 存儲器10可存儲可由CPU 6存取以用于執(zhí)行的程序模塊和/或指令和/或由在 CPU 6上執(zhí)行的程序使用的數(shù)據(jù)。舉例來說,存儲器10可存儲與在CPU 6上執(zhí)行的應(yīng)用相 關(guān)聯(lián)的程序代碼和圖形數(shù)據(jù)。存儲器10可另外存儲由計(jì)算裝置2的其它組件使用和/或產(chǎn) 生的信息。舉例來說,存儲器10可充當(dāng)用于GPU 12的裝置存儲器且可存儲將在GPU 12上 操作的數(shù)據(jù)以及由GPU 12執(zhí)行的操作而產(chǎn)生的數(shù)據(jù)。舉例來說,存儲器10可存儲紋理緩沖 器、深度緩沖器、模板緩沖器、頂點(diǎn)緩沖器、幀緩沖器、渲染目標(biāo)或其類似者的任何組合。另 外,存儲器10可存儲命令流以供GPU 12處理。存儲器10可包含一或多個(gè)易失性或非易失 性存儲器或存儲裝置,例如隨機(jī)存取存儲器(RAM)、靜態(tài)RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、只讀 存儲器(ROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、快閃存儲器、磁性 數(shù)據(jù)媒體或光學(xué)存儲媒體。
[0038] GPU 12可經(jīng)配置以執(zhí)行由CPU 6發(fā)布到GPU 12的命令。由GPU 12執(zhí)行的命令可 包含圖形命令、繪制調(diào)用命令、GPU狀態(tài)編程命令、時(shí)戳請求、儲器傳遞命令、通用計(jì)算命令、 核心執(zhí)行命令等。
[0039] 在一些實(shí)例中,GPU 12可經(jīng)配置以執(zhí)行圖形操作以將一或多個(gè)圖形基元渲染到顯 示器16。在此些實(shí)例中,當(dāng)在CPU 6上執(zhí)行的軟件應(yīng)用中的一者需要圖形處理時(shí),CPU6可 將圖形數(shù)據(jù)提供到GPU 12且將一或多個(gè)圖形命令發(fā)布到GPU 12。圖形命令可包含例如繪 制調(diào)用命令、GPU狀態(tài)編程命令、存儲器傳遞命令、傳圖命令等。圖形數(shù)據(jù)可包含頂點(diǎn)緩沖 器、紋理數(shù)據(jù)、表面數(shù)據(jù)等。在一些實(shí)例中,CPU 6可通過將命令和圖形數(shù)據(jù)寫入到存儲器 10而將所述命令和圖形數(shù)據(jù)提供到GPU 12,存儲器10可由GPU 12存取。
[0040] 在其它實(shí)例中,GPU 12可經(jīng)配置以針對在CPU 6上執(zhí)行的應(yīng)用執(zhí)行通用計(jì)算。在 此等實(shí)例中,當(dāng)在CPU 6上執(zhí)行的軟件應(yīng)用中的一者決定將計(jì)算任務(wù)卸載到GPU 12時(shí),CPU 6可將通用計(jì)算數(shù)據(jù)提供到GPU 12,且將一或多個(gè)通用計(jì)算命令發(fā)布到GPU 12。通用計(jì)算 命令可包含例如核心執(zhí)行命令、存儲器傳遞命令等。在一些實(shí)例中,CPU 6可通過將命令和 數(shù)據(jù)寫入到可由GPU 12存取的存儲器10而將命令和通用計(jì)算數(shù)據(jù)提供到GPU