TWI750676B - 用於圖形處理之資產感知計算架構 - Google Patents

用於圖形處理之資產感知計算架構 Download PDF

Info

Publication number
TWI750676B
TWI750676B TW109117661A TW109117661A TWI750676B TW I750676 B TWI750676 B TW I750676B TW 109117661 A TW109117661 A TW 109117661A TW 109117661 A TW109117661 A TW 109117661A TW I750676 B TWI750676 B TW I750676B
Authority
TW
Taiwan
Prior art keywords
asset
lod
data
gpu
assets
Prior art date
Application number
TW109117661A
Other languages
English (en)
Other versions
TW202103111A (zh
Inventor
馬可 舍尼
Original Assignee
美商索尼互動娛樂有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商索尼互動娛樂有限責任公司 filed Critical 美商索尼互動娛樂有限責任公司
Publication of TW202103111A publication Critical patent/TW202103111A/zh
Application granted granted Critical
Publication of TWI750676B publication Critical patent/TWI750676B/zh

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/391Resolution modifying circuits, e.g. variable screen formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

一種用於藉由一計算系統執行一遊戲之方法,該計算系統使用一中央處理單元(CPU)及一圖形處理單元(GPU)來產生視訊訊框。藉由該CPU為一視訊訊框產生一繪製呼叫。在繫結時間,即藉由該CPU使用一GPU API寫入GPU命令時,將資產感知資料(AAD)寫入至命令緩衝器,且請求將一或多個細節層次(LOD)資料自一資產儲存區載入至系統記憶體。該GPU使用寫入至該系統記憶體之LOD資料來執行針對該訊框之該繪製呼叫,該GPU基於該AAD使用至少一最低LOD資料。另外,該GPU在執行該繪製呼叫時使用關於LOD載入狀態之資訊,以避免存取尚未載入之LOD。

Description

用於圖形處理之資產感知計算架構
本發明係關於計算系統架構,並且更特定而言,係關於一種包括在產生一遊戲或其他互動式應用程式之視訊訊框時之資產感知組件之計算系統架構,該等資產感知組件包括一中央處理單元及一圖形處理單元。
視訊遊戲提供在虛擬化遊戲世界中之遊戲歷程。可經由執行對應遊戲來建立遊戲世界之不同場景。可使用各種類型之資產(諸如紋理及模型)來產生場景。由圖形處理器使用此等資產來產生場景。此等資產太大而無法同時放入系統記憶體中,因此資產通常儲存在光學媒體、硬碟機或固態裝置上且在需要時載入至系統記憶體。因此,使用者在載入資產時可能會經歷長延遲,且管理資產至系統記憶體之載入及釋放系統記憶體以接收附加資產可能會給遊戲開發者形成巨大負擔。因此,遊戲開發者可減少場景之複雜性,以減少使用者延遲及所需之資產管理,但結果係玩家之沉浸式體驗較少。
在此情況下,出現了本發明之實施例。
本發明之實施例係關於一種計算系統架構及其實施方法,該計算系統架構包括經組態用於在經由一圖形管線處理紋理、模型或其他資產時進行資產感知之一中央處理單元及圖形處理單元。資產感知提供對處理所需之資產之識別,且用於追蹤此等資產之載入以供在圖形管線中使用。此外,資產感知可以知曉何時已經由圖形管線載入了最少之資產(例如較低LOD)以進行處理,從而減少圖形管線之任何停頓效應,尤其在虛擬化遊戲世界之場景之間轉換時。
本發明之實施例揭示一種資產感知計算架構,該資產感知計算架構經組態以在圖形管線需要資產時管理資產至系統記憶體中之載入,且在不再需要資產時釋放系統記憶體。該計算架構包括一資產儲存區,該資產儲存區經組態具有提供快速存取之記憶體裝置,從而允許將用於在視訊訊框中繪製之場景之資產在數毫秒或數十毫秒內載入至系統記憶體。特定而言,資產係使用一繫結時間觸發(bind time trigger)自該資產儲存區載入至系統記憶體。以此方式,當資產繫結至(例如,在繫結時間)對應繪製呼叫時且當執行遊戲之中央處理單元(CPU)使用一圖形應用程式設計介面(API)來為藉由實施圖形管線之圖形處理單元(GPU)執行之繪製呼叫建構一或多個命令緩衝器時,觸發用於呈現一視訊訊框之一或多個繪製呼叫之資產之載入。由於計算架構係資產感知型的,因此GPU能夠針對視訊訊框之一或多個繪製呼叫使用最少之所需資產來執行,而無需等到所需資產完全載入才執行。一資產儲存區控制器經組態以控制對該資產儲存區中之資產之管理及資產在整個資產感知計算架構中之遞送。在一個實施例中,該資產儲存區控制器可為在其他晶片上單元之幫助下在CPU上運行之軟體。該資產儲存區控制器可替代地為含副處理器(諸如附加CPU)之晶片上複合體。CPU及GPU两者皆可經修改以與該資產儲存區控制器整合及/或介接。該資產儲存區包括遊戲之紋理、模型及其他資料。該資產儲存區比系統記憶體大得多。該資產儲存區知曉其內容,包括使用資產識別符(資產ID)識別及/或標記之資產,以及內容及/或資產之細節(例如,對應資產之細節層次)。該資產儲存區係以各種方式以一資產感知方式更新,諸如何時在本端產生資產,或何時自機架內之大容量儲存裝置存取資產,或何時自資料中心內存取資產,或何時經由網路遞送資產,等。習知地,在CPU上執行之遊戲使用GPU API將一或多個資產(例如,紋理、細節層次-LOD、模型等)繫結至一繪製呼叫,從而使得該等資產能夠在藉由該繪製呼叫呈現物件時使用。在該資產感知計算架構中,GPU API自在CPU上執行之遊戲接收附加資訊。舉例而言,對於每一繪製呼叫,附加資產感知資料(asset aware data;AAD)包括用於繪製呼叫之資產之資產ID、在繪製呼叫能夠在圖形管線中執行之前必須為該資產載入之最低LOD以及該資產之載入相較於繪製呼叫所使用之資產之其他載入之優先級。GPU API經組態以針對對應繪製呼叫將至少某些AAD放入命令緩衝器中(例如,資產ID、最低LOD等)且將至少某些(若非全部)AAD傳遞至該資產儲存區控制器。另外,GPU API亦可用於在呈現每一視訊訊框完成時通知該資產儲存區控制器,例如藉由將一命令放入命令緩衝器中。因此,在資產感知架構中,該資產儲存區控制器接收AAD之串流(諸如具有優先級資訊的視訊訊框所需之至少所有資產)及對使用彼等資產之呈現之結束之通知等。在接收到AAD後,該資產儲存區控制器開始將該等資產自該資產儲存區載入至系統記憶體中。載入程序使用載入優先級。舉例而言,可為所有紋理及/或模型及/或其他資產載入「最低LOD」,然後可基於資產之載入優先級資訊來執行更高LOD之載入。在載入完成後,(例如,使用資產ID)向GPU通知資產已經載入或正在載入及載入程度(例如,已為資產載入了哪些LOD)。在某些實施例中,若呈現(例如,對應繪製呼叫在圖形管線中之執行)已經開始且該繪製呼叫所需之資產尚未載入,則可能存在資產之「緊急載入」。在其他實施例中,命令緩衝器中之條件命令可用於查詢LOD資料之載入狀態並更改命令流,例如,若最低LOD資料尚未載入,則完全跳過繪製呼叫(即為了避免GPU中之停頓),以使用代理資產進行呈現或允許基於已載入之LOD進行定製呈現。在另外其他實施例中,GPU可使用AAD做出此等相同判定,例如,若最低LOD資料尚未載入,則完全跳過繪製呼叫(即為了避免GPU中之停頓)。該資產儲存區控制器亦經組態以釋放不需要之記憶體,諸如當在呈現訊框期間尚未使用一資產並且因此可釋放儲存該資產之記憶體空間時。GPU可修改為資產感知型的。舉例而言,當呈現物件時,GPU辨識是否已載入資產之所需LOD。GPU能夠針對所需之LOD發出「緊急載入」請求,然後暫停,直至所需之LOD被載入為止。另外,GPU辨識針對特定資產已載入至記憶體中之最高LOD,且使用最多該最高LOD但不超過該最高LOD來呈現對應視訊訊框。作為系統記憶體之載入及釋放之一部分,可能需要操縱頁表、CPU快取記憶體及GPU快取記憶體,且因此,該資產儲存區控制器、CPU及GPU可經組態以加速此等操作。以此方式,自在CPU上執行之遊戲之角度,對應繪製呼叫所需之資產「神奇地」及時展示在系統記憶體中以供使用。即,遊戲僅需要使用GPU API進行繪製呼叫,且所需資產(例如,最低LOD)已準備好在圖形管線中使用。
在一個實施例中,揭示一種用於藉由一計算系統執行一遊戲之方法,該計算系統使用一中央處理單元及一圖形處理單元來產生視訊訊框。該方法包括藉由該CPU為該等視訊訊框中之一視訊訊框產生一繪製呼叫。該方法包括在一繫結時間將用於該繪製呼叫之一或多個命令寫入至一命令緩衝器。該方法包括在該繫結時間使用一GPU API將用於該繪製呼叫之資產感知資料(AAD)寫入至該命令緩衝器,且在該繫結時間開始將一或多個細節層次(LOD)資料自一資產儲存區載入至由該計算系統使用之一系統記憶體。該方法包括藉由該GPU使用寫入至該系統記憶體之LOD資料來執行針對該訊框之該繪製呼叫,該GPU基於該AAD使用至少一最低LOD資料。
在另一實施例中,揭示一種用於執行一遊戲以產生視訊訊框之計算系統。該計算系統包括一中央處理單元,該中央處理單元經組態用於執行該遊戲。該CPU為該等視訊訊框中之一訊框產生一繪製呼叫,其中該繪製呼叫包括命令。該計算系統包括一命令緩衝器,該命令緩衝器經組態用於儲存資產感知資料及用於該繪製呼叫之命令,該AAD及該等命令係在一繫結時間藉由該CPU使用一GPU API寫入至該命令緩衝器中。該計算系統包括一資產儲存區,該資產儲存區經組態用於儲存應用程式之複數個資產,該複數個資產包括由該繪製呼叫使用之一資產之一或多個細節層次。該計算系統包括一系統記憶體,該系統記憶體經組態用於儲存由該繪製呼叫使用之一或多個細節層次資料,該LOD資料自該資產儲存區之載入係在該繫結時間藉由該CPU而觸發,其中該LOD資料在將該AAD寫入至該命令緩衝器之同時開始載入至系統記憶體。該計算系統包括一圖形處理單元,該圖形處理單元經組態用於使用寫入至該系統記憶體之LOD資料來執行針對該訊框之該繪製呼叫之命令,該GPU基於該AAD使用至少一最低LOD資料。
在又一實施例中,揭示一種儲存一電腦程式之非暫時性電腦可讀媒體,該電腦程式用於藉由一計算系統執行一遊戲,該計算系統使用一中央處理單元及一圖形處理單元來產生視訊訊框。該非暫時性電腦可讀媒體包括用於藉由該CPU為該等視訊訊框中之一視訊訊框產生一繪製呼叫的程式指令。該非暫時性電腦可讀媒體包括用於在一繫結時間將用於該繪製呼叫之一或多個命令寫入至一命令緩衝器的程式指令。該非暫時性電腦可讀媒體包括用於在該繫結時間使用GPU API將用於該繪製呼叫之資產感知資料(AAD)寫入至該命令緩衝器且在該繫結時間開始將一或多個細節層次(LOD)資料自一資產儲存區載入至由該計算系統使用之一系統記憶體的程式指令。該非暫時性電腦可讀媒體包括用於藉由該GPU使用寫入至該系統記憶體之LOD資料來執行針對該訊框之該繪製呼叫的程式指令,該GPU基於該AAD使用至少一最低LOD資料。
本發明之其他態樣將自結合附圖以舉例方式說明本發明之原理之以下詳細描述變得顯而易見。
儘管以下詳細描述出於說明目的而含有許多特定細節,但熟習此項技術者將瞭解,對以下細節之諸多變化及更改在本發明之範疇內。因此,下文描述之本發明之態樣係在不失本說明所附之申請專利範圍之一般性且不對本說明所附之申請專利範圍加以限制之情況下而闡述。
一般而言,本發明之各種實施例描述一種包括資產感知組件之計算系統架構及其實施方法,該等資產感知組件諸如經由圖形管線產生視訊訊框之中央處理單元及圖形處理單元。由CPU及GPU進行之資產感知提供對圖形管線中所使用之資產之識別及追蹤,使得在產生對應視訊訊框時可使用最少資產(例如,最低細節層次-LOD)用於經由圖形管線進行處理。特定而言,在CPU上執行之遊戲碼可預測何時需要資產以便及時地將彼等資產載入至系統記憶體中。舉例而言,資產可為紋理及/或模型,該等紋理及/或模型係經由圖形管線之著色器程式而處理以產生經由顯示器之像素顯示之視訊訊框。舉例而言,森林場景可將經由圖形管線處理之樹紋理作為輸入。在可能沒有足夠時間將用於紋理及/或模型之大量LOD資料載入至系統記憶體中以進行處理之情況下,為了避免使GPU停頓,本發明之實施例提供資產感知,使得GPU經組態以追蹤所識別資產之載入且使用資產之至少最低LOD來產生場景。最初,可用低解析度來呈現場景,但在後續訊框中,可使用更完整之LOD資料來呈現場景。以此方式,可經由圖形管線有效地產生虛擬化遊戲世界之大型且複雜場景,同時減少使GPU停頓以等待資產載入之可能。當在遊戲中遇到場景切換(scene-cut)時,此特別有益,其中遊戲在兩個視訊訊框之間自一個場景過渡至另一場景(例如,按電影序列之場景變化,或在一系列選單之後開始互動式遊戲歷程)。替代等待整個LOD資料載入以產生新場景,可為每一必需資產載入最低LOD資料以經由圖形管線進行處理以產生對應視訊訊框。舉例而言,藉由即使在呈現複雜場景時亦減少GPU停頓,可極大地提高使用者玩遊戲之沉浸式體驗。
根據對各種實施例之以上一般理解,現在將參考各種圖來描述實施例之實例細節。
在整個說明書中,對「遊戲」或「視訊遊戲」或「遊戲應用程式」之提及意欲表示經由執行輸入命令而定向之任何類型之互動式應用程式。僅出於說明目的,互動式應用程式包括用於遊戲、文書處理、視訊處理、視訊遊戲處理等之應用程式。此外,以上介紹之術語係可互換的。
圖1A係根據本發明之一個實施例之用於提供遊戲之系統100A之圖。如圖所示,遊戲正在玩遊戲之對應使用者之用戶端裝置110(例如,遊戲控制台)上本端執行。特定而言,遊戲之實例係由遊戲標題處理引擎111執行。用戶端裝置110可針對使用者以單玩家模式操作。實施遊戲之遊戲邏輯115(例如,可執行碼)係儲存在用戶端裝置110上,且用於執行遊戲。出於說明目的,遊戲邏輯115可經由可攜式媒體(例如,光學媒體)或經由網路(例如,經由網際網路自遊戲提供者下載)遞送至用戶端裝置110。
在一個實施例中,用戶端裝置110之遊戲標題處理引擎111包括用於執行遊戲之基本基於處理器之功能以及與遊戲應用程式相關聯之服務。舉例而言,基於處理器之功能包括2D或3D呈現、物理學、物理學模擬、指令碼處理、音訊、動畫、圖形處理、照明、著色、柵格化、光線追蹤、陰影處理、揀選、變換、人工智慧等。另外,針對遊戲應用程式之服務包括記憶體管理、多執行緒管理、服務品質(quality of service;QoS)、頻寬測試、社交網路、社交好友管理、與好友社交網路之通信、通信通道、文字處理、即時傳訊、聊天支援等。特定而言,用戶端裝置110經組態為包括資產感知組件之計算系統架構,該等資產感知組件諸如經由圖形管線產生視訊訊框之中央處理單元及圖形處理單元。以此方式,計算系統架構經組態以在產生對應視訊訊框時識別、追蹤及使用在圖形管線中使用(例如,執行繪製呼叫)之資產之至少最低LOD資料。
用戶端裝置110可自各種類型之輸入裝置接收輸入,該等輸入裝置諸如遊戲控制器、平板電腦、鍵盤、由視訊攝影機擷取之示意動作、滑鼠、觸控板等。用戶端裝置110可為具有至少記憶體及處理器模組之任何類型之計算裝置,且經組態用於產生由遊戲標題處理引擎111執行之所呈現影像,且用於在顯示器(例如,顯示器11,或包括頭戴式顯示器-HMD之顯示器11,等)上顯示所呈現影像。舉例而言,所呈現影像可與在用戶端裝置110上本端執行之遊戲之實例相關聯,以諸如經由用於驅動遊戲歷程之輸入命令來實施對應使用者之遊戲歷程。用戶端裝置110之某些實例包括個人電腦(personal computer;PC)、遊戲控制台、家庭影院裝置、通用電腦、行動計算裝置、平板電腦、電話或可執行遊戲之實例之任何其他類型之計算裝置。
圖1B係根據本發明之一個實施例之用於提供具有提供支援服務之後端雲端遊戲網路之遊戲之系統100B之圖。如圖所示,遊戲正在玩遊戲之對應使用者之用戶端裝置110(例如,遊戲控制台)上本端執行,其中先前在圖1A中介紹了用戶端裝置110。特定而言,如前所述,遊戲之實例係由遊戲標題處理引擎111執行。即,用戶端裝置110之遊戲標題處理引擎111包括用於執行遊戲之基本基於處理器之功能以及與遊戲應用程式相關聯之服務。實施遊戲之遊戲邏輯115(例如,可執行碼)係儲存在用戶端裝置110上,且用於執行遊戲。如前所述,用戶端裝置110包括資產感知組件,諸如經由圖形管線產生視訊訊框之中央處理單元及圖形處理單元。以此方式,包括CPU及GPU之計算系統架構經組態以在產生對應視訊訊框時識別、追蹤及使用在圖形管線中使用(例如,執行繪製呼叫)之資產之至少最低LOD資料。
遊戲伺服器160可經組態以支援支援複數個使用者之一或多個區域計算裝置,其中每一區域計算裝置可諸如以單玩家或多玩家模式執行對應遊戲之實例。舉例而言,在多玩家模式下,儘管遊戲可在本端執行,但雲端遊戲網路190經由網路150同時地自每一區域計算裝置接收資訊(如,遊戲狀態資料),且相應地在區域計算裝置中之一或多者中分佈該資訊,使得每一使用者能夠在多玩家遊戲之虛擬化遊戲世界中與其他使用者進行互動(例如,經由遊戲中之對應角色)。以此方式,雲端遊戲網路190藉由經由網路150傳遞資訊來協調且組合多玩家遊戲環境中之每一使用者之遊戲歷程。網路150可包括一或多種通信技術。在某些實施例中,網路150可包括具有進階無線通信系統之第5代(5G)網路技術。
此外,在單玩家或多玩家模式下,雲端遊戲網路可為用戶端裝置110提供附加服務。舉例而言,雲端遊戲網路190可出於備份遊戲歷程之目的而儲存使用者之遊戲歷程中之一或多個點之遊戲狀態,從而提供遊戲歷程之亮顯,基於所記錄遊戲歷程而產生迷你遊戲,提供與遊戲歷程有關之基於人工智慧(artificial intelligence;AI)之資訊(例如,對遊戲之支援)等。
圖1C係根據本發明之一個實施例之用於經由雲端遊戲網路190提供遊戲之系統100C之圖,其中遊戲正在玩遊戲之對應使用者之用戶端裝置110’(例如,精簡型用戶端)之遠離執行。系統100C可向一或多個使用者提供遊戲控制,該一或多個使用者以單玩家或多玩家模式經由網路150透過雲端遊戲網路190玩一或多個遊戲。在某些實施例中,雲端遊戲網路可為包括在主機之超管理器上運行之複數個虛擬機(virtual machine;VM)之雲端遊戲網路190,其中一或多個虛擬機經組態以利用主機之超管理器(hypervisor)可用之硬體資源來執行遊戲處理器模組。網路150可包括一或多種通信技術。在某些實施例中,網路150可包括具有進階無線通信系統之第5代(5G)網路技術。
如圖所示,雲端遊戲網路190包括提供對複數個遊戲之存取之遊戲伺服器160。遊戲伺服器160可為在雲端中可用之任何類型之伺服器計算裝置,且可組態為在一或多個主機上執行之一或多個虛擬機。舉例而言,遊戲伺服器160可管理支援為使用者實例化遊戲之實例之遊戲處理器之虛擬機。因此,與複數個虛擬機相關聯之遊戲伺服器160之複數個遊戲處理器經組態以執行與複數個使用者之遊戲歷程相關聯之一或多個遊戲之多個實例。以此方式,後端伺服器支援向複數個對應使用者提供複數個遊戲應用程式之遊戲歷程之媒體(例如,視訊、音訊等)之串流傳輸。即,遊戲伺服器160經組態以經由網路150將資料(例如,對應遊戲歷程之所呈現影像及/或訊框)串流傳輸回至對應用戶端裝置110’。以此方式,計算上複雜之遊戲應用程式可回應於由用戶端裝置110’接收及轉發之控制器輸入而在後端伺服器處執行。每一伺服器能夠呈現影像及/或訊框,該等影像及/或訊框接著經編碼(例如,壓縮)且串流傳輸至對應用戶端裝置以進行顯示。
舉例而言,複數個使用者可使用對應用戶端裝置110’經由網路150存取雲端遊戲網路190,其中用戶端裝置110’可類似於圖1A至圖1B之用戶端裝置110而組態(例如,包括遊戲執行引擎111等),或可組態為提供與後端伺服器之介接之精簡型用戶端,該後端伺服器經組態用於提供計算功能性(例如,包括遊戲標題處理引擎111’)。
為了易於說明,在圖1C中展示出支援對應使用者之單一用戶端裝置110’。特定而言,對應使用者(未示出)之用戶端裝置110’經組態用於請求經由諸如網際網路之網路150來存取遊戲,及用於呈現由遊戲伺服器160執行且傳遞至與對應使用者相關聯之顯示器裝置之遊戲之實例。舉例而言,使用者可能正在經由用戶端裝置110’與在遊戲伺服器160之遊戲處理器上執行之遊戲之實例進行互動。更特定而言,遊戲之實例係由遊戲標題處理引擎111’執行。實施遊戲應用程式之對應遊戲邏輯(例如,可執行碼)115’經儲存且可經由資料儲存區(未示出)存取,且用於執行遊戲。遊戲標題處理引擎111’能夠使用複數個遊戲邏輯來支援複數個遊戲,該複數個遊戲邏輯中之每一者可由使用者選擇。
舉例而言,用戶端裝置110’經組態以與對應使用者之遊戲歷程相關聯地與遊戲標題處理引擎111’進行互動,諸如經由用於驅動遊戲歷程之輸入命令。特定而言,用戶端裝置110’可自各種類型之輸入裝置接收輸入,該等輸入裝置諸如遊戲控制器、平板電腦、鍵盤、由視訊攝影機擷取之示意動作、滑鼠、觸控板等。用戶端裝置110’可為具有至少記憶體及處理器模組之任何類型之計算裝置,該計算裝置能夠經由網路150連接至遊戲伺服器160。後端遊戲標題處理引擎111’經組態用於產生所呈現影像,所呈現影像係經由網路150遞送以在與用戶端裝置110’相關聯之對應顯示器上顯示。舉例而言,經由基於雲端之服務,所呈現影像可藉由在遊戲伺服器160之遊戲執行引擎111’上執行之對應遊戲之實例來遞送。即,用戶端裝置110’經組態用於接收所呈現影像,及用於在顯示器11上顯示所呈現影像。在一個實施例中,顯示器11包括HMD(例如,顯示VR內容)。在某些實施例中,所呈現影像可以無線方式或有線方式直接自基於雲端之服務或經由用戶端裝置110’(例如,PlayStation®遠端遊玩)串流傳輸至智慧型手機或平板電腦。
在一個實施例中,遊戲伺服器160及/或遊戲標題處理引擎111’包括用於執行遊戲之基本基於處理器之功能以及與遊戲應用程式相關聯之服務。舉例而言,基於處理器之功能包括2D或3D呈現、物理學、物理學模擬、指令碼處理、音訊、動畫、圖形處理、照明、著色、柵格化、光線追蹤、陰影處理、揀選、變換、人工智慧等。另外,針對遊戲應用程式之服務包括記憶體管理、多執行緒管理、服務品質(QoS)、頻寬測試、社交網路、社交好友管理、與好友社交網路之通信、通信通道、文字處理、即時傳訊、聊天支援等。特定而言,遊戲伺服器160及/或遊戲標題處理引擎111’經組態為包括資產感知組件之計算系統架構,該等資產感知組件諸如經由圖形管線產生視訊訊框之中央處理單元及圖形處理單元。以此方式,計算系統架構經組態以在產生對應視訊訊框時識別、追蹤及使用在圖形管線中使用(例如,執行繪製呼叫)之資產之至少最低LOD資料。
在一個實施例中,雲端遊戲網路190係分散式遊戲伺服器系統及/或架構。特定而言,執行遊戲邏輯之分散式遊戲引擎經組態為對應遊戲之對應實例。通常,分散式遊戲引擎採用遊戲引擎之功能中之每一者,且分佈彼等功能以由多個處理實體執行。個別功能可進一步跨一或多個處理實體分佈。該等處理實體可以不同組態(包括實體硬體)來組態,及/或組態為虛擬組件或虛擬機,及/或組態為虛擬容器,其中容器不同於虛擬機,因為虛擬機會將在虛擬化作業系統上運行之遊戲應用程式之實例虛擬化。該等處理實體可利用及/或依賴於雲端遊戲網路190之伺服器及一或多個伺服器(計算節點)上之其底層硬體,其中伺服器可位於一或多個機架上。彼等功能至各種處理實體之執行之協調、指派及管理係由分佈同步層執行。以此方式,彼等功能之執行係由分佈同步層控制以回應於玩家之控制器輸入而使得能夠為遊戲應用程式產生媒體(例如,視訊訊框、音訊等)。分佈同步層能夠跨分散之處理實體高效地執行(例如,經由負載平衡)彼等功能,使得關鍵之遊戲引擎組件/功能被分散且重組以進行更高效之處理。
在一個實施例中,圖1A至圖1C之遊戲標題處理引擎111及111’包括經組態以執行多租戶GPU功能性之CPU與GPU群組,其中一個CPU與GPU群組可實施多個遊戲之圖形及/或呈現管線。即,CPU與GPU群組在正執行之多個遊戲之間共用。CPU與GPU群組可組態為一或多個處理裝置。在另一實施例中,多個GPU裝置經組合以針對在對應CPU上執行之單一應用程式執行圖形處理。
圖2圖示根據本發明之一個實施例之包括諸如中央處理單元702及圖形處理單元716之資產感知組件之計算架構200,當CPU正執行遊戲時,該等資產感知組件在產生視訊訊框時感知資產。特定而言,視訊訊框係使用由GPU 716實施且由CPU 702控制之圖形管線產生。由CPU 702及GPU 716進行之資產感知提供對圖形管線中所使用之資產之識別及追蹤,使得在產生對應視訊訊框時可使用最少資產(例如,最低細節層次-LOD)用於經由圖形管線進行處理。計算架構200可在圖1A至圖1C之用戶端裝置110及/或雲端遊戲網路190中(例如,在遊戲伺服器160及/或遊戲標題處理引擎111及111’中)實施。
計算架構200包括CPU 702,該CPU經組態用於執行遊戲。特定而言,CPU 702為視訊訊框中之一訊框產生一繪製呼叫,該繪製呼叫包括指令。此外,在圖形管線中執行期間,繪製呼叫之指令可能需要資產。對於特定之視訊訊框,可能存在由CPU 702產生且由GPU 716執行之多個繪製呼叫。隨著處理能力提高,遊戲經設計以在遊戲歷程期間呈現更複雜之場景。由此,遊戲為每一視訊訊框推送愈來愈多之繪製呼叫以產生在遊戲之遊戲歷程期間使用之場景(例如,森林場景、海洋場景等)。在CPU 702上執行之遊戲碼預測何時需要資產(例如,藉由針對視訊訊框之一或多個繪製呼叫),且在實際使用之前協調資產至系統記憶體220中之載入,使得該等資產可供GPU 716使用以用於在適當時間經由圖形管線呈現場景。
GPU API 250可用於在組件之間或在計算架構200之組件上運行之應用程式之間通信。舉例而言,GPU API 250可在CPU 702上運行或由CPU 702呼叫以與另一組件通信,該另一組件諸如圖形處理單元、系統記憶體、命令緩衝器、資產儲存區等。GPU API 250可在資產儲存區控制器230或GPU 716內之處理器上運行,以與其他組件通信;在某些實施例中,出於此通信目的,GPU API 250可部分地實施為固定功能硬體(而非通用CPU)。
為進行資產感知,在CPU 702上執行之遊戲產生關於用於每一繪製呼叫之資產之附加資訊。舉例而言,此資產感知資料(AAD)可包括對應資產之識別符(例如,資產ID)、在對應繪製呼叫能夠在圖形管線中執行之前必須載入至系統記憶體中之最低LOD及該資產之載入與在其他繪製呼叫中或在此繪製呼叫內使用之其他資產之載入相比之優先級。用於繪製呼叫之AAD中之至少某些(例如,資產ID)係使用GPU API 250自在CPU 702上執行之遊戲遞送至保存用於該繪製呼叫之命令之對應命令緩衝器。另外,用於繪製呼叫之ADD中之至少某些(若非全部)可使用GPU API 250自在CPU 702上執行之遊戲遞送至資產儲存區控制器230,以便針對該繪製呼叫協調在圖形管線中使用之資產之載入。在某些實施例中,所有AAD皆遞送至資產儲存區控制器230。
計算架構200包括GPU 716,該GPU經組態用於實施圖形管線。舉例而言,圖形管線可由GPU 716實施,以對場景內之物件之頂點執行著色器程式以產生顯示器之像素之紋理值,其中為了效率,操作係經由GPU 716平行地執行。通常,圖形管線接收輸入幾何形狀(例如,遊戲世界內之物件之頂點)。頂點著色器建構構成場景內之物件之多邊形或基元。頂點著色器或其他著色器程式可為多邊形執行照明、著色、陰影處理及其他操作。頂點著色器或其他著色器程式可執行深度或z緩衝以判定在自對應視點呈現之場景中哪些物件可見。執行柵格化以將三維世界中之物件投影至藉由視點界定之二維平面。為物件產生像素大小之片段,其中一或多個片段在顯示影像時可能有助於對應像素之色彩。該等片段經合併及/或混合以判定像素中之每一者之組合色彩,該等像素係儲存在訊框緩衝器中以用於顯示。
另外,遊戲可使用不同類型之資產用於圖形處理,如由執行遊戲之CPU 702所控制。此等資產可由GPU 716在圖形管線中使用以用於產生遊戲中之場景,例如森林場景可將經由圖形管線處理之樹紋理及樹模型作為輸入。隨著遊戲發展,經由執行對應遊戲而建立之虛擬化遊戲世界將變得更複雜,且可需要對場景中之物件或模型之愈來愈多之頂點及/或紋理執行著色器程式之操作。
更特定而言,計算架構200之GPU 716經組態用於執行繪製呼叫命令以使用LOD資料產生視訊訊框。更確切地說,GPU 716基於資產感知計算架構200之組件知曉之資產感知資料而使用至少最低LOD資料。如前所述,視訊訊框可需要執行一或多個繪製呼叫,其中每一繪製呼叫可需要一或多個資產(例如,紋理、模型等)。若此等資產要載入至系統記憶體220中,但此等資產太大而無法全部同時放入系統記憶體220中,因此将該等資產儲存在系統記憶體外,例如儲存在硬碟機或固態裝置(solid state device;SSD)上,則該等資產可僅由GPU 716使用。在CPU 702執行遊戲期間,在CPU 702上執行之遊戲碼預測何時需要資產(例如,藉由針對視訊訊框之一或多個繪製呼叫),且在實際使用之前使用GPU API協調資產至系統記憶體220中之載入,使得該等資產可供GPU 716使用以用於在適當時間經由圖形管線呈現場景。隨著場景變得愈來愈複雜,需要愈来愈大之紋理資料,完全載入所需資產之時間可增加。因此,圖形管線可在資產完全載入之前嘗試使用資產。
在本發明之實施例中,資產感知計算架構200允許資產可用於在圖形管線中进行處理而不会使GPU 716停頓等待資產被完全載入至系統記憶體220。當為了呈現場景而提供之輸入(例如紋理)太多時,在傳統計算架構中尤其可能出現停頓。舉例而言,在對應繪製呼叫由圖形管線執行之前,用於視訊訊框之紋理或模型資產資料可未完全載入。當在遊戲中遇到場景切換時,更係如此,其中遊戲在兩個視訊訊框之間自一個場景過渡至另一場景(例如,按電影序列之場景變化,或在一系列選單之後開始互動式遊戲歷程)。在傳統計算架構中,圖形管線將停頓以等待資產完全載入,之後再繼續執行。另一方面,本發明實施例之資產感知計算架構200經組態以開始執行圖形管線,即使資產(例如,紋理及/或模型)尚未完全載入亦如此。特定而言,所有遊戲(如由CPU執行)皆必須呼叫GPU API 250(基本上與往常一樣)以用於繪製呼叫。由於資產感知計算架構200能夠及時載入可用資產,因此遊戲開發者無需專注於定製遊戲之場景(例如,使該等場景不那麼複雜)以便在更傳統之計算架構上執行,該等更傳統之計算架構尤其在呈現複雜場景時或在場景切換中切換場景時可能較慢或功能不佳。
資產感知計算架構200包括資產儲存區210,該資產儲存區經組態用於儲存遊戲之複數個資產。在某些實施例中,資產儲存區210可組態為硬碟機或使用SSD。隨著記憶體技術發展,其他記憶體裝置可用於提供更快存取之資產儲存區210。以此方式,用於呈現場景之所有資產可在數毫秒或數十毫秒內或甚至更快地自資產儲存區210載入。
在實施例中,各種通信及/或匯流排介面可用於與資產儲存區210通信。舉例而言,快速周邊組件互連(PCI Express;PCIe)可用於存取資產儲存區210。在一個實施例中,快速非揮發性記憶體或快速NVM(non-volatile memory express;NVMe)定義用於存取經由PCIe匯流排附接之非揮發性儲存媒體之開放式邏輯裝置介面規範,其中對資產儲存區210之存取係經由NVMe實施,以提高存取資產儲存區210中之記憶體裝置之效能。
資產可在載入遊戲以執行時載入至資產儲存區210中。特定而言,資產儲存區210保存用於對應繪製呼叫之LOD資料290,且保存用於所有繪製呼叫之所有LOD資料。每一資產包括可由對應繪製呼叫使用之一或多個LOD。舉例而言,紋理資產可由具有一或多個LOD之mip映射或紋理映射鏈來表示,其中每一紋理映射(LOD)或mip映射(LOD)提供紋理之不同解析度或表示。舉例而言,紋理映射或mip映射可為映射至物件或多邊形之表面之影像。紋理映射可用於減少用於需要呈現之物件之多邊形之數目。另外,模型資產可表示物件。資產可包括解析度不同之一或多個模型(例如,LOD)以表示該物件。以此方式,可選擇具有針對該資產之適當解析度之所需模型以經由圖形管線進行呈現。
另外,資產儲存區210包括每一資產之資產感知資料(asset aware data;AAD),全部或某些AAD亦將駐留在系統記憶體220中。舉例而言,每一資產可藉由對應識別符(例如,資產ID)來標記,該識別符可與對應資產相關聯地儲存在資產儲存區210中。此外,每一資產可包括提供資產之細節之其他資料。舉例而言,每一資產之AAD可包括描述該資產之LOD集合之資訊。此代表性資訊可與對應資產相關聯地儲存在資產儲存區中。AAD資料可以各種方式以資產感知方式更新,諸如當資產由CPU 702或GPU 716在本端產生或自機架內之大容量儲存裝置存取或自資料中心內存取或經由網路存取時。即,資產儲存區210可以資產感知方式自機架或資料中心中之其他地方或經由網路或自遊戲更新。
資產感知計算架構200包括系統記憶體220 該系統記憶體經組態用於儲存由對應繪製呼叫使用之一或多個LOD資料290。另外,對於用於產生對應視訊訊框之每一繪製呼叫,系統記憶體220載入有LOD資料。特定而言,在一個實施例中,當在CPU 702上執行之遊戲在繫結時間使用GPU API 250將資產(例如,紋理、LOD資料、最低LOD資料等)繫結至對應繪製呼叫時,CPU 702亦向資產儲存區控制器230請求將LOD資料290自資產儲存區210載入至系統記憶體220。將LOD資料載入至系統記憶體220中之此請求可實施為GPU API 250之擴展,或藉由單獨之API來實施。
系統記憶體220可包括複數個命令緩衝器240。每一命令緩衝器經組態用於儲存AAD 260及對應繪製呼叫命令,其中AAD及該等命令係在繫結時間儲存。當存取命令緩衝器以執行對應命令時,可使GPU 716知曉AAD 260。特定而言,CPU 702使用GPU API 250將AAD及繪製呼叫之命令寫入至對應命令緩衝器。如圖2所示,命令緩衝器240a用於產生視訊訊框F0(例如,訊框0)。命令緩衝器240a包括繪製呼叫命令241(例如,命令241a至241n)及用於對應繪製呼叫之AAD。如前所述,對應資產之資產感知資料可包括用於所需資產(例如,紋理、模型等)之一或多個資產ID 261,且亦可包括指向資產儲存區210及/或系統記憶體220中之資產ID 261之指標262、所需資產ID(及對應資產)之最低LOD 263、資產ID之載入狀態264及資產ID中之每一者之載入優先級265(例如,資產相對於對應繪製呼叫或其他繪製呼叫所需之其他資產之載入優先級)。舉例而言,在靠近相機之物件中使用之資產可具有高或最高優先級。後續視訊訊框係使用類似組態之命令緩衝器來呈現。舉例而言,命令緩衝器240b用於產生視訊訊框F1(例如,訊框1),…,且命令緩衝器240n用於產生視訊訊框Fn(例如,訊框n)。
另外,命令可由CPU 702產生且包括在命令緩衝器中以在對應訊框已呈現時提供通知。在一個實施例中,在視訊訊框之對應資產已呈現時提供通知。因此,通知係由GPU 716在圖形管線中執行繪製呼叫命令產生,且使用GPU API 250傳遞至資產儲存區控制器230。
資產感知計算架構200包括資產儲存區控制器230,該資產儲存區控制器經組態以管理資產儲存區210中之資產之儲存及存取,且更特定而言管理整個計算架構200中之資產感知資訊流。在一個實施例中,資產儲存區控制器230經組態為「晶片上複合體」或單元,該「晶片上複合體」或單元包括一或多個副處理器。在另一實施例中,資產儲存區控制器230經組態為在其他晶片上單元之幫助下在CPU 702上運行之應用程式。
如前所述,資產儲存區控制器230經組態以針對用於產生視訊訊框之一或多個繪製呼叫使用GPU API 250或使用單獨之API自CPU 702接收AAD資訊串流。舉例而言,AAD包括繪製及/或呈現對應視訊訊框所需之所有資產(例如,資產ID)之標識以及彼等資產中之每一者之載入優先級。舉例而言,相較於該繪製呼叫所需之其他資產之載入而給出一資產之載入之優先級。當在圖形管線中執行繪製呼叫時,資產儲存區控制器可另外優先處理資產所需之最低LOD。
在接收到資產資訊時,資產儲存區控制器230基於AAD(例如,資產之載入優先級)開始將用於繪製呼叫之一或多個資產(例如,LOD資料)自資產儲存區210載入至系統記憶體220中。特定而言,在一個實施例中,對載入用於繪製呼叫之資產之LOD資料之請求基本上在將用於繪製呼叫之命令及用於繪製呼叫之AAD寫入至命令緩衝器之同時發生。即,對載入用於繪製呼叫之資產之LOD資料之請求在繫結時間發生。藉由在繫結一或多個資產時觸發用於繪製呼叫之一或多個資產之LOD資料之載入,可載入至少最低LOD,以便藉由GPU 716在圖形管線中及時地執行繪製呼叫。此外,繪製呼叫所需之資產之至少最低LOD之載入之繫結時間觸發會減少GPU停頓之發生,在GPU停頓時,GPU 716等待所需資產載入。對載入LOD資料之請求不一定係在繫結時間發生;在另一實施例中,將AAD與繪製呼叫命令一起寫入至命令緩衝器,且分別地,在另一時間,將AAD發送至資產儲存區控制器230以請求資產之載入。
在一個實施例中,載入係根據優先級進行。舉例而言,基於優先級資訊,首先載入所有紋理之「最低LOD」,然後載入更高LOD。此外,某些資產就載入而言優先於其他資產,使得較高優先級之資產(例如,最低LOD或較高LOD)優先於較低優先級之資產(例如,該資產之最低LOD或較高LOD)載入。在一個實施例中,在一或多個資產之載入完成時,(使用資產ID)向GPU 716通知對應資產已載入及該資產已載入之程度(例如,對應LOD之載入狀態)。在另一實施例中,GPU 716經組態以例如在繪製命令由GPU 716執行時存取載入狀態。
載入狀態可藉由資產儲存區控制器230來判定,該資產儲存區控制器經組態以請求且追蹤對應資產之LOD之載入。以此方式,對應資產之載入狀態可例如直接使用GPU API 250、經由命令緩衝器或經由GPU 716對載入狀態之提取而自資產儲存區控制器230傳達至GPU 916。由於AAD包括與特定資產之最低LOD及可能之LOD集合以及資產至系統記憶體220中之載入狀態有關之資訊,因此GPU 716經組態以使用給定資產之至少最低LOD來開始執行繪製呼叫。更特定而言,GPU 716可基於AAD(例如,載入狀態)來判定針對用於對應繪製呼叫之特定資產已載入之最高LOD。因此,GPU 716可使用已載入之最高LOD而非任何更高LOD(例如,尚未載入之LOD)來執行繪製呼叫。
此外,由於資產感知包括用於繪製呼叫之對應資產之載入狀態,因此GPU 716經組態以判定對應資產之所需LOD(例如,最低LOD)是否已經載入至系統記憶體。若最低LOD尚未載入,則GPU可發出「緊急載入」請求,例如載入最低LOD或代理資產(若代理資產尚未在系統記憶體中)。GPU可能停頓,直至最低LOD或代理資產已載入為止。緊急判定可在執行繪製呼叫之前或同時做出。舉例而言,資產儲存區控制器230及/或GPU 716可在前一繪製呼叫正在圖形管線中執行時或任何繪製呼叫已藉由GPU 716針對包括資產之使用之視訊訊框執行之前做出該判定。若最低LOD尚未載入,則資產儲存區控制器230或GPU 716可在彼時發出「緊急載入」請求。
資產儲存區控制器230亦經組態以重新分配系統記憶體。特定而言,如前所述,通知可在視訊訊框之呈現結束已經完成時產生。另外,AAD可包括來自命令緩衝器之關於特定資產之呈現結束之通知。該通知可使用GPU API 250自執行命令緩衝器中之繪製呼叫命令之GPU傳遞至資產儲存區控制器230,其中命令緩衝器可包括用於產生及傳遞該通知之命令。以此方式,可將用於彼視訊訊框之資產作為目標,使得可釋放儲存彼等資產之記憶體空間。另外,資產儲存區控制器經組態以追蹤載入至系統記憶體之資產之使用情況(例如,追蹤LOD資料之使用情況,包括諸如讀取紋理之次數)。因此,可將尚未用於呈現視訊訊框之資產作為目標,使得可釋放儲存彼等資產之記憶體空間。資產可被完全釋放(所有LOD),或可僅釋放LOD之一子集。為了幫助做出此等判定,在某些實施例中,GPU 716經組態以追蹤資產之使用情況,例如對於紋理而言,所使用之最低及最高LOD以及總存取次數或每一LOD之存取次數,對於繪製呼叫而言,由於呼叫而寫入之像素之數目及繪製呼叫之執行或缺少(可預測某些呼叫),對於模型而言,所使用之LOD及所產生之頂點計數。在某些實施例中,可使用部分載入之資產之已載入LOD之使用情況來優先載入此等資產之最高LOD,例如,若尚未為兩個資產載入LOD 0,且可以看到實質使用了一個資產而非另一資產之LOD 1,則具有實質LOD 1使用之資產之LOD 0應優先。
作為系統記憶體之載入及釋放之一部分,可能需要操縱頁表、CPU快取記憶體及GPU快取記憶體,且因此,該資產儲存區控制器、CPU及GPU可經組態以加速此等操作。舉例而言,GPU 716可經組態以加速資產儲存區控制器230對系統記憶體220之載入及釋放。資產儲存區控制器230對記憶體之載入及釋放需要操縱頁表及GPU快取記憶體718,且因此,GPU 716可經修改以加速此等程序。另外,CPU 702可經組態以加速資產儲存區控制器230對系統記憶體220之載入及釋放。資產儲存區控制器230對記憶體之載入及釋放需要操縱頁表及CPU快取記憶體(未示出),且因此,CPU 702可經修改以加速此等程序。
在一個實施例中,CPU 702經組態以關於以下內容查詢資產儲存區控制器230:哪些資產目前處於系統記憶體220中,或哪些資產被用於特定圖形訊框。CPU 702亦經組態以就資產儲存區之內容來查詢資料儲存區控制器230。
在另一實施例中,CPU 702經組態以向資產儲存區控制器230提供關於載入對應資產之提示。該提示不一定與正在產生之任何特定繪製呼叫相關。舉例而言,該提示可組態為以特定優先級載入資產之LOD資料之請求,其中LOD資料可用於預測之繪製呼叫。
圖3圖示根據本發明之一個實施例之包括CPU 702及GPU 716之計算系統之呈現管線,當CPU 702正執行遊戲時,該CPU及該GPU在產生視訊訊框時感知資產。訊框更新將針對預定之訊框呈現速率及時地執行。舉例而言,本發明之實施例可以每秒60個訊框來執行訊框呈現。其他實施例適合於以較慢或較快之速率執行訊框呈現。如前所述,呈現管線301可單獨地或組合地在用戶端裝置110及雲端遊戲網路190內實施。
特定而言,呈現管線包括CPU 702、GPU 716及該兩者皆可存取之記憶體(例如,資產儲存區210、系統記憶體220、共用記憶體、頂點緩衝器、索引緩衝器、深度或Z緩衝器、用於儲存待遞送至顯示器之所呈現視訊訊框之訊框緩衝器)。呈現管線(或圖形管線)說明用於呈現影像之一般程序,諸如當使用3D(三維)多邊形呈現程序時。舉例而言,用於所呈現影像之呈現管線301輸出顯示器中之像素中之每一者之對應色彩資訊,其中色彩資訊可表示紋理及著色(例如,色彩、陰影處理等)。
CPU 702通常可經組態以對在CPU 702上執行之遊戲之視訊訊框執行場景產生及/或物件動畫。CPU 702接收對應於3D虛擬環境內之物件之輸入幾何形狀。該等輸入幾何形狀可表示為3D虛擬環境內之頂點及對應於該等頂點中之每一者之資訊。舉例而言,3D虛擬環境內之物件可表示為藉由頂點界定之多邊形(例如,三角形),其中對應多邊形之表面接著經由呈現管線301處理以達成最終效應(例如,色彩、紋理等)。此外,紋理及模型資訊可作為圖形管線中之輸入提供。CPU 702之操作係熟知的,且在本文中進行大體描述。通常,CPU 702逐訊框地實施物件動畫,該物件動畫可係手繪動畫、自人類演員擷取及/或根據施加於物件之力及/或由物件施加之力(例如,諸如重力之外力,及物件感應移動之內力)而模擬。舉例而言,CPU 702執行3D虛擬環境內之物件及/或其他功能之物理學模擬。CPU 702接著發出針對多邊形頂點之繪製呼叫,該繪製呼叫係藉由GPU 716來執行。
特定而言,由CPU 702產生之動畫結果可儲存至隨後由GPU 716存取之頂點緩衝器,GPU 716經組態以出於呈現多邊形頂點之目的而執行將多邊形頂點投影至所投影多邊形之顯示或鑲嵌上。即,GPU 716可經組態以進一步建立構成3D虛擬環境內之物件之多邊形及/或基元,以包括針對多邊形執行照明、陰影處理及著色計算,此取決於場景之照明。可執行附加操作,該等附加操作諸如剪輯以識別及忽略在檢視範圍(viewing frustum)外之基元,以及柵格化以用於將場景中之物件投影至顯示器上(例如,將物件投影至與使用者之視點相關聯之影像平面)。在簡化層級上,栅格化包括查看每一基元,及判定哪些像素受該基元影響。基元之片段化可用於將基元分解為像素大小之片段,其中每一片段對應於顯示器中之像素及/或與呈現視點相關聯之參考平面。當在顯示器上呈現訊框時,一或多個基元之一或多個片段可能有助於像素之色彩。舉例而言,對於給定像素,將3D虛擬環境中之所有基元之片段組合成用於顯示之像素。即,組合對應像素之整體紋理及著色資訊以輸出該像素之最終色彩值。此等色彩值可儲存在訊框緩衝器中,當逐訊框地顯示場景之對應影像時,將此等色彩值掃描至對應像素。
如圖3所示,呈現管線被展示為包括由CPU 702、GPU 716及光柵引擎依序執行之操作,該等操作用於將所呈現訊框掃描輸出至顯示器710。為了說明,將呈現管線序列391至395展示為用於呈現訊框F0至F4。由於空間限制,未展示其他管線序列,諸如針對F4以外之訊框之序列。在圖3所示之實例中,呈現管線301之組件中之每一者以相同之訊框產生頻率操作。舉例而言,CPU 702及GPU 716可以相同之訊框產生頻率操作以經由呈現管線以預定義之訊框速率呈現訊框。
舉例而言,在標記為時間t-0之第一訊框週期中,CPU 702對物件執行物理學及其他模擬,且將多邊形基元與針對視訊訊框(例如,F0)之一或多個繪製呼叫一起遞送至GPU 716。在以時間t-1標記之第二訊框週期中,GPU 716執行基元裝配及其他任務以產生所呈現訊框(F0)。在由時間t-2標記之第三訊框週期中,掃描輸出訊框F0。類似地,管線序列392在第二及第三訊框週期中呈現訊框F1,且在由時間t-3標記之第四訊框週期中掃描輸出訊框F1。此外,管線序列393在第三及第四訊框週期中呈現訊框F2,且在由時間t-4標記之第五訊框週期中掃描輸出訊框F2。類似地,管線序列394在第四及第五訊框週期中呈現訊框F3,且在由時間t-5標記之第六訊框週期中掃描輸出訊框F3。此外,管線序列395在第五及第六訊框週期中呈現訊框F4,且在由時間t-6標記之第七訊框週期中掃描輸出訊框F4。
圖4圖示根據本發明之一個實施例之包括CPU及GPU之計算系統在CPU正執行遊戲之同時產生視訊訊框時對資產感知資料之使用。特定而言,呈現及/或圖形管線之一部分示出為用於呈現視訊訊框,且包括由CPU 702及GPU 716依序執行之操作。如圖所示,呈現管線參考時間線490。展示繪製時間402;該繪製時間跨越自GPU 716開始執行繪製呼叫至GPU 716完成對繪製呼叫之處理之時間段。繪製時間402將訊框週期1與訊框週期2分開。
在訊框週期1內及/或在訊框週期1之前開始,在操作410,CPU 702經由執行遊戲來處理視訊訊框1。特定而言,針對視訊訊框產生一或多個繪製呼叫,其中該等繪製呼叫係藉由GPU 716執行。在繫結時間401,CPU 702繫結一或多個繪製呼叫所需之資產以用於呈現視訊訊框之一部分。更確切地說,在繫結時間401,CPU 702將每一繪製呼叫之命令241(白框)寫入至對應命令緩衝器(例如240)。如圖所示,在操作415,CPU 702自繫結時間401開始使用GPU API 250將用於繪製呼叫之命令241及AAD 260(黑框)寫入至命令緩衝器240。命令241及AAD 260彼此可以有序方式(例如,順序地)或以無序方式(例如,交錯地)寫入。
另外,呈現視訊訊框需要之一或多個繪製呼叫所需之資產417係在繫結時間401開始載入至系統記憶體220。資產417包括一或多個LOD資料290,LOD資料290包括當對應資產用於呈現視訊訊框時可使用之最低LOD。LOD資料290至系統記憶體220之載入無需等待CPU 702完成產生視訊訊框所需之所有命令至命令緩衝器240之寫入即可開始,但若資產儲存區控制器230正忙於執行其他載入操作,諸如較高優先級LOD資料,則在資產417之LOD資料載入至系統記憶體220中之前可能有延遲。系統記憶體之重新分配411可需要在載入資產417之LOD資料290之前執行。
如前所述,在包括CPU 702及GPU 716之資產感知計算架構中,可追蹤LOD資料之載入。以此方式,GPU 716及/或資產儲存區控制器230可經組態以判定是否已經為對應資產載入了最低LOD。若已載入,則GPU 716可繼續使用對應資產之最低LOD來呈現視訊訊框。若未載入,則GPU 716及/或資產控制器可發出對最低LOD資料之緊急載入之請求。對載入狀態之判定及對緊急載入之請求可在繪製時間402、在前一繪製呼叫之執行期間、在操作420中所示之GPU對訊框1之處理開始時或在另一時間進行。如前所述,資產儲存區控制器可向GPU通知用於對應繪製呼叫之資產之載入狀態,或GPU可經組態以自資產儲存區控制器查詢及/或提取載入狀態。在某些實施例中,命令緩衝器中之條件命令可用於查詢資產417之LOD資料之載入狀態並更改命令流,例如若最低LOD資料尚未載入,則完全跳過繪製呼叫(即為了避免GPU中之停頓),以使用代理資產進行呈現或允許基於已載入之LOD進行定製呈現。在另外其他實施例中,GPU可使用AAD做出此等相同判定,例如,若最低LOD資料尚未載入,則完全跳過繪製呼叫(即為了避免GPU中之停頓)。
LOD資料之使用亦可使用LOD鉗403來控制。為了使GPU 716不嘗試使用尚未載入至系統記憶體中之LOD資料,在繪製時間402或更早之時間,GPU快取已載入之若干最高LOD(例如,LOD鉗),且僅使用在繪製呼叫開始之前經判定處於系統記憶體中之LOD資料,即在LOD鉗403處鉗制對LOD資料之存取。舉例而言,可在繪製時間402、在執行一或多個先前繪製呼叫期間或在呈現之整個訊框開始處快取LOD鉗。
在訊框週期2內及/或在訊框週期2之前開始,在操作420,GPU 716呈現視訊訊框(例如,訊框1)。如前所述,在操作420a處可能存在藉由GPU 716進行之可選早期處理,以甚至在發出繪製呼叫之前,基於AAD及對該資產之載入之追蹤判定是否已為用於對應繪製呼叫之特定資產載入了最低LOD。
圖5係根據本發明之一個實施例之在為中央處理單元所執行之遊戲產生視訊訊框時使用之對應資產之細節層次資料以及在載入LOD資料期間實施負載鉗之圖示。術語LOD資料及LOD可互換地使用,諸如對應於一資產及/或多個資產之LOD資料及LOD。特定而言,展示了對應資產之LOD資料。如前所述,LOD資料可包括不同解析度之LOD 0、LOD 1、LOD 2及LOD 3,其中根據慣例,LOD 0具有最高細節,而LOD 1、2及3具有逐漸降低之細節。舉例而言,對於紋理資產,LOD資料可為紋理之mip映射鏈。對於資產,最低LOD定義為LOD 2,其中最低LOD可在圖形管線中執行之繪製呼叫期間用於資產,即繪製呼叫可在沒有更高LOD 1或LOD 0之情況下繼續進行,但不能在系統記憶體中沒有LOD 3及LOD 2之情況下繼續進行。
可實施LOD鉗以確保GPU 716不嘗試使用尚未載入至系統記憶體中之LOD資料。在繪製時間402或更早時間,GPU快取代表已載入之最高LOD之數字。LOD鉗之快取值由GPU在執行繪製呼叫時使用,使得GPU將其對對應資產之LOD資料(例如,紋理及/或模型)之存取鉗制至LOD鉗之快取值,以便不超出該快取值且不嘗試存取不在記憶體中之內容。即,LOD鉗係用於確保在執行繪製呼叫時,GPU不嘗試使用(例如,在繪製時間402)尚未載入之LOD。另外,LOD鉗係用於確保在繪製呼叫之執行中使用LOD資料之同一集合,使得在繪製時間402之後(例如,在繪製執行期間)到達而載入至系統記憶體中之LOD資料不用於執行繪製呼叫。
在圖5中,LOD鉗之一個實例由線403a展示。在此實例中,在繪製時間402,LOD 3及LOD 2已完全載入,但LOD 1僅部分地載入,因此將LOD鉗設定為LOD值2(代表LOD 2)。GPU 716經組態使得該GPU將不使用高於LOD鉗之LOD值。舉例而言,即使使用紋理之基元靠近相機且通常使用LOD 1或LOD 0進行呈現,若LOD鉗設定為2,則將不使用此等較高LOD。
亦在圖5中,LOD鉗之另一實例由線403b展示。在此實例中,在繪製時間402,LOD 1已完全載入,且因此將LOD鉗設定為LOD值1,且LOD 1將由GPU 716在執行繪製呼叫時使用。在某些實施例中,LOD鉗係在繪製時間設定;在其他實施例中,LOD鉗係在GPU對訊框之處理420內更早地設定,或在另外更早時間(諸如GPU對訊框之處理420開始時)設定。
利用對圖1A至圖1C及圖2之各種用戶端裝置110及/或雲端遊戲網路190(例如,在遊戲伺服器160及/或遊戲標題處理引擎111及111’中)之詳細描述,圖6A之流程圖600A圖示根據本發明之一個實施例之藉由資產感知計算系統執行遊戲之方法,該資產感知計算系統使用中央處理單元及圖形處理單元來產生視訊訊框。
在610,該方法包括藉由CPU為視訊訊框中之一視訊訊框產生一繪製呼叫。繪製呼叫係由CPU在遊戲執行期間產生。如前所述,可與呈現視訊訊框相關聯地產生一或多個繪製呼叫。
舉例而言,繪製呼叫係在定義前一場景與新場景之間的過渡之過場動畫(cut-scene)期間產生。繪製新場景可需要將許多資產載入至系統記憶體中。然而,資產感知計算架構能夠使用最低LOD資料來呈現新場景,從而減少GPU停頓之可能。
在620,該方法包括在一繫結時間將用於繪製呼叫之命令寫入至一命令緩衝器。特定而言,在CPU上執行之遊戲使用GPU API在經由圖形管線進行處理時在繫結時間繫結繪製呼叫所需之一或多個資產,即,遊戲使用GPU API將與資產有關之命令寫入至命令緩衝器。
在630,該方法包括將用於繪製呼叫之資產感知資料(AAD)寫入至命令緩衝器,且亦開始將一或多個LOD資料自一資產儲存區載入至一系統記憶體。特定而言,可針對每一繪製呼叫在CPU上執行遊戲時產生或存取及/或判定AAD。舉例而言,AAD可包括對應繪製呼叫所需之每一資產之識別符(例如,資產ID)、可用於呈現繪製呼叫之每一資產之最低LOD以及每一資產相較於對應繪製呼叫所需之其他資產之優先級而言載入至系統記憶體之優先級。
當CPU(使用GPU API)將繪製呼叫命令及AAD寫入至命令緩衝器時,CPU亦請求資產儲存區控制器將用於繪製呼叫之一或多個LOD資料載入至由計算系統使用之系統記憶體中。在向資產儲存區控制器發出請求時,LOD資料開始載入,但一或多個LOD資料之實際載入可能未必已經發生。舉例而言,資產之第一複數個LOD資料開始載入於系統記憶體中,其中資產係在處理繪製呼叫時使用,且其中該第一複數個LOD資料包括最低LOD。特定而言,資產儲存區控制器經組態以接收資訊串流,該資訊串流包括繪製呼叫所需之一或多個資產之AAD。AAD包括繪製視訊訊框所需之資產之識別符、資產載入優先級以及使用彼等資產之視訊訊框呈現結束之通知。LOD資料係由資產儲存區控制器自資產儲存區載入至系統記憶體。如前所述,CPU可在繫結時間使用GPU API向資產儲存區控制器發出請求以載入LOD資料,在一個實施例中,例如隨AAD發送請求。此外,在另一實施例中,當AAD由資產儲存區控制器接收時,AAD可用於請求LOD資料,使得AAD之接收觸發一或多個LOD資料自資產儲存區至系統記憶體之載入。
資產儲存區控制器經組態以協調資產至系統記憶體中之載入,且亦藉由某些手段向GPU通知載入狀態,諸如在一個實施例中,將載入狀態寫入至命令緩衝器中之AAD中。此外,可將條件命令置放於命令緩衝器中以供執行,使得GPU自資產儲存區控制器查詢及/或提取在繪製呼叫中使用之資產(例如,LOD資料)之載入狀態。
另外,資產儲存區控制器經組態以管理系統記憶體之重新分配。特定而言,由GPU向CPU及/或資產儲存區控制器通知繪製呼叫已執行。舉例而言,可將命令置放至用於繪製呼叫之命令緩衝器中以產生指示繪製呼叫已完成呈現視訊訊框之通知,且將該通知遞送至CPU及/或資產儲存區控制器。以此方式,可釋放儲存由繪製呼叫使用之一或多個資產之記憶體空間。在另一實施例中,資產儲存區控制器可追蹤儲存在系統記憶體中之資產之使用。當資產尚未用於在圖形管線中呈現當前視訊訊框時,資產儲存區控制器可判定不再需要資產來處理繪製呼叫,且可釋放對應記憶體空間。
在640,該方法包括藉由GPU使用寫入至系統記憶體之LOD資料來執行針對訊框之繪製呼叫。CPU向GPU發出繪製呼叫以在下一個繪製時間(例如,在當前訊框週期中)執行,其中繪製呼叫係由CPU在前一訊框週期中產生。以此方式,可及時地呈現視訊訊框以在下一個訊框週期中掃描輸出。GPU基於AAD使用至少最低LOD資料來執行繪製呼叫。舉例而言,每一資產具有可用於處理需要對應資產之對應繪製呼叫之最低LOD。由於資產感知計算架構(例如,與GPU結合運行之CPU及/或資產儲存區控制器)能夠追蹤資產之載入(例如,判定每一資產之載入狀態),因此GPU可判定哪個LOD在執行需要該資產之繪製呼叫時用於對應資產。舉例而言,對於上文介紹之資產,藉由CPU及/或資產儲存區控制器來追蹤第一複數個LOD資料至系統記憶體中之載入。以此方式,進行追蹤之CPU及/或資產儲存區控制器能夠呼叫GPU API或以其他方式向GPU通知彼資產之載入狀態(例如,第一複數個LOD資料已載入之程度)。此外,GPU知曉與資產相關聯之第一複數個LOD資料。在一個實施例中,使用載入至系統記憶體之最大或最高LOD資料之快取值來確保更高LOD僅在載入至系統記憶體中時才使用,如下文關於圖6B更充分地描述。
圖6B係根據本發明之一個實施例之流程圖600B,該流程圖說明在執行對應繪製呼叫以產生視訊訊框時對資產之LOD資料之載入狀態之考量。如前所述,用於繪製呼叫之LOD資料已載入至系統記憶體中。特定而言,在650,根據基於AAD之優先級來載入LOD資料。舉例而言,可優先處理相應資產之LOD資料以按特定次序載入LOD資料,諸如首先按基於AAD中之優先級之次序自所有資產之複數個LOD資料載入最低LOD資料,隨後,再次以基於AAD中之優先級之次序自最低細節至最高細節載入剩餘LOD資料。
如下所述,GPU及/或命令緩衝器可取決於載入狀態而執行不同動作中之一者。即,GPU及/或命令緩衝器可具有允許GPU及/或命令緩衝器基於LOD載入狀態來執行不同動作之預測。特定而言,可基於LOD載入狀態來預測對應繪製呼叫內之某些呼叫及/或命令。舉例而言,命令緩衝器可具有分支指令或分支指令之等效指令,該等指令在執行時根據LOD載入狀態執行不同動作;例如,可使用此等分支指令檢查LOD載入狀態,且若某些LOD已載入,則執行一組命令;然而,若某些LOD未載入,則執行另一組命令。
在決策步驟655,基於AAD在已載入至系統記憶體中之最高LOD資料與對應資產所需之最低LOD資料之間進行比較。如前所述,此比較可在繪製時間或更早時間進行。舉例而言,該比較可在執行一或多個先前繪製呼叫期間或在呈現之整個訊框之開始處等進行。
GPU經組態以使用資產之至少最低LOD,且在處理繪製呼叫以呈現對應視訊訊框時可使用已載入之最高LOD,該最高LOD亦高於最低LOD。對於高於最低LOD之LOD使用,GPU利用「LOD鉗」,LOD鉗係在執行繪製呼叫(例如,在繪製時間)或之前的時間已完全載入於系統記憶體中之最高LOD之快取值。在此情況下,GPU經組態以確保最低LOD資料就位且儲存至系統記憶體。此外,使用LOD鉗來確保更高LOD(例如高於最低LOD資料)僅在載入至系統記憶體中時才使用,即,GPU使用LOD鉗來確保在判定LOD鉗時未載入之較高LOD資料在執行對應繪製呼叫期間不被存取。舉例而言,在656,將LOD鉗設定為表示已載入之最高LOD資料之值,即,LOD鉗係擷取之LOD載入狀態。以此方式,GPU避免嘗試存取尚未載入至系統記憶體中之LOD資料。因此,在657,由GPU使用鉗制至LOD鉗之LOD資料(例如,使用載入之最高LOD資料)來執行針對訊框之繪製呼叫。
另一方面,若在決策步驟655,載入之最高LOD資料低於對應資產之最低LOD,則可在660執行各種操作。若GPU判定最低LOD尚未載入至系統記憶體中,則GPU及/或資產儲存區控制器可請求在661將預設(即代理)資產載入至系統記憶體中以供在處理對應繪製呼叫時使用,該資產應尚未處於系統記憶體中。預設資產係於在662執行繪製呼叫時由GPU使用。替代地,可在663執行最低LOD資料之緊急載入,其中GPU停頓,直至最低LOD資料已成功載入為止。在某些實施例中,緊急載入可更早地被觸發,諸如在前一繪製呼叫期間、在訊框呈現開始時等。最低LOD資料係於在664執行繪製呼叫時由GPU使用。替代地,如前所述,GPU可判定在665跳過繪製呼叫之執行(即以避免GPU中之停頓)。
圖7圖示可用於執行本發明之各種實施例之態樣之實例裝置700之組件。舉例而言,圖7圖示根據本發明之一個實施例之適合由資產感知計算系統執行遊戲之例示性硬體系統,該資產感知計算系統使用中央處理單元及圖形處理單元來產生視訊訊框,使得可使用繪製呼叫所需之一或多個資產之最低LOD資料來呈現視訊訊框。此方塊圖圖示裝置700,該裝置可併入有或可為個人電腦、伺服器電腦、遊戲控制台、行動裝置或其他數位裝置,前述裝置中之每一者適合實踐本發明之實施例。裝置700包括中央處理單元(CPU)702,該CPU用於運行軟體應用程式及可選地作業系統。CPU 702可由一或多個同質或異質處理核心組成。
根據各種實施例,CPU 702係具有一或多個處理核心之一或多個通用微處理器。其他實施例可使用具有微處理器架構之一或多個CPU來實施,該等微處理器架構特別適於經組態用於在遊戲執行期間進行圖形處理之應用程式之高度平行且計算上密集之應用程式,諸如媒體及互動式娛樂應用程式。資產儲存區控制器230可作為獨立單元存在,或該控制器之功能可由CPU 702執行。
記憶體704儲存供CPU 702、資產儲存區控制器230及GPU 716使用之應用程式及資料。儲存裝置706為應用程式及資料提供非揮發性儲存裝置及其他電腦可讀媒體,且可包括固定磁碟機、抽取式磁碟機、快閃記憶體裝置及CD-ROM、DVD-ROM、藍光、HD-DVD或其他光學儲存裝置,以及信號傳輸及儲存媒體。使用者輸入裝置708將來自一或多個使用者之使用者輸入傳達至裝置700,使用者輸入裝置之實例可包括鍵盤、滑鼠、搖桿、觸控板、觸控螢幕、靜態或視訊記錄器/相機及/或麥克風。網路介面714允許裝置700經由電子通信網路與其他電腦系統通信,且可包括經由區域網路及諸如網際網路之廣域網路之有線或無線通信。音訊處理器712適於根據由CPU 702、記憶體704及/或儲存裝置706提供之指令及/或資料產生類比或數位音訊輸出。裝置700之組件係經由一或多個資料匯流排722連接,該等組件包括:CPU 702;包括GPU 716及GPU快取記憶體718之圖形子系統;資產儲存區控制器230;資產儲存區210;記憶體704;系統記憶體220;資料儲存裝置706;使用者輸入裝置708;網路介面714;及音訊處理器712。
舉例而言,亦可包括資產儲存區210以儲存在呈現場景時遊戲所需之資產。資產儲存區可為記憶體704及/或儲存裝置706之部分。系統記憶體220儲存例如在遊戲執行期間在呈現場景時在繪製呼叫中使用之資產。
圖形子系統714進一步與資料匯流排722及裝置700之組件連接。圖形子系統714包括圖形處理單元(GPU)716及圖形記憶體718。圖形記憶體718包括用於儲存輸出影像之每一像素之像素資料之顯示記憶體(例如,訊框緩衝器)。圖形記憶體718可與GPU 716整合在同一裝置中,作為單獨之裝置與GPU 716連接,及/或在記憶體704內實施。像素資料可直接自CPU 702提供至圖形記憶體718。替代地,CPU 702向GPU 716提供定義期望輸出影像之資料及/或指令,GPU 716根據該等資料及/或指令產生一或多個輸出影像之像素資料。定義期望輸出影像之資料及/或指令可儲存在記憶體704及/或圖形記憶體718中。在一實施例中,GPU 716包括3D呈現能力,以用於根據定義場景之幾何形狀、照明、著色、紋理處理、運動及/或相機參數之指令及資料產生輸出影像之像素資料。GPU 716可進一步包括能夠執行著色器程式之一或多個可程式化執行單元。
圖形子系統714自圖形記憶體718週期性地輸出影像之像素資料,以在顯示裝置710上顯示或由投影系統740投影。顯示裝置710可係能夠回應於來自裝置700之信號而顯示視覺資訊之任何裝置,包括CRT、LCD、電漿及OLED顯示器。舉例而言,裝置700可向顯示裝置710提供類比或數位信號。
用於最佳化圖形子系統714之其他實施例可包括其中GPU實例在多個應用程式之間共用的多租戶GPU操作,及支援單一遊戲之分散式GPU。圖形子系統714可組態為一或多個處理裝置。
舉例而言,在一個實施例中,圖形子系統714可經組態以執行多租戶GPU功能性,其中一個圖形子系統可實施用於多個遊戲之圖形及/或呈現管線。即,圖形子系統714在正執行之多個遊戲之間共用。
在其他實施例中,圖形子系統714包括多個GPU裝置,該等GPU裝置經組合以針對正在對應CPU上執行之單一應用程式執行圖形處理。舉例而言,多個GPU可執行交替形式之訊框呈現,其中在順序訊框週期中,GPU 1呈現第一訊框,且GPU 2呈現第二訊框,依次類推,直至到達最後之GPU,然後初始GPU呈現下一視訊訊框(例如,若只有兩個GPU,則GPU 1呈現第三訊框)。即,GPU在呈現訊框時輪流進行。呈現操作可重疊,其中GPU 2可在GPU 1完成呈現第一訊框之前開始呈現第二訊框。在另一實施方案中,多個GPU裝置可在呈現及/或圖形管線中被指派不同之著色器操作。主GPU正執行主要呈現及合成。舉例而言,在包括三個GPU之群組中,主GPU 1可執行對來自從屬GPU 2及從屬GPU 3之輸出之主要呈現(例如,第一著色器操作)及合成,其中從屬GPU 2可執行第二著色器(例如,諸如河流之流體效果)操作,從屬GPU 3可執行第三著色器(例如,顆粒煙霧)操作,其中主GPU 1對來自GPU 1、GPU 2及GPU 3中之每一者之結果進行合成。以此方式,不同GPU可經指派以執行不同著色器操作(例如,揮旗、風、冒煙、火等)以呈現視訊訊框。在又一實施例中,三個GPU中之每一者可被指派至對應於視訊訊框之場景之不同物件及/或部分。在以上實施例及實施方案中,此等操作可在同一訊框週期中(同時平行地)執行,或在不同訊框週期中(依序平行地)執行。
因此,在各種實施例中,本發明描述一種包括資產感知組件之計算系統架構及其實施方法,該等資產感知組件諸如經由圖形管線產生視訊訊框之中央處理單元及圖形處理單元。由CPU及GPU進行之資產感知提供對圖形管線中所使用之資產之識別及追蹤,使得在產生對應視訊訊框時可使用最少資產(例如,最低細節層次-LOD)來經由圖形管線處理資產。
應理解,本文中定義之各種實施例可使用本文中揭示之各種特徵組合或裝配成特定實施方案。因此,提供之實例僅係某些可能之實例,而不限於藉由組合各種元件以定義更多實施方案而可能之各種實施方案。在某些實例中,某些實施方案可包括更少元件,而不背離所揭示或等效之實施方案之精神。
本發明之實施例可利用各種電腦系統組態來實踐,該等電腦系統組態包括手持式裝置、微處理器系統、基於微處理器或可程式化之消費型電子產品、小型電腦、大型電腦及諸如此類。本發明之實施例亦可在分散式計算環境中實踐,在分散式計算環境中,任務係由經由有線或無線網路鏈接之遠端處理裝置執行。
考量到以上實施例,應理解,本發明之實施例可採用涉及儲存在電腦系統中之資料之各種電腦實施之操作。此等操作係需要對實體數量進行實體操縱之操作。形成本發明之實施例之一部分的本文中所描述之任何操作係有用之機器操作。本發明之實施例亦係關於用於執行此等操作之裝置或設備。該裝置可針對所需目的而特殊地構造,或該裝置可為由儲存在電腦中之電腦程式選擇性地啟動或組態之通用電腦。特定而言,各種通用機器可與根據本文中之教示編寫之電腦程式一起使用,或構造更專門之裝置來執行所需操作可能更方便。
本發明亦可體現為電腦可讀媒體上之電腦可讀碼。電腦可讀媒體係可儲存資料之任何資料儲存裝置,該資料儲存裝置隨後可由電腦系統讀取。電腦可讀媒體之實例包括硬碟機、網路附接儲存裝置(network attached storage;NAS)、唯讀記憶體、隨機存取記憶體、CD-ROM、CD-R、CD-RW、磁帶及其他光學及非光學資料儲存裝置。電腦可讀媒體可包括分佈在耦合網路之電腦系統上之電腦可讀有形媒體,使得電腦可讀碼以分散方式儲存及執行。
儘管方法操作係以特定次序描述,但應理解,其他內務處理操作可在操作之間執行,或可調整操作,使得該等操作在稍微不同之時間發生,或可分散在允許處理操作以與處理相關聯之各種間隔發生之系統中,只要重疊操作之處理係以期望方式執行即可。
儘管先前揭示內容已出於清楚理解之目的加以詳細描述,但將明了,可在隨附申請專利範圍之範疇內進行某些改變及修改。因此,本發明實施例應被視為說明性的而非限制性的,且本發明之實施例不限於本文中給出之細節,而可在隨附申請專利範圍之範疇及等效物內加以修改。
11:顯示器 100A,100B,100C:系統 110,110’:用戶端裝置 111:遊戲標題處理引擎/遊戲執行引擎 111’:遊戲標題處理引擎/後端遊戲標題處理引擎/遊戲執行引擎 115,115’:遊戲邏輯 150:網路 160:遊戲伺服器 190:雲端遊戲網路 200:計算架構/資產感知計算架構 210:資產儲存區 220:系統記憶體 230:資產儲存區控制器 240,240a,240b,240n:命令緩衝器 241,241a,241n:繪製呼叫命令/命令 250:GPU API 260:AAD 261:資產ID 262:指標 263:最低LOD 264:載入狀態 265:載入優先級 290:LOD資料 301:呈現管線 391:呈現管線序列 392:呈現管線序列/管線序列 393:呈現管線序列/管線序列 394:呈現管線序列/管線序列 395:呈現管線序列/管線序列 F0,F1,F2,F3,F4:視訊訊框/訊框 401:繫結時間 402:繪製時間 403,403a,403b:LOD鉗 410,415,420,420a:操作 411:系統記憶體之重新分配 417:資產 490:時間線 600A,600B:流程圖 610,620,630,640,650,656,657,660,661,662,663,664,665:步驟 655:決策步驟 700:裝置 702:中央處理單元(CPU) 704:記憶體 706:儲存裝置 708:使用者輸入裝置 710:顯示器/顯示裝置 712:音訊處理器 714:網路介面/圖形子系統 716:圖形處理單元(GPU) 718:圖形記憶體/GPU快取記憶體 722:資料匯流排
藉由結合附圖參考以下描述,可最佳地理解本發明,在附圖中:
[圖1A]係根據本發明之一個實施例之用於提供遊戲之系統之圖。
[圖1B]係根據本發明之一個實施例之用於提供具有提供支援服務之後端雲端遊戲網路之遊戲之系統之圖。
[圖1C]係根據本發明之一個實施例之用於經由雲端遊戲網路提供遊戲之系統之圖。
[圖2]圖示根據本發明之一個實施例之包括中央處理單元及圖形處理單元之計算系統,當CPU正執行遊戲時,中央處理單元及圖形處理單元在產生視訊訊框時感知資產。
[圖3]圖示根據本發明之一個實施例之包括中央處理單元及圖形處理單元之計算系統之呈現管線,當CPU正執行遊戲時,中央處理單元及圖形處理單元在產生視訊訊框時感知資產。
[圖4]圖示根據本發明之一個實施例之包括中央處理單元及圖形處理單元之計算系統在CPU正執行遊戲之同時產生視訊訊框時對資產感知資料之使用。
[圖5]係根據本發明之一個實施例之在為中央處理單元所執行之遊戲產生視訊訊框時使用之對應資產之細節層次資料以及在載入LOD資料期間實施負載鉗(clamp)之圖示。
[圖6A]係根據本發明之一個實施例之流程圖,該流程圖說明用於藉由計算系統執行遊戲之方法,該計算系統使用中央處理單元及圖形處理單元來產生視訊訊框。
[圖6B]係根據本發明之一個實施例之流程圖,該流程圖說明在執行對應繪製呼叫以產生視訊訊框時對資產之LOD資料之載入狀態之考量。
[圖7]圖示可用於執行本發明之各種實施例之態樣之實例裝置之組件。
200:計算架構/資產感知計算架構
210:資產儲存區
220:系統記憶體
230:資產儲存區控制器
240,240a,240b,240n:命令緩衝器
241,241a,241n:繪製呼叫命令/命令
250:GPU API
260:AAD
261:資產ID
262:指標
263:最低LOD
264:載入狀態
265:載入優先級
290:LOD資料
702:中央處理單元(CPU)
716:圖形處理單元(GPU)
718:圖形記憶體/GPU快取記憶體

Claims (28)

  1. 一種用於藉由一計算系統執行一遊戲之方法,該計算系統使用一中央處理單元(CPU)及一圖形處理單元(GPU)來產生視訊訊框,該方法包含:藉由該CPU為該等視訊訊框中之一視訊訊框產生一繪製呼叫;在一繫結時間將用於該繪製呼叫之一或多個命令寫入至一命令緩衝器;在該繫結時間將用於該繪製呼叫之資產感知資料(AAD)寫入至該命令緩衝器,且在該繫結時間開始將一或多個細節層次(LOD)資料自一資產儲存區載入至由該計算系統使用之一系統記憶體;及藉由該GPU使用寫入至該系統記憶體之LOD資料來執行針對該訊框之該繪製呼叫,該GPU基於該AAD使用至少一最低LOD資料;其中該開始載入一或多個細節層次(LOD)資料包括:在該繫結時間自該CPU發送一請求至一資產儲存區控制器以將該一或多個LOD資料自該資產儲存區載入至該系統記憶體。
  2. 如請求項1所述之方法,該方法進一步包含:將用於該繪製呼叫之該AAD發送至該資產儲存區控制器以進行儲存,其中作為該請求之該AAD之接收觸發該一或多個LOD資料自該資產儲存區至該系統記憶體之該載 入。
  3. 如請求項1所述之方法,該方法進一步包含:在該GPU對該繪製呼叫之處理起始時,針對由該繪製呼叫使用之一資產判定已載入至該系統記憶體之一最高LOD資料;判定已載入之該最高LOD資料在細節上低於該資產之一最低LOD資料;及請求該資產之該最低LOD資料之一緊急載入。
  4. 如請求項1所述之方法,該方法進一步包含:在該GPU對該繪製呼叫之處理起始之前,針對由該繪製呼叫使用之一資產判定已載入至該系統記憶體之一最高LOD資料;判定已載入之該最高LOD資料在細節上低於該資產之一最低LOD資料;及請求該資產之該最低LOD資料之一緊急載入。
  5. 如請求項1所述之方法,該方法進一步包含:針對由該繪製呼叫使用之一資產判定已載入至該系統記憶體之一最高LOD資料;判定已載入之該最高LOD資料在細節上低於該資產之一最低LOD資料;及跳過該繪製呼叫。
  6. 如請求項1所述之方法,該方法進一步包含:針對由該繪製呼叫使用之一資產判定已載入至該系統記憶體之一最高LOD資料;判定已載入之該最高LOD資料在細節上低於該資產之一最低LOD資料;及請求一代理資產之一載入。
  7. 如請求項1所述之方法,該方法進一步包含:在用於該繪製呼叫之一繪製時間,針對由該繪製呼叫使用之一資產判定已載入至該系統記憶體之一最高LOD資料;判定已載入之該最高LOD資料在細節上高於該資產之一最低LOD資料;將一LOD鉗設定為該最高LOD資料之一代表值;將該LOD鉗儲存至一GPU快取記憶體;及基於該LOD鉗,將在執行該繪製呼叫期間所使用之LOD資料鉗制至該最高LOD資料。
  8. 如請求項7所述之方法,該方法進一步包含:藉由該GPU執行該命令緩衝器中之一第一命令,該第一命令經組態以查詢該資產至該系統記憶體中之一載入狀態。
  9. 如請求項7所述之方法,該方法進一步包 含:藉由一資產儲存區控制器追蹤一資產之複數個LOD資料至該系統記憶體中之載入;及藉由該資產儲存區控制器使用一GPU API向該GPU通知該資產之一載入狀態。
  10. 如請求項1所述之方法,該方法進一步包含:在用於該繪製呼叫之繪製時間之前,針對由該繪製呼叫使用之一資產判定已載入至該系統記憶體之一最高LOD資料;判定已載入之該最高LOD資料在細節上高於該資產之一最低LOD資料;將一LOD鉗設定為該最高LOD資料之一代表值;將該LOD鉗儲存至一GPU快取記憶體;及基於該LOD鉗,將在執行該繪製呼叫期間所使用之LOD資料鉗制至該最高LOD資料。
  11. 如請求項1所述之方法,其中該開始載入一或多個LOD資料包括:自一資產之複數個LOD資料載入一最低LOD資料;及在載入該資產之該最低LOD資料之後,按最低至最高細節之次序自該複數個LOD資料載入剩餘之LOD資料。
  12. 如請求項1所述之方法,其中一對應資產之一或多個細節層次(LOD)資料中之每一者係一紋理, 其中該對應資產之該一或多個LOD資料中之每一者係一對應mip映射。
  13. 如請求項1所述之方法,其中一對應資產之一或多個LOD資料中之每一者係一模型。
  14. 如請求項1所述之方法,其中該AAD就用於該繪製呼叫之一對應資產而言包括一對應資產ID、一對應最低LOD資料及該對應資產相對於為一訊框繪製之其他資產之一對應載入優先級。
  15. 如請求項1所述之方法,該方法進一步包含:藉由該GPU來通知該CPU該繪製呼叫已執行;及藉由該CPU來釋放系統記憶體中之用於儲存該一或多個LOD資料之記憶體空間。
  16. 如請求項1所述之方法,其中該計算系統係一分散式伺服器網路或一遊戲控制台。
  17. 如請求項1所述之方法,該方法進一步包含:藉由該CPU關於儲存於系統記憶體中之該等資產而查詢該資產儲存區控制器;或藉由該CPU關於用於一對應視訊訊框之該等資產而查詢該資產儲存區控制器;或藉由該CPU關於儲存於該資產儲存區中之該等資產而查詢該資產儲存區控制器。
  18. 如請求項1所述之方法,該方法進一步包含:藉由該CPU而提示該資產儲存區控制器根據一資產之LOD資料之優先級資訊來載入該LOD資料,其中該資產係用於一預測之繪製呼叫或物件。
  19. 如請求項1所述之方法,該方法進一步包含:追蹤該GPU為了呈現一視訊訊框而對一或多個資產之使用。
  20. 如請求項19所述之方法,該方法進一步包含:追蹤該GPU對一對應資產之一或多個LOD資料之使用。
  21. 如請求項19所述之方法,該方法進一步包含:追蹤該GPU針對一紋理資產所使用之最低或最高LOD資料;或追蹤該GPU對該紋理資產之存取次數;或藉由該LOD資料追蹤該GPU對該紋理資產之存取次數。
  22. 如請求項19所述之方法,該方法進一步包含:追蹤該GPU針對一模型資產所使用之最低或最高LOD資料;或 追蹤由該模型資產使用之頂點計數。
  23. 如請求項19所述之方法,該方法進一步包含:在判定一或多個所識別資產或該一或多個所識別資產之一或多個所識別LOD資料時使用對資產之使用之追蹤資訊以釋放系統記憶體;或使用對資產之使用之追蹤資訊來確定兩個或更多個資產之釋放之間的優先級。
  24. 如請求項19所述之方法,該方法進一步包含:使用對資產之使用之追蹤資訊來判定一或多個所識別資產或該一或多個所識別資產之一或多個所識別LOD資料,以載入至系統記憶體中;或使用對資產之使用之追蹤資訊來確定兩個或更多個資產之載入之間的優先級。
  25. 如請求項1所述之方法,該方法進一步包含:以一資產感知方式更新該資產儲存區。
  26. 如請求項25所述之方法,該方法進一步包含:當一或多個資產在本端產生時,以該資產感知方式更新該資產儲存區;或以該資產感知方式自一資料中心內更新該資產儲存區;或 以該資產感知方式經由一網路更新該資產儲存區。
  27. 一種用於執行一遊戲以產生視訊訊框之計算系統,該計算系統包含:一中央處理單元(CPU),該CPU經組態用於執行該遊戲,該CPU為該等視訊訊框中之一訊框產生一繪製呼叫,該繪製呼叫包括命令;一命令緩衝器,該命令緩衝器經組態用於儲存用於該繪製呼叫之資產感知資料(AAD)及該等命令,該AAD及該等命令係在一繫結時間由該CPU寫入至該命令緩衝器中;一資產儲存區,該資產儲存區經組態用於儲存應用程式之複數個資產,該複數個資產包括由該繪製呼叫使用之一或多個細節層次(LOD)資料;一系統記憶體,該系統記憶體經組態用於儲存由該繪製呼叫使用之該一或多個細節層次(LOD)資料,該LOD資料自該資產儲存區之載入係在該繫結時間由該CPU觸發,其中該LOD資料在將該AAD寫入至該命令緩衝器之同時開始載入至系統記憶體;及一圖形處理單元(GPU),該GPU經組態用於使用寫入至該系統記憶體之LOD資料來執行針對該訊框之該繪製呼叫之該等命令,該GPU基於該AAD使用至少一最低LOD資料;其中該開始載入一或多個細節層次(LOD)資料包括:在該繫結時間自該CPU發送一請求至一資產儲存區控制器以將該一或多個LOD資料自該資產儲存區載入至 該系統記憶體。
  28. 一種儲存一電腦程式之非暫時性電腦可讀媒體,該電腦程式用於藉由使用一中央處理單元(CPU)及一圖形處理單元(GPU)來產生視訊訊框之一計算系統而執行一遊戲,該電腦可讀媒體包含:用於藉由該CPU為該等視訊訊框中之一視訊訊框產生一繪製呼叫的程式指令;用於在一繫結時間將用於該繪製呼叫之一或多個命令寫入至一命令緩衝器的程式指令;用於在該繫結時間將用於該繪製呼叫之資產感知資料(AAD)寫入至該命令緩衝器且在該繫結時間開始將一或多個細節層次(LOD)資料自一資產儲存區載入至由該計算系統使用之一系統記憶體的程式指令;及用於藉由該GPU使用寫入至該系統記憶體之LOD資料來執行針對該訊框之該繪製呼叫的程式指令,該GPU基於該AAD使用至少一最低LOD資料;其中該開始載入一或多個細節層次(LOD)資料包括:在該繫結時間自該CPU發送一請求至一資產儲存區控制器以將該一或多個LOD資料自該資產儲存區載入至該系統記憶體。
TW109117661A 2019-07-03 2020-05-27 用於圖形處理之資產感知計算架構 TWI750676B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/503,378 2019-07-03
US16/503,378 US10981059B2 (en) 2019-07-03 2019-07-03 Asset aware computing architecture for graphics processing

Publications (2)

Publication Number Publication Date
TW202103111A TW202103111A (zh) 2021-01-16
TWI750676B true TWI750676B (zh) 2021-12-21

Family

ID=70919275

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109117661A TWI750676B (zh) 2019-07-03 2020-05-27 用於圖形處理之資產感知計算架構

Country Status (6)

Country Link
US (3) US10981059B2 (zh)
EP (1) EP3994669A1 (zh)
JP (3) JP7164761B2 (zh)
CN (1) CN112181633A (zh)
TW (1) TWI750676B (zh)
WO (1) WO2021002949A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10981059B2 (en) * 2019-07-03 2021-04-20 Sony Interactive Entertainment LLC Asset aware computing architecture for graphics processing
US11481967B2 (en) * 2020-08-31 2022-10-25 Advanced Micro Devices, Inc. Shader core instruction to invoke depth culling
US11794107B2 (en) * 2020-12-30 2023-10-24 Activision Publishing, Inc. Systems and methods for improved collision detection in video games

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200622930A (en) * 2004-07-08 2006-07-01 Actuality Systems Inc Architecture for rendering graphics on output devices over diverse connections
US20100091028A1 (en) * 2008-10-10 2010-04-15 Advanced Micro Devices, Inc. Texture Level Tracking, Feedback, and Clamping System for Graphics Processors
US20150264298A1 (en) * 2014-03-12 2015-09-17 Sony Computer Entertainment America Llc Video frame rate compensation through adjustment of vertical blanking

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
US7659901B2 (en) * 2006-07-24 2010-02-09 Microsoft Corporation Application program interface for programmable graphics pipeline
US8243064B1 (en) 2007-11-15 2012-08-14 Nvidia Corporation System for providing scalable physics content
US8284197B2 (en) 2008-07-11 2012-10-09 Advanced Micro Devices, Inc. Method and apparatus for rendering instance geometry
US8872823B2 (en) * 2009-10-09 2014-10-28 Microsoft Corporation Automatic real-time shader modification for texture fetch instrumentation
US8754900B2 (en) * 2010-06-17 2014-06-17 Thinci, Inc. Processing of graphics data of a server system for transmission
US9177351B2 (en) 2012-10-09 2015-11-03 Qualcomm Incorporated Multi-primitive graphics rendering pipeline
US9292414B2 (en) * 2012-11-26 2016-03-22 Nvidia Corporation System, method, and computer program product for debugging graphics programs locally utilizing a system with a single GPU
CN108854055B (zh) * 2012-11-28 2021-08-20 辉达公司 用于远程显示器的基于云的虚拟化图形处理系统和介质
US9230518B2 (en) * 2013-09-10 2016-01-05 Qualcomm Incorporated Fault-tolerant preemption mechanism at arbitrary control points for graphics processing
US10643296B2 (en) 2016-01-12 2020-05-05 Qualcomm Incorporated Systems and methods for rendering multiple levels of detail
US10981059B2 (en) * 2019-07-03 2021-04-20 Sony Interactive Entertainment LLC Asset aware computing architecture for graphics processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200622930A (en) * 2004-07-08 2006-07-01 Actuality Systems Inc Architecture for rendering graphics on output devices over diverse connections
US20100091028A1 (en) * 2008-10-10 2010-04-15 Advanced Micro Devices, Inc. Texture Level Tracking, Feedback, and Clamping System for Graphics Processors
US20150264298A1 (en) * 2014-03-12 2015-09-17 Sony Computer Entertainment America Llc Video frame rate compensation through adjustment of vertical blanking

Also Published As

Publication number Publication date
CN112181633A (zh) 2021-01-05
JP7453311B2 (ja) 2024-03-19
US20230390638A1 (en) 2023-12-07
US20210001220A1 (en) 2021-01-07
WO2021002949A1 (en) 2021-01-07
US11731050B2 (en) 2023-08-22
US20210236928A1 (en) 2021-08-05
JP2024061779A (ja) 2024-05-08
JP2022189902A (ja) 2022-12-22
US10981059B2 (en) 2021-04-20
JP2022535148A (ja) 2022-08-04
TW202103111A (zh) 2021-01-16
EP3994669A1 (en) 2022-05-11
JP7164761B2 (ja) 2022-11-01

Similar Documents

Publication Publication Date Title
US11596861B2 (en) Add-on management methods
TWI750676B (zh) 用於圖形處理之資產感知計算架構
US8872823B2 (en) Automatic real-time shader modification for texture fetch instrumentation
US20090315893A1 (en) User avatar available across computing applications and devices
US9582919B2 (en) Automatic run-time identification of textures
US11810223B2 (en) Controlling multi-GPU execution of kernels by kernel portion and resource region based dependencies
US11709713B2 (en) System and method for multi-tenant implementation of graphics processing unit
US20240108984A1 (en) Game asset optimization over network at optimizer server