亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

著色器函數(shù)鏈接圖表的制作方法

文檔序號:9732003閱讀:251來源:國知局
著色器函數(shù)鏈接圖表的制作方法
【專利說明】著色器函數(shù)鏈接圖表
【背景技術(shù)】
[0001] 圖形處理單元化PU)用于高效地處理大量數(shù)據(jù)并行計算。照此,被稱為著色器或內(nèi) 核的??诨疓PU程序必須良好地優(yōu)化W高效地運用并行硬件。著色器可W用于確定包括陰 影在內(nèi)的圖形圖像效果,諸如確定圖像元素(諸如例如像素、頂點或幾何形狀)上的光、顏色 或紋理的適當(dāng)?shù)燃墶V鬟€可W用于通用并行計算。通常通過較簡單構(gòu)成的計算的組合 來實施著色器的期望效果。一般地并且針對將構(gòu)成部分組成到期望的專口化GPU程序中的 情況并且跨大范圍的GPU而實現(xiàn)高性能是通過對著色器編寫的傳統(tǒng)方案未能解決的非常困 難的問題。

【發(fā)明內(nèi)容】

[0002] 提供本
【發(fā)明內(nèi)容】
來W簡化形式引入W下在【具體實施方式】中進一步描述的概念的 選擇。本
【發(fā)明內(nèi)容】
不意圖標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不意圖單獨地 用作幫助確定所要求保護的主題的范圍。
[0003] 本發(fā)明的實施例一般地設(shè)及著色器組裝。在運方面,著色器函數(shù)可W在沒有對特 定著色器模型的??诨蛸Y源綁定(bind)的最終化的情況下編譯。本發(fā)明的實施例通過在 將著色器呈現(xiàn)給GPU驅(qū)動器之前進行鏈接來促進最終著色器組裝和資源綁定,而不要求對 GPU驅(qū)動器或硬件的修改。
【附圖說明】
[0004] 參照附圖在下文詳細地描述本發(fā)明的實施例,其中: 圖1是適合用于實現(xiàn)本發(fā)明的實施例的示例性計算環(huán)境的框圖; 圖2是適合用于在實現(xiàn)本發(fā)明的實施例中使用的示例性計算系統(tǒng)架構(gòu)的框圖; 圖3是示出了依照本發(fā)明的實施例的組裝著色器的方法的流程圖; 圖4是示出了依照本發(fā)明的實施例的生成著色器函數(shù)鏈接圖表的方法的流程圖; 圖5是示出了依照本發(fā)明的實施例的施行著色器鏈接的方法的流程圖; 圖6A-6C圖示性地描繪了依照本發(fā)明的實施例的用于使用著色器鏈接創(chuàng)建著色器的示 例計算機程序; 圖7A圖示性地描繪了使用著色器語言的著色器的傳統(tǒng)構(gòu)造;W及 圖7B圖示性地描繪了依照本發(fā)明的實施例的使用函數(shù)鏈接圖表(FLG)API的相同著色 器的構(gòu)造。
【具體實施方式】
[0005] 在本文中W特定性來描述本發(fā)明的實施例的主題W滿足法定要求。然而,描述本 身不意圖限制本專利的范圍。而是,發(fā)明人已經(jīng)設(shè)想到,所要求保護的主題還可能W其它方 式體現(xiàn),W結(jié)合其它當(dāng)前或未來的技術(shù)而包括與本文檔中描述的那些類似的步驟的組合或 不同的步驟。而且,盡管術(shù)語"步驟"和/或"塊"在本文中可W用于意味著所采用的方法的不 同要素,但是該術(shù)語不應(yīng)當(dāng)解釋為暗示本文公開的各種步驟之間或之中的任何特定次序, 除非并且除了在明確描述各個步驟的次序時之外。
[0006] 本發(fā)明的實施例一般設(shè)及著色器組裝和計算。著色器??诨窃谟嬎銠C圖形和圖 形處理單元上的通用計算(GPGPU)中的實踐W通過使著色器計算盡可能具體(concrete)地 超前(U時ront)而發(fā)揮性能。典型地,開發(fā)者構(gòu)造用于靜態(tài)著色器??诨目蚣?,運產(chǎn)生數(shù) 百或數(shù)千個著色器變體,W表達離線地或者在運行時之前的某個其它時間處編譯的期望計 算。影響性能的構(gòu)造(諸如常量、控制流或循環(huán)展開因子)首先被參數(shù)化,并且由參數(shù)置換所 引起的大量著色器變體通常被靜態(tài)地編譯并且與最終產(chǎn)品封裝。
[0007] 存在與包括組合著色器激增(explosion)的該方案相關(guān)的若干問題:參數(shù)空間變 得如此之大,其快速地成為不可管理的。運造成巨大的著色器數(shù)據(jù)庫和二進制大小,并且要 求開發(fā)期間的過多編譯時間。著色器空間甚至可能變得如此之大使得產(chǎn)品在運行時處被迫 進入到編譯著色器變體中。
[0008] 另一方案是僅運行時編譯,其解決著色器??诨娜毕莶⑶以谄渲杏嬎阄粗钡?運行時或著色器??诨臻g變得過大的情形中采用。但是僅運行時編譯具有至少兩個主要 缺點,包括(1)不可預(yù)測的存儲器使用和大編譯時間(甚至對于小的著色器而言),其使用戶 體驗降級,W及(2)缺乏知識產(chǎn)權(quán)保護,因為著色器源代碼可W容易地從應(yīng)用提取W對算法 進行反向工程。
[0009] 試圖解決運些問題的其它方案引入其它限制。例如,DirectX 11中的化化類和接 口是通過允許編程者預(yù)編譯接口抽象方法的具體實現(xiàn)的集群并且在執(zhí)行期間指令運行時 挑選哪個具體方法來解決組合著色器激增的問題的嘗試。該方案具有許多問題:可表達性 受限,因為所有具體方法必須在編譯期間同時一起可用;分離開發(fā)的組件不能被"插入";要 求高級硬件,運限制尤其在移動市場中的接受度;硬件和驅(qū)動器實現(xiàn)可能是復(fù)雜的并且其 性能降級;接口可能展現(xiàn)出資源利用不足;并且要求整個程序編譯,運是緩慢且不可縮放 的。
[0010] 又一方案,DirectX 9片段鏈接試圖通過使用片段一計算的邏輯碎片一設(shè)計著色 器來解決組合著色器激增的問題,使得特定片段可W被選擇用于在最終著色器中執(zhí)行。然 而,所有片段必須非常仔細地設(shè)計W在特定著色器中一起工作,并且在一般情況下沒有來 自另一著色器的片段的再使用是可能的。運嚴重限制方案的可表達性和靈活性,并且其被 快速地棄用。
[0011] 在運方面,本發(fā)明的實施例促進編譯著色器函數(shù)而沒有對特定著色器模型的???化或資源綁定的最終化。本發(fā)明的一些實施例通過在將著色器呈現(xiàn)給GPU驅(qū)動器之前進行 鏈接來促進最終著色器組裝和資源綁定,而不要求對GPU驅(qū)動器或硬件的修改。W此方式, 本發(fā)明的實施例緩解組合著色器激增并且通過不要求源代碼的分發(fā)或生成來提供對知識 產(chǎn)權(quán)的保護。同樣W此方式,本發(fā)明的實施例允許函數(shù)的分離編譯,從而增強可表達性、靈 活性和代碼再使用W及改進編譯時間;新著色器在運行時處的快速創(chuàng)建,而不需要完備的 編譯;具有直通值的著色器的快速擴增,諸如將附加內(nèi)插值添加到頂點著色器;W及借由資 源插槽(slot)重映射、改變資源類型和允許資源混疊對著色器的進一步運行時??诨?br>[0012] 本發(fā)明的實施例還促進添加或修改頂點著色器的內(nèi)插輸出。本發(fā)明的實施例可 W :通過提供著色器變體空間的壓縮使要求高數(shù)目的??诨鞯挠螒蛞媸芤?通過 將DirectImage效果圖表組合到較大著色器中并且減少中間紋理來使DirectImage的用戶 受益;通過避免使用接口和不必要的緩沖區(qū)副本并且提供較低編譯時間來使諸如C++加速 大規(guī)模并行性(AMP)的用戶之類的GPGPU開發(fā)者受益。
[0013] 本發(fā)明的實施例可W使用諸如由Microsoft?針對Direct3D API開發(fā)的高級著色 器語言(HLSLXOpenGL/化、Cg或者另一合適的編程語言之類的編程語言實現(xiàn)。出于一致性 的目的,本文呈現(xiàn)的實施例的示例使用化化;然而,設(shè)想到本發(fā)明的實施例可W使用其它編 程語言實現(xiàn)。
[0014] 在一方面中,提供了具有體現(xiàn)在其上的計算機可執(zhí)行指令W用于施行用于促進著 色器的創(chuàng)建的方法的計算機存儲介質(zhì),其中該方法包括接收包括與圖形處理相關(guān)聯(lián)的一個 或多個指令和指定一個或多個圖形資源的信息的函數(shù)集合;接收資源插槽信息,資源插槽 信息指定與一個圖形資源相關(guān)聯(lián)的存儲器的部分;W及基于所接收的函數(shù)集合創(chuàng)建庫集 合,每一個庫包括指定一個或多個虛擬插槽的信息,其中每一個虛擬插槽與一個圖形資源 相關(guān)聯(lián)。該方法還包括:從庫集合中的至少一個庫確定一個或多個模塊;創(chuàng)建模塊實例集 合,每一個模塊實例基于模塊而創(chuàng)建并且包括指定一個或多個虛擬插槽的信息;W及對于 每一個模塊實例,基于指定一個或多個虛擬插槽的信息和資源插槽信息,將一個或多個虛 擬插槽綁定到資源插槽。該方法還包括接收指定一個或多個節(jié)點和圖表邊緣的節(jié)點和邊緣 信息,每一個節(jié)點對應(yīng)于函數(shù)集合中的函數(shù)、輸入簽名或輸出簽名,并且每一個圖表邊緣對 應(yīng)于在節(jié)點之間傳遞的一個或多個邊緣值;W及基于所接收的節(jié)點和邊緣信息,生成包括 節(jié)點和圖表邊緣的函數(shù)鏈接圖表(化G)實例。該方法還包括將FLG實例鏈接到模塊實例集 么 n O
[0015] 在另一方面中,提供具有體現(xiàn)在其上的計算機可執(zhí)行指令W用于施行創(chuàng)建用于確 定著色器的化G的實例的方法的計算機存儲介質(zhì),其中該方法包括接收指定著色器的輸入 參數(shù)和輸出參數(shù)的參數(shù)信息;W及基于參數(shù)信息,創(chuàng)建輸入簽名的集合和輸出簽名的集合。 該方法還包括接收函數(shù)調(diào)用的集合;每一個函數(shù)調(diào)用對應(yīng)于要包括在著色器中的函數(shù),每 一個函數(shù)包括與圖形處理相關(guān)聯(lián)的一個或多個操作;確定圖表節(jié)點的集合,其中每一個圖 表節(jié)點對應(yīng)于函數(shù)調(diào)用、輸入簽名或輸出簽名;W及確定圖表邊緣的集合,其中每一個圖表 邊緣對應(yīng)于要在節(jié)點或節(jié)點序列之間傳遞的一個或多個邊緣值,邊緣值被確定為(a)通過 函數(shù)調(diào)用所對應(yīng)于的函數(shù)的輸入值或輸出值或者(b)著色器的輸入?yún)?shù)或輸出參數(shù)。該方 法還包括確定圖表邊緣與圖表節(jié)點之間的關(guān)聯(lián)性集合,其中確定第一圖表邊緣與第一圖表 節(jié)點之間的關(guān)聯(lián)性,其中第一圖表邊緣對應(yīng)于傳遞到第一圖表節(jié)點或從其傳遞的傳遞值。
[0016] 在另一方面中,提供了一種用于確定著色器的計算機實現(xiàn)的方法。該方法包括編 譯用于施行圖形處理的函數(shù)集合,其中函數(shù)包括指定一個或多個圖形資源的信息,并且其 中編譯包括虛擬化一個或多個圖形資源。該方法還包括確定用于在具有一個或多個物理資 源的圖形管線中實現(xiàn)的著色器的一個或多個圖形處理操作。該方法還包括基于所確定的一 個或多個圖形處理操作:將所編譯的函數(shù)集合的一個或多個虛擬化資源綁定到圖形管線的 一個或多個物理資源;W及W用于由圖形處理器執(zhí)行的次序布置經(jīng)編譯的函數(shù),其在由圖 形處理器執(zhí)行時實現(xiàn)所確定的一個或多個圖形處理操作。
[0017] 已經(jīng)簡要地描述了本發(fā)明的實施例的概述,下面描述適合用于在實現(xiàn)本發(fā)明的實 施例中使用的
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1