TW202338739A - 用於底層層次包圍盒的各層級的儲存 - Google Patents
用於底層層次包圍盒的各層級的儲存 Download PDFInfo
- Publication number
- TW202338739A TW202338739A TW112102642A TW112102642A TW202338739A TW 202338739 A TW202338739 A TW 202338739A TW 112102642 A TW112102642 A TW 112102642A TW 112102642 A TW112102642 A TW 112102642A TW 202338739 A TW202338739 A TW 202338739A
- Authority
- TW
- Taiwan
- Prior art keywords
- nodes
- data
- memory
- bvh
- levels
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本文所呈現的各態樣涉及用於圖形處理的方法和設備,包括裝置(例如,GPU)。該裝置可以配置BVH結構,該BVH結構包括多個層級和多個節點,該BVH結構與場景中的多個圖元的幾何資料相關聯。該裝置亦可以標識GMEM中可用於儲存該BVH結構中的多個節點中的至少一些節點的儲存量。此外,該裝置可將該BVH結構分配到包括多個第一節點的第一BVH區段和包括多個第二節點的第二BVH區段中。該裝置亦可以將與該多個第一節點相關聯的第一資料儲存在GMEM中,並將與該多個第一節點和該多個第二節點相關聯的第二資料儲存在系統記憶體中。
Description
本專利申請案主張求於2022年2月4日提出申請的題為「STORAGE OF LEVELS FOR BOTTOM LEVEL BOUNDING VOLUME HIERARCHY(用於底層層次包圍盒的各層級的儲存)」的美國專利申請案第17/650,064號的權益,該申請案經由援引全部明確納入於此。
本案一般係關於處理系統,並且尤其係關於用於圖形處理的一或多個技術。
計算設備通常執行圖形及/或顯示處理(例如,利用圖形處理單元(GPU)、中央處理單元(CPU)、顯示處理器等)來渲染和顯示可視內容。此類計算設備可包括例如電腦工作站、行動電話(諸如智慧型電話)、嵌入式系統、個人電腦、平板電腦和視訊遊戲控制台。GPU被配置成執行圖形處理流水線,該圖形處理流水線包括一或多個處理級,這些處理級一起操作以執行圖形處理命令並輸出訊框。中央處理單元(CPU)可以經由向GPU發出一或多個圖形處理命令來控制該GPU的操作。現代CPU通常能夠併發地執行多個應用,每個應用可能需要在執行期間利用GPU。顯示處理器被配置成將從CPU接收的數位資訊轉換成類比值,並且可以向顯示面板發出命令以顯示可視內容。提供用於在顯示器上可視呈現的內容的設備可以利用GPU及/或顯示處理器。
目前,存在改進圖形處理的需要。例如,圖形處理中的當前節點儲存技術可能不能高效地儲存加速結構。因此,對改進的節點儲存技術的需求增加,以高效地儲存加速結構。
以下提供了一或多個態樣的簡要概述以提供對此類態樣的基本理解。此概述不是所有構想到的態樣的詳盡綜覽,並且既非意欲標識出所有態樣的關鍵性或決定性要素亦非試圖界定任何或所有態樣的範疇。其唯一目的是以簡化形式提供一或多個態樣的一些概念以作為稍後提供的更詳細描述之序言。
在本案的一態樣,提供了一種方法、電腦可讀取媒體和裝置。該裝置可以是圖形處理單元(GPU)、GPU或可執行圖形處理的任何裝置。該裝置可以配置層次包圍盒(BVH)結構,該BVH結構包括多個層級和多個節點,該多個層級中的每一者包括該多個節點中的至少一個節點,該BVH結構與場景中的多個圖元的幾何資料相關聯。該裝置亦可以標識圖形記憶體(GMEM)中可用於儲存BVH結構中的多個節點中的至少一些節點的儲存量。附加地,該裝置可基於GMEM中的儲存量來將BVH結構分配到包括多個第一節點的第一BVH區段和包括多個第二節點的第二BVH區段中,該BVH結構是基於包括多個第一節點和多個第二節點的多個節點的層次來分配的。該裝置亦可以將與該多個第一節點相關聯的第一資料儲存在GMEM中,並將與該多個第一節點和該多個第二節點相關聯的第二資料儲存在系統記憶體中。該裝置亦可以在檢索第一資料或第二資料中的至少一者之前計算該多個第一節點的第一位址或該多個第二節點的第二位址中的至少一者,其中第一資料或第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。此外,該裝置可以在儲存第一資料和第二資料之際從GMEM中檢索第一資料或從系統記憶體中檢索第二資料中的至少一者。該裝置亦可基於第一資料或第二資料中的至少一者來執行用於該多個節點中的多個內部節點的光線三角形相交或用於該多個節點中的多個葉節點的光線盒相交中的至少一者。
在附圖和以下描述中闡述了本案的一或多個實例的細節。本案的其他特徵、物件、以及優點將可從該描述和附圖、以及申請專利範圍中變得明白。
以下參照附圖更全面地描述系統、裝置、電腦程式產品和方法的各種態樣。然而,本案可用許多不同形式來實施並且不應解釋為被限於本案通篇提供的任何具體結構或功能。確切而言,提供這些態樣是為了使本案將是透徹和完整的,並且其將向本發明所屬領域中具有通常知識者完全傳達本案的範疇。基於本文中的教導,本發明所屬領域中具有通常知識者應領會到,本案的範疇意欲覆蓋本文中揭示的系統、裝置、電腦程式產品以及方法的任何態樣,不論其是獨立實現的還是與本案的其他態樣組合實現的。例如,可使用本文中所闡述的任何數目的態樣來實現裝置或實踐方法。另外,本案的範疇意欲覆蓋使用作為本文中所闡述的本案的各個態樣的補充或者另外的其他結構、功能性、或者結構及功能性來實踐的此類裝置或方法。本文中所揭示的任何態樣可由請求項的一或多個元素來實施。
儘管本文描述了各種態樣,但這些態樣的眾多變體和置換落在本案的範疇之內。儘管提到了本案的各態樣的一些潛在益處和優點,但本案的範疇並非意欲被限定於特定益處、用途或目標。確切而言,本案的各態樣意欲寬泛地適用於不同的無線技術、系統組態、網路、和傳輸協定,其中一些藉由實例在附圖和以下描述中圖示。詳細描述和附圖僅僅圖示本案而非限定本案,本案的範疇由所附請求項及其等效技術方案來定義。
參考各種裝置和方法提供若干態樣。這些裝置和方法在以下詳細描述中進行描述並在附圖中由各種方塊、部件、電路、程序、演算法等(統稱為「元素」)來圖示。這些元素可使用電子硬體、電腦軟體、或其任何組合來實現。此類元素是實現成硬體還是軟體取決於具體應用和加諸於整體系統上的設計約束。
作為實例,元素、或元素的任何部分、或者元素的任何組合可被實現為包括一或多個處理器(其亦可被稱為處理單元)的「處理系統」。處理器的實例包括:微處理器、微控制器、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、應用處理器、數位訊號處理器(DSP)、精簡指令集計算(RISC)處理器、片上系統(SOC)、基頻處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、閘控邏輯、個別的硬體電路以及其他配置成執行本案中通篇描述的各種功能性的其他合適硬體。處理系統中的一或多個處理器可以執行軟體。軟體可被寬泛地解釋成意為指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體部件、應用、軟體應用、套裝軟體、常式、子常式、物件、可執行件、執行的執行緒、規程、函數等,無論其是用軟體、韌體、中介軟體、微代碼、硬體描述語言、還是其他術語來述及皆是如此。術語應用可以指軟體。如本文所描述的,一或多個技術可以指被配置成執行一或多個功能的應用,即軟體。在此類實例中,應用可被儲存在記憶體(例如,處理器的片上記憶體、系統記憶體或任何其他記憶體)上。本文所描述的硬體(諸如處理器)可以被配置成執行應用。例如,應用可以被描述為包括代碼,該代碼在由硬體執行時使該硬體執行本文所描述的一或多個技術。作為實例,硬體可以從記憶體存取碼並執行從記憶體存取的代碼,以執行本文所描述的一或多個技術。在一些實例中,在本案中標識各部件。在此類實例中,各部件可以是硬體、軟體或其組合。各部件可以是單獨的部件或單個部件的子部件。
相應地,在本文所描述的一或多個實例中,所描述的功能可以在硬體、軟體、或其任何組合中實現。若在軟體中實現,則各功能可作為一或多數指令或代碼儲存或編碼在電腦可讀取媒體上。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是可被電腦存取的任何可用媒體。作為實例而非限制,此類電腦可讀取媒體可包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式設計ROM(EEPROM)、光碟儲存、磁碟儲存、其他磁性存放裝置、上述類型的電腦可讀取媒體的組合、或能夠被用於儲存可被電腦存取的指令或資料結構形式的電腦可執行代碼的任何其他媒體。
一般而言,本案描述了用於在單個設備或多個設備中具有圖形處理流水線、改進圖形內容的渲染及/或減少處理單元(亦即,被配置成執行本文所描述的一或多個技術的任何處理單元,諸如GPU)的負載的技術。例如,本案描述了用於在利用圖形處理的任何設備中進行圖形處理的技術。貫穿本案描述了其他實例益處。
如本文所使用的,術語「內容」的實例可以代表「圖形內容」、「影像」,反之亦然。不管這些術語是用作形容詞、名詞還是其他詞類,皆是如此。在一些實例中,如本文所使用的,術語「圖形內容」可以指由圖形處理流水線的一或多個程序產生的內容。在一些實例中,如本文所使用的,術語「圖形內容」可以指由被配置成執行圖形處理的處理單元產生的內容。在一些實例中,如本文所使用的,術語「圖形內容」可以指由圖形處理單元產生的內容。
在一些實例中,如本文所使用的,術語「顯示內容」可以指由被配置成執行顯示處理的處理單元產生的內容。在一些實例中,如本文所使用的,術語「顯示內容」可以指由顯示處理單元產生的內容。圖形內容可以被處理以成為顯示內容。例如,圖形處理單元可以將圖形內容(諸如訊框)輸出到緩衝器(其可以被稱為訊框緩衝器)。顯示處理單元可以從緩衝器讀取圖形內容(諸如一或多個訊框),並在其上執行一或多個顯示處理技術以產生顯示內容。例如,顯示處理單元可以被配置成在一或多個渲染層上執行合成以產生訊框。作為另一實例,顯示處理單元可以被配置成將兩個或兩個以上層一起合成、混合或以其他方式組合成單個訊框。顯示處理單元可被配置成對訊框執行縮放,例如,放大或縮小。在一些實例中,訊框可以指層。在其他實例中,訊框可以指已經被混合在一起以形成該訊框的兩個或兩個以上層,亦即,該訊框包括兩個或兩個以上層,並且包括兩個或兩個以上層的該訊框可以隨後被混合。
圖形處理的各態樣可以將光線追蹤資料儲存在不同類型的記憶體(例如,系統記憶體)中。然而,光線追蹤效能的一個潛在問題是可用的記憶體頻寬量,因為從記憶體(例如,系統記憶體)存取資料可能需要大量的存取週期。在一些實例中,幾何資料可被儲存在加速結構(例如,層次包圍盒(BVH)結構)中。對於光線追蹤程序之每一者光線,GPU可能需要從根節點(亦即,樹結構中的頂部節點)遍歷到葉節點。BVH結構可以與包括數個圖元的圖形處理場景相關聯。此外,這些圖元中的每一者可以對應於BVH結構中的節點之一。在圖形處理的一些態樣,將這些加速結構(例如,BVH結構)載入到GPU處的片上圖形記憶體中可以説明實現對資料的更快存取並最終實現更快的光線追蹤效能。然而,在一些實例中,加速結構(例如,BVH結構)的大小可以比片上記憶體的大小大得多。為了克服這種大小差異,可以以與頂層加速結構類似的方式將較小的加速結構載入到片上記憶體上。此外,一些小的底層加速結構(亦即,與頂層加速結構相比大小上較小)亦可被放置在片上記憶體中。然而,由於底層加速結構的組織,可能難以從片上記憶體存取這些底層加速結構。如此,這些底層加速結構可能無法足夠頻繁地被存取以滿足光線追蹤效能規範。本案的各態樣可以最佳化與光線追蹤程序相關聯的加速結構(例如,BVH結構)的儲存。例如,本案的各態樣可以將底層加速結構儲存在某些類型的記憶體中,以使得這些結構易於存取。為了這樣做,本案的各態樣可以將底層BVH結構儲存在片上圖形記憶體(GMEM)中,以及將底層BVH結構儲存在系統記憶體(SYSMEM)中。經由這樣做,本文所呈現的各態樣可以更容易地從片上圖形記憶體存取BVH結構。在一些實例中,本案的各態樣可以將底層BVH結構的不同層級儲存在片上圖形記憶體和系統記憶體兩者中。
圖1是圖示被配置成實現本案的一或多個技術的實例內容產生系統100的方塊圖。內容產生系統100包括設備104。設備104可包括用於執行本文所描述的各種功能的一或多個部件或電路。在一些實例中,設備104的一或多個部件可以是SOC的各部件。設備104可包括被配置成執行本案的一或多個技術的一或多個部件。在所示的實例中,設備104可包括處理單元120、內容編碼器/解碼器122和系統記憶體124。在一些態樣,設備104可包括數個其他部件,例如,通訊介面126、收發機132、接收器128、發射器130、顯示處理器127和一或多個顯示器131。對顯示器131的引用可以指一或多個顯示器131。例如,顯示器131可包括單個顯示器或多個顯示器。顯示器131可包括第一顯示器和第二顯示器。第一顯示器可以是左眼顯示器,而第二顯示器可以是右眼顯示器。在一些實例中,第一和第二顯示器可以接收用於在其上呈現的不同訊框。在其他實例中,第一和第二顯示器可以接收用於在其上呈現的相同訊框。在進一步的實例中,圖形處理的結果可以不在設備上顯示,例如,第一和第二顯示器可以不接收用於在其上呈現的任何訊框。相反,訊框或圖形處理結果可以被傳遞到另一設備。在一些態樣,這可以被稱為分割渲染。
處理單元120可包括內部記憶體121。處理單元120可被配置成執行圖形處理(諸如在圖形處理流水線107中)。內容編碼器/解碼器122可包括內部記憶體123。在一些實例中,設備104可包括顯示處理器(諸如顯示處理器127),以對在由一或多個顯示器131呈現之前由處理單元120產生的一或多個訊框執行一或多個顯示處理技術。顯示處理器127可被配置成執行顯示處理。例如,顯示處理器127可被配置成對由處理單元120產生的一或多個訊框執行一或多個顯示處理技術。該一或多個顯示器131可被配置成顯示或以其他方式呈現由顯示處理器127處理的訊框。在一些實例中,該一或多個顯示器131可包括以下各項中的一者或多者:液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器、投影顯示裝置、增強現實顯示裝置、虛擬實境顯示裝置、頭戴式顯示器或任何其他類型的顯示裝置。
處理單元120和內容編碼器/解碼器122外部的記憶體(諸如系統記憶體124)可以被處理單元120和內容編碼器/解碼器122存取。例如,處理單元120和內容編碼器/解碼器122可以被配置成從外部記憶體(諸如系統記憶體124)讀取及/或寫入外部記憶體。處理單元120和內容編碼器/解碼器122可以經由匯流排通訊地耦合到系統記憶體124。在一些實例中,處理單元120和內容編碼器/解碼器122可以經由匯流排或不同的連接彼此通訊地耦合。
內容編碼器/解碼器122可被配置成從任何源(諸如系統記憶體124及/或通訊介面126)接收圖形內容。系統記憶體124可被配置成儲存接收到的經編碼或經解碼的圖形內容。內容編碼器/解碼器122可被配置成以經編碼圖元資料的形式例如從系統記憶體124及/或通訊介面126接收經編碼的或經解碼的圖形內容。內容編碼器/解碼器122可被配置成對任何圖形內容進行編碼或解碼。
內部記憶體121或系統記憶體124可包括一或多個揮發性或非揮發性記憶體或存放裝置。在一些實例中,內部記憶體121或系統記憶體124可包括RAM、SRAM、DRAM、可抹除可程式設計ROM(EPROM)、電子可抹除可程式設計ROM(EEPROM)、快閃記憶體、磁性資料媒體或光學儲存媒體或任何其他類型的記憶體。
根據一些實例,內部記憶體121或系統記憶體124可以是非瞬態儲存媒體。術語「非瞬態」可指示儲存媒體未被實施在載波或傳播信號中。然而,術語「非瞬態」不應被解釋為意味著內部記憶體121或系統記憶體124是不可移動的或者其內容是靜態的。作為一個實例,系統記憶體124可以從設備104移除並移動到另一設備。作為另一實例,系統記憶體124可能不可從設備104移除。
處理單元120可以是中央處理單元(CPU)、圖形處理單元(GPU)、通用GPU(GPGPU)或可被配置成執行圖形處理的任何其他處理單元。在一些實例中,處理單元120可被整合到設備104的主機板中。在一些實例中,處理單元120可以存在於安裝在設備104的主機板中的埠中的圖形卡上,或者可以以其他方式納入被配置成與設備104互動操作的周邊設備中。處理單元120可包括一或多個處理器,諸如一或多個微處理器、GPU、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、算數邏輯單位(ALU)、數位訊號處理器(DSP)、離散邏輯、軟體、硬體、韌體、其他等效的整合或離散邏輯電路系統或其任何組合。若這些技術部分地在軟體中實現,則處理單元120可將軟體指令儲存在合適的、非瞬態電腦可讀取儲存媒體(例如,內部記憶體121)中,並且可使用一或多個處理器來在硬體中執行這些指令以執行本案的技術。前述任何一種(包括硬體、軟體、硬體和軟體的組合等)可以被認為是一或多個處理器。
內容編碼器/解碼器122可以是被配置成執行內容解碼的任何處理單元。在一些實例中,內容編碼器/解碼器122可以被整合到設備104的主機板中。內容編碼器/解碼器122可包括一或多個處理器,諸如一或多個微處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、算數邏輯單位(ALU)、數位訊號處理器(DSP)、視訊處理器、離散邏輯、軟體、硬體、韌體、其他等效的整合或離散邏輯電路系統或其任何組合。若這些技術部分地在軟體中實現,則內容編碼器/解碼器122可將軟體指令儲存在合適的、非瞬態電腦可讀取儲存媒體(例如,內部記憶體123)中,並且可使用一或多個處理器來在硬體中執行這些指令以執行本案的技術。前述任何一種(包括硬體、軟體、硬體和軟體的組合等)可以被認為是一或多個處理器。
在一些態樣,內容產生系統100可包括通訊介面126。通訊介面126可包括接收器128和發射器130。接收器128可被配置成執行本文中關於設備104描述的任何接收方功能。附加地,接收器128可被配置成從另一設備接收資訊,例如,眼睛或頭部位置資訊、渲染命令或位置資訊。發射器130可被配置成執行本文中關於設備104描述的任何傳送方功能。例如,發射器130可被配置成向另一設備傳送資訊,該資訊可包括對內容的請求。接收器128和發射器130可被組合成收發機132。在此類實例中,收發機132可被配置成執行本文中關於設備104描述的任何接收方功能及/或傳送方功能。
再次參考圖1,在某些態樣,處理單元120可包括BVH儲存結構198,該BVH儲存結構198被配置成配置層次包圍盒(BVH)結構,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元的幾何資料相關聯。BVH儲存結構198亦可以被配置成標識圖形記憶體(GMEM)中可用於儲存BVH結構中的複數個節點中的至少一些節點的儲存量。BVH儲存結構198亦可以被配置成基於GMEM中的儲存量來將BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中,該BVH結構是基於包括複數個第一節點和複數個第二節點的復個節點的層次來分配的。BVH儲存結構198亦可以被配置成將與該複數個第一節點相關聯的第一資料儲存在GMEM中,並將與該複數個第一節點和該複數個第二節點相關聯的第二資料儲存在系統記憶體中。BVH儲存結構198亦可以被配置成在檢索第一資料或第二資料中的至少一者之前計算該複數個第一節點的第一位址或該複數個第二節點的第二位址中的至少一者,其中第一資料或第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。BVH儲存結構198亦可以被配置成在儲存第一資料和第二資料之際從GMEM中檢索第一資料或從系統記憶體中檢索第二資料中的至少一者。BVH儲存結構198亦可以被配置成基於第一資料或第二資料中的至少一者來執行用於該複數個節點中的複數個內部節點的光線三角形相交或用於該複數個節點中的複數個葉節點的光線盒相交中的至少一者。儘管以下描述可以集中於圖形處理,但是本文中描述的概念可以適用於其他類似的處理技術。
如本文所描述的,設備(諸如設備104)可以是指被配置成執行本文所描述的一或多個技術的任何設備、裝置或系統。例如,設備可以是伺服器、基地台、使用者裝備、客戶端設備、站、存取點、電腦(例如,個人電腦、桌上型電腦、膝上型電腦、平板電腦、電腦工作站、或大型電腦)、最終產品、裝置、電話、智慧型電話、伺服器、視訊遊戲平臺或控制台、掌上型設備(例如,可攜式視訊遊戲裝置或個人數位助理(PDA))、可穿戴計算設備(例如,智慧手錶、增強現實設備或虛擬實境設備)、非可穿戴設備、顯示器或顯示裝置、電視、電視機上盒、中間網路設備、數位媒體播放機、視訊流式設備、內容流式設備、車載電腦、任何行動設備、被配置成產生圖形內容的任何設備、或被配置成執行本文所描述的一或多個技術的任何設備。本文的程序可以被描述為由特定部件(例如,GPU)執行,但是在進一步的實施例中,可以使用與所揭示的實施例一致的其他部件(例如,CPU)來執行。
GPU可以在GPU流水線中處理多種類型的資料或資料封包。例如,在一些態樣,GPU可以處理兩種類型的資料或資料封包,例如,上下文暫存器封包和繪製調用資料。上下文暫存器封包可以是一組全域狀態資訊,例如,關於全域暫存器、著色程式或常數資料的資訊,其可以調節圖形上下文將如何被處理。例如,上下文暫存器封包可包括關於顏色格式的資訊。在上下文暫存器封包的一些態樣,可能存在指示哪個工作負載屬於上下文暫存器的位元。此外,可能存在同時及/或並行執行的多個功能或程式。例如,功能或程式可以描述某個操作,例如,顏色模式或顏色格式。因此,上下文暫存器可以定義GPU的多個狀態。
可以利用上下文狀態來決定個體處理單元(例如,頂點提取器、頂點著色器(VS)、著色器處理器或幾何處理器)如何工作及/或處理單元以什麼模式工作。為了這樣做,GPU可以使用上下文暫存器和程式設計資料。在一些態樣,GPU可基於模式或狀態的上下文暫存器定義在流水線中產生工作負載(例如,頂點或圖元工作負載)。某些處理單元(例如,頂點提取器)可以使用這些狀態來決定某些功能,例如,頂點是如何組裝的。由於這些模式或狀態可能改變,因此GPU可能需要改變對應的上下文。附加地,與模式或狀態相對應的工作負載可以遵循改變的模式或狀態。
圖2圖示了根據本案的一或多個技術的實例GPU 200。如圖2所示,GPU 200包括命令處理器(CP)210、繪製調用封包212、頂點提取器220、VS 222、頂點快取記憶體(VPC)224、三角形設立引擎226、光柵化器228、Z處理引擎(ZPE)230、圖元內插器(PI)232、片段著色器(FS)234、渲染後端(RB)236、級別2(L2)快取記憶體(UCHE)238和系統記憶體240。 儘管圖2顯示GPU 200包括處理單元220-238,但是GPU 200亦可包括數個額外處理單元。附加地,處理單元220-238僅僅是一實例,並且處理單元的任何組合或順序可由根據本案的GPU使用。GPU 200亦包括命令緩衝器250、上下文暫存器封包260和上下文狀態261。
如圖2所示,GPU可利用CP(例如,CP 210)或硬體加速器來將命令緩衝器解析為上下文暫存器封包(例如,上下文暫存器封包260)及/或繪製調用資料封包(例如,繪製調用封包212)。隨後,CP 210可以經由單獨的路徑將上下文暫存器封包260或繪製調用封包212發送到GPU中的處理單元或塊。此外,命令緩衝器250可以交替上下文暫存器和繪製調用的不同狀態。例如,命令緩衝器可以按以下方式來結構化:上下文N的上下文暫存器、上下文N的(諸)繪製調用、上下文N+1的上下文暫存器和上下文N+1的(諸)繪製調用。
GPU可以按各種不同的方式渲染影像。在一些實例中,GPU可以使用渲染及/或平鋪渲染來渲染影像。在平鋪渲染GPU中,影像可以被劃分或分割成不同的部分或圖塊。在劃分影像之後,可以單獨渲染每個部分或圖塊。平鋪渲染GPU可以將電腦圖形影像劃分成網格格式,以使得網格的每個部分(即圖塊)被單獨渲染。在一些態樣,在分箱階段期間,影像可以被劃分成不同的箱或圖塊。在一些態樣,在分箱階段期間,可以構建可見串流,其中可以標識可見圖元或繪製調用。與平鋪渲染相反,直接渲染不會將訊框劃分成更小的箱或圖塊。相反,在直接渲染中,整個訊框是一次渲染的。附加地,一些類型的GPU可允許平鋪渲染和直接渲染兩者。
圖形處理的一些態樣可以利用不同類型的渲染技術,諸如光線追蹤。光線追蹤是用於經由追蹤針對影像平面中的圖元的光路並類比其與場景中物件相遇的效果來產生影像的渲染技術。經由這樣做,光線追蹤可以產生非常逼真的照明效果。光線追蹤具有數種益處,其包括:提供更逼真的效果(例如,反射)、改進的全域照明、改進的光澤效果、改進的景深等。光線追蹤亦可以幫助產生不同類型的改進的陰影,諸如硬陰影及/或軟陰影。光線追蹤的一些效果可包括間接照明和圖示焦散的能力(亦即,當光線從表面反射或折射時出現的光和顏色的圖案)。作為結果,光線追蹤可能導致照片級逼真影像的產生。光線追蹤可以由圖形處理或資料處理內的數個不同處理器(諸如圖形處理單元(GPU)或中央處理單元(CPU))利用。
圖3圖示了包括光線追蹤程序的一個實例的示圖300。如圖3所示,示圖300包括相機310、包括圖元322的影像平面320、場景物件330、光源340、視圖光線350和陰影光線352。圖3圖示從相機310且經由影像平面320追蹤視圖光線350。在經由影像平面320之後,視圖光線350被追蹤到場景物件330。視圖光線350中的至少一些被追蹤離開場景物件330,並且作為陰影光線352被追蹤到光源340。因此,陰影光線352和視圖光線350可以追蹤來自光源340的光。圖3圖示了光線追蹤可如何經由追蹤針對影像平面中的圖元(例如,影像平面320中的圖元322)的光路(例如,來自光源340)來產生影像。
光線追蹤與圖形處理中利用的數種其他渲染技術(諸如光柵化)是可區分的。在光柵化的程序中,對於場景中每個圖元之每一者圖元,若該圖元的一部分被圖元覆蓋,則該圖元可以被著色。相反,在光線追蹤程序中,對於與場景中的圖元相對應的每個圖元,產生光線。若所產生的光線被決定為擊中或相交於某個圖元,則圖元被著色。在圖形處理的一些實例中,光線追蹤演算法可以與光柵化一起被執行(諸如經由混合光線追蹤/光柵化模型)。
圖4A和圖4B分別圖示了包括光柵化的實例程序和光線追蹤的實例程序的示圖400和示圖450。如圖4A所示,示圖400包括場景物件410和圖元420。圖4A圖示了對於包括場景物件410的場景之每一者圖元420光柵化的程序在該圖元的一部分被圖元覆蓋的情況下決定該圖元被著色。如圖4B所示,示圖450包括場景物件460、圖元470、光源480、陰影光線482和主光線484。圖4B圖示了光線追蹤的程序在所產生的光線(例如,陰影光線482)將擊中或相交於場景物件460中與經由主光線484的圖元470之一相對應的某個圖元的情況下決定該圖元被著色。
如本文中所指示的,光線追蹤的程序可以經由決定光線是否將擊中/相交於場景中的(諸)任何圖元來執行。例如,光線追蹤演算法可以執行簡單的詢問操作:給定的光線會擊中/相交於場景中的(諸)任何圖元嗎?光線追蹤的程序是計算密集型的,因為可以針對大量的圖元/三角形來追蹤大量的光線,這可以利用大量的光線-三角形相交測試。例如,在一個光線追蹤規程中,可以針對大約100萬個圖元/三角形追蹤大約100萬條光線,這可以利用大約1萬億個光線-三角形相交測試。在光線追蹤程序的一些態樣,給定光線的原點可以由O(N)表示。此外,可以存在針對光線計算出的數個值,諸如與場景中的圖元相交的最小時間(t
min)、與場景中的圖元相交的最大時間(t
max)以及與場景中的圖元相交的計算出的距離。
圖5圖示了包括光線追蹤程序的一個實例的示圖500。如圖5所示,示圖500包括光線的原點(O(N) 510)、與場景中的圖元相交的最小時間(t
min520)、與場景中的圖元相交的最大時間(t
max522)、與場景中的圖元相交的計算出的距離(距離530)、以及場景中的數個圖元(圖元540、圖元541和圖元542)。圖5圖示光線追蹤技術可以利用數個值來決定光線是否將擊中圖元。例如,為了決定光線是否將與圖元相交,光線追蹤技術可以利用光線的原點(O(N) 510)、與圖元相交的最小時間(t
min520)、與圖元相交的最大時間(t
max522)、與圖元相交的計算出的距離(距離530)、以及數個圖元(圖元540、圖元541和圖元542)。
光線追蹤可以利用各種資料結構來加速計算程序,諸如層次包圍盒(BVH)。在層次包圍盒中,圖元被保存在葉節點中。此外,內部節點可以保持存取包圍某些葉節點幾何的對準邊界框(AABB)。用於光線追蹤的資料結構亦可以將光線盒相交用於內部節點及/或將光線-三角形測試用於葉節點。這些類型的資料結構可以降低光線追蹤程序的計算複雜度(N),例如,將計算複雜度(N)降低log(N)。
圖6A和6B分別圖示了包括在光線追蹤中利用的實例資料結構技術的示圖600和示圖650。如圖6A所示,示圖600包括數個節點(內部節點N
611-N
617)和數個圖元(圖元O
621-O
628)。圖6A圖示了針對內部節點N
611-N
617和圖元O
621-O
628的光線盒相交。如圖6B所示,示圖650包括數個節點(葉節點N
661-N
667)和數個圖元(圖元O
671-O
678)。圖6B圖示了針對葉節點N
661-N
667和圖元O
671-O
678的光線-三角形測試。圖6A和6B中的兩種資料結構技術(例如,光線盒相交和光線-三角形測試)意欲降低光線追蹤的計算複雜度。
如本文中所指示的,在光線追蹤程序期間存在數個不同的階段。例如,光線追蹤的各階段可包括:層次包圍盒構建和細化、光線產生、層次包圍盒遍歷、光線-三角形相交和光線盒相交。在層次包圍盒構建期間亦可能存在不同的步驟,包括將三角形劃分成多個群,在每個群周圍形成邊界框,以及遞迴地劃分每個群。附加地,在層次包圍盒構建期間,可能存在若干種劃分方式,這可能導致某個數量的可能解,例如,2
n log n 個解。作為結果,這些改進的解可以產生改進的光線追蹤效能。
光線追蹤的各態樣亦可以利用數種層次包圍盒演算法,諸如分割層次包圍盒(SBVH)和線性層次包圍盒(LBVH)。在一些實例中,與LBVH相比,SBVH可能導致更慢的構建時間和更好的品質。同樣,與SBVH相比,LBVH可能導致更快的構建時間和更差的品質。附加地,光線追蹤的一些態樣可以利用層次包圍盒細化。在層次包圍盒細化中,給定每蔓葉線具有一個三角形的二元BVH,光線追蹤技術可以置換樹拓撲。層次包圍盒細化可以利用不同的演算法,例如,小樹重構BVH(TRBVH)和平行重新插入BVH(PRBVH)。光線追蹤的一些態樣亦可以利用BVH加寬,其可以將二叉樹(亦即,初始BVH)轉換為比二叉樹或初始BVH更寬的寬BVH。例如,初始BVH中的層次可包括三個層級,其中圖元被包括在該層次的第三層級中。寬BVH中的層次可包括兩個層級,其中圖元被包括在該層次的第二層級中。在BVH加寬的一些實例中,寬BVH可包括具有某個量的AABB(例如,至多達八個AABB)的內部節點和具有某個量的圖元/三角形(例如,至多達四個圖元/三角形)的葉節點。
光線追蹤的一些態樣可以利用層次包圍盒壓縮。例如,光線追蹤技術可以壓縮寬節點以容納固定大小(例如,64位元組)。BVH壓縮可包括壓縮一定量的AABB(例如,八個AABB)及/或第一子索引的內部節點壓縮。BVH壓縮亦可包括葉節點壓縮,其壓縮某個量的圖元/三角形(例如,至多達四個圖元/三角形)和對應的索引。此外,光線追蹤技術可以利用層次包圍盒遍歷,諸如寬BVH的寬度優先搜尋遍歷及/或深度優先搜尋遍歷。光線追蹤產生的一些態樣可以利用在空中產生光線的操作。例如,可以產生數種不同類型的光線,諸如主光線、陰影光線及/或副光線。
附加地,可存在硬體或軟體(例如,GPU/CPU硬體或軟體)中所利用的數個不同的光線追蹤階段。例如,在某些階段,驅動器可以在CPU或GPU上構建BVH(例如,BVH構建階段和BVH節點壓縮階段)。在BVH遍歷階段中,BVH遍歷可發生在GPU處的著色器中。此外,某些階段可以在GPU硬體中實現(例如,BVH節點解壓縮階段、光線-邊界盒相交階段和光線-三角形相交階段)。
圖形處理的各態樣可以將光線追蹤資料儲存在不同類型的記憶體(例如,系統記憶體)中。然而,光線追蹤效能的一個潛在問題是可用的記憶體頻寬量,因為從記憶體(例如,系統記憶體)存取資料可能需要大量的存取週期。在一些實例中,幾何資料可被儲存在加速結構(例如,層次包圍盒(BVH)結構)中。加速結構或BVH結構是包括多個節點的樹結構(例如,二叉樹結構或n元樹結構),其中圖中繼資料被儲存在葉節點(亦即,樹結構的分支中的各節點)中。對於光線追蹤程序之每一者光線,GPU可能需要從根節點(亦即,樹結構中的頂部節點)遍歷到葉節點。BVH結構可以與包括數個圖元的圖形處理場景相關聯。此外,這些圖元中的每一者可以對應於BVH結構中的節點之一。例如,對於一些場景,與場景相關聯的BVH結構可保存數百萬個圖元。
在圖形處理的一些態樣,將這些加速結構(例如,BVH結構)載入到GPU處的片上圖形記憶體中可以説明實現對資料的更快存取並最終實現更快的光線追蹤效能。然而,在一些實例中,加速結構(例如,BVH結構)的大小可以比片上記憶體的大小大得多。為了克服這種大小差異,可以以與頂層加速結構類似的方式將較小的加速結構載入到片上記憶體上。此外,一些小的底層加速結構(亦即,與頂層加速結構相比大小上較小)亦可被放置在片上記憶體中。然而,由於這些類型的底層加速結構的組織,從片上記憶體存取這些類型的底層加速結構可能不是有益的。如此,這些底層加速結構可能無法足夠頻繁地被存取以滿足光線追蹤效能規範。基於以上,最佳化與光線追蹤程序相關聯的加速結構(例如,BVH結構)的儲存可能是有益的。將底層加速結構儲存在易於存取的某些類型的記憶體(例如,片上圖形記憶體)中亦可能是有益的。
本案的各態樣可以最佳化與光線追蹤程序相關聯的加速結構(例如,BVH結構)的儲存。例如,本案的各態樣可以將底層加速結構儲存在某些類型的記憶體中,以使得這些結構易於存取。為了這樣做,本案的各態樣可以將底層BVH結構儲存在片上圖形記憶體(GMEM)中,以及將底層BVH結構儲存在系統記憶體(SYSMEM)中。經由這樣做,本文所呈現的各態樣可以更容易地從片上圖形記憶體存取BVH結構。在一些實例中,本案的各態樣可以將底層BVH結構的不同層級儲存在片上圖形記憶體和系統記憶體兩者中。
在包括BVH結構的節點儲存的一些實例中,與較低層級的節點相比,可以更頻繁地存取較高層級的內部節點。因此,若底層加速結構(例如,不包括根節點的BVH結構)的這些高層節點被儲存在片上圖形記憶體上,則這可以説明改進光線追蹤效能。例如,高層節點可以是底層加速結構中的第一或第二層。本文呈現的各態樣可以將底層加速結構(例如,不包括根節點的BVH結構)的頂層儲存在片上記憶體或圖形記憶體(GMEM)中。底層加速結構的這些頂層可以基於片上圖形記憶體或GMEM的可用性來儲存。隨後,GPU驅動器可基於圖形記憶體可用性和底層加速結構的總數來決定要載入到圖形記憶體的BVH結構的層數。在一些實例中,BVH結構的剩餘層級可以被儲存在系統記憶體中。
在一些態樣,驅動器或GPU驅動器可以利用針對每個底層BVH結構的載入到圖形記憶體的BVH結構的層數對GPU進行程式設計。GPU驅動器亦可以決定BVH結構的哪些層級被載入到系統記憶體。在將BVH結構的不同層級儲存到圖形記憶體或系統記憶體之後,GPU可以嘗試從圖形記憶體或系統記憶體存取不同的個體節點。基於節點在BVH結構中的層級,GPU可以決定該節點是儲存在圖形記憶體中還是儲存在系統記憶體中,隨後相應地獲取(亦即,檢索)節點。
圖7圖示了包括節點儲存結構(例如,樹結構)的一個實例的示圖700。更具體地,示圖700包括BVH結構以用於在圖形記憶體或系統記憶體中儲存該結構的不同節點。如圖7所示,示圖700包括BVH結構的第一層級中的節點(例如,節點N
710)、BVH結構的第二層級中的節點(例如,節點N
720和N
721)、BVH結構的第三層級中的節點(例如,節點N
730、N
731、N
732和N
733)、BVH結構的第四層級中的節點(例如,節點N
740、N
741、N
742和N
743)以及BVH結構的第五層級中的節點(例如,節點N
750、N
751、N
752和N
753)。示圖700中所示的節點可以在BVH結構的底層。如圖7所圖示的,BVH結構的較高層節點(例如,節點N
710、N
720、N
721、N
730、N
731、N
732和N
733)可被儲存在圖形記憶體或GMEM中。此外,BVH結構的較低層節點(例如,節點N
740、N
741、N
742、N
743、N
750、N
751、N
752和N
753)可被儲存在系統記憶體或SYSMEM中。在一些實例中,BVH結構的較高層和較低層節點兩者可被儲存在系統記憶體中。附加地,在一些實例中,如以下進一步詳細描述的,驅動器或GPU驅動器可以決定BVH結構的哪些節點/層級被儲存在圖形記憶體或GMEM中,以及BVH結構的哪些節點/層級被儲存在系統記憶體中。例如,驅動器或GPU驅動器可以搜尋圖形記憶體或GMEM,以標識儲存在其中的BVH結構的各節點/層級。此外,驅動器或GPU驅動器可以搜尋系統記憶體,以標識儲存在其中的BVH結構的各節點/層級。
驅動器或GPU驅動器可包括BVH結構的節點儲存的數個職責。例如,GPU驅動器可以標識哪些節點可被儲存在圖形記憶體或系統記憶體中。此外,基於可用的片上記憶體和底層BVH的數目,GPU驅動器可以針對每個BVH決定要儲存在片上圖形記憶體(GMEM)中的各節點/層級的數目。GPU驅動器亦可以指派GMEM基址和要儲存在GMEM中的層級數目。此外,GPU驅動器可以將GMEM基址和最大儲存層級(例如,GMEM中的最大儲存層級)更新為硬體描述符或加速結構(AS)描述符。AS描述符是可以用與BVH相對應的某些資訊(例如,系統位址、GMEM位址、GMEM中的層級數目、GMEM中的起始層級等)程式設計到GPU硬體的結構。GPU驅動器亦可以打包/儲存所有節點,直到達到連續記憶體中的最大儲存層級。
GPU硬體亦可包括BVH結構的節點儲存的數個職責。例如,GPU硬體可以標識或追蹤儲存在BVH結構之每一者節點的層級。附加地,基於BVH結構中節點的層級,GPU硬體可以向記憶體(例如,GMEM或SYSMEM)發送獲取請求(亦即,檢索請求),以便從記憶體檢索該節點。在一些實例中,大多數頻繁存取的節點可以被儲存在圖形記憶體中,而不是系統記憶體中,因為與系統記憶體相比,從圖形記憶體中檢索節點可能更快。
圖8A圖示了包括節點儲存結構(例如,樹結構)的一個實例的示圖800。例如,示圖800包括用於在圖形記憶體或系統記憶體中儲存該結構的不同節點的BVH結構。如圖8A所示,示圖800包括BVH結構的第一層級中的節點(例如,節點801)、BVH結構的第二層級中的節點(例如,節點802和803)、BVH結構的第三層級中的節點(例如,節點804、805、806和807)、BVH結構的第四層級中的節點(例如,節點808、809、810和811)以及BVH結構的第五層級中的節點(例如,節點812、813、814和815)。如本文所指示的,圖8A的示圖800中所示的節點可以在BVH結構的底層中。
如圖8A和8B中圖示的,底層BVH結構的較高層節點(例如,節點801、802、803、804、805、806和807)可被儲存在圖形記憶體或GMEM中。例如,如圖8B的示圖830所示,節點801、802、803、804、805、806和807可以被儲存在圖形記憶體832中。圖8B亦示出可基於記憶體內的偏移(例如,GMEM偏移834)來將節點儲存在圖形記憶體832中。該偏移可以是基於GMEM的基址的GMEM起始偏移以及起始節點偏移。
如圖8A和8C中圖示的,BVH結構的較低層節點(例如,節點808、809、810、811、812、813、814和815)可被儲存在系統記憶體或SYSMEM中。例如,如圖8C的示圖860所示,節點808、809、810、811、812、813、814和815可以被儲存在系統記憶體862中。附加地,如圖8C所示,BVH結構的較高層和較低層節點兩者可被儲存在系統記憶體中。例如,節點801、802、803、804、805、806、807、808、809、810、811、812、813、814和815可被儲存在系統記憶體862中。圖8C亦示出可基於記憶體內的偏移(例如,SYSMEM偏移864)來將節點儲存在系統記憶體862中。該偏移可以是基於SYSMEM的基址的SYSMEM起始偏移以及起始節點偏移。此外,驅動器或GPU驅動器可以決定BVH結構的哪些節點/層級被儲存在圖形記憶體832中,以及BVH結構的哪些節點/層級被儲存在系統記憶體862中。例如,驅動器或GPU驅動器可以搜尋圖形記憶體832,以標識儲存在其中的BVH結構的各節點/層級。此外,驅動器或GPU驅動器可以搜尋系統記憶體862,以標識儲存在其中的BVH結構的各節點/層級。
如圖8A、8B和8C所指示的,在節點被儲存在GMEM(例如,圖形記憶體832)或SYSMEM(例如,系統記憶體862)中之後,這些節點可以從GMEM或SYSMEM中獲取或檢索。在一些實例中,大多數較高層節點(例如,節點801-807)可以被儲存在圖形記憶體832而非系統記憶體中,因為較高層節點可以比較低層節點(例如,節點808-815)更頻繁地被存取。實際上,與系統記憶體862相比,從圖形記憶體832中檢索節點可能更快,因此更頻繁存取的節點(例如,較高層節點801-807)可以被儲存在圖形記憶體832中。較低層節點(例如,節點808-815)可以被儲存在系統記憶體862中,因為與較高層節點相比,這些節點可能不會被頻繁地存取,並且與圖形記憶體832相比,存取系統記憶體862可能需要更長的時間。如圖8C所示,在一些實例中,較高層節點(例如,節點801-807)和較低層節點(例如,節點808-815)兩者皆可以被儲存在系統記憶體862中。
本文呈現的各態樣亦可包括用於劃分/分配BVH結構的不同層級的不同方法,諸如用於決定哪些層級被儲存在GMEM中以及哪些層級被儲存在SYSMEM中的方法。例如,本案的各態樣可包括用於劃分節點儲存結構(例如,樹結構)的演算法,諸如用於標識哪些層級被儲存在GMEM或SYSMEM中的演算法。在一個態樣,演算法可以劃分/分配節點儲存結構以決定要載入/儲存在GMEM中的頂部數個層級(例如,
n個頂層)。例如,頂層/高層可以是節點儲存結構中的頂部兩層,因此演算法可以分配要儲存在GMEM中的頂部兩層。該演算法可以決定剩餘層級(亦即,未被儲存在GMEM中的層級)將被儲存在SYSMEM中。附加地,該演算法可以執行深度優先遍歷直至某個數目的層級(例如,
n層)並將這些層級的節點放置在連續記憶體中,同時在佇列或儲存中添加另一數目的層級的節點(例如,
n+1層的節點)。例如,該演算法可以對節點儲存結構中的頂部兩層執行深度優先遍歷,並將這頂部兩層的節點放置在連續記憶體中,同時在佇列或儲存中添加另外三層。隨後,本文所呈現的各態樣可以儲存在演算法的第一階段期間打包的數個節點。附加地,本文所呈現的各態樣可以使
n+1層節點中的每一者從佇列中出列(亦即,從佇列中移除),並且對這些出列的節點中的每一者執行深度優先遍歷。在這樣做之後,這些出列的節點可以被放置在連續記憶體中。在一些情形中,與較低層節點相比,頂層節點可以接收改進的快取記憶體命中,並且在此類情形中,亦載入/儲存中間層節點可能是有利的。
附加地,本文所呈現的各態樣可包括用於劃分BVH結構以便在GMEM中儲存某個範圍的節點層級(例如,從BVH結構的層級
m到層級
n)的演算法。本文所呈現的各態樣可以執行深度優先遍歷直到第一數目的層級(例如,
m層)並且將這些層級放置在連續記憶體中。同時,第二數目的節點層級(例如,
m+1層)可被添加到佇列。此外,本文所呈現的各態樣可以儲存在演算法的第一階段期間打包的數個節點。本文所呈現的各態樣亦可以使第二數目的節點層級(例如,
m+1層)中的每一者從佇列中出列,以及對這些出列的節點中的每一者執行深度優先遍歷,直到達到某個數目的層級(例如,
n層),並且將這些層級放置在連續記憶體中。同時,本文所呈現的各態樣可以將數個節點層級(例如,
n+1層)放置在佇列中。本案的各態樣亦可以儲存在演算法的第二階段期間打包的數個節點。附加地,
n+1層節點中的每一者可以從佇列中出列,並且隨後可以對每個出列的節點執行深度優先遍歷。出列的節點可以被放置在連續記憶體中,同時在佇列中放置
n+1層節點。
在一些態樣,驅動器或GPU驅動器可以決定要載入/儲存在記憶體(例如,GMEM或SYSMEM)之每一者BVH結構的層級數目。例如,GPU驅動器可基於探索法及/或GMEM的儲存可用性來決定層級數目。在光線追蹤程序期間,GPU驅動器可以將BVH結構的指定層級載入到GMEM。可以動態地載入BVH結構的這些指定層級,並且可以相應地程式設計硬體描述符。在頂層加速結構的構建期間,驅動器可以決定或最終決定哪個BVH結構部分地載入在GMEM中、完全載入到GMEM中或完全跳過。該決定可以基於探索法及/或GMEM的儲存可用性。
此外,GPU驅動器可以利用某些資訊針對每個加速結構(AS)描述符或硬體描述符對GPU硬體進行程式設計。例如,GPU驅動器可以利用GMEM起始偏移值(亦即,從GMEM基址的偏移)對GPU硬體進行程式設計。例如,GMEM起始偏移值可以是從GMEM基址的兩個或三個位址的偏移。GPU驅動器亦可以利用起始節點偏移(亦即,從起始節點偏移的量)對GPU硬體進行程式設計。此外,GPU驅動器可以利用GMEM中的BVH起始層級(亦即,BVH的起始層級,從該起始層級開始節點存在於GMEM中)對GPU硬體進行程式設計。此外,GPU驅動器可以利用GMEM中的BVH結束層級(亦即,GMEM中的BVH的最後層級的結束點)對GPU硬體進行程式設計。GPU驅動器亦可以利用系統記憶體位址對GPU硬體進行程式設計。
圖9圖示了包括針對節點儲存程序的撥叫流的一個實例的示圖900。更具體地,示圖900包括用於在圖形記憶體及/或系統記憶體中儲存BVH結構的高節點層級的驅動器或GPU驅動器的撥叫流。如圖9所示,示圖900包括節點儲存撥叫流的數個步驟(例如,步驟910、920、930、940、950、960和970)。在步驟910,應用可以向驅動器發送對針對場景中的某個幾何(例如,由應用提供給驅動器的幾何)構建或構造BVH結構的請求。在步驟920,驅動器可基於場景中的可用GMEM大小和BVH數目來決定要放置在GMEM中的層級數目。在步驟930,驅動器可以以關於放置在GMEM中的BVH節點被放置在連續記憶體位置中的約束構建該BVH。在步驟940,驅動器可以將該GMEM的部分分配給BVH結構,以及決定偏移和大小。驅動器亦可以向BVH描述符添加資訊/細節,例如,GMEM起始偏移、起始節點偏移、GMEM中的BVH起始層級和GMEM中的BVH結束層級。在步驟950,在發起BVH上的光線追蹤之前,驅動器可以在預定的GMEM起始偏移處將連續記憶體中的資料(對應於起始層級和結束層級)載入到GMEM。在步驟960,驅動器可以利用包含GMEM位址、SYSMEM位址以及GMEM起始和結束層級資訊的BVH描述符對GPU進行程式設計。在步驟970,驅動器可以經由分派遍歷BVH結構的光線來發起GPU上的光線追蹤。
圖10圖示了包括針對節點儲存程序的撥叫流的一個實例的示圖1000。更具體地,示圖1000包括用於在圖形記憶體及/或系統記憶體中儲存BVH結構的高節點層級的GPU或GPU硬體的撥叫流。如圖10所示,示圖1000包括節點儲存撥叫流的數個步驟(例如,步驟1010、1020、1030、1040、1050、1060和1070)。在步驟1010,GPU可以追蹤與光線追蹤規程相關聯的某個光線。在步驟1020,GPU可以獲取(亦即,檢索)與層級ID及/或節點ID相對應的BVH節點。在步驟1030,GPU可以決定層級ID是否在GMEM起始層級與GMEM結束層級之間。若層級ID在GMEM起始層級與GMEM結束層級之間,則在步驟1040,GPU可以從GMEM獲取與該節點相關聯的資料。為了獲取該資料,在步驟1050,GPU可基於節點ID和GMEM偏移來計算節點位址。例如,可基於存在於父節點中的節點ID(亦即,父節點持有子節點ID)來計算節點位址。在這樣做之後,GPU可以發出對與該節點相關聯的資料的獲取。若層級ID不在GMEM起始層級與GMEM結束層級之間,則在步驟1042,GPU可以從SYSMEM獲取與該節點相關聯的資料。為了獲取該資料,在步驟1052,GPU可基於節點ID和SYSMEM基址來計算節點位址。在這樣做之後,GPU可以發出對與該節點相關聯的資料的獲取。在步驟1060,GPU可以決定該節點是否是內部節點。若該節點是內部節點,則在步驟1070,GPU可以執行光線盒相交。若該節點不是內部節點,則在步驟1072,GPU可以執行光線三角形相交。
圖10圖示了GPU或GPU硬體處的節點儲存撥叫流的細節。如圖10所示,GPU可以在該GPU中實現層級ID。層級ID可以在根節點處初始化為某個值(例如,值0),並且隨後在存取當前層級節點的子節點時遞增該值(例如,將該值遞增1)。如此,GPU可以在同時遍歷BVH結構時保持節點的層級ID。
本案的各態樣可包括數個益處或優點。例如,本案的各態樣可以最佳化與光線追蹤程序相關聯的加速結構(例如,BVH結構)的儲存。為了最佳化儲存程序,本案的各態樣可以在某些類型的記憶體(例如,GMEM)中在底層加速結構中儲存某些節點,以使得這些節點更容易存取。經由這樣做,本文所呈現的各態樣可以更容易地從片上圖形記憶體存取BVH結構,這進而可以最佳化或改進光線追蹤效能。
圖11是根據本案的一或多個技術的圖形處理的通訊流示圖1100。如圖11所示,示圖1100包括根據本案一或多個技術的GPU(或其他圖形處理器)的各部件(諸如GPU部件1102、GPU部件1104)和記憶體1106(例如,GMEM或SYSMEM)之間的實例通訊。
在1110,GPU部件1102可以獲得層次包圍盒(BVH)結構,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元(例如,圖元1112)的幾何資料相關聯。場景中的圖元(例如,圖元1112)可以從GPU的另一部件或另一部分(例如,GPU部件1104)接收。該複數個節點可包括複數個內部節點和複數個葉節點,其中該複數個內部節點可以與針對複數圖元的複數個邊界框相關聯,並且其中該複數個葉節點可以與針對該複數個圖元的幾何資料相關聯。BVH結構可以是與針對場景中的複數個圖元的光線追蹤程序相關聯的資料結構,並且該光線追蹤程序可包括與針對該複數個圖元的幾何資料相關聯的複數個光線。
在1120,GPU部件1102可以標識第一記憶體中可用於儲存該BVH結構中的複數個節點中的至少一些節點的儲存量。
在1130,GPU部件1102可基於第一記憶體中的儲存量來將該BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中,該BVH結構是基於包括複數個第一節點和複數個第二節點的複數個節點的層次來分配的。該複數個第一節點可以與針對場景中的複數個圖元的光線追蹤程序中的第一數量的光線相關聯,並且該複數個第二節點可以與該光線追蹤程序中的第二數量的光線相關聯,其中第一數量的光線不同於第二數量的光線。該複數個節點的層次可以與該BVH結構中的複數個節點之每一者節點的節點識別符(ID)和複數個層級之每一者層級的層級ID相關聯,其中該複數個第一節點可以對應於該複數個層級的第一區段,並且該複數個第二節點可以對應於該複數個層級的第二區段。BVH結構可基於該複數個層級的第一區段和該複數個層級的第二區段來分配,並且該複數個層級之每一者層級與該複數個層級中的其他層級相比可包括不同的層級ID。附加地,該複數個第一節點可對應於該BVH結構中的高層節點,並且該複數個第二節點可對應於該BVH結構中的低層節點。高層節點可包括BVH結構中的根節點,而低層節點可包括複數個葉節點。
在1140,GPU部件1102可以將與該複數個第一節點相關聯的第一資料(例如,資料1142)儲存在第一記憶體中。在一些態樣,在1140,GPU部件1102亦可以將與該複數個第一節點和該複數個第二節點相關聯的第二資料(例如,資料1142)儲存在第二記憶體中。與該複數個第一節點相關聯的第一資料可以等於第一記憶體中所標識的儲存量。
在1150,GPU部件1102可以在檢索第一資料或第二資料中的至少一者之前,計算該複數個第一節點的第一位址或該複數個第二節點的第二位址中的至少一者。該複數個第一節點的第一位址可基於第一記憶體的偏移值和該複數個第一節點中的每一者的節點識別符(ID)來計算,並且該複數個第二節點的第二位址可基於第二記憶體的基址和該複數個第二節點中的每一者的節點ID來計算。
在1160,GPU部件1102可以在儲存第一資料和第二資料之後,從第一記憶體中檢索第一資料或從第二記憶體中檢索第二資料(例如,資料1142)中的至少一者,其中第一資料或第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。可基於BVH結構中的複數個節點之每一者節點的節點識別符(ID)或複數個層級之每一者層級的層級ID來檢索第一資料或第二資料中的至少一者。此外,可基於該複數個第一節點的層次來檢索第一資料或第二資料中的至少一者。第一記憶體可以是圖形記憶體,而第二記憶體可以是系統記憶體。此外,GPU部件1102可以從第一記憶體獲取第一資料或從第二記憶體獲取第二資料中的至少一者。例如,檢索第一資料或第二資料中的至少一者可包括從第一記憶體中獲取第一資料或從第二記憶體中獲取第二資料中的至少一者。
在1170,GPU部件1102可基於第一資料或第二資料中的至少一者來執行用於該複數個節點中的複數個內部節點的光線三角形相交或用於該複數個節點中的複數個葉節點的光線盒相交中的至少一者。
圖12是根據本案的一或多個技術的圖形處理的實例方法的流程圖1200。該方法可以由GPU(諸如用於圖形處理的裝置)、圖形處理器、CPU、無線通訊設備及/或結合圖1-11的實例使用的可執行圖形處理的任何裝置來執行。本文所描述的方法可以提供數種益處,諸如改進資源利用及/或功率節省。
在1202,GPU可以獲得BVH結構,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元的幾何資料相關聯,如結合圖1-11的實例所描述的。例如,如圖11的1110所描述的,GPU部件1102可以獲得BVH結構,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元的幾何資料相關聯。此外,步驟1202可以由圖1中的處理單元120執行。該複數個節點可包括複數個內部節點和複數個葉節點,其中該複數個內部節點可以與針對複數個圖元的複數個邊界框相關聯,並且其中該複數個葉節點可以與針對該複數個圖元的幾何資料相關聯。BVH結構可以是與針對場景中的複數個圖元的光線追蹤程序相關聯的資料結構,並且該光線追蹤程序可包括與針對該複數個圖元的幾何資料相關聯的複數個光線。
在1204,GPU可以標識第一記憶體中可用於儲存該BVH結構中的複數個節點中的至少一些節點的儲存量,如結合圖1-11的實例所描述的。例如,如圖11的1120中所描述的,GPU部件1102可以標識第一記憶體中可用於儲存該BVH結構中的複數個節點中的至少一些節點的儲存量。此外,步驟1204可以由圖1中的處理單元120執行。
在1206,GPU可基於第一記憶體中的儲存量來將該BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中,該BVH結構是基於包括該複數個第一節點和該複數個第二節點的複數個節點的層次來分配的,如結合圖1-11的實例所描述的。例如,如圖11的1130中所描述的,GPU部件1102可基於第一記憶體中的儲存量來將該BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中,該BVH結構是基於包括該複數個第一節點和該複數個第二節點的複數個節點的層次來分配的。此外,步驟1206可以由圖1中的處理單元120執行。該複數個第一節點可以與針對場景中的複數個圖元的光線追蹤程序中的第一數量的光線相關聯,並且該複數個第二節點可以與該光線追蹤程序中的第二數量的光線相關聯,其中第一數量的光線不同於第二數量的光線。該複數個節點的層次可以與該BVH結構中的複數個節點之每一者節點的節點識別符(ID)和複數個層級之每一者層級的層級ID相關聯,其中該複數個第一節點可以對應於該複數個層級的第一區段,並且該複數個第二節點可以對應於該複數個層級的第二區段。BVH結構可基於該複數個層級的第一區段和該複數個層級的第二區段來分配,並且該複數個層級之每一者層級與該複數個層級中的其他層級相比可包括不同的層級ID。附加地,該複數個第一節點可對應於該BVH結構中的高層節點,並且該複數個第二節點可對應於該BVH結構中的低層節點。高層節點可包括BVH結構中的根節點,而低層節點可包括複數個葉節點。
在1208,GPU可以將與該複數個第一節點相關聯的第一資料儲存在第一記憶體中,如結合圖1-11中的實例所描述的。在一些態樣,在1208,GPU部件亦可以將與該複數個第一節點和該複數個第二節點相關聯的第二資料儲存在第二記憶體中。例如,如圖11的1140所描述的,GPU部件1102可將與該複數個第一節點相關聯的第一資料儲存在第一記憶體中,並將與該複數個第一節點和該複數個第二節點相關聯的第二資料儲存在第二記憶體中。此外,步驟1208可以由圖1中的處理單元120執行。與該複數個第一節點相關聯的第一資料可以等於第一記憶體中所標識的儲存量。
圖13是根據本案的一或多個技術的圖形處理的實例方法的流程圖1300。該方法可以由GPU(諸如用於圖形處理的裝置)、圖形處理器、CPU、無線通訊設備及/或結合圖1-11的實例使用的可執行圖形處理的任何裝置來執行。本文所描述的方法可以提供數種益處,諸如改進資源利用及/或功率節省。
在1302,GPU可以獲得BVH結構,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元的幾何資料相關聯,如結合圖1-11的實例所描述的。例如,如圖11的1110所描述的,GPU部件1102可以獲得BVH結構,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元的幾何資料相關聯。此外,步驟1302可以由圖1中的處理單元120執行。該複數個節點可包括複數個內部節點和複數個葉節點,其中該複數個內部節點可以與針對複數個圖元的複數個邊界框相關聯,並且其中該複數個葉節點可以與針對該複數個圖元的幾何資料相關聯。BVH結構可以是與針對場景中的複數個圖元的光線追蹤程序相關聯的資料結構,並且該光線追蹤程序可包括與針對該複數個圖元的幾何資料相關聯的複數個光線。
在1304,GPU可以標識第一記憶體中可用於儲存該BVH結構中的複數個節點中的至少一些節點的儲存量,如結合圖1-11的實例所描述的。例如,如圖11的1120中所描述的,GPU部件1102可以標識第一記憶體中可用於儲存該BVH結構中的複數個節點中的至少一些節點的儲存量。此外,步驟1304可以由圖1中的處理單元120執行。
在1306,GPU可基於第一記憶體中的儲存量來將該BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中,該BVH結構是基於包括該複數個第一節點和該複數個第二節點的複數個節點的層次來分配的,如結合圖1-11的實例所描述的。例如,如圖11的1130中所描述的,GPU部件1102可基於第一記憶體中的儲存量來將該BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中,該BVH結構是基於包括該複數個第一節點和該複數個第二節點的複數個節點的層次來分配的。此外,步驟1306可以由圖1中的處理單元120執行。該複數個第一節點可以與針對場景中的複數個圖元的光線追蹤程序中的第一數量的光線相關聯,並且該複數個第二節點可以與該光線追蹤程序中的第二數量的光線相關聯,其中第一數量的光線不同於第二數量的光線。該複數個節點的層次可以與該BVH結構中的複數個節點之每一者節點的節點識別符(ID)和複數個層級之每一者層級的層級ID相關聯,其中該複數個第一節點可以對應於該複數個層級的第一區段,並且該複數個第二節點可以對應於該複數個層級的第二區段。BVH結構可基於該複數個層級的第一區段和該複數個層級的第二區段來分配,並且該複數個層級之每一者層級與該複數個層級中的其他層級相比可包括不同的層級ID。附加地,該複數個第一節點可對應於該BVH結構中的高層節點,並且該複數個第二節點可對應於該BVH結構中的低層節點。高層節點可包括BVH結構中的根節點,而低層節點可包括複數個葉節點。
在1308,GPU可以將與該複數個第一節點相關聯的第一資料儲存在第一記憶體中,如結合圖1-11中的實例所描述的。在一些態樣,在1308,GPU部件亦可以將與該複數個第一節點和該複數個第二節點相關聯的第二資料儲存在第二記憶體中。例如,如圖11的1140所描述的,GPU部件1102可將與該複數個第一節點相關聯的第一資料儲存在第一記憶體中,並將與該複數個第一節點和該複數個第二節點相關聯的第二資料儲存在第二記憶體中。此外,步驟1308可以由圖1中的處理單元120執行。與該複數個第一節點相關聯的第一資料可以等於第一記憶體中所標識的儲存量。
在1310,GPU可以在檢索第一資料或第二資料中的至少一者之前,計算該複數個第一節點的第一位址或該複數個第二節點的第二位址中的至少一者,如結合圖1-11中的實例所描述的。例如,如圖11的1150中所描述的,GPU部件1102可以在檢索第一資料或第二資料中的至少一者之前,計算該複數個第一節點的第一位址或該複數個第二節點的第二位址中的至少一者。此外,步驟1310可以由圖1中的處理單元120執行。該複數個第一節點的第一位址可基於第一記憶體的偏移值和該複數個第一節點中的每一者的節點識別符(ID)來計算,並且該複數個第二節點的第二位址可基於第二記憶體的基址和該複數個第二節點中的每一者的節點ID來計算。
在1312,GPU可以在儲存第一資料和第二資料之後,從第一記憶體中檢索第一資料或從第二記憶體中檢索第二資料中的至少一者,其中第一資料或第二資料是基於計算出的第一位址或計算出的第二位址來檢索的,如結合圖1-11中的實例所描述的。例如,如圖11的1160中所描述的,GPU部件1102可以在儲存第一資料和第二資料之際,從第一記憶體中檢索第一資料或從第二記憶體中檢索第二資料中的至少一者,其中第一資料或第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。此外,步驟1312可以由圖1中的處理單元120執行。可基於BVH結構中的複數個節點之每一者節點的節點識別符(ID)或複數個層級之每一者層級的層級ID來檢索第一資料或第二資料中的至少一者。此外,可基於該複數個第一節點的層次來檢索第一資料或第二資料中的至少一者。第一記憶體可以是圖形記憶體(例如,GMEM),而第二記憶體可以是系統記憶體。此外,GPU可以從第一記憶體獲取第一資料或從第二記憶體獲取第二資料中的至少一者。例如,檢索第一資料或第二資料中的至少一者可包括從第一記憶體中獲取第一資料或從第二記憶體中獲取第二資料中的至少一者。
在1314,GPU可基於第一資料或第二資料中的至少一者來執行用於該複數個節點中的複數個內部節點的光線三角形相交或用於該複數個節點中的複數個葉節點的光線盒相交中的至少一者,如結合圖1-11中的實例所描述的。例如,如圖11的1170中所描述的,GPU部件1102可基於第一資料或第二資料中的至少一者來執行用於該複數個節點中的複數個內部節點的光線三角形相交或用於該複數個節點中的複數個葉節點的光線盒相交中的至少一者。此外,步驟1314可以由圖1中的處理單元120執行。
在配置中,提供了用於圖形處理的方法或裝備。該裝備可以是GPU、圖形處理器或可執行圖形處理的某個其他處理器。在各態樣,該裝備可以是設備104內的處理單元120,或者可以是設備104或另一設備內的某個其他硬體。該裝備(例如,處理單元120)可包括用於配置層次包圍盒(BVH)結構的裝置,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元的幾何資料相關聯。該裝備(例如,處理單元120)亦可包括用於標識第一記憶體中可用於儲存該BVH結構中的複數個節點中的至少一些節點的儲存量的裝置。該裝備(例如,處理單元120)亦可包括用於基於第一記憶體中的儲存量來將該BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中的裝置,該BVH結構是基於包括該複數個第一節點和該複數個第二節點的複數個節點的層次來分配的。該裝備(例如,處理單元120)亦可包括用於將與該複數個第一節點相關聯的第一資料儲存在第一記憶體中,並將與該複數個第一節點和該複數個第二節點相關聯的第二資料儲存在第二記憶體中的裝置。該裝備(例如,處理單元120)亦可包括用於在儲存第一資料和第二資料之際從第一記憶體中檢索第一資料或從第二記憶體中檢索第二資料中的至少一者的裝置。該裝備(例如,處理單元120)亦可包括用於在檢索第一資料或第二資料中的至少一者之前計算該複數個第一節點的第一位址或該複數個第二節點的第二位址中的至少一者的裝置,其中第一資料或第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。該裝備(例如,處理單元120)亦可包括用於基於第一資料或第二資料中的至少一者來執行用於該複數個節點中的複數個內部節點的光線三角形相交或用於該複數個節點中的複數個葉節點的光線盒相交中的至少一者的裝置。
本文中所描述的主題可被實現以達成一或多個益處或優點。例如,所描述的圖形處理技術可以由GPU、圖形處理器或可執行圖形處理的某個其他處理器用於實現本文所描述的節點儲存技術。與其他圖形處理技術相比,這亦可以以低成本實現。此外,本文的圖形處理技術可以改進或加速資料處理或執行。此外,本文的圖形處理技術可以改進資源或資料利用及/或資源效率。附加地,本案的各態樣可以利用節點儲存技術,以便在GPU處改進記憶體頻寬效率及/或增加處理速度。
應理解,所揭示的程序/流程圖中的各個方塊的具體次序或層次是實例辦法的圖示。應理解,基於設計偏好,可以重新編排這些程序/流程圖中的各個方塊的具體次序或層次。此外,一些方塊可被組合或被略去。所附方法請求項以範例次序呈現各種方塊的要素,且並不意味著被限定於所呈現的具體次序或層次。
提供先前描述是為了使本領域任何技藝人士均能夠實踐本文中所描述的各個態樣。對該等態樣的各種修改將容易為本發明所屬領域中具有通常知識者所明白,並且在本文中所定義的普適原理可被應用於其他態樣。由此,請求項並非意欲被限定於本文中所示出的各態樣,而是應被授予與請求項的語言相一致的全部範疇,其中對要素的單數形式的引述並非意欲表示「有且僅有一個」(除非特別如此聲明)而是「一或多個」。本文使用措辭「示例性」意指「用作實例、例子或圖示」。本文中描述為「性」的任何態樣不必被解釋成優於或勝過其他態樣。
除非另有特別說明,否則術語「一些/某個」是指一或多個,並且在上下文沒有另外規定的情況下術語「或」可被解讀為「及/或」。諸如「A、B或C中的至少一者」、「A、B或C中的一者或多者」、「A、B和C中的至少一者」、「A、B和C中的一者或多者」、以及「A、B、C或其任何組合」之類的組合包括A、B及/或C的任何組合,並且可包括多個A、多個B或者多個C。具體而言,諸如「A、B或C中的至少一者」、「A、B或C中的一者或多者」、「A、B和C中的至少一者」、「A、B和C中的一者或多者」以及「A、B、C或其任何組合」之類的組合可以是僅A、僅B、僅C、A和B、A和C、B和C、或者A和B和C,其中任何此類組合可包含A、B或C中的一或多個成員。本案通篇描述的各個態樣的要素為本發明所屬領域中具有通常知識者當前或今後所知的所有結構上和功能上的等效方案經由引述被明確納入於此,且意欲被請求項所涵蓋。此外,本文所揭示的任何內容皆不意欲捐獻於公眾,無論此類揭示內容是否明確記載在申請專利範圍中。措辭「模組」、「機制」、「元素」、「設備」等可以不是措辭「裝置」的代替。如此,沒有任何請求項元素應被解釋為手段功能,除非該元素是使用短語「用於……的裝置」來明確敘述的。
在一或多個實例中,本文所描述的功能可在硬體、軟體、韌體或其任何組合中實現。例如,儘管術語「處理單元」已經貫穿本案使用,但是此類處理單元可以在硬體、軟體、韌體或其任何組合中實現。若在本文中描述的任何功能、處理單元、技術或其他模組以軟體實現,則在本文中描述的功能、處理單元、技術或其他模組可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在電腦可讀取媒體上傳送。
根據本案,在上下文沒有另外規定的情況下術語「或」可被解讀為「及/或」。附加地,儘管諸如「一或多個」或「至少一個」等短語可能已經用於本文所揭示的一些特徵而不是其他特徵,但是沒有使用這種語言的特徵可以被解讀為在上下文沒有另外規定的情況下具有此類隱含含義。
在一或多個實例中,本文所描述的功能可在硬體、軟體、韌體或其任何組合中實現。例如,儘管術語「處理單元」已經貫穿本案使用,但是此類處理單元可以在硬體、軟體、韌體或其任何組合中實現。若在本文中描述的任何功能、處理單元、技術或其他模組以軟體實現,則在本文中描述的功能、處理單元、技術或其他模組可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在電腦可讀取媒體上傳送。電腦可讀取媒體可包括電腦資料儲存媒體和通訊媒體,這些媒體包括促成電腦程式從一地向另一地轉移的任何媒體。以此方式,電腦可讀取媒體一般可對應於(1)非瞬態的有形電腦可讀取儲存媒體或(2)諸如信號或載波之類的通訊媒體。資料儲存媒體可以是可由一台或多台電腦或一或多個處理器存取以檢索用於實現本案所述技術的指令、代碼及/或資料結構的任何可用媒體。作為實例而非限定,此類電腦可讀取媒體可包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置。如本文所使用的盤(disk)和碟(disc)包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中盤(disk)往往以磁的方式再現資料,而碟(disc)用鐳射以光學方式再現資料。以上的組合應當亦被包括在電腦可讀取媒體的範疇內。電腦程式產品可以包括電腦可讀取媒體。
該代碼可由一或多個處理器(諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、算數邏輯單位(ALU)、現場可程式設計邏輯陣列(FPGA)、或其他等效的整合或個別邏輯電路系統)執行。相應地,如本文所使用的術語「處理器」可以指任何上述結構或適於實現本文所描述的技術的任何其他結構。同樣,這些技術可以在一或多個電路或邏輯元件中被完全實現。
本案的技術可以在各種各樣的設備或裝置中實現,包括無線手持設備、積體電路(IC)或IC集合(例如,晶片集)。本案中描述了各種部件、模組或單元,以強調配置成執行所揭示技術的設備的功能態樣,但不一定需要由不同的硬體單元來實現。相反,如前述,各種單元可被組合在任何硬體單元中、或者由互動操作的硬體單元的集合來提供,包括如以上結合合適的軟體及/或韌體所描述的一或多個處理器。相應地,如本文所使用的術語「處理器」可以指任何上述結構或適於實現本文所描述的技術的任何其他結構。同樣,這些技術可以在一或多個電路或邏輯元件中被完全實現。
以下態樣僅是說明性的,並且可以與本文描述的其他態樣或教導進行組合而沒有限制。
態樣1是一種用於圖形處理的裝置,其包括耦合到記憶體的至少一個處理器,並且該至少一個處理器被配置成:獲得層次包圍盒(BVH)結構,該BVH結構包括複數個層級和複數個節點,該複數個層級中的每一者包括該複數個節點中的至少一個節點,該BVH結構與場景中的複數個圖元的幾何資料相關聯;標識第一記憶體中可用於儲存該BVH結構中的複數個節點中的至少一些節點的儲存量;基於第一記憶體中的儲存量來將該BVH結構分配到包括複數個第一節點的第一BVH區段和包括複數個第二節點的第二BVH區段中,該BVH結構是基於包括該複數個第一節點和該複數個第二節點的複數個節點的層次來分配的;及將與該複數個第一節點相關聯的第一資料儲存在第一記憶體中。
態樣2是如態樣1的裝置,其中該至少一個處理器被進一步配置成:將與該複數個第一節點和該複數個第二節點相關聯的第二資料儲存在第二記憶體中;及在儲存第一資料和第二資料之後,從第一記憶體中檢索第一資料或從第二記憶體中檢索第二資料中的至少一者。
態樣3是如態樣1和2中任一項的裝置,其中該至少一個處理器被進一步配置成:在檢索第一資料或第二資料中的至少一者之前計算該複數個第一節點的第一位址或該複數個第二節點的第二位址中的至少一者,其中第一資料或第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。
態樣4是如態樣1至3中任一項的裝置,其中該複數個第一節點的第一位址基於第一記憶體的偏移值和該複數個第一節點中的每一者的節點識別符(ID)來計算,並且其中該複數個第二節點的第二位址基於第二記憶體的基址和該複數個第二節點中的每一者的節點ID來計算。
態樣5是如態樣1至4中任一項的裝置,其中該至少一個處理器被進一步配置成:基於第一資料或第二資料中的至少一者來執行用於該複數個節點中的複數個內部節點的光線三角形相交或用於該複數個節點中的複數個葉節點的光線盒相交中的至少一者。
態樣6是如態樣1至5中任一項的裝置,其中第一資料或第二資料中的至少一者是基於該BVH結構中的複數個節點之每一者節點的節點識別符(ID)或複數個層級之每一者層級的層級ID來檢索的。
態樣7是如態樣1至6中任一項的裝置,其中第一資料或第二資料中的至少一者是基於該複數個第一節點的層次來檢索的,其中第一記憶體是圖形記憶體,並且第二記憶體是系統記憶體。
態樣8是如態樣1至7中任一項的裝置,其中為了檢索第一資料或第二資料中的至少一者,該至少一個處理器被配置成從第一記憶體中獲取第一資料或從第二記憶體中獲取第二資料中的至少一者。
態樣9是如態樣1至8中任一項的裝置,其中該複數個第一節點與針對場景中的複數個圖元的光線追蹤程序中的第一數量的光線相關聯,並且其中該複數個第二節點與該光線追蹤程序中的第二數量的光線相關聯,其中第一數量的光線不同於第二數量的光線。
態樣10是如態樣1至9中任一項的裝置,其中該複數個節點的層次與該BVH結構中的複數個節點之每一者節點的節點識別符(ID)和複數個層級之每一者層級的層級ID相關聯,其中該複數個第一節點對應於該複數個層級的第一區段,並且該複數個第二節點對應於該複數個層級的第二區段。
態樣11是如態樣1至10中任一項的裝置,其中該BVH結構是基於該複數個層級的第一區段和該複數個層級的第二區段來分配的,並且其中該複數個層級之每一者層級與該複數個層級中的其他層級相比包括不同的層級ID。
態樣12是如態樣1至11中任一項的裝置,其中該複數個第一節點對應於該BVH結構中的高層節點,並且該複數個第二節點對應於該BVH結構中的低層節點。
態樣13是如態樣1至12中任一項的裝置,其中高層節點包括該BVH結構中的根節點,並且低層節點包括複數個葉節點。
態樣14是如態樣1至13中任一項的裝置,其中該複數個節點包括複數個內部節點和複數個葉節點,其中該複數個內部節點與針對該複數個圖元的複數個邊界框相關聯,並且其中該複數個葉節點與針對該複數個圖元的幾何資料相關聯。
態樣15是如態樣1至14中任一項的裝置,其中與該複數個第一節點相關聯的第一資料等於第一記憶體中所標識的儲存量。
態樣16是如態樣1至15中任一項的裝置,其中該裝置是無線通訊設備,該裝置進一步包括耦合到該至少一個處理器的天線或收發機中的至少一者。
態樣17是一種用於實現如態樣1至16中任一項的圖形處理的方法。
態樣18是一種用於圖形處理的裝備,其包括用於實現如態樣1至16中任一項的裝置。
態樣19是一種儲存電腦可執行代碼的非瞬態電腦可讀取媒體,該代碼在由至少一個處理器執行時使該至少一個處理器實現如態樣1至16中的任一項。
100:內容產生系統
104:設備
107:圖形處理流水線
120:處理單元
121:內部記憶體
122:內容編碼器/解碼器
123:內部記憶體
124:系統記憶體
126:通訊介面
127:顯示處理器
128:接收器
130:發射器
131:顯示器
132:收發機
198:BVH儲存結構
200:圖形處理單元(GPU)
210:命令處理器(CP)
212:繪製調用封包
220:頂點提取器
222:頂點著色器(VS)
224:頂點快取記憶體(VPC)
226:三角形設立引擎
228:光柵化器
230:Z處理引擎(ZPE)
232:圖元內插器(PI)
234:片段著色器(FS)
236:渲染後端(RB)
238:級別2(L2)快取記憶體(UCHE)
240:系統記憶體
250:命令緩衝器
260:上下文暫存器封包
261:上下文狀態
400:示圖
410:場景物件
420:場景物件
450:示圖
460:場景物件
470:圖元
480:光源
482:陰影光線
484:主光線
500:示圖
510:光線的原點
520:最小時間
522:最大時間
530:距離
540:圖元
541:圖元
542:圖元
600:示圖
650:示圖
700:示圖
800:示圖
801:節點
802:節點
803:節點
804:節點
805:節點
806:節點
807:節點
808:節點
809:節點
810:節點
811:節點
812:節點
813:節點
814:節點
815:節點
830:示圖
832:圖形記憶體
834:圖形記憶體
860:示圖
862:系統記憶體
864:SYSMEM偏移
900:示圖
910:步驟
920:步驟
930:步驟
940:步驟
950:步驟
960:步驟
970:步驟
1000:示圖
1010:步驟
1020:步驟
1030:步驟
1040:步驟
1042:步驟
1050:步驟
1052:步驟
1060:步驟
1070:步驟
1072:步驟
1100:步驟
1102:步驟
1104:步驟
1106:步驟
1110:步驟
1112:步驟
1120:步驟
1130:步驟
1140:步驟
1142:步驟
1150:步驟
1160:步驟
1170:步驟
1200:流程圖
1202:步驟
1204:步驟
1206:步驟
1208:步驟
1300:流程圖
1302:步驟
1304:步驟
1306:步驟
1308:步驟
1310:步驟
1312:步驟
1314:步驟
N
611:內部節點
N
612:內部節點
N
613:內部節點
N
614:內部節點
N
615:內部節點
N
616:內部節點
N
617:內部節點
N
661:內部節點
N
662:內部節點
N
663:內部節點
N
664:內部節點
N
665:內部節點
N
666:內部節點
N
667:內部節點
N
710:內部節點
N
720:內部節點
N
721:內部節點
N
730:內部節點
N
731:內部節點
N
732:內部節點
N
733:內部節點
N
740:內部節點
N
741:內部節點
N
742:內部節點
N
743:內部節點
N
750:內部節點
N
751:內部節點
N
752:內部節點
N
753:內部節點
O
621:圖元
O
622:圖元
O
623:圖元
O
624:圖元
O
625:圖元
O
626:圖元
O
627:圖元
O
671:圖元
O
672:圖元
O
673:圖元
O
674:圖元
O
675:圖元
O
676:圖元
O
677:圖元
O
678:圖元
圖1是圖示根據本案的一或多個技術的實例內容產生系統的方塊圖。
圖2是根據本案的一或多個技術的實例圖形處理單元(GPU)。
圖3是圖示根據本案的一或多個技術的實例光線追蹤程序的示圖。
圖4A是圖示根據本案的一或多個技術的實例光柵化程序的示圖。
圖4B是圖示根據本案的一或多個技術的實例光線追蹤程序的示圖。
圖5是圖示根據本案的一或多個技術的實例光線追蹤程序的示圖。
圖6A是圖示根據本案的一或多個技術的實例資料結構的示圖。
圖6B是圖示根據本案的一或多個技術的實例資料結構的示圖。
圖7是圖示根據本案的一或多個技術的實例節點儲存結構的示圖。
圖8A是圖示根據本案的一或多個技術的實例節點儲存結構的示圖。
圖8B是圖示根據本案的一或多個技術的實例節點儲存結構的示圖。
圖8C是圖示根據本案的一或多個技術的實例節點儲存結構的示圖。
圖9是圖示根據本案的一或多個技術的實例節點儲存撥叫流的示圖。
圖10是圖示根據本案的一或多個技術的實例節點儲存撥叫流的示圖。
圖11是圖示根據本案的一或多個技術的各GPU部件之間的實例通訊的通訊流程圖。
圖12是根據本案的一或多個技術的圖形處理的實例方法的流程圖。
圖13是根據本案的一或多個技術的圖形處理的實例方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
1100:步驟
1102:步驟
1104:步驟
1106:步驟
1110:步驟
1112:步驟
1120:步驟
1130:步驟
1140:步驟
1142:步驟
1150:步驟
1160:步驟
1170:步驟
Claims (30)
- 一種用於圖形處理的裝置,包括: 記憶體;及 至少一個處理器,該至少一個處理器耦合至該記憶體並被配置成: 獲得層次包圍盒(BVH)結構,該BVH結構包括多個層級和多個節點,該多個層級中的每一者包括該多個節點中的至少一個節點,該BVH結構與場景中的多個圖元的幾何資料相關聯; 標識第一記憶體中可用於儲存該BVH結構中的該多個節點中的至少一些節點的儲存量; 基於該第一記憶體中的儲存量來將該BVH結構分配到包括多個第一節點的第一BVH區段和包括多個第二節點的第二BVH區段中,該BVH結構是基於包括該多個第一節點和該多個第二節點的該多個節點的層次來分配的;及 將與該多個第一節點相關聯的第一資料儲存在該第一記憶體中。
- 如請求項1之裝置,其中該至少一個處理器被進一步配置成: 將與該多個第一節點和該多個第二節點相關聯的第二資料儲存在第二記憶體中;及 在儲存該第一資料和該第二資料之後,從該第一記憶體中檢索該第一資料或從該第二記憶體中檢索該第二資料中的至少一者。
- 如請求項2之裝置,其中該至少一個處理器被進一步配置成: 在檢索該第一資料或該第二資料中的至少一者之前計算該多個第一節點的第一位址或該多個第二節點的第二位址中的至少一者,其中該第一資料或該第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。
- 如請求項3之裝置,其中該多個第一節點的第一位址是基於該第一記憶體的偏移值和該多個第一節點中的每一者的節點識別符(ID)來計算的,並且其中該多個第二節點的第二位址是基於該第二記憶體的基址和該多個第二節點中的每一者的節點ID來計算的。
- 如請求項2之裝置,其中該至少一個處理器被進一步配置成: 基於該第一資料或該第二資料中的至少一者來執行用於該多個節點中的多個內部節點的光線三角形相交或用於該多個節點中的多個葉節點的光線盒相交中的至少一者。
- 如請求項2之裝置,其中該第一資料或該第二資料中的至少一者是基於該BVH結構中的該多個節點之每一者節點的節點識別符(ID)或該多個層級之每一者層級的層級ID來檢索的。
- 如請求項2之裝置,其中該第一資料或該第二資料中的至少一者是基於該多個第一節點的層次來檢索的,其中該第一記憶體是圖形記憶體,並且該第二記憶體是系統記憶體。
- 如請求項2之裝置,其中為了檢索該第一資料或該第二資料中的至少一者,該至少一個處理器被配置成從該第一記憶體中獲取該第一資料或從該第二記憶體中獲取該第二資料中的至少一者。
- 如請求項1之裝置,其中該多個第一節點與針對該場景中的該多個圖元的光線追蹤程序中的第一數量的光線相關聯,並且其中該多個第二節點與該光線追蹤程序中的第二數量的光線相關聯,其中該第一數量的光線不同於該第二數量的光線。
- 如請求項1之裝置,其中該多個節點的層次與該BVH結構中的該多個節點之每一者節點的節點識別符(ID)和該多個層級之每一者層級的層級ID相關聯,其中該多個第一節點對應於該多個層級的第一區段,並且該多個第二節點對應於該多個層級的第二區段。
- 如請求項10之裝置,其中該BVH結構是基於該多個層級的第一區段和該多個層級的第二區段來分配的,並且其中該多個層級之每一者層級與該多個層級中的其他層級相比包括不同的層級ID。
- 如請求項1之裝置,其中該多個第一節點對應於該BVH結構中的高層節點,並且該多個第二節點對應於該BVH結構中的低層節點。
- 如請求項12之裝置,其中該高層節點包括該BVH結構中的根節點,並且該低層節點包括多個葉節點。
- 如請求項1之裝置,其中該多個節點包括多個內部節點和多個葉節點,其中該多個內部節點與針對該多個圖元的多個邊界框相關聯,並且其中該多個葉節點與針對該多個圖元的該幾何資料相關聯。
- 如請求項1之裝置,其中與該多個第一節點相關聯的該第一資料等於該第一記憶體中所標識的儲存量。
- 如請求項1之裝置,其中該裝置是無線通訊設備,該裝置進一步包括耦合到該至少一個處理器的天線或收發機中的至少一者。
- 一種圖形處理的方法,包括以下步驟: 獲得層次包圍盒(BVH)結構,該BVH結構包括多個層級和多個節點,該多個層級中的每一者包括該多個節點中的至少一個節點,該BVH結構與場景中的多個圖元的幾何資料相關聯; 標識第一記憶體中可用於儲存該BVH結構中的該多個節點中的至少一些節點的儲存量; 基於該第一記憶體中的儲存量來將該BVH結構分配到包括多個第一節點的第一BVH區段和包括多個第二節點的第二BVH區段中,該BVH結構是基於包括該多個第一節點和該多個第二節點的該多個節點的層次來分配的;及 將與該多個第一節點相關聯的第一資料儲存在該第一記憶體中。
- 如請求項17之方法,進一步包括以下步驟: 將與該多個第一節點和該多個第二節點相關聯的第二資料儲存在第二記憶體中;及 在儲存該第一資料和該第二資料之後,從該第一記憶體中檢索該第一資料或從該第二記憶體中檢索該第二資料中的至少一者。
- 如請求項18之方法,進一步包括以下步驟: 在檢索該第一資料或該第二資料中的至少一者之前計算該多個第一節點的第一位址或該多個第二節點的第二位址中的至少一者,其中該第一資料或該第二資料是基於計算出的第一位址或計算出的第二位址來檢索的。
- 如請求項19之方法,其中該多個第一節點的第一位址是基於該第一記憶體的偏移值和該多個第一節點中的每一者的節點識別符(ID)來計算的,並且其中該多個第二節點的第二位址是基於該第二記憶體的基址和該多個第二節點中的每一者的節點ID來計算的。
- 如請求項18之方法,進一步包括以下步驟: 基於該第一資料或該第二資料中的至少一者來執行用於該多個節點中的多個內部節點的光線三角形相交或用於該多個節點中的多個葉節點的光線盒相交中的至少一者。
- 如請求項18之方法,其中該第一資料或該第二資料中的至少一者是基於該BVH結構中的該多個節點之每一者節點的節點識別符(ID)或該多個層級之每一者層級的層級ID來檢索的。
- 如請求項18之方法,其中該第一資料或該第二資料中的至少一者是基於該多個第一節點的層次來檢索的,其中該第一記憶體是圖形記憶體,並且該第二記憶體是系統記憶體。
- 如請求項18之方法,其中檢索該第一資料或該第二資料中的至少一者包括從該第一記憶體中獲取該第一資料或從該第二記憶體中獲取該第二資料中的至少一者。
- 如請求項17之方法,其中該多個第一節點與針對該場景中的該多個圖元的光線追蹤程序中的第一數量的光線相關聯,並且其中該多個第二節點與該光線追蹤程序中的第二數量的光線相關聯,其中該第一數量的光線不同於該第二數量的光線。
- 如請求項17之方法,其中該多個節點的層次與該BVH結構中的該多個節點之每一者節點的節點識別符(ID)和該多個層級之每一者層級的層級ID相關聯,其中該多個第一節點對應於該多個層級的第一區段,並且該多個第二節點對應於該多個層級的第二區段,其中該BVH結構是基於該多個層級的第一區段和該多個層級的第二區段來分配的,並且其中該多個層級之每一者層級與該多個層級中的其他層級相比包括不同的層級ID。
- 如請求項17之方法,其中該多個第一節點對應於該BVH結構中的高層節點,並且該多個第二節點對應於該BVH結構中的低層節點,其中該高層節點包括該BVH結構中的根節點,並且該低層節點包括多個葉節點。
- 如請求項17之方法,其中該多個節點包括多個內部節點和多個葉節點,其中該多個內部節點與針對該多個圖元的多個邊界框相關聯,並且其中該多個葉節點與針對該多個圖元的該幾何資料相關聯。
- 如請求項17之方法,其中與該多個第一節點相關聯的該第一資料等於該第一記憶體中所標識的儲存量。
- 一種儲存用於圖形處理的電腦可執行代碼的非瞬態電腦可讀取媒體,該代碼在由處理器執行時使得該處理器: 獲得層次包圍盒(BVH)結構,該BVH結構包括多個層級和多個節點,該多個層級中的每一者包括該多個節點中的至少一個節點,該BVH結構與場景中的多個圖元的幾何資料相關聯; 標識第一記憶體中可用於儲存該BVH結構中的該多個節點中的至少一些節點的儲存量; 基於該第一記憶體中的儲存量來將該BVH結構分配到包括多個第一節點的第一BVH區段和包括多個第二節點的第二BVH區段中,該BVH結構是基於包括該多個第一節點和該多個第二節點的該多個節點的層次來分配的;及 將與該多個第一節點相關聯的第一資料儲存在該第一記憶體中。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/650,064 US11593990B1 (en) | 2022-02-04 | 2022-02-04 | Storage of levels for bottom level bounding volume hierarchy |
| US17/650,064 | 2022-02-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202338739A true TW202338739A (zh) | 2023-10-01 |
Family
ID=85278602
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112102642A TW202338739A (zh) | 2022-02-04 | 2023-01-19 | 用於底層層次包圍盒的各層級的儲存 |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US11593990B1 (zh) |
| EP (1) | EP4473494A1 (zh) |
| KR (1) | KR102836854B1 (zh) |
| CN (1) | CN118786464B (zh) |
| TW (1) | TW202338739A (zh) |
| WO (1) | WO2023150028A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11763523B2 (en) * | 2022-02-04 | 2023-09-19 | Qualcomm Incorporated | Compressed THIT stack for hardware-accelerated GPU ray tracing |
| US11978151B2 (en) * | 2022-08-31 | 2024-05-07 | Qualcomm Incorporated | Multi-level bounding volume hierarchy coalescing |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9183667B2 (en) * | 2011-07-15 | 2015-11-10 | Kirill Garanzha | Out-of-core ray tracing with memory-efficient page generation |
| US9818221B2 (en) * | 2016-02-25 | 2017-11-14 | Qualcomm Incorporated | Start node determination for tree traversal for shadow rays in graphics processing |
| DE102019108046A1 (de) * | 2018-04-11 | 2019-10-17 | Intel IP Corporation | Vorrichtung und verfahren zum komprimieren von blattknoten einer hüllkörperhierarchie (bhv) |
| US10699370B1 (en) * | 2018-12-28 | 2020-06-30 | Intel Corporation | Apparatus and method for a compressed stack representation for hierarchical acceleration structures of arbitrary widths |
| US11393156B2 (en) * | 2020-03-13 | 2022-07-19 | Advanced Micro Devices, Inc. | Partially resident bounding volume hierarchy |
| US12340468B2 (en) * | 2020-03-15 | 2025-06-24 | Intel Corporation | Apparatus and method for displaced mesh compression |
| US11282260B2 (en) * | 2020-06-09 | 2022-03-22 | Qualcomm Incorporated | Bounded volume hierarchy (BVH) tree traversal using spatial division |
-
2022
- 2022-02-04 US US17/650,064 patent/US11593990B1/en active Active
-
2023
- 2023-01-19 KR KR1020247025179A patent/KR102836854B1/ko active Active
- 2023-01-19 WO PCT/US2023/011172 patent/WO2023150028A1/en not_active Ceased
- 2023-01-19 TW TW112102642A patent/TW202338739A/zh unknown
- 2023-01-19 US US18/721,649 patent/US20250061537A1/en active Pending
- 2023-01-19 CN CN202380018938.3A patent/CN118786464B/zh active Active
- 2023-01-19 EP EP23705800.3A patent/EP4473494A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP4473494A1 (en) | 2024-12-11 |
| CN118786464B (zh) | 2025-09-30 |
| US20250061537A1 (en) | 2025-02-20 |
| WO2023150028A1 (en) | 2023-08-10 |
| KR102836854B1 (ko) | 2025-07-21 |
| CN118786464A (zh) | 2024-10-15 |
| US11593990B1 (en) | 2023-02-28 |
| KR20240121341A (ko) | 2024-08-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7463626B2 (ja) | 機械学習ワークロードにおけるテンソルオブジェクトサポートのための方法および装置 | |
| US12229877B2 (en) | Geometry culling using bounding volume hierarchy (BVH) for ray tracing | |
| US12205223B2 (en) | Bounding volume hierarchy leaf node compression | |
| TW202338739A (zh) | 用於底層層次包圍盒的各層級的儲存 | |
| US11978151B2 (en) | Multi-level bounding volume hierarchy coalescing | |
| TW202334895A (zh) | 用於硬體加速gpu光線追蹤的壓縮thit堆疊 | |
| TW202334896A (zh) | 使用可壓縮性預測的葉節點壓縮 | |
| US20250131638A1 (en) | Temporal coherence for ray traversal | |
| TW202507647A (zh) | 用於首次命中射線bvh遍歷的空間局部性 | |
| TW202503673A (zh) | 使用經偏置成本函數的適應性定界體階層重建 | |
| US12056819B2 (en) | Compressed traversal stack for GPU ray tracing | |
| TWI907529B (zh) | 快速增量共享常數 | |
| TW202215376A (zh) | 用於圖形處理單元混合渲染的裝置和方法 | |
| TW202213031A (zh) | 經壓縮的幾何形狀渲染與資料串流 |