TWI498849B - 圖形驅動程式層級解耦顯像以及顯示的方法 - Google Patents
圖形驅動程式層級解耦顯像以及顯示的方法 Download PDFInfo
- Publication number
- TWI498849B TWI498849B TW101141097A TW101141097A TWI498849B TW I498849 B TWI498849 B TW I498849B TW 101141097 A TW101141097 A TW 101141097A TW 101141097 A TW101141097 A TW 101141097A TW I498849 B TWI498849 B TW I498849B
- Authority
- TW
- Taiwan
- Prior art keywords
- display
- frame
- thread
- processing unit
- imaging
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control 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/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/10—Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
Description
本發明係關於一種驅動圖形處理單元(GPU)的方法。
在現有技術中,圖形處理單元必須先完成當前圖框的處理,才能根據圖形驅動程式的指令開始下一張圖框的處理。圖框的處理一般包含顯像(render)(或相似的計算,例如內插)以及顯示(display)(即將顯像或計算完成的圖框傳送到圖框緩衝器(frame buffer)中等待顯示)。
換言之,需等待當前圖框被送到圖框緩衝器後,圖形處理單元才能處理圖形驅動程式關於下一張圖框的指令。
本發明的一方面,係提出一種驅動圖形處理單元之方法,特別是因應於現有技術中,顯示當下圖框的時間取決於圖形處理單元顯像或計算下一張圖框的所花費的時間。
由於圖形處理單元顯像或計算下一張圖框的所花費的時間取決於圖形處理單元的計算能力以及該圖框資料量的多寡,因此在某些不理想的狀況時,使用者會觀察到一圖框顯示較久的異常狀況。
為此,本發明實施例係提出一種方式,係相對於圖形處理單元顯像圖框的時間,而可獨立地控制顯示圖框的時間。
尤其,本方法較佳係由圖形處理單元的圖形驅動程式實施而非在應用程式層級處理,使得本方法可以適用於不特定的圖形應用程式。
本發明的另一方面,係提出一種多重執行緒驅動圖形處理單元之方法。其中,圖形驅動程式因應圖形應用程式的應用程式執行緒的觸發,啟動一顯像執行緒與一顯示執行緒。其中一個顯像執行緒用以顯像圖框,另一個顯示執行緒用以內插圖框以及顯示圖框。
內插圖框可因應應用程式介面呼叫之標示(indication)或是由圖型驅動程式的偵測(detection)而產生。此外,在記憶體中,內插圖框所需要的色彩緩衝器(color buffer)、運動緩衝器(motion buffer)、深度緩衝器(depth buffer)之資料,會複製供顯像執行緒與顯示執行緒使用。
本發明的另一方面,係顯像執行緒會發出複數個顯像指令,用以致使顯像圖框的產生。顯像執行緒產生任一顯像圖框後,提供該顯像圖框給顯示執行緒,並因應該顯示執行緒確認收到,回傳控制給圖形應用程式。此外,根據一預設值插入休眠週期至顯像執行緒以限制顯像圖框率。
本發明的另一方面,係顯示執行緒保留複數個最近顯像圖框,以及該些顯像圖框的緩衝器之資料。本發明中,顯像圖框率與顯示圖框率是相互獨立的,且根據一預設值插入休眠週期至顯示執行緒以限制顯示圖框率。一個內插圖框,係由該內插圖框之顯示時間點的最近顯像圖框與次近顯像圖框所內插產生。每一個內插圖框會顯示供使用者觀賞。
本發明的另一方面,係可以獨立控制顯像圖框率與顯示圖框率。本發明的圖形驅動程式可以預先儲存多組關於顯像圖框率與顯示圖框率的設定,並根據系統運作模式供使用者選擇其一,或自動選擇其一。
本發明的一實施例中提出一種驅動圖形處理單元(GPU)之方法,包含:(a)因應來自一圖形應用程式的應用程式執行緒(application thread)的觸發(invoke),啟動(activate)一顯像執行緒與一顯示執行緒;(b)在該顯像執行緒中,發出複數個顯像指令(instruction),該複數個顯像指令係用以致使至少一第一顯像圖框與一第二顯像圖框的產生;以及(c)在該顯示執行緒中,發出一或多個內插指令以及發出一或多個顯示指令,該一或多個內插指令係用以致使根據該第一顯像圖框與該第二顯像圖框執行內插產生一或
多個內插圖框,而該一或多個顯示指令係用以致使該一或多個內插圖框的顯示。
本發明的一實施例中提出一種驅動圖形處理單元之方法,包含:(a)因應來自一圖形應用程式的應用程式執行緒的觸發,啟動一顯像執行緒與一顯示執行緒;(b)在該顯像執行緒中,發出複數個顯像指令,該複數個顯像指令係用以致使至少一第一顯像圖框的產生;以及(c)在該顯示執行緒中,發出一或多個計算指令以及發出一或多個顯示指令,該一或多個計算指令係用以致使根據該第一顯像圖框執行計算產生一或多個計算圖框,而該一或多個顯示指令係用以致使該一或多個計算圖框的顯示。
本發明的一實施例中提出一種電腦系統,包含:一圖形處理單元;一中央處理單元,其電性連接於該圖形處理單元,用以執行一圖形處理單元驅動程式以執行上述驅動圖形處理單元之方法。
本說明書中所提及的特色、優點、或類似表達方式並不表示,可以本發明實現的所有特色及優點應在本發明之任何單一的具體實施例內。而是應明白,有關特色及優點
的表達方式是指結合具體實施例所述的特定特色、優點、或特性係包含在本發明的至少一具體實施例內。因此,本說明書中對於特色及優點、及類似表達方式的論述與相同具體實施例有關,但亦非必要。
參考以下說明及隨附申請專利範圍或利用如下文所提之本發明的實施方式,即可更加明瞭本發明的這些特色及優點。
於以下本發明的相關敘述會參照依據本發明具體實施例之系統、裝置、方法及電腦程式產品之流程圖及/或方塊圖來進行說明。當可理解每一個流程圖及/或方塊圖中的每一個方塊,以及流程圖及/或方塊圖中方塊的任何組合,可以使用電腦程式指令來實施。這些電腦程式指令可供通用型電腦或特殊電腦的處理器或其他可程式化資料處理裝置所組成的機器來執行,而指令經由電腦或其他可程式化資料處理裝置處理以便實施流程圖及/或方塊圖中所說明之功能或操作。
這些電腦程式指令亦可被儲存在電腦可讀取媒體上,以便指示電腦或其他可程式化資料處理裝置來進行特定的功能,而這些儲存在電腦可讀取媒體上的指令構成一製成品,其內包括之指令可實施流程圖及/
或方塊圖中所說明之功能或操作。
電腦程式指令亦可被載入到電腦上或其他可程式化資料處理裝置,以便於電腦或其他可程式化裝置上進行一系統操作步驟,而於該電腦或其他可程式化裝置上執行該指令時產生電腦實施程序以達成流程圖及/或方塊圖中所說明之功能或操作。
請參照圖1至圖4,在圖式中顯示依據本發明各種實施例的電腦系統、方法及電腦程式產品可實施的架構、功能及操作之流程圖及方塊圖。因此,流程圖或方塊圖中的每個方塊可表示一模組、區段、或部分的程式碼,其包含一或多個可執行指令,以實施指定的邏輯功能。另當注意者,某些其他的實施例中,方塊所述的功能可以不依圖中所示之順序進行。舉例來說,兩個圖示相連接的方塊事實上亦可以同時執行,或依所牽涉到的功能在某些情況下亦可以依圖示相反的順序執行。此外亦需注意者,每個方塊圖及/或流程圖的方塊,以及方塊圖及/或流程圖中方塊之組合,可藉由基於特殊目的硬體的系統來實施,或者藉由特殊目的硬體與電腦指令的組合,來執行特定的功能或操作。
應明白,具體實施例可在許多不同類型的電腦系統100上實施。範例包括但不限於:桌上型電腦、工作站、
伺服器、媒體伺服器、膝上型電腦、遊戲控制台、數位電視、PVR、及個人數位助理(PDA),以及其他具計算及資料儲存能力的電子裝置,諸如無線電話、媒體中心電腦、數位視訊記錄器、數位相機、及數位音訊播放或記錄裝置。
圖1顯示本發明一實施例的電腦系統100方塊圖。電腦系統100包含一中央處理單元(CPU)102。中央處理單元102經由包含一記憶體橋接器105的匯流排路徑與系統記憶體104通訊。記憶體橋接器105可以係傳統的北橋晶片,經由一匯流排或其它通訊路徑106(例如,一超傳輸鏈結(HyperTransport link))連接至一I/O(輸入/輸出)橋接器107。I/O橋接器107,可以係傳統的南橋晶片,從一或多個使用者輸入裝置108(例如,鍵盤、滑鼠)接收使用者輸入,並經由匯流排106與記憶體橋接器105轉送該輸入至中央處理單元102。視覺輸出係提供於像素式的顯示裝置110(例如,傳統的CRT或LCD式監視器),運作於圖形處理子系統112的控制下,圖形處理子系統112經由一匯流排或其它通訊路徑113(例如,PCI-E或AGP鏈結)耦接於記憶體橋接器105。一系統磁碟114也連接至I/O橋接器107。切換器116提供I/O橋接器107以及其它元件(諸如:網路配接器118與不同添加卡120、121)之間的連接。其它元件(圖未示出)包含:USB或其它埠連接、CD光碟機、DVD光碟機,與其它類似者,也可以連接至I/O橋接器107。
圖形處理子系統112包含一圖形處理單元(GPU)122以
及圖形記憶體124可以實施為,例如,使用一或多個積體電路裝置諸如:可程式處理器、特殊應用積體電路(ASICs),以及記憶體裝置。圖形處理單元122可以係具有單核心或多核心的圖形處理單元122。圖形處理單元122可以配置為執行不同工作,其係關於從中央處理單元102以及/或系統記憶體104經由記憶體橋接器105與匯流排113提供的圖形資料產生像素資料、與圖形記憶體124互動以儲存並更新像素資料,或其它類似者。例如,圖形處理單元122可以從中央處理單元102執行的不同程式所提供的2D或3D場景資料產生像素資料。圖形處理單元122也可以將經由記憶體橋接器105所接收的像素資料儲存到圖形記憶體124,並作進一步處理或不作進一步處理。圖形處理單元122也可以包含一掃描輸出模組配置以從圖形記憶體124遞送像素資料至顯示裝置110。應了解的是,圖形處理子單元112的特定配置以及功能對於本發明並不重要,且細節性的描述已被省略。
中央處理單元102運作為系統100的主要處理器,控制以及協調其它系統元件的運作。在系統100的運作中,中央處理單元102執行常駐於系統記憶體104的不同程式。在一實施例中,這些程式包含一或多個作業系統(OS)程式136、一或多個圖形應用程式138、以及一或多個用以控制圖形處理單元122之運作的圖形驅動程式140。應可了解的是,雖然這些程式顯示係常駐於系統記憶體104,但本發明並不限於任何特定機制用以提供程式指令給中央
處理單元102執行。例如,在任何給定的時間,任一個這些程式的某些或全部的程式指令可以呈現於中央處理單元102中(例如,在一個晶片上的指令快取以及/或不同緩衝器與暫存器),在系統磁碟114上的一個頁檔案(page file)或記憶體映射檔,以及/或其它儲存空間中。
作業系統程式136以及/或圖形應用程式138可以係傳統的設計。圖形應用程式138,例如,可以是一個視訊遊戲程式產生圖形資料以及觸發適當的圖形處理單元122功能以轉換圖形資料為像素資料。另一個圖形應用程式138可以產生像素資料以及提供像素資料給圖形記憶體124供圖形處理單元122顯示。應了解的是,產生像素以及/或圖形資料的任何數目之應用程式,可以在中央處理單元102上同時執行。作業系統程式136(例如,微軟視窗作業系統的圖形裝置介面(GDI)元件)也可以產生像素以及/或圖形資料給圖形處理單元122執行。在某些實施例,圖形應用程式138以及/或作業系統程式136也可以觸發圖形處理單元122的功能,用於一般目的的計算。
圖形驅動程式140致能與圖形處理子系統112的通訊,例如,與圖形處理單元122。圖形驅動程式140有益地實現一或多個標準核心模式驅動介面,諸如微軟D3D。作業系統程式136有益地包含執行時間(run-time)元件,可經由圖形應用程式138與一核心模式圖形驅動程式140的通訊,提供一核心模式圖形驅動器介面。因此,以觸發適
當的功能呼叫,作業系統程式136以及/或圖形應用程式138可以指示圖形驅動程式140轉移幾何資料或像素資料到圖形處理子系統112,以控制圖形處理單元122的顯像(rendering)以及/或掃描輸出運作等等。特定命令以及/或資料被圖形驅動程式140傳送到圖形處理子系統112,以回應依據圖形處理子系統112的實施而變動的功能呼叫,而且圖形驅動程式140也可以傳送不是由作業系統程式136或圖形應用程式138控制的命令以及/或資料實現額外的功能(例如,特別的視覺效果)。
應了解的是,在此所顯示的系統係示例性並且可以變更以及修改。匯流排的型態,包含橋接器的數目以及安排,可以依需求作修改。例如,在某些實施例中,系統記憶體104被直接連接到中央處理單元102而不是透過橋接器,且其它裝置經由記憶體橋接器105與中央處理單元102與系統記憶體104通訊。在其它替代的型態中,圖形處理子系統112連接到I/O橋接器107而不是記憶體橋接器105。在其它實施例,I/O橋接器107以及記憶體橋接器105可以整合於單一晶片。在此顯示的特定元件係選配的(optional),例如,可以支援任何數目的添加卡或週邊裝置。在某些實施例中,切換器116被排除,而網路配接器118與添加卡120、121直接連接到I/O橋接器107。
圖形處理子系統112到系統100之其它元件的連接也可以被變更。在某些實施例,圖形處理子系統112被實施
為一個能被插到系統100的擴充槽的一添加卡。在其它實施例,圖形處理子系統112包含一圖形處理單元被整合在具有匯流排橋接器(例如記憶體橋接器105或I/O橋接器107)的單一晶片上。圖形處理子系統112可以包含任何數量的專用圖形記憶體,包含非專利記憶體,以及可以使用專用的圖形記憶體與系統記憶體於任何組合。此外,圖形處理子系統112可以包含任何數目的圖形處理單元,例如,包含多個圖形處理單元在單一圖形卡,或連接多個圖形卡到匯流排113。
圖2顯示本發明一實施例中驅動圖形處理單元(GPU)122之方法,該方法可以應用於如圖1所示之電腦系統100,尤其,可以係由運行圖形驅動程式140的中央處理單元102配合圖形處理單元122加以執行。簡言之,圖2顯示之方法可以利用一個顯像執行緒用以顯像圖框,另一個顯示執行緒用以內插圖框以及顯示圖框,以下將進一步說明。
以下說明內容請同時參照圖1與圖2。
步驟S01:圖形驅動程式140因應來自圖形應用程式138的應用程式執行緒(application thread)的觸發(invoke),啟動(activate)一顯像執行緒(rendering thread)與一顯示執行緒(displaying thread)。例如,應用程式執行緒可以向圖形驅
動程式140請求(request)計算與顯示圖框,而觸發圖形驅動程式140啟動顯像執行緒與顯示執行緒。
步驟S02:在顯像執行緒中,係因應圖形應用程式138的請求,圖形驅動程式140發出顯像指令(instruction)。反覆操作後,圖形驅動程式140致使圖形處理單元122依序產生例如一第一顯像圖框與一第二顯像圖框。
具體而言,在顯像執行緒中,圖形驅動程式140先發出顯像指令給圖形處理單元122以產生第一顯像圖框,並儲存於圖形記憶體124,而在產生該第一顯像圖框後,圖形驅動程式140係進一步製作該第一顯像圖框的複本(copy)以提供給顯示執行緒以進行內插作業,並因應顯示執行緒確認收到(confirm the receipt of the rendered frame)(顯示執行緒相關細節請參考以下步驟S03),回傳控制(return control)給圖形應用程式138。
由於顯示執行緒需要至少兩個顯像圖框以進行內插,因此在回傳控制給圖形應用程式138後,圖形驅動程式140即可再根據圖形應用程式138的請求再次發出顯像指令給圖形處理單元122以計算產生第二顯像圖框(即下一個顯像圖框),並儲存於圖形記憶體124,顯像執行緒係進一步製作該第二顯像圖框的複本(copy)以提供給顯示執行緒以進行內插作業。在本發明另一實施例中,顯示執行緒也可以使用一個顯像圖框以進行外插作業(extrapolation)。
其中,顯像執行緒提供該顯像圖框給顯示執行緒時,包含複製圖形記憶體124中該顯像圖框的色彩緩衝器(color buffer)、運動緩衝器(motion buffer)、深度緩衝器(depth buffer)之資料供顯示執行緒使用。此外,在進行複製時,應確保上述緩衝器中的資料係關於同一顯像圖框,特別是在複製完成前應避免上述緩衝器中寫入新的圖框資料,避免複製時會錯誤地取得新舊兩個不同圖框的資料。
相較於習知方式,本發明的步驟S02可以在顯示執行緒確認收到顯像圖框的複本後,即回傳控制給圖形應用程式138。因此,此刻圖形應用程式138的應用程式執行緒可以繼續向圖形驅動程式140提出計算下一張圖框的請求,而不必等待顯示執行緒產生內插的圖框以及顯示內插的圖框。
此外,一般來說,顯像圖框率會隨著圖框資料量而變動,而步驟S02可包含利用一預設值限制顯像執行緒的最大顯像圖框率,例如,根據一預設值插入休眠週期至顯像執行緒以限制最大顯像圖框率。
在顯像執行緒的休眠週期中,圖形處理單元122某些元件(但非全部元件)之電源被關閉(即,圖形處理單元122被電源閘控)。因此,由於圖形處理單元122在顯像執行緒的休眠週期時不工作,所以達到限制顯像圖框率之效果。
請參照美國專利公開號第2012/0146706號說明書,以獲得關於引擎層級電源閘控(Engine Level Power Gating/ELPG)的更多細節。
此外,該預設值可以預先儲存多組設定(configuration),供使用者選擇其一,或根據系統運作模式(例如各式電源模式,包含電池模式、交流供電模式等等)自動選擇其一。關於預設值的設定,下文將作進一步的說明。
步驟S03:首先與顯像執行緒不同的是,顯示執行緒一旦產生後,則不直接受到圖形應用程式138的計算圖框請求的影響。在顯示執行緒中,主要係發出內插指令以及發出顯示指令給圖形處理單元122。
內插指令係用以使圖形處理單元122根據兩個顯像圖框(例如步驟S02中的該第一顯像圖框與該第二顯像圖框)執行內插產生內插圖框。而顯示指令係用以使圖形處理單元122將前述內插產生的圖框傳送到圖框緩衝器中等待顯示。
需注意的是,在顯示執行緒中,可利用多個內插指令使得圖形處理單元122根據兩個顯像圖框內插產生多個圖框,其中每一內插指令可要求圖形處理單元122根據兩顯像圖框的不同權重執行一次內插。在每一內插圖框產生
後,則可利用一顯示指令使得圖形處理單元122將其傳送到圖框緩衝器中等待顯示。
以根據兩個顯像圖框(即步驟S02中的第一顯像圖框與第二顯像圖框)內插產生兩個圖框為例,預定被先顯示的內插圖框,其內插過程中的第一顯像圖框的權重較隨後的第二顯像圖框為高;反之,預定被後顯示的內插圖框,其內插過程中的第一顯像圖框的權重較隨後的第二顯像圖框為低,但本發明並不限於特定的權重規則以及特定的內插方法。
此外,較佳地,內插指令係用以使圖形處理單元122根據一最近顯像圖框與一次近顯像圖框來進行內插,也就是說,每一內插圖框係根據距其被傳送至圖框緩衝器中等待顯示時最近與次近的顯像圖框進行內插而產生,而在相同的時刻顯像執行緒可顯像新的圖框。一旦顯像執行緒有新的顯像圖框產生,即可提供給顯示執行緒,此時顯示執行緒則捨棄較舊的顯像圖框並以新的顯像圖框進行內插。
需注意的是,顯示執行緒產生內插圖框的速度較不像顯像執行緒中顯像圖框時會明顯地受到圖框資料量的影響,且只要有一最近的顯像圖框與一次近的顯像圖框即可產生不限數目的內插圖框,因此顯示執行緒的產生內插圖框的速度大約是固定,使得顯示圖框率約略也是定值。而步驟S03同樣可以利用一預設值限制顯示執行緒的顯示圖
框率,例如,根據一預設值插入休眠週期至顯示執行緒以限制顯示圖框率。在顯示執行緒的休眠週期中,圖形處理單元122某些元件(但非全部元件)之電源被關閉(即,圖形處理單元122被電源閘控)。因此,由於圖形處理單元122在顯示執行緒的休眠週期時不工作,所以達到限制顯示圖框率之效果。該預設值同樣可以預先儲存多組設定(configuration),供使用者選擇其一,或根據系統運作模式(例如各式電源模式,包含電池模式、交流供電模式等等)自動選擇其一。
一般而言,顯像圖框所消耗的電能較高,而內插與顯示圖框消耗的電能較低,因此,限制顯像圖框率的預設值通常不高於限制顯示圖框率的預設值。此外,如前文所述本發明會根據系統運作模式預先儲存多組設定,以供使用者選擇其一,或自動選擇其一,如下方表1所示:
例如,當電腦系統100運作於電池模式時,則可以係
由使用者選擇或自動選擇為低耗能模式,於是,顯像執行緒根據預設值10 Hz插入休眠週期至顯像執行緒以限制顯像圖框率最大為10 Hz;顯示執行緒根據預設值30 Hz插入休眠週期至顯示執行緒以限制顯示圖框率為30 Hz。或者,當電腦系統100運作於交流供電模式時,則可以係由使用者選擇或自動選擇為高效能模式,於是,顯像執行緒根據預設值60 Hz插入休眠週期至顯像執行緒以限制顯像圖框率最大為60 Hz;顯示執行緒根據預設值120 Hz插入休眠週期至顯示執行緒以限制顯示圖框率為120 Hz。另外,本發明也可以設置一個感測器(圖未示出)於電腦系統100的電源(圖未示出),並根據感測器所偵測到的電源溫度,或其它物理量,發送一個信號以動態地改變最大顯像圖框率的預設值(即,動態模式),藉此,可以因應電源的狀態而調整最大顯像圖框率。應注意,本發明並不限制於表1所顯示的設定。
圖3顯示本發明另一實施例的電腦系統100方塊圖。其中,圖3相較於圖1之電腦系統100的差異,在於圖形處理子系統112中包含第一圖形處理單元122、第二圖形處理單元123、第一圖形記憶體124與第二圖形記憶體125。
圖4顯示本發明另一實施例中驅動圖形處理單元122之方法,該方法同樣可以應用於如圖3所示之電腦系統100,尤其,可以係由運行圖形驅動程式140的中央處理單
元102配合圖形處理單元122、123加以執行。簡言之,圖4顯示之方法可以根據2個圖形處理單元122、123,分別執行一個顯像執行緒用以顯像圖框,以及執行一個顯示執行緒用以內插圖框以及顯示圖框,以下將進一步說明。
以下說明內容請同時參照圖3與圖4。
步驟S11:判斷出第一圖形處理單元122具有比第二圖形處理單元123更高的運算能力。本發明中,圖形驅動程式140可根據電腦系統100的作業系統(未圖示)得知或是利用各式效能檢測軟體分別評估第一圖形處理單元122與第二圖形處理單元123的運算能力,藉此,可判斷出第一圖形處理單元122具有比第二圖形處理單元123更高的運算能力。應注意的是,本發明並不限定於特定檢測軟體或檢測方法。
步驟S12:因應來自圖形應用程式138的應用程式執行緒的觸發,啟動一顯像執行緒於第一圖形處理單元122以及啟動一顯示執行緒於第二圖形處理單元123。
步驟S13:在顯像執行緒中,係因應圖形應用程式138的請求,圖形驅動程式140發出顯像指令至第一圖形處理單元122,致使第一圖形處理單元122依序產生例如一第一顯像圖框與一第二顯像圖框。關於顯像執行緒的工作內容可參考上述步驟S02之說明,本文不再重複贅述。
步驟S14:與上述步驟S03不同的是,在顯示執行緒中,主要係發出內插指令以及發出顯示指令至另一圖形處理單元(即第二圖形處理單元123),使第二圖形處理單元123根據兩個顯像圖框(例如步驟S13中的第一顯像圖框與第二顯像圖框)執行內插產生內插圖框。顯示指令係用以使第二圖形處理單元123將前述內插產生的圖框傳送到圖框緩衝器中等待顯示。其它關於顯示執行緒的工作內容已於先前步驟S03說明,本文不再重複贅述。
由以上圖3與圖4的實施例說明可知,本發明可以應用於具有2個圖形處理單元122、123的電腦系統100。其中,具有較高運算能力的圖形處理單元122用以執行顯像執行緒;而具有較低運算能力的圖形處理單元123則用以執行顯示執行緒。
根據以上第一、第二實施例之說明,本發明提出一種驅動圖形處理單元之方法,可提供顯像圖框率與顯示圖框率不會相互影響。其中,本發明利用一個顯像執行緒用以顯像圖框,以及一個顯示執行緒用以內插圖框以及顯示圖框。本發明的顯像執行緒與顯示執行緒可分別執行於不同的圖形處理單元。本發明也可以不同的預設值分別限制顯像執行緒的顯像圖框率以及限制顯示執行緒的顯示圖框率。特別是,更可以預先儲存多組的預設值設定,而供使用者選擇其一或根據當下系統運作模式自動選擇其一。
在不脫離本發明精神或必要特性的情況下,可以其他特定形式來體現本發明。應將所述具體實施例各方面僅視為解說性而非限制性。因此,本發明的範疇如隨附申請專利範圍所示而非如前述說明所示。所有落在申請專利範圍之等效意義及範圍內的變更應視為落在申請專利範圍的範疇內。
100‧‧‧電腦系統
102‧‧‧中央處理單元(CPU)
104‧‧‧系統記憶體
105‧‧‧記憶體橋接器
106‧‧‧通訊路徑
107‧‧‧I/O橋接器
108‧‧‧輸入裝置
110‧‧‧顯示裝置
112‧‧‧圖形處理子系統
113‧‧‧通訊路徑、匯流排
114‧‧‧系統磁碟
116‧‧‧切換器
118‧‧‧網路配接器
120、121‧‧‧添加卡
122‧‧‧圖形處理單元(GPU)、第一圖形處理單元
123‧‧‧第二圖形處理單元
124‧‧‧圖形記憶體、第一圖形記憶體
125‧‧‧第二圖形記憶體
136‧‧‧作業系統(OS)程式
138‧‧‧圖形應用程式
140‧‧‧圖形驅動程式
為了立即瞭解本發明的優點,請參考如附圖所示的特定具體實施例,詳細說明上文簡短敘述的本發明。在瞭解這些圖示僅描繪本發明的典型具體實施例並因此不將其視為限制本發明範疇的情況下,參考附圖以額外的明確性及細節來說明本發明,圖式中:圖1顯示本發明一實施例的電腦系統方塊圖。
圖2顯示本發明一實施例中驅動圖形處理單元之方法。
圖3顯示本發明另一實施例的電腦系統方塊圖。
圖4顯示本發明另一實施例中驅動圖形處理單元之方法。
Claims (12)
- 一種驅動圖形處理單元(GPU)之方法,包含:(a)因應來自一圖形應用程式的應用程式執行緒(application thread)的觸發(invoke),啟動(activate)一顯像執行緒與一顯示執行緒;(b)在該顯像執行緒中,發出複數個顯像指令(instruction),該複數個顯像指令係用以致使至少一第一顯像圖框與一第二顯像圖框的產生;以及(c)在該顯示執行緒中,發出一或多個內插指令以及發出一或多個顯示指令,該一或多個內插指令係用以致使根據該第一顯像圖框與該第二顯像圖框執行內插產生一或多個內插圖框,而該一或多個顯示指令係用以致使該一或多個內插圖框的顯示。
- 如請求項1所述之方法,其中該第一顯像圖框與該第二顯像圖框分別為相對於步驟(c)中該一或多個內插圖框的顯示時的最近顯像圖框(most recently rendered)與次近顯像圖框。
- 如請求項1所述之方法,其中:步驟(b)係包含:在該顯像執行緒中,在產生該第一顯像圖框與該第二顯像圖框中任一者後,提供該顯像圖框給該顯示執行緒,並因應該顯示執行緒確認收到(confirm the receipt of the rendered frame),回傳控制(return control)給該圖形應 用程式。
- 如請求項1所述之方法,其中:步驟(b)係包含:發出該複數個顯像指令至一第一圖形處理單元;以及步驟(c)係包含:發出該一或多個顯示指令至一第二圖形處理單元。
- 如請求項4所述之方法,更包含:判斷出該第一圖形處理單元具有比該第二圖形處理單元更高的運算能力。
- 如請求項1所述之方法,其中:步驟(c)係包含:該一或多個內插指令係用以致使根據該第一顯像圖框或該第二顯像圖框的不同的權重執行內插產生該一或多個內插圖框。
- 如請求項1所述之方法,其中:步驟(c)係包含:以一第一預設值限制該顯示執行緒的顯示圖框率。
- 如請求項7所述之方法,其中:步驟(b)係包含:以一第二預設值限制該顯像執行緒的顯像圖框率,其中該第二預設值不高於該第一預設值。
- 如請求項8所述之方法,更包含設定該第一預設值及/或該該第二預設值。
- 如請求項9所述之方法,更包含:預先儲存多組該第一預設值及/或該該第二預設值的設定(configuration),供使用者選擇其一或根據當下系統運作模式自動選擇其一。
- 一種驅動圖形處理單元之方法,包含:(a)因應來自一圖形應用程式的應用程式執行緒的觸發,啟動一顯像執行緒與一顯示執行緒;(b)在該顯像執行緒中,發出複數個顯像指令,該複數個顯像指令係用以致使至少一第一顯像圖框的產生;以及(c)在該顯示執行緒中,發出一或多個計算指令以及發出一或多個顯示指令,該一或多個計算指令係用以致使根據該第一顯像圖框執行計算產生一或多個計算圖框,而該一或多個顯示指令係用以致使該一或多個計算圖框的顯示。
- 一種電腦系統,包含:一圖形處理單元;一中央處理單元,其電性連接於該圖形處理單元,用以執行一圖形驅動程式以執行如申請專利範圍第1-11項任一項的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101141097A TWI498849B (zh) | 2012-11-05 | 2012-11-05 | 圖形驅動程式層級解耦顯像以及顯示的方法 |
US13/745,350 US9183610B2 (en) | 2012-11-05 | 2013-01-18 | Method for graphics driver level decoupled rendering and display |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101141097A TWI498849B (zh) | 2012-11-05 | 2012-11-05 | 圖形驅動程式層級解耦顯像以及顯示的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201419210A TW201419210A (zh) | 2014-05-16 |
TWI498849B true TWI498849B (zh) | 2015-09-01 |
Family
ID=50621932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101141097A TWI498849B (zh) | 2012-11-05 | 2012-11-05 | 圖形驅動程式層級解耦顯像以及顯示的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9183610B2 (zh) |
TW (1) | TWI498849B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI606418B (zh) * | 2012-09-28 | 2017-11-21 | 輝達公司 | 圖形處理單元驅動程式產生內插的圖框之電腦系統及方法 |
US9626319B2 (en) * | 2013-08-23 | 2017-04-18 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Allocating lanes in a peripheral component interconnect express (‘PCIe’) bus |
US10679314B2 (en) * | 2017-03-15 | 2020-06-09 | Microsoft Technology Licensing, Llc | Techniques for reducing perceptible delay in rendering graphics |
CN110196716B (zh) * | 2018-02-26 | 2023-07-25 | 龙芯中科技术股份有限公司 | 图形显示方法、装置、电子设备及存储介质 |
CN110659094A (zh) * | 2019-09-11 | 2020-01-07 | 北京达佳互联信息技术有限公司 | 一种对象渲染及其控制方法、装置、设备及介质 |
CN112057851A (zh) * | 2020-09-02 | 2020-12-11 | 北京蔚领时代科技有限公司 | 一种基于多显卡的单帧画面实时渲染方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW449730B (en) * | 1998-10-14 | 2001-08-11 | Hitachi Ltd | A three dimensional graphic processor |
TW200731159A (en) * | 2005-10-14 | 2007-08-16 | Via Tech Inc | Multiple graphics processor system and methods |
TW201001329A (en) * | 2008-03-20 | 2010-01-01 | Qualcomm Inc | Multi-stage tessellation for graphics rendering |
US20120146706A1 (en) * | 2010-12-10 | 2012-06-14 | Nvidia Corporation | Engine level power gating arbitration techniques |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7629978B1 (en) * | 2005-10-31 | 2009-12-08 | Nvidia Corporation | Multichip rendering with state control |
US7768517B2 (en) * | 2006-02-21 | 2010-08-03 | Nvidia Corporation | Asymmetric multi-GPU processing |
US7898542B1 (en) * | 2006-03-01 | 2011-03-01 | Adobe Systems Incorporated | Creating animation effects |
US8555099B2 (en) * | 2006-05-30 | 2013-10-08 | Ati Technologies Ulc | Device having multiple graphics subsystems and reduced power consumption mode, software and methods |
US7698579B2 (en) * | 2006-08-03 | 2010-04-13 | Apple Inc. | Multiplexed graphics architecture for graphics power management |
US8228337B1 (en) * | 2008-10-03 | 2012-07-24 | Nvidia Corporation | System and method for temporal load balancing across GPUs |
-
2012
- 2012-11-05 TW TW101141097A patent/TWI498849B/zh active
-
2013
- 2013-01-18 US US13/745,350 patent/US9183610B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW449730B (en) * | 1998-10-14 | 2001-08-11 | Hitachi Ltd | A three dimensional graphic processor |
TW200731159A (en) * | 2005-10-14 | 2007-08-16 | Via Tech Inc | Multiple graphics processor system and methods |
TW201001329A (en) * | 2008-03-20 | 2010-01-01 | Qualcomm Inc | Multi-stage tessellation for graphics rendering |
US20120146706A1 (en) * | 2010-12-10 | 2012-06-14 | Nvidia Corporation | Engine level power gating arbitration techniques |
Also Published As
Publication number | Publication date |
---|---|
TW201419210A (zh) | 2014-05-16 |
US20140125680A1 (en) | 2014-05-08 |
US9183610B2 (en) | 2015-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI498849B (zh) | 圖形驅動程式層級解耦顯像以及顯示的方法 | |
JP5529748B2 (ja) | 高速周辺相互接続バスにおけるビデオレンダリング | |
CN107251004B (zh) | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 | |
JP7198772B2 (ja) | マルチヘッドマウントディスプレイ仮想現実構成でのディスプレイペーシング | |
TWI281637B (en) | Method and machine readable medium for inhibiting evictions and apparatus for rendering a scene | |
US7882380B2 (en) | Work based clock management for display sub-system | |
US11164496B2 (en) | Interrupt-free multiple buffering methods and systems | |
CN113342703B (zh) | 一种渲染效果实时调试方法、装置、开发设备及存储介质 | |
TWI749756B (zh) | 借助於合成器生成一系列訊框方法和裝置 | |
KR102521654B1 (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 타일-기반 렌더링의 그래픽스 파이프라인을 수행하는 방법 | |
JP2022539504A (ja) | 性能保証された電力管理を用いるリアルタイムgpuレンダリング | |
US20200183635A1 (en) | Bypassing desktop composition | |
CN108241211A (zh) | 一种头戴显示设备及图像渲染方法 | |
US10769753B2 (en) | Graphics processor that performs warping, rendering system having the graphics processor, and method of operating the graphics processor | |
TWI566205B (zh) | 圖形驅動程式在顯像圖框中近似動態模糊的方法 | |
US9412194B2 (en) | Method for sub-pixel texture mapping and filtering | |
US9001134B2 (en) | Display balance / metering | |
JP2007233730A (ja) | 三次元グラフィック描画装置 | |
TWI653081B (zh) | 影像處理系統和方法 | |
WO2020140145A1 (en) | Interrupt-free multiple buffering methods and systems |