第X時(shí)戳請(qǐng)求而產(chǎn)生的時(shí) 戳的時(shí)戳值,TSV(X,y)為在第y渲染遍次迭代期間產(chǎn)生且對(duì)應(yīng)于命令流中的第X時(shí)戳請(qǐng) 求并響應(yīng)于所述第X時(shí)戳請(qǐng)求而產(chǎn)生的每倉(cāng)時(shí)戳值,TSVGPU(y)為針對(duì)所述第y渲染遍次 迭代在渲染任何基元之前產(chǎn)生的參考時(shí)戳值,且N為用于渲染圖形幀的渲染遍次迭代的數(shù) 目。在一些情況下,TSV(x,y)每倉(cāng)時(shí)戳值中的每一者可對(duì)應(yīng)于多個(gè)每倉(cāng)時(shí)戳請(qǐng)求中的相應(yīng) 一者,其中所述多個(gè)每倉(cāng)時(shí)戳請(qǐng)求中的每一者對(duì)應(yīng)于從圖形應(yīng)用接收的命令流中的第X時(shí) 戳請(qǐng)求且響應(yīng)于所述第X時(shí)戳請(qǐng)求而產(chǎn)生。在一些實(shí)例中,等式(7)可為表1中的等式的 一般化形式。
[0155] 在一些實(shí)例中,對(duì)于從圖形應(yīng)用接收的命令流中包含的時(shí)戳請(qǐng)求中的每一者,GPU 驅(qū)動(dòng)程序28可將每倉(cāng)時(shí)戳請(qǐng)求放置到每倉(cāng)命令流中的每一者中。在此些實(shí)例中,每倉(cāng)命令 流中的每一者中每倉(cāng)時(shí)戳請(qǐng)求的次序可在一些實(shí)例中與從圖形應(yīng)用接收的命令流中的對(duì) 應(yīng)時(shí)戳請(qǐng)求的次序相同。
[0156] 在其它實(shí)例中,從圖形應(yīng)用接收的命令流可包含繪制調(diào)用命令和時(shí)戳請(qǐng)求。在一 些情況下,時(shí)戳請(qǐng)求中的至少一者可定位在命令流中的繪制調(diào)用命令中的至少兩者之間。 在此些實(shí)例中,對(duì)于從圖形應(yīng)用接收的命令流中的時(shí)戳請(qǐng)求中的每一者,GPU驅(qū)動(dòng)程序28 可將每倉(cāng)時(shí)戳請(qǐng)求放置到每倉(cāng)命令流中的每一者中。此外,對(duì)于從圖形應(yīng)用接收的命令流 中的繪制調(diào)用命令中的每一者,GPU驅(qū)動(dòng)程序28可將每倉(cāng)繪制調(diào)用放置到每倉(cāng)命令流中的 每一者中。在此些實(shí)例中,每倉(cāng)命令流中的每一者中的每倉(cāng)時(shí)戳請(qǐng)求和每倉(cāng)繪制調(diào)用的次 序可在一些實(shí)例中與從圖形應(yīng)用接收的命令流中的對(duì)應(yīng)時(shí)戳請(qǐng)求和繪制調(diào)用命令的次序 相同。
[0157] 大體來(lái)說(shuō),GPU驅(qū)動(dòng)程序28和GPU 12中的一或兩者可基于每倉(cāng)時(shí)戳值產(chǎn)生應(yīng)用 請(qǐng)求的時(shí)戳和/或應(yīng)用請(qǐng)求的時(shí)戳值。在一些實(shí)例中,GPU驅(qū)動(dòng)程序28可接收來(lái)自GPU12 的每倉(cāng)時(shí)戳值,且基于所述每倉(cāng)時(shí)戳值產(chǎn)生應(yīng)用請(qǐng)求的時(shí)戳和/或時(shí)戳值。在此些實(shí)例中, GPU驅(qū)動(dòng)程序28可在一些實(shí)例中基于等式(1)-(7)中的一或多者產(chǎn)生應(yīng)用請(qǐng)求的時(shí)戳和/ 或時(shí)戳值。
[0158] 在其它實(shí)例中,GPU 12可產(chǎn)生每倉(cāng)時(shí)戳值,基于所述每倉(cāng)時(shí)戳值產(chǎn)生應(yīng)用請(qǐng)求的 時(shí)戳和/或時(shí)戳值,且將應(yīng)用請(qǐng)求的時(shí)戳和/或時(shí)戳值提供到GPU驅(qū)動(dòng)程序28。在此些實(shí) 例中,GPU 12可在一些實(shí)例中基于等式(1)-(7)中的一或多者產(chǎn)生應(yīng)用請(qǐng)求的時(shí)戳和/或 時(shí)戳值。
[0159] 在額外實(shí)例中,GPU 12可產(chǎn)生每倉(cāng)時(shí)戳值,基于每倉(cāng)時(shí)戳值產(chǎn)生一或多個(gè)中間值, 且將所述中間值提供到GPU驅(qū)動(dòng)程序28。在此些實(shí)例中,GPU驅(qū)動(dòng)程序28可接收來(lái)自GPU 12的中間值,且基于所述中間值產(chǎn)生應(yīng)用請(qǐng)求的時(shí)戳和/或時(shí)戳值。
[0160] 在一些情況下,所述中間值可對(duì)應(yīng)于等式(1)-(7)中的一或多個(gè)項(xiàng)。在額外情況 中,所述中間值可對(duì)應(yīng)于等式(1)-(7)中指定的輸入變量的任何組合。
[0161] 如圖4-6中所展示,CPU 6和/或GPU 12可基于由GPU 12在執(zhí)行圖形幀的基于 瓦片的渲染時(shí)產(chǎn)生的多個(gè)每倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于TSR2A、TSR2B、TSR2C和TSR2D的每倉(cāng) 時(shí)戳值)產(chǎn)生指示時(shí)間點(diǎn)的時(shí)戳值(例如,對(duì)應(yīng)于TSR2的時(shí)戳值)。時(shí)戳值(例如,對(duì)應(yīng) 于TSR2的時(shí)戳值)可為所述多個(gè)每倉(cāng)時(shí)戳值的至少兩個(gè)每倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于TSR2A、 TSR2B、TSR2C和TSR2D的每倉(cāng)時(shí)戳值)的函數(shù)。
[0162] 在一些實(shí)例中,所述多個(gè)每倉(cāng)時(shí)戳值中的每一者(例如,對(duì)應(yīng)于TSR2A、TSR2B、 TSR2C和TSR2D的每倉(cāng)時(shí)戳值)可由GPU 12在執(zhí)行基于瓦片的渲染時(shí)發(fā)生的多個(gè)渲染遍 次迭代中的相應(yīng)一者期間產(chǎn)生。舉例來(lái)說(shuō),TSR2A的每倉(cāng)時(shí)戳值由GPU 12在渲染遍次迭代 A期間產(chǎn)生,TSR2B的每倉(cāng)時(shí)戳值由GPU 12在渲染遍次迭代B期間產(chǎn)生,TSR2C的每倉(cāng)時(shí)戳 值由GPU 12在渲染遍次迭代C期間產(chǎn)生,且TSR2D的每倉(cāng)時(shí)戳值由GPU 12在渲染遍次迭 代D期間產(chǎn)生。
[0163] 渲染遍次迭代中的每一者可在一些實(shí)例中經(jīng)配置以渲染渲染目標(biāo)的多個(gè)子區(qū)中 的相應(yīng)一者。舉例來(lái)說(shuō),渲染遍次迭代A經(jīng)配置以渲染渲染目標(biāo)的倉(cāng)A,渲染遍次迭代B經(jīng) 配置以渲染渲染目標(biāo)的倉(cāng)B,渲染遍次迭代C經(jīng)配置以渲染渲染目標(biāo)的倉(cāng)C,且渲染遍次迭 代D經(jīng)配置以渲染渲染目標(biāo)的倉(cāng)D。
[0164] 在一些實(shí)例中,用于產(chǎn)生時(shí)戳值(例如,對(duì)應(yīng)于TSR2的時(shí)戳值)的至少兩個(gè)每倉(cāng) 時(shí)戳值可包含第一每倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于TSR2A的時(shí)戳值)和第二每倉(cāng)時(shí)戳值(例如, 對(duì)應(yīng)于TSR2B的時(shí)戳值)。第一每倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于TSR2A的時(shí)戳值)可由GPU 12 在所述多個(gè)渲染遍次迭代的第一渲染遍次迭代(例如,渲染遍次迭代A)期間產(chǎn)生。第二每 倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于TSR2B的時(shí)戳值)可由GPU 12在所述多個(gè)渲染遍次迭代的第二渲 染遍次迭代(例如,渲染遍次迭代B)期間產(chǎn)生。第二渲染遍次迭代(例如,渲染遍次迭代 B)可不同于第一渲染遍次迭代(例如,渲染遍次迭代A)。
[0165] 在其它實(shí)例中,用于產(chǎn)生時(shí)戳值(例如,對(duì)應(yīng)于TSR2的時(shí)戳值)的所述至少兩個(gè) 每倉(cāng)時(shí)戳值可進(jìn)一步包含至少兩個(gè)參考時(shí)戳值(例如,對(duì)應(yīng)于TSRGPUA、TSRGPUB、TSRGPUC、 TSRGPUD的時(shí)戳值)??稍阡秩颈榇蔚械南鄳?yīng)一者期間且在針對(duì)所述渲染遍次迭代中 的所述相應(yīng)一者渲染任何基元之前產(chǎn)生所述至少兩個(gè)參考時(shí)戳值中的每一者。舉例來(lái)說(shuō), 在渲染遍次迭代A期間且在針對(duì)渲染遍次迭代A渲染任何基元之前(例如,在執(zhí)行DRAW1A、 DRAW2A和DRAW3A之前)產(chǎn)生對(duì)應(yīng)于TSRGPUA的時(shí)戳值。
[0166] 在額外實(shí)例中,CPU 6和/或GPU 12可響應(yīng)于定位在針對(duì)圖形幀待執(zhí)行的經(jīng)排序 命令序列(命令流52)中的至少兩個(gè)繪制調(diào)用命令(例如,DRAWUDRAW2)之間的時(shí)戳請(qǐng)求 (例如,TSR2)產(chǎn)生時(shí)戳值(例如,對(duì)應(yīng)于TSR2的時(shí)戳值)。在一些實(shí)例中,可基于經(jīng)排序 命令序列中的繪制調(diào)用命令(例如,DRAWUDRAW2)在圖形幀的渲染期間執(zhí)行所花費(fèi)的相對(duì) 時(shí)間量產(chǎn)生TSR2的時(shí)戳值。
[0167] 在一些實(shí)例中,GPU 12可在執(zhí)行圖形幀的基于瓦片的渲染時(shí)執(zhí)行多個(gè)渲染遍次迭 代。渲染遍次迭代中的每一者可經(jīng)配置以執(zhí)行至少兩個(gè)每倉(cāng)繪制調(diào)用。舉例來(lái)說(shuō),渲染遍 次迭代A可經(jīng)配置以執(zhí)行DRAWlA和DRAW2A。所述至少兩個(gè)每倉(cāng)繪制調(diào)用中的每一者可與 所述至少兩個(gè)繪制調(diào)用命令中的相應(yīng)一者相關(guān)聯(lián)。舉例來(lái)說(shuō),DRAWlA可與命令流52中的 DRAWl相關(guān)聯(lián),且DRAW2A可與命令流52中的DRAW2相關(guān)聯(lián)。
[0168] 在此些實(shí)例中,用于產(chǎn)生時(shí)戳值(例如,對(duì)應(yīng)于TSR2的時(shí)戳值)的所述至少兩個(gè) 每倉(cāng)時(shí)戳值可包含第一每倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于TSR2A的時(shí)戳值)和第二每倉(cāng)時(shí)戳值(例 如,對(duì)應(yīng)于TSR2B的時(shí)戳值)。第一每倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于TSR2A的時(shí)戳值)可指示在 所述多個(gè)渲染遍次迭代的第一渲染遍次迭代(例如,渲染遍次迭代A)期間在所述至少兩個(gè) 每倉(cāng)繪制調(diào)用(例如,DRAW1A、DRAW2A)的執(zhí)行之間發(fā)生的時(shí)間點(diǎn)。第二每倉(cāng)時(shí)戳值(例如, 對(duì)應(yīng)于TSR2B的時(shí)戳值)可指示在所述多個(gè)渲染遍次迭代的第二渲染遍次迭代(例如,渲 染遍次迭代B)期間在所述至少兩個(gè)每倉(cāng)繪制調(diào)用(例如,DRAW1B、DRAW2B)的執(zhí)行之間發(fā) 生的時(shí)間點(diǎn)。第二渲染遍次迭代(例如,渲染遍次迭代B)可不同于第一渲染遍次迭代(例 如,渲染遍次迭代A)。
[0169] 在其它實(shí)例中,可響應(yīng)于多個(gè)每倉(cāng)時(shí)戳請(qǐng)求中的相應(yīng)一者(例如,分別TSR2A、 TSR2B、TSR2C和TSR2D)產(chǎn)生所述多個(gè)每倉(cāng)時(shí)戳值中的每一者(例如,對(duì)應(yīng)于TSR2A、TSR2B、 TSR2C和TSR2D的每倉(cāng)時(shí)戳值)。在此些實(shí)例中,每倉(cāng)時(shí)戳請(qǐng)求中的每一者(例如,TSR2A、 TSR2B、TSR2C和TSR2D)可放置到多個(gè)命令流中的相應(yīng)一者(例如,分別命令流56、58、60 和62)中??捎蒅PU 12在執(zhí)行基于瓦片的渲染時(shí)發(fā)生的多個(gè)渲染遍次迭代中的相應(yīng)一者 (例如,分別渲染遍次迭代A、B、C和D)期間執(zhí)行所述命令流中的每一者(例如,分別命令 流56、58、60和62)。渲染遍次迭代中的每一者(例如,渲染遍次迭代A、B、C和D)可經(jīng)配 置以植染植染目標(biāo)的多個(gè)子區(qū)中的相應(yīng)一者(例如,分別倉(cāng)A、B、C和D)。
[0170] 在一些實(shí)例中,CPU 6和/或GPU 12可基于所述多個(gè)每倉(cāng)時(shí)戳值(例如,對(duì)應(yīng)于 TSR1A-TSR1D、TSR2A-TSR2D、TSR3A-TSR3D、TSR4A-TSR4D 的每倉(cāng)時(shí)戳值)產(chǎn)生多個(gè)時(shí)戳值 (例如,對(duì)應(yīng)于了31?1331?2、了31?3331?4的時(shí)戳值)。時(shí)戳值中的每一者(例如,對(duì)應(yīng)于了31?1、 TSR2、TSR3、TSR4的時(shí)戳值)可對(duì)應(yīng)于針對(duì)圖形幀待執(zhí)行的經(jīng)排序命令序列(例如,命令流 52)中包含的多個(gè)時(shí)戳請(qǐng)求中的相應(yīng)一者(例如,分別TSR1、TSR2、TSR3、TSR4)。所述時(shí)戳 請(qǐng)求中的每一者可由圖形應(yīng)用請(qǐng)求。
[0171] 在此些實(shí)例中,時(shí)戳請(qǐng)求中的至少兩者(例如,TSR2和TSR3)可在一些實(shí)例中定 位在針對(duì)圖形幀待執(zhí)行的經(jīng)排序命令序列(例如,命令流52)中的相應(yīng)對(duì)連續(xù)繪制調(diào)用命 令(例如,分別DRAW1/DRAW2、DRAW2/DRAW3)之間。在此些實(shí)例中,CPU 6和/或GPU12可 基于每倉(cāng)時(shí)戳值產(chǎn)生所述多個(gè)時(shí)戳值(例如,對(duì)應(yīng)于TSR1、TSR2、TSR3、TSR4的時(shí)戳值)使 得針對(duì)經(jīng)排序命令序列中的時(shí)戳請(qǐng)求傳回的時(shí)戳值的值從經(jīng)排序命令序列(例如,命令流 52)的開(kāi)始向經(jīng)排序命令序列(例如,命令流52)的末尾單調(diào)增加。舉例來(lái)說(shuō),TSRl可小于 或等于TSR2, TSR2可小于或等于TSR3, TSR3可小于或等于TSR4。
[0172] 在此些實(shí)例中,所述多個(gè)時(shí)戳值(例如,對(duì)應(yīng)于TSR1、TSR2、TSR3、TSR4的時(shí)戳值) 可在一些實(shí)例中指示經(jīng)排序命令序列(例如,命令流52)中的繪制調(diào)用命令(例如,DRAW1、 D_、D_)在圖形幀的渲染期間執(zhí)行所花費(fèi)的相對(duì)時(shí)間量。舉例來(lái)說(shuō),如果DRMl在圖 形幀的渲染期間執(zhí)行所花費(fèi)的時(shí)間量大于DRAW2在圖形幀的渲染期間執(zhí)行所花費(fèi)的時(shí)間 量,那么TSR2與TSRl之間的差可在此些實(shí)例中大于TSR3與TSR2之間的差。
[0173] 在一些情況下,DRAWl在圖形幀的渲染期間執(zhí)行所花費(fèi)的時(shí)間量可對(duì)應(yīng)于與 DRAWl相關(guān)聯(lián)的每倉(cāng)繪制調(diào)用命令中的每一者在圖形幀的渲染期間執(zhí)行所花費(fèi)的總計(jì)時(shí)間 量,且DRAW2在圖形幀的渲染期間執(zhí)行所花費(fèi)的時(shí)間量可對(duì)應(yīng)于與DRAW2相關(guān)聯(lián)的每倉(cāng)繪 制調(diào)用命令中的每一者在圖形幀的渲染期間執(zhí)行所花費(fèi)的總計(jì)時(shí)間量。舉例來(lái)說(shuō),DRAWl在 圖形幀的渲染期間執(zhí)行所花費(fèi)的時(shí)間量可等于DRAW1A、DRAW1B、DRAWlC和DRAWlD執(zhí)行所 花費(fèi)的時(shí)間量的總和,且DRAW2在圖形幀的渲染期間執(zhí)行所花費(fèi)的時(shí)間量可等于DRAW2A、 DRAW2B、DRAW2C和DRAW2D執(zhí)行所花費(fèi)的時(shí)間量的總和。
[0174] 在一些實(shí)例中,GPU驅(qū)動(dòng)程序28可從圖形應(yīng)用(例如,軟件應(yīng)用24)接收時(shí)戳請(qǐng) 求(例如,TSR2)。GPU驅(qū)動(dòng)程序28可基于所述時(shí)戳請(qǐng)求(例如,TSR2)產(chǎn)生多個(gè)每倉(cāng)時(shí)戳 請(qǐng)求(例如,TSR2A、TSR2B、TSR2C、TSR2D)。GPU驅(qū)動(dòng)程序28可將每倉(cāng)時(shí)戳請(qǐng)求中的每一者 (例如,TSR2A、TSR2B、TSR2C、TSR2D)放置到多個(gè)命令流中的相應(yīng)一者(例如,分別命令流 56、58、60和62)中。命令流中的每一者(例如,命令流56、58、60、62)可由GPU 12在執(zhí)行 基于瓦片的渲染時(shí)發(fā)生的多個(gè)渲染遍次迭代中的相應(yīng)一者(例如,分別渲染遍次迭代A、B、 C和D)期間執(zhí)行。渲染遍次迭代中的每一者(例如,渲染遍次迭代A、B、C、D)可經(jīng)配置以 渲染渲染目標(biāo)的多個(gè)子區(qū)中的相應(yīng)一者(例如,分別倉(cāng)A、B、C和D)。
[0175] GPU驅(qū)動(dòng)程序28可致使GPU 12執(zhí)行命令流(例如,命令流56、58、60、62)。GPU驅(qū) 動(dòng)程序28和/或GPU 12可基于由GPU 12響應(yīng)于放置到命令流中的每倉(cāng)時(shí)戳請(qǐng)求(例如, TSR2A、TSR2B、TSR2C、TSR2D)產(chǎn)生的每倉(cāng)時(shí)戳值而產(chǎn)生時(shí)戳值(例如,TSR2)。
[0176] 圖4-6描繪包含用于渲染圖形幀的三個(gè)繪制調(diào)用命令的實(shí)例命令流和將渲染目 標(biāo)細(xì)分為四個(gè)不同子區(qū)或倉(cāng)的實(shí)例基于瓦片的渲染系統(tǒng)。然而,應(yīng)理解,本發(fā)明中描述的技 術(shù)可利用包含針對(duì)待渲染的每一圖形幀的相同或不同數(shù)目的繪制調(diào)用命令的命令流且利 用將圖形幀細(xì)分為相同或不同數(shù)目的子區(qū)或倉(cāng)的基于瓦片的渲染系統(tǒng)來(lái)實(shí)施。
[0177] 在一些實(shí)例中,可在圖5中說(shuō)明的渲染遍次迭代之前執(zhí)行裝倉(cāng)遍次。在此些實(shí)例 中,裝倉(cāng)遍次可以與渲染遍次迭代(例如,"渲染遍次迭代A")類(lèi)似的方式處理。在此些實(shí) 例中,GPU驅(qū)動(dòng)程序28和/或GPU 12可基于裝倉(cāng)遍次期間請(qǐng)求的一或多個(gè)每裝倉(cāng)遍次時(shí) 戳且基于渲染遍次的一或多個(gè)迭代期間請(qǐng)求的一或多個(gè)每倉(cāng)時(shí)戳請(qǐng)求而產(chǎn)生所述一或多 個(gè)時(shí)戳。
[0178] 在一些實(shí)例中,GPU驅(qū)動(dòng)程序28和/或GPU 12可響應(yīng)于針對(duì)待渲染的圖形幀的 多個(gè)時(shí)戳請(qǐng)求產(chǎn)生多個(gè)時(shí)戳值使得待渲染的圖形幀的所述時(shí)戳值中的至少一者不同于待 渲染的圖形幀的所述時(shí)戳值中的至少一個(gè)其它者。在其它實(shí)例中,GPU驅(qū)動(dòng)程序28和/或 GPU 12可響應(yīng)于針對(duì)待渲染的圖形幀的多個(gè)時(shí)戳請(qǐng)求產(chǎn)生多個(gè)時(shí)戳值使得所述時(shí)戳值從 待渲染的圖形幀的命令流的開(kāi)始向待渲染的圖形幀的命令流的末尾單調(diào)增加。
[0179] 圖7為說(shuō)明根據(jù)本發(fā)明用于支持執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)中的幀內(nèi) 時(shí)戳的實(shí)例技術(shù)的流程圖。CPU 6和/或GPU 12接收時(shí)戳請(qǐng)求(70)。在一些實(shí)例中,可從 在CPU 6上執(zhí)行的圖形應(yīng)用接收時(shí)戳請(qǐng)求。CPU 6和/或GPU 12基于由GPU 12在執(zhí)行圖 形幀的基于瓦片的渲染時(shí)產(chǎn)生的多個(gè)每倉(cāng)時(shí)戳值產(chǎn)生指示時(shí)間點(diǎn)的時(shí)戳值(72)。所述時(shí)戳 值可為所述多個(gè)每倉(cāng)時(shí)戳值的至少兩個(gè)每倉(cāng)時(shí)戳值的函數(shù)。
[0180] CPU 6和/或GPU 12可使用本發(fā)明中描述的技術(shù)中的任一者來(lái)產(chǎn)生時(shí)戳值。在一 些實(shí)例中,CPU 6和/或GPU 12可基于等式(1)-(7)中的一或多者產(chǎn)生時(shí)戳值。使用每倉(cāng) 時(shí)戳值產(chǎn)生時(shí)戳值可允許執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)支持幀內(nèi)時(shí)戳請(qǐng)求。
[0181] 圖8為說(shuō)明根據(jù)本發(fā)明用于支持執(zhí)行基于瓦片的渲染的圖形處理系統(tǒng)中的幀內(nèi) 時(shí)戳的另一實(shí)例技術(shù)的流程圖。在一些實(shí)例中,圖8中說(shuō)明的技術(shù)中的一些或全部可用于 執(zhí)行圖7中說(shuō)明的技術(shù)中的一些或全部。
[0182] CPU 6接收時(shí)戳請(qǐng)求(74)。在一些實(shí)例中,可從在CPU 6上執(zhí)行的圖形應(yīng)用接收 時(shí)戳請(qǐng)求。CPU 6基于所述時(shí)戳請(qǐng)求產(chǎn)生多個(gè)每倉(cāng)時(shí)戳請(qǐng)求(76)。CPU 6將每倉(cāng)時(shí)戳請(qǐng)求 中的每一者放置到多個(gè)命令流中的相應(yīng)一者中(78)。命令流中的每一者可由GPU 12在執(zhí) 行基于瓦片的渲染時(shí)發(fā)生的多個(gè)渲染遍次迭代中的相應(yīng)一者期間執(zhí)行。所述渲染遍次迭代 中的每一者可經(jīng)配置以渲染渲染目標(biāo)的多個(gè)子區(qū)中的相應(yīng)一者。
[0183] CPU 6致使GPU 12執(zhí)行命令流(80)。CPU 6和/或GPU 12基于由GPU 12響應(yīng)于 放置到命令流中的每倉(cāng)時(shí)戳請(qǐng)求產(chǎn)生的每倉(cāng)時(shí)戳值產(chǎn)生時(shí)戳值(82)。CPU 6和/或GPU 12 可使用本發(fā)明中描述的技術(shù)中的任一者來(lái)產(chǎn)生時(shí)戳值。在一些實(shí)例中,CPU 6和/或GPU12 可基于等式(1)-(7)中的一或多者產(chǎn)生時(shí)戳值。
[0184] 使用不同渲染遍次迭代期間產(chǎn)生的每倉(cāng)時(shí)戳值可允許圖形處理系統(tǒng)產(chǎn)生至少在 一定程度上反映不同繪制調(diào)用命令在圖形幀的渲染期間執(zhí)行所花費(fèi)的相對(duì)時(shí)間量的應(yīng)用 請(qǐng)求的時(shí)戳值。以此方式,本發(fā)明中描述的技術(shù)可允許基于瓦片的渲染系統(tǒng)支持幀內(nèi)時(shí)戳, 即使在基于瓦片的渲染系統(tǒng)以非連續(xù)交錯(cuò)方式執(zhí)行繪制調(diào)用命令的情況下也如此。
[0185] 本身并不引起性能代償?shù)臏?zhǔn)確幀內(nèi)時(shí)戳可難以在基于瓦片的渲染架構(gòu)上獲得。此 在可在裝倉(cāng)與直接渲染之間動(dòng)態(tài)地切換的驅(qū)動(dòng)程序上更加困難。在一些實(shí)例中,本發(fā)明的 技術(shù)可實(shí)施合理地準(zhǔn)確的代表性幀內(nèi)時(shí)戳,其可對(duì)于裝倉(cāng)和直接渲染兩者起作用。
[0186] 在一些實(shí)例中,每一時(shí)戳請(qǐng)求可改變?yōu)槊總}(cāng)時(shí)戳。在已處理針對(duì)給定渲染目標(biāo)的 渲染之后,可產(chǎn)生從倉(cāng)開(kāi)始直至每一倉(cāng)的時(shí)戳的平均時(shí)間并將其用作時(shí)戳。此可提供等效 于直接渲染組件產(chǎn)生的時(shí)戳的時(shí)戳。本發(fā)明的技術(shù)可允許基于瓦片的渲染GPU支持幀內(nèi)時(shí) 戳。
[0187] 本發(fā)明中所描述的技術(shù)可至少部分實(shí)施于硬件、軟件、固件或其任何組合中。舉例 來(lái)說(shuō),所描述技術(shù)的