自適應(yīng)遠程計算的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算領(lǐng)域,具體地,涉及與自適應(yīng)遠程計算相關(guān)聯(lián)的設(shè)備、方法和存儲介質(zhì)。
【背景技術(shù)】
[0002]在此提供的【背景技術(shù)】描述是為了通常呈現(xiàn)本發(fā)明的上下文的目的。除非在本文中特別指出,否則在這一部分描述的材料對于本申請中的權(quán)利要求不是現(xiàn)有技術(shù)并且不被允許通過包括在這一部分中而作為現(xiàn)有技術(shù)。
[0003]在通用微處理器、連網(wǎng)以及相關(guān)聯(lián)技術(shù)中的發(fā)展推動了遠程計算的進一步發(fā)展。當(dāng)前,很多應(yīng)用是在計算云中執(zhí)行的。普通的云應(yīng)用,例如云游戲,典型地在云側(cè)也被稱為服務(wù)器側(cè)或者遠程側(cè)執(zhí)行大部分再現(xiàn)。但是,響應(yīng)時間可能并非總是很好,尤其是在擁塞網(wǎng)絡(luò)條件下。
【附圖說明】
[0004]通過下面結(jié)合附圖的詳細描述,可以很容易理解實施例。為了有利于該描述,類似的參考標(biāo)記表示類似的結(jié)構(gòu)單元。實施例是通過舉例的方式在附圖的圖中示出的,而不是通過限制的方式。
[0005]附圖1示出了根據(jù)多個實施例的,合并了本發(fā)明的教導(dǎo)的用于自適應(yīng)遠程計算的示例性的計算設(shè)置的總體圖。
[0006]附圖2示出了根據(jù)多個實施例的顯示幀以及與產(chǎn)生顯示幀相關(guān)聯(lián)的圖形調(diào)用。
[0007]附圖3示出了根據(jù)多個實施例的用于自適應(yīng)遠程計算的客戶端側(cè)的處理。
[0008]附圖4示出了根據(jù)多個實施例的用于自適應(yīng)遠程計算的遠程側(cè)的處理。
[0009]附圖5示出了根據(jù)多個實施例的適合于實現(xiàn)本發(fā)明的示例性計算環(huán)境。
[0010]附圖6示出了根據(jù)多個實施例的,具有被配置為使得設(shè)備實現(xiàn)本發(fā)明的各個方面的指令的示例性存儲介質(zhì)。
【具體實施方式】
[0011]在此公開了與操作應(yīng)用相關(guān)聯(lián)的設(shè)備、方法和存儲介質(zhì)。在實施例中,一種方法可通過應(yīng)用的客戶端側(cè)在客戶端計算裝置上本地創(chuàng)建該應(yīng)用的圖形上下文。該圖形上下文可包括多個與產(chǎn)生該應(yīng)用的顯示幀相關(guān)聯(lián)的再現(xiàn)資源。該應(yīng)用的客戶端側(cè)可能通過該應(yīng)用的遠程側(cè)使得在遠程計算資源的集合上創(chuàng)建圖形上下文的副本。該應(yīng)用的客戶端側(cè)隨后可自適應(yīng)地使得本地或者遠程產(chǎn)生顯示幀。該應(yīng)用的一個例子是基于云的游戲應(yīng)用,其具有作為計算云的計算資源的遠程計算資源的集合。
[0012]在實施例中,該應(yīng)用的客戶端側(cè)可在顯示幀的開始以及顯示幀的結(jié)束做出是否本地或者遠程產(chǎn)生顯示幀的確定。在顯示幀的開始,應(yīng)用的客戶端側(cè)可至少部分基于例如客戶端計算裝置的圖形單元的能力,和/或耦合客戶端計算裝置和遠程計算資源的集合的網(wǎng)絡(luò)的帶寬來做出確定。在顯示幀的結(jié)束,被配置為打包和發(fā)送圖形調(diào)用使得遠程產(chǎn)生顯示幀的應(yīng)用的客戶端側(cè)的包裝器可重確定是否確實遠程產(chǎn)生顯示幀或者改為本地產(chǎn)生。該重確定可進一步基于例如顯示幀的復(fù)雜度。
[0013]在實施例中,例如智能電話或者計算平板的一個設(shè)備可包括一個或者多個處理器,以及具有被配置為使得該設(shè)備響應(yīng)于一個或者多個處理器的操作來執(zhí)行任意上述方法和它們的變形的應(yīng)用的客戶端側(cè)的存儲介質(zhì)。在實施例中,至少一個存儲介質(zhì)可包括配置為響應(yīng)于由該設(shè)備執(zhí)行使得該設(shè)備而執(zhí)行任意上述方法和它們的變形的指令。
[0014]在后面的詳細描述中,參考了作為描述的一部分的附圖,其中貫穿全文,相似的標(biāo)記表示相似的部分,并且其中通過可被實現(xiàn)的示范實施例的方式來示出。應(yīng)當(dāng)理解其它實施例可能被使用并且在不超出本發(fā)明的范圍的情況下做出結(jié)構(gòu)和邏輯改變。因此,下面的詳細描述不是限制意義,而實施例的范圍是通過附加的權(quán)利要求及其等同替換來定義的。
[0015]各種操作可被以最有助于理解要求保護的主題的方式描述為多個單獨的動作或者連續(xù)的操作。但是,描述的順序不應(yīng)被解釋為意味是這些操作必須按照順序。特別是,描述的操作可以不按照呈現(xiàn)的順序執(zhí)行。描述的操作可能以與描述的實施例不同的順序執(zhí)行。在附加實施例中,各種附加的操作可以被執(zhí)行和/或描述的操作可以被省略。
[0016]為了本發(fā)明的目的,短語“A和/或B”意思是(A)、(B)或者(A和B)。為了本發(fā)明的目的,短語“A、B、和/或C"意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C),或者(A、B和C)。
[0017]本描述可能使用短語“在一個實施例中,”或者“在實施例中,”,它們的每一個指的是一個或者多個相同的或者不同的實施例。此外,如針對發(fā)明的實施例使用的術(shù)語“包含”、“包括”、“具有”之類的是相同的意思。
[0018]如包括權(quán)利要求書的下文使用的術(shù)語“模塊”被認(rèn)為包括專用集成電路(“ASIC")、電子電路、執(zhí)行一個或者多個軟件或者固件程序的處理器(共享的、專用的,或者群組)和/或存儲器(共享的、專用的,或者群組)、組合邏輯電路、和/或其它提供描述的功能的合適的部件或者是以上所列的一部分。術(shù)語“封閉字幕”將包括傳統(tǒng)的封閉字幕和/或子標(biāo)題。
[0019]現(xiàn)在參考附圖1,示出了一種根據(jù)多個實施例的合并了本發(fā)明的教導(dǎo)的用于自適應(yīng)遠程計算的示例性計算設(shè)置的總體圖。如所示,在實施例中,計算設(shè)置100可包括通過網(wǎng)絡(luò)106彼此耦合的客戶端計算裝置102以及計算云104。客戶端計算裝置102可包括彼此耦合的如所示的處理器和存儲器設(shè)置112,以及多個外部裝置,例如存儲裝置114、圖形處理單元(GPU)116、連網(wǎng)接口(NIC)IlS以及顯示器單元120。處理器和存儲器設(shè)置112可被配置為主機并且操作操作系統(tǒng)和服務(wù)及應(yīng)用,例如應(yīng)用的客戶端側(cè)122,其可具有應(yīng)用的遠程側(cè)142。在實施例中,應(yīng)用的遠程側(cè)142可在計算云104的一些計算資源132上操作。在實施例中,應(yīng)用的客戶端側(cè)122和遠程側(cè)124可配置有本發(fā)明的教導(dǎo)從而使得應(yīng)用的顯示幀能夠被在客戶端計算裝置102或者計算云104上自適應(yīng)地產(chǎn)生。結(jié)果是,該應(yīng)用的用戶體驗可被潛在地增強。下面另外參考附圖2-6進一步描述這些和其它方面。
[0020]現(xiàn)在仍然參考附圖1,在實施例中,應(yīng)用的客戶端側(cè)122可被配置為確定顯示幀是否在計算裝置102上例如使用GPU 116本地或者例如使用計算云104的計算資源132遠程產(chǎn)生。應(yīng)用的客戶端側(cè)122可被配置為在顯示幀的開始,以及顯示幀的結(jié)束做出本地或者遠程產(chǎn)生確定。在每一個確定時,應(yīng)用的客戶端側(cè)122可考慮一個或者多個因素,包括但是不限制于,例如網(wǎng)絡(luò)106的帶寬、GPU 116的能力和/或顯示幀的復(fù)雜度。
[0021]在實施例中,應(yīng)用的客戶端側(cè)122可被配置為在客戶端計算裝置102上創(chuàng)建和保存包括多個與產(chǎn)生顯示幀相關(guān)聯(lián)的再現(xiàn)資源的圖形上下文123。再現(xiàn)資源的例子包括但是不限制于紋理、索引緩沖器、頂點緩沖器、實例緩沖器或者著色器。此外,應(yīng)用的客戶端則122可能被配置為例如通過應(yīng)用的遠程側(cè)142在計算云104的計算資源132上產(chǎn)生將要被創(chuàng)建和保持的圖形上下文143的副本。換句話說,每一次應(yīng)用的客戶端側(cè)122在客戶端計算裝置102上創(chuàng)建或者更新圖形上下文123的再現(xiàn)資源時,例如創(chuàng)建紋理或者緩沖器時,應(yīng)用的客戶端偵打22還可請求應(yīng)用的遠程側(cè)142在計算云104上創(chuàng)建或者更新圖形上下文143的副本中的再現(xiàn)資源,例如創(chuàng)建相同的紋理或者緩沖器。在實施例中,應(yīng)用的客戶端側(cè)122還產(chǎn)生將要分配給再現(xiàn)資源的標(biāo)識符,例如,紋理_A、紋理_B、緩沖器_A、緩沖器_B等等。
[0022]現(xiàn)在再參考附圖2,其中示出了根據(jù)本發(fā)明的多個實施例的顯示幀和與產(chǎn)生顯示幀相關(guān)聯(lián)的圖形調(diào)用。如所示,每一個顯示幀202可能包括通過幀起始標(biāo)記204和幀結(jié)束標(biāo)記208限制的邊界的幀內(nèi)容部分206。每一個幀內(nèi)容部分206包括多個圖形調(diào)用210。各種各樣的圖形調(diào)用,例如,但是不限制于,用于產(chǎn)生紋理和/或著色的圖形調(diào)用,并且具有相關(guān)聯(lián)的數(shù)據(jù)。一些這些相關(guān)聯(lián)數(shù)據(jù)可能具有實質(zhì)數(shù)量。圖形調(diào)用的例子,除了產(chǎn)生紋理和/或著色的調(diào)用之外,可能包括,但是不限制于,更新或者清空緩沖器,再現(xiàn)到目標(biāo)的調(diào)用等等。
[0023]在實施例中,如在附圖1中所示,應(yīng)用的客戶端側(cè)122可包括圖形調(diào)用包裝器124、打包器126和解包器128。反之,應(yīng)用的遠程側(cè)142可包括處理引擎144、打包器146和解包器148。圖形調(diào)用包裝器124(或者此后,簡稱為“包裝器”)被配置為截取圖形調(diào)用和與產(chǎn)生顯示幀相關(guān)聯(lián)的相關(guān)聯(lián)數(shù)據(jù)。在實施例中,包裝器124被配置為響應(yīng)于確定例如在顯示幀的開始遠程產(chǎn)生顯示幀,截取圖形調(diào)用和與產(chǎn)生顯示幀相關(guān)聯(lián)的相關(guān)聯(lián)數(shù)據(jù)。在截取后,包裝器124被配置為將圖形調(diào)用和相關(guān)聯(lián)數(shù)據(jù)保存到例如存儲裝置114中。此外,包裝器124被配置為修改后續(xù)的(非再現(xiàn)資源創(chuàng)建)圖形調(diào)用以通過它們的標(biāo)識符來參考再現(xiàn)資源,從而潛在地降低傳輸圖形調(diào)用(無相關(guān)聯(lián)數(shù)據(jù))給應(yīng)用的遠程側(cè)142以處理所需要的帶寬,以及產(chǎn)生顯示幀。在處理圖形調(diào)用中,應(yīng)用的遠程側(cè)144將操作在通過標(biāo)識符參考的再現(xiàn)資源的遠程副本上。
[0024]在實施例中,客戶端側(cè)122的打包器126可被配置為編碼和/或壓縮圖形調(diào)用(以及它們的相關(guān)聯(lián)數(shù)據(jù),如果在選擇的情況下包括的話)從而被發(fā)送到應(yīng)用的遠程側(cè)142,從而潛在地進一步降低將圖形調(diào)用傳輸?shù)綉?yīng)用的遠程側(cè)142所需要的網(wǎng)絡(luò)106的帶寬。遠程側(cè)142的解包器148可被配置為解碼和/或解壓縮打包的圖形調(diào)用(以及它們的相關(guān)聯(lián)數(shù)據(jù),如果包括)以用于處理引擎144。處理引擎144可被配置為處理圖形調(diào)用從而產(chǎn)生顯示幀,其操作在通過標(biāo)識符參考的再現(xiàn)資源的遠程副本上,如之前描述的。
[0025]遠程側(cè)142的打包器146可被配置為編碼和/或壓縮在計算云104上產(chǎn)生的顯示幀,從而準(zhǔn)備將它們傳輸?shù)娇蛻舳擞嬎阊b置102,以便于潛在地降低將顯示幀傳輸?shù)綉?yīng)用的客戶端側(cè)122所需的網(wǎng)絡(luò)106的帶寬??蛻舳藗?cè)122的解包器128