国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      命令遙控的制作方法

      文檔序號(hào):6595766閱讀:189來源:國(guó)知局
      專利名稱:命令遙控的制作方法
      命令遙控
      背景技術(shù)
      終端服務(wù)提供用于允許訪問存儲(chǔ)在服務(wù)器上的應(yīng)用和數(shù)據(jù)的技術(shù)。用戶輸入通過網(wǎng)絡(luò)被發(fā)送給服務(wù)器,并且音頻和圖形被從服務(wù)器發(fā)送給客戶端。這些年來,已經(jīng)開發(fā)出用于遙控圖形的不同技術(shù)、比如命令級(jí)遙控和位圖級(jí)遙控。一般認(rèn)為位圖級(jí)遙控是兩種技術(shù)中較容易實(shí)現(xiàn)的。在位圖遙控中,圖形處理在終端服務(wù)器上執(zhí)行,并且例如形成位圖的像素值陣列之類的最終圖像被壓縮并且通過網(wǎng)絡(luò)被發(fā)送給客戶端。該技術(shù)需要具有足夠計(jì)算能力的服務(wù)器來為一個(gè)或多個(gè)客戶端呈現(xiàn)圖像。另一方面,命令級(jí)遙控將圖形呈現(xiàn)推卸給客戶端??梢员或?qū)動(dòng)程序處理并且被圖形處理器執(zhí)行的例如頂點(diǎn)之類的圖元可以被捕獲并且被發(fā)送給客戶端。這降低了為了遙控圖形所需的處理能力,但是比位圖需要更多帶寬來發(fā)送表示3D圖形的數(shù)據(jù),比如視頻游戲或用戶界面的數(shù)據(jù)。迄今為止,本領(lǐng)域的技術(shù)人員已經(jīng)嘗試通過捕獲由應(yīng)用程序界面輸出的生成諸如頂點(diǎn)和常量之類的圖元的命令來執(zhí)行命令級(jí)遙控??偟膩碚f,隨著這些年來已經(jīng)開發(fā)出不同類型的應(yīng)用,例如使用3D應(yīng)用、視頻游戲等等的新用戶界面,趨勢(shì)已經(jīng)是使用定制的遙控組件來捕獲由每個(gè)應(yīng)用輸出的命令,其中這些遙控組件被優(yōu)化為捕獲由特定API輸出的特定API構(gòu)造。這已經(jīng)導(dǎo)致一種在計(jì)算機(jī)中的多個(gè)位置處進(jìn)行數(shù)據(jù)捕獲的架構(gòu),并且該架構(gòu)需要變得越來越復(fù)雜的系統(tǒng)。而且,隨著來自越來越多應(yīng)用的命令被遙控,已經(jīng)變得難以在不同遙控組件的范圍內(nèi)同步呈現(xiàn)操作。例如,⑶I框可以使用一種技術(shù)生成,并且填充圖標(biāo)的文本可以用另一種技術(shù)來繪制。如果命令未被同步,則文本可能出現(xiàn)在GUI框的錯(cuò)誤部分處或出現(xiàn)在錯(cuò)誤時(shí)間。因此,所期望的是用于同步命令的技術(shù)。

      發(fā)明內(nèi)容
      本發(fā)明的一個(gè)示例性實(shí)施例描述了一種方法。在該實(shí)施例中,該方法包括、但不限于由至少一個(gè)內(nèi)核模式進(jìn)程同步用于圖元的頂點(diǎn),所述頂點(diǎn)存儲(chǔ)在頂點(diǎn)緩沖器中;以及將經(jīng)同步的用于圖元的頂點(diǎn)發(fā)送給終端服務(wù)器客戶端。除前述的之外,在構(gòu)成本發(fā)明的一部分的權(quán)利要求書、附圖,以及文本中描述了其他方面。本發(fā)明的一個(gè)示例性實(shí)施例描述了一種方法。在該示例中,該方法包括、但不限于從用戶空間進(jìn)程接收與用于圖元的頂點(diǎn)相關(guān)聯(lián)的信息;從圖形設(shè)備接口接收與位塊傳送命令相關(guān)聯(lián)的信息;由至少一個(gè)內(nèi)核模式進(jìn)程將用于圖元的頂點(diǎn)與位塊傳送命令同步; 以及跨機(jī)器界限地發(fā)送經(jīng)同步的用于圖元的頂點(diǎn)和命令。除前述的之外,在構(gòu)成本發(fā)明的一部分的權(quán)利要求書、附圖,以及文本中描述了其他方面。本發(fā)明的一個(gè)示例性實(shí)施例描述了一種方法。在該實(shí)施例中,該方法包括、但不限于由用戶模式驅(qū)動(dòng)程序生成用于圖元的頂點(diǎn);同步用于圖元的頂點(diǎn);以及將經(jīng)同步的用于圖元的頂點(diǎn)發(fā)送給終端服務(wù)器客戶端。除前述的之外,在構(gòu)成本發(fā)明的一部分的權(quán)利要求書、附圖,以及文本中描述了其他方面。本領(lǐng)域技術(shù)人員將理解,本發(fā)明的一個(gè)或多個(gè)方面可包括但不限于用于實(shí)現(xiàn)本發(fā)明的本文所述方面的電路和/或編程;該電路和/或編程實(shí)質(zhì)上可以是配置成實(shí)現(xiàn)本文所述方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇。以上是概述,并且因此必然包含細(xì)節(jié)的簡(jiǎn)化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說明性的并且決不旨在是限制性的。


      圖1描繪其中可實(shí)現(xiàn)本發(fā)明的各方面的示例計(jì)算機(jī)系統(tǒng)。圖2描繪了用于實(shí)施本發(fā)明的各方面的操作環(huán)境。圖3描繪了用于實(shí)施本發(fā)明的各方面的操作環(huán)境。圖4描繪了用于實(shí)施本發(fā)明的各方面的操作環(huán)境。圖5描繪了用于實(shí)施本公開的各方面的操作過程。圖6示出圖5的操作過程500的可替代實(shí)施例。圖7示出圖6的操作過程500的可替代實(shí)施例。圖8示出圖6的操作過程500的可替代實(shí)施例。圖9描繪了用于實(shí)施本公開的各方面的示例性操作過程。圖10示出圖9的操作過程900的可替代實(shí)施例。圖11示出圖10的操作過程900的可替代實(shí)施例。圖12描繪了用于實(shí)施本公開的各方面的示例性操作過程。圖13示出圖12的操作過程900的可替代實(shí)施例。
      具體實(shí)施例方式各實(shí)施例可在一個(gè)或多個(gè)計(jì)算機(jī)上執(zhí)行。圖1和下面討論旨在提供其中實(shí)現(xiàn)本發(fā)明的合適計(jì)算環(huán)境的簡(jiǎn)要描述。本領(lǐng)域技術(shù)人員能夠理解,圖1的計(jì)算機(jī)系統(tǒng)在一些實(shí)施例中可實(shí)現(xiàn)圖2和圖4的計(jì)算機(jī)200和客戶端401。在這些示例性實(shí)施例中,服務(wù)器200和客戶端401可以包括圖1中描述的一些或全部組件、以及被配置為實(shí)例化本公開的具體方面的電路。貫穿本公開使用的術(shù)語電路例如可以包括諸如硬件中斷控制器、硬盤驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器之類的硬件組件、以及用于操作這些硬件的固件/軟件。在相同實(shí)施例或其他實(shí)施例中,電路可以包括被配置為執(zhí)行固件或調(diào)定開關(guān)(set switch)功能的微處理器。在相同或其他示例性實(shí)施例中,電路可以包括一個(gè)或多個(gè)邏輯處理器,例如多核通用處理單元的一個(gè)或多個(gè)核。本示例中的邏輯處理器可以由軟件指令來配置,軟件指令體現(xiàn)為可用于執(zhí)行從例如RAM、R0M、固件和/或虛擬存儲(chǔ)器之類的存儲(chǔ)器加載的功能的邏輯。在電路包括硬件和軟件的組合的示例實(shí)施例中,實(shí)現(xiàn)者可以編寫體現(xiàn)為邏輯的源代碼,該源代碼隨后被編譯成可由邏輯處理器執(zhí)行的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員能夠理解,現(xiàn)有技術(shù)已經(jīng)發(fā)展到硬件、軟件或硬件/軟件的組合之間幾乎沒有差別的地步,因此選擇硬件還是軟件來實(shí)現(xiàn)特定功能只是一個(gè)設(shè)計(jì)選擇。更具體而言,本領(lǐng)域技術(shù)人員可以明白軟件進(jìn)程可被變換成等價(jià)的硬件結(jié)構(gòu),而硬件結(jié)構(gòu)本身可被變換成等價(jià)的軟件進(jìn)程。因此,對(duì)于硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的選擇是設(shè)計(jì)選擇之一并留給實(shí)現(xiàn)者。
      現(xiàn)在參考圖1,描繪了示例性通用計(jì)算系統(tǒng)。該通用計(jì)算系統(tǒng)可包括常規(guī)的計(jì)算機(jī) 20等,它包括通用處理單元21、系統(tǒng)存儲(chǔ)器22和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合到處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是幾種類型的總線結(jié)構(gòu)中的任何一種, 包括存儲(chǔ)器總線或存儲(chǔ)控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM) M和隨機(jī)存取存儲(chǔ)器(RAM) 25?;据斎?輸出系統(tǒng)沈(BIOS)被存儲(chǔ)在ROM 24中,該基本輸入/輸出系統(tǒng)沈包含了諸如在啟動(dòng)期間幫助在計(jì)算機(jī)20內(nèi)的元件之間傳輸信息的基本例程。計(jì)算機(jī)20還可以包括用于讀寫硬盤(未示出)的硬盤驅(qū)動(dòng)器27、用于讀寫可移動(dòng)磁盤四的磁盤驅(qū)動(dòng)器28,以及用于讀寫諸如CD ROM或其他光學(xué)介質(zhì)之類的可移動(dòng)光盤31的光盤驅(qū)動(dòng)器30。在一些示例實(shí)施例中,實(shí)施本公開各方面的計(jì)算機(jī)可執(zhí)行指令可以存儲(chǔ)在ROM 24、硬盤(未示出)、RAM 25、可移動(dòng)磁盤四、光盤31和/或通用處理單元21的高速緩存中。硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器28,以及光驅(qū)動(dòng)器30分別通過硬盤驅(qū)動(dòng)器接口 32、磁盤驅(qū)動(dòng)器接口 33,以及光驅(qū)動(dòng)器接口 34連接到系統(tǒng)總線23。驅(qū)動(dòng)器以及它們相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)20提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,及其他數(shù)據(jù)的非易失性存儲(chǔ)。雖然這里描述的示例性環(huán)境采用硬盤、可移動(dòng)磁盤四和可移動(dòng)光盤31,但本領(lǐng)域技術(shù)人員理解,在該示例性操作環(huán)境中也能使用可存儲(chǔ)能由計(jì)算機(jī)訪問的數(shù)據(jù)的其它類型計(jì)算機(jī)可讀介質(zhì),如盒式磁帶、閃存卡、數(shù)字視頻盤、柏努利(Bernoulli)盒式磁帶、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等??梢杂腥舾蓚€(gè)程序模塊存儲(chǔ)在硬盤、磁盤四、光盤31、ROM 24或RAM 25上,包括操作系統(tǒng)35、一個(gè)或多個(gè)應(yīng)用程序36、其他程序模塊37、以及程序數(shù)據(jù)38。用戶可以通過諸如鍵盤40和定點(diǎn)設(shè)備42之類的輸入設(shè)備向計(jì)算機(jī)20中輸入命令和信息。其他輸入設(shè)備(未示出)可以包括麥克風(fēng)、游戲桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備常通過耦合到系統(tǒng)總線的串行端口接口 46連接到通用處理單元21,但也可通過其它接口連接,如并行端口、游戲端口或通用串行總線(USB)。顯示器47或其他類型的顯示設(shè)備也可以通過諸如視頻適配器48之類的接口連接到系統(tǒng)總線23。除了顯示器47之外,計(jì)算機(jī)通常還包括其他外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。圖1的示例性系統(tǒng)還包括主適配器55、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線56和連接到SCSI總線56的外部存儲(chǔ)設(shè)備62。計(jì)算機(jī)20可以使用到諸如遠(yuǎn)程計(jì)算機(jī)49之類的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一臺(tái)個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò) PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),并通??砂ㄒ陨蠈?duì)個(gè)人計(jì)算機(jī)20描述的許多或所有元件,雖然在圖1中只示出存儲(chǔ)器存儲(chǔ)設(shè)備50。圖1中所描繪的邏輯連接可包括局域網(wǎng) (LAN)51和廣域網(wǎng)(WAN)52。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)部網(wǎng)和因特網(wǎng)中是普遍現(xiàn)象。當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20可通過網(wǎng)絡(luò)接口或適配器53連接到LAN 51。 當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20通常包括調(diào)制解調(diào)器M,或用于通過廣域網(wǎng)52(如通過因特網(wǎng))建立通信的其他裝置。調(diào)制解調(diào)器54——其可以是內(nèi)置的或外置的,可通過串行端口接口 46連接到系統(tǒng)總線23。在聯(lián)網(wǎng)環(huán)境中,參考計(jì)算機(jī)20所描述的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。可以理解,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。此外,盡管可想到的是本發(fā)明的許多實(shí)施例尤其適用于計(jì)算機(jī)化的系統(tǒng),但是在本說明中不意味著將本發(fā)明限于那些實(shí)施例?,F(xiàn)在參考圖2和3,其描繪了可用在本發(fā)明各方面的包括用于虛擬化資源的電路的計(jì)算機(jī)系統(tǒng)的高級(jí)概況。如圖所示,服務(wù)器200可以包括諸如存儲(chǔ)設(shè)備208之類的物理硬件設(shè)備(例如硬盤驅(qū)動(dòng)器)、網(wǎng)絡(luò)接口控制器(NIC) 210、圖形卡234、至少一個(gè)邏輯處理器 212和隨機(jī)存取存儲(chǔ)器(RAM)214。本領(lǐng)域技術(shù)人員能夠理解,盡管示出了一個(gè)邏輯處理器, 但在其他實(shí)施例中,計(jì)算機(jī)200可以具有例如多個(gè)執(zhí)行核之類的多個(gè)邏輯處理器和/或多個(gè)處理器。在這些實(shí)施例中,多個(gè)線程可以同時(shí)執(zhí)行,例如每邏輯處理器一個(gè)或多個(gè)線程。 繼續(xù)對(duì)圖2的描述,描繪了同樣可以稱為虛擬機(jī)監(jiān)視器的系統(tǒng)管理程序202。所描繪的實(shí)施例中的系統(tǒng)管理程序202包括用于控制并仲裁對(duì)服務(wù)器200的硬件的訪問的可執(zhí)行指令。 系統(tǒng)管理程序202可以生成稱為分區(qū)的執(zhí)行環(huán)境,比如分區(qū)1到分區(qū)N(其中N是大于1的整數(shù))。在各實(shí)施例中,分區(qū)可以被認(rèn)為是管理程序202所支持的基本隔離單元,也就是說, 每個(gè)分區(qū)可以被映射到處于系統(tǒng)管理程序202的控制下的一組硬件資源,例如存儲(chǔ)器、設(shè)備、邏輯處理器周期等等。在一實(shí)施例中,系統(tǒng)管理程序202可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件內(nèi),或者可以由專用集成電路來實(shí)現(xiàn)的系統(tǒng)管理程序202 的一部分。繼續(xù)對(duì)圖2的描述,計(jì)算機(jī)200可以包括根分區(qū)204,根分區(qū)204可以包括虛擬化服務(wù)提供商228 (VSP)。在該示例性架構(gòu)中,根分區(qū)204可以通過設(shè)備驅(qū)動(dòng)程序2M訪問底層硬件。該示例中的VSP 2 可以實(shí)現(xiàn)稱為子分區(qū)的分區(qū)中的接口,并且這些子分區(qū)可以被認(rèn)為是虛擬機(jī)。虛擬化服務(wù)提供商2 通過將不同的設(shè)備類實(shí)例化為軟件來實(shí)現(xiàn)虛擬機(jī) 216和218,并且將接口展示給分區(qū)內(nèi)的設(shè)備。每個(gè)虛擬機(jī)都可以包括客操作系統(tǒng)220和 222可以管理并調(diào)度在其上執(zhí)行的線程的諸如虛擬處理器230和232的虛擬處理器。如所示的那樣,客操作系統(tǒng)220和222可以執(zhí)行終端服務(wù)器(TS) 240和244。一般而言,虛擬處理器230和232是提供具有特定架構(gòu)的物理處理器的表示的可執(zhí)行指令以及相關(guān)聯(lián)的狀態(tài)信息。例如,一個(gè)虛擬機(jī)可具有擁有英特爾x86處理器特性的虛擬處理器,而另一虛擬處理器可具有PowerPC處理器的特性。該例中的虛擬處理器可以被映射到計(jì)算機(jī)系統(tǒng)的邏輯核,使得實(shí)現(xiàn)虛擬處理器的指令將被邏輯處理器支持。因此,在這些示例性實(shí)施例中,多個(gè)虛擬處理器可以同時(shí)執(zhí)行,同時(shí)例如另一邏輯處理器執(zhí)行系統(tǒng)管理程序指令?,F(xiàn)在參考圖3,其示出了可用于實(shí)施本公開的實(shí)施例的可替代體系結(jié)構(gòu)。圖3描繪了類似于圖2的組件,然而在該示例性實(shí)施例中,系統(tǒng)管理程序202可以包括虛擬化服務(wù)提供商2 和設(shè)備驅(qū)動(dòng)程序224,并且根分區(qū)204可包含配置實(shí)用程序236。在該體系結(jié)構(gòu)中,系統(tǒng)管理程序202可執(zhí)行與圖2的系統(tǒng)管理程序202相同或相似的功能。圖3的系統(tǒng)管理程序202可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件內(nèi),或者可以由專用集成電路來實(shí)現(xiàn)的系統(tǒng)管理程序202的一部分。在該實(shí)施方式中,系統(tǒng)管理程序202 可以被認(rèn)為是直接在硬件的裸機(jī)上執(zhí)行的指令。在該示例中,根分區(qū)204可具有可用于配置系統(tǒng)管理程序204的指令,然而,硬件訪問請(qǐng)求可由系統(tǒng)管理程序202來處理而不是傳遞到根分區(qū)204?,F(xiàn)在參考圖4,其總體上示出了可用在本公開的實(shí)施例中的示例性操作系統(tǒng)400, 該操作系統(tǒng)400包括終端服務(wù)會(huì)話402。本領(lǐng)域的技術(shù)人員能夠理解,示例性的操作系統(tǒng) 400可以由諸如圖1的計(jì)算機(jī)20之類的計(jì)算機(jī)來實(shí)現(xiàn),或者可以是在根分區(qū)204內(nèi)執(zhí)行的主操作系統(tǒng)。在另一實(shí)施方式中,操作系統(tǒng)400可以是由諸如VM 216或VM 218之類的虛擬機(jī)實(shí)現(xiàn)的客操作系統(tǒng)220或222。參考該圖,底層硬件208、210、234、212和214用虛線來指示,這指示在一實(shí)施例中,硬件可以被虛擬化。在各實(shí)施例中,終端服務(wù)可以被提供給諸如客戶端401之類的至少一個(gè)客戶端 (盡管描繪了一個(gè)客戶端,但終端服務(wù)可被提供給更多客戶端)。示例性客戶端401可以包括由硬件來實(shí)現(xiàn)的計(jì)算機(jī)終端,其中該硬件被配置為將用戶輸入定向到終端服務(wù)器會(huì)話并顯示該會(huì)話生成的用戶界面信息。在另一實(shí)施例中,客戶端401可以由包括與圖1的計(jì)算機(jī)20的元件類似的元件的計(jì)算機(jī)來實(shí)現(xiàn)。在該實(shí)施例中,客戶端401可包括被配置為實(shí)現(xiàn)操作系統(tǒng)的電路以及被配置為模擬終端的功能(例如,可由一個(gè)或多個(gè)邏輯處理器212執(zhí)行的遠(yuǎn)程桌面客戶端應(yīng)用)的電路。本領(lǐng)域技術(shù)人員能夠理解,被配置為實(shí)現(xiàn)操作系統(tǒng)的電路也可以包括被配置為模擬終端的電路。操作系統(tǒng)400可以包括可將處理器配置為生成會(huì)話的指令。簡(jiǎn)言之,會(huì)話一般可以包括用戶模式進(jìn)程406,比如視頻游戲、文字處理程序、web瀏覽器、用戶界面(窗口、對(duì)話框、桌面等等)、媒體播放器等等。進(jìn)程406可以由可提供用于執(zhí)行應(yīng)用和與內(nèi)核418交互的平臺(tái)的各種子系統(tǒng)來實(shí)施,例如執(zhí)行進(jìn)程。一個(gè)這樣的子系統(tǒng)是環(huán)境子系統(tǒng)244和圖形內(nèi)核424,這些將在下面更詳細(xì)解釋。會(huì)話可包括外殼(shell)和用戶界面(其由用戶界面進(jìn)程來呈現(xiàn))、跟蹤該桌面內(nèi)的鼠標(biāo)移動(dòng)的子系統(tǒng)、將對(duì)圖標(biāo)的鼠標(biāo)點(diǎn)擊翻譯成實(shí)現(xiàn)程序?qū)嵗拿畹淖酉到y(tǒng)等等。一般而言,例如在操作系統(tǒng)400通過網(wǎng)絡(luò)連接從諸如客戶端401之類的客戶端接收連接請(qǐng)求時(shí),會(huì)話可以以逐用戶的基礎(chǔ)對(duì)用戶生成。一般而言,連接請(qǐng)求可以首先由例如遠(yuǎn)程桌面協(xié)議棧(RDP)之類的傳輸棧410來處理。傳輸棧410代碼可以將處理器配置為監(jiān)聽某個(gè)端口上的連接消息并將這些消息轉(zhuǎn)發(fā)給引擎412。當(dāng)生成會(huì)話時(shí),傳輸邏輯410可以被執(zhí)行并且可以為每個(gè)會(huì)話實(shí)例化遠(yuǎn)程桌面協(xié)議棧實(shí)例,比如棧實(shí)例414。一般而言,每個(gè)遠(yuǎn)程桌面協(xié)議棧實(shí)例都可以被配置為將輸出路由到相關(guān)聯(lián)的客戶端并將客戶端輸入路由到用于適當(dāng)會(huì)話的環(huán)境子系統(tǒng)444。在會(huì)話創(chuàng)建進(jìn)程期間,會(huì)話管理器416可以被邏輯處理器212執(zhí)行并且處理器212 可以例如通過如下方式初始化和管理每個(gè)會(huì)話生成會(huì)話空間的會(huì)話標(biāo)識(shí)符;將該會(huì)話標(biāo)識(shí)符添加到表;給會(huì)話空間分配存儲(chǔ)器;以及生成系統(tǒng)環(huán)境變量和被分配給會(huì)話空間的存儲(chǔ)器中的子系統(tǒng)進(jìn)程的實(shí)例。如圖所示,在一實(shí)施例中,進(jìn)程406可以在會(huì)話的402的用戶模式內(nèi)執(zhí)行,并且可以使用諸如由圖形顯示界面(⑶1)246生成的位圖、3D圖形之類的兩種不同的呈現(xiàn)技術(shù)、或者二者的組合。⑶I 246可用于生成2D圖像,比如文本和窗口。⑶I 246可以與可響應(yīng)于從處理器406接收到位陣列而生成位像的顯示驅(qū)動(dòng)程序相關(guān)聯(lián)。例如,應(yīng)用可以發(fā)出可以被顯示驅(qū)動(dòng)程序執(zhí)行并且用于呈現(xiàn)表示顏色值的像素的陣列。進(jìn)程可以附加地利用由3D硬件呈現(xiàn)的3D圖形和2D圖形。這樣的圖形可以使用由多個(gè)硬件供應(yīng)商之一制造的3D圖形卡來生成。由于不同的硬件供應(yīng)商使用不同的架構(gòu)和命令,因此可以制定一種如下的圖形驅(qū)動(dòng)程序架構(gòu)該圖形驅(qū)動(dòng)程序架構(gòu)將硬件抽象為使得開發(fā)者可以編寫與任何圖形卡一起工作的單個(gè)應(yīng)用。在該示例中,該應(yīng)用可以通過將 API構(gòu)造發(fā)送給諸如來自Microsoft: 的Direct3D之類的應(yīng)用編程接口 402 (API)來訪問客戶端401的圖形處理單元的特性。API 420進(jìn)而可以生成圖元,所述圖元可以被發(fā)送給客戶端401 ;被客戶端的驅(qū)動(dòng)程序翻譯成可以由該客戶端的GPU來執(zhí)行的命令;以及被該客戶端的GPU執(zhí)行。一般而言,API 420可以包括用于生成圖元(例如在計(jì)算機(jī)圖形中用作被表示成頂點(diǎn)和常量的其他形狀的構(gòu)建塊的基本幾何形狀)的各種命令。頂點(diǎn)可以被生成并且存儲(chǔ)在例如存儲(chǔ)器頁之類的多個(gè)頂點(diǎn)緩沖器中。當(dāng)應(yīng)用執(zhí)行時(shí),其可以聲明它將如何使用緩沖器,例如它將在緩沖器中存儲(chǔ)何種類型的數(shù)據(jù)。諸如視頻游戲之類的應(yīng)用可以使用動(dòng)態(tài)頂點(diǎn)緩沖器來存儲(chǔ)用于化身的圖元,并且可以使用靜態(tài)緩沖器來存儲(chǔ)諸如構(gòu)建數(shù)據(jù)之類的將不常改變的數(shù)據(jù)。當(dāng)頂點(diǎn)被寫入到頂點(diǎn)緩沖器時(shí),緩沖器中的圖元的標(biāo)識(shí)信息可以被發(fā)送給圖形內(nèi)核424,其中圖元的標(biāo)識(shí)符例如可以存儲(chǔ)在執(zhí)行隊(duì)列中。另外,該隊(duì)列可以包括關(guān)于由GDI 446生成的各種位像的信息。在該示例中, 該隊(duì)列可以用于同步使用3D硬件的呈現(xiàn)和位像的顯示。當(dāng)呈現(xiàn)存儲(chǔ)在各個(gè)緩沖器中的圖元時(shí),圖形內(nèi)核似4可以將執(zhí)行命令發(fā)送給內(nèi)核模式驅(qū)動(dòng)程序430。內(nèi)核模式驅(qū)動(dòng)程序430可以接收該命令并且例如將信號(hào)發(fā)送給棧實(shí)例 414以將指定的命令發(fā)送給客戶端401。以下是描繪過程的實(shí)現(xiàn)的一系列流程圖。為便于理解,流程圖被組織成使得初始流程圖通過總體“大圖”視點(diǎn)來演示各實(shí)現(xiàn),并且后續(xù)的流程圖提供進(jìn)一步的附加物和/或細(xì)節(jié)。現(xiàn)在參考圖5,其示出了用于實(shí)施本發(fā)明的各方面的操作過程,包括操作500、502 和504。如圖所示,操作500開始操作過程,并且操作502示出了 由至少一個(gè)內(nèi)核模式進(jìn)程同步用于圖元的頂點(diǎn),其中所述頂點(diǎn)存儲(chǔ)在頂點(diǎn)緩沖器中。例如,至少一個(gè)內(nèi)核模式進(jìn)程可以由至少一個(gè)邏輯處理器212執(zhí)行,并且所述至少一個(gè)邏輯處理器212可以通過圖形處理單元同步頂點(diǎn)的執(zhí)行以呈現(xiàn)圖元。例如,圖元的頂點(diǎn)可以存儲(chǔ)在例如頁或存儲(chǔ)器之類的頂點(diǎn)緩沖器中,并且諸如例如操作系統(tǒng)調(diào)度器、環(huán)境子系統(tǒng)444、圖形內(nèi)核似4或任何其他內(nèi)核模式子系統(tǒng)或進(jìn)程之類的內(nèi)核模式進(jìn)程可以同步圖元的執(zhí)行。在諸如圖4所述示例之類的特定示例中,可以與操作系統(tǒng)調(diào)度器類似地運(yùn)行的圖形處理調(diào)度器4 可以調(diào)度GPU 操作。更具體而言,在該示例中,GPU調(diào)度器4 可以將單獨(dú)的頂點(diǎn)流合并成正確的執(zhí)行次序,使得客戶端401的圖形處理單元以正確次序來執(zhí)行命令。例如,諸如視頻游戲之類的進(jìn)程的一個(gè)或多個(gè)線程可以映射頂點(diǎn)緩沖器并且發(fā)出繪制命令。頂點(diǎn)的標(biāo)識(shí)信息、例如為每個(gè)緩沖器、每個(gè)頂點(diǎn)或緩沖器中的每批頂點(diǎn)生成的信息可以被發(fā)送給GPU調(diào)度器428。該信息可以與同來自相同或其他進(jìn)程的與頂點(diǎn)相關(guān)聯(lián)的標(biāo)識(shí)信息一起存儲(chǔ)在表中。GPU調(diào)度器4 可以基于標(biāo)識(shí)信息調(diào)度頂點(diǎn)的執(zhí)行,使得命令被正確排序并且然后GPU調(diào)度器4 可以將執(zhí)行命令發(fā)送給內(nèi)核模式驅(qū)動(dòng)程序430。在另一特定示例中,文字處理程序可以執(zhí)行并聲明兩個(gè)緩沖器——例如一個(gè)用于存儲(chǔ)用于生成3D菜單的頂點(diǎn),而另一個(gè)存儲(chǔ)用于生成將填充該菜單的字母的命令。應(yīng)用可以映射緩沖器,發(fā)出繪制命令,并且GPU調(diào)度器4 可以確定執(zhí)行兩個(gè)緩沖器的次序,使得菜單與字母一起以將使用戶愉快的方式被呈現(xiàn)。例如,其他進(jìn)程可以在相同或基本相同的時(shí)間發(fā)出繪制命令,并且如果頂點(diǎn)不是經(jīng)同步的,則來自不同進(jìn)程的不同線程的頂點(diǎn)可能在客戶端401上異步地被呈現(xiàn),從而使得所顯示的最終圖像看上去是混亂或混雜的。繼續(xù)對(duì)圖5的描述,操作504示出了將經(jīng)同步的用于圖元的頂點(diǎn)發(fā)送給終端服務(wù)器客戶端。繼續(xù)對(duì)圖5的描述,該示例中的內(nèi)核模式驅(qū)動(dòng)程序430可以將信號(hào)發(fā)送給與會(huì)話402相關(guān)聯(lián)的棧實(shí)例414,其中該會(huì)話402對(duì)棧實(shí)例414進(jìn)行定向以以特定的次序發(fā)送頂點(diǎn),并且棧實(shí)例414可以通過網(wǎng)絡(luò)接口卡210將頂點(diǎn)緩沖器中的命令發(fā)送給客戶端401?,F(xiàn)在參考圖6,其示出了圖5的操作過程的可替代實(shí)施例,包括以虛線指示的附加操作606-612,這指示它們被認(rèn)為是任選的。操作606示出了 由用戶模式驅(qū)動(dòng)程序從應(yīng)用編程接口接收用于生成圖元的應(yīng)用程序接口構(gòu)造;以及由用戶模式驅(qū)動(dòng)程序生成用于圖元的頂點(diǎn)。例如并且參考圖4,應(yīng)用程序接口 420可以從進(jìn)程接收API構(gòu)造,并且可以生成用于生成圖元的命令。例如,API420可以包括可以被展示給諸如操作系統(tǒng)400的用戶界面之類的進(jìn)程的接口。進(jìn)程可以向API 420發(fā)送用于圖元的構(gòu)造,如點(diǎn)列表(Point List)、線列表(Line List)、線帶(Line Strip)、三角形列表(Triangle List)、三角形帶(Triangle Mrip)、或三角形扇(Triangle Fan)。或者換句話說,進(jìn)程可以將高級(jí)API命令發(fā)送給API 420。API 420可以接收這些命令,生成頂點(diǎn)并且將它們傳遞給用戶模式驅(qū)動(dòng)程序422。在一實(shí)施例中,用戶模式驅(qū)動(dòng)程序422可以翻譯這些頂點(diǎn)并且將它們存儲(chǔ)在一個(gè)或多個(gè)頂點(diǎn)緩沖器中。本領(lǐng)域的技術(shù)人員能夠理解,由API 420生成并且被用戶模式驅(qū)動(dòng)程序422翻譯的頂點(diǎn)在字節(jié)方面比API構(gòu)造顯著更大,因?yàn)锳PI位于計(jì)算機(jī)系統(tǒng)的較低邏輯級(jí)。也就是說,在API級(jí)表示用于生成三角形的構(gòu)造的字節(jié)數(shù)可能最終是占用5至10倍字節(jié)以用于存儲(chǔ)的多個(gè)圖元。繼續(xù)對(duì)圖6的描述,操作608描繪了由應(yīng)用程序接口生成用于圖元的頂點(diǎn)。例如, 應(yīng)用程序接口 420可以從各種執(zhí)行進(jìn)程接收構(gòu)造并且可以生成頂點(diǎn),這些頂點(diǎn)可以被存儲(chǔ)在例如RAM 214中的存儲(chǔ)器和/或圖形處理器234的存儲(chǔ)器的一個(gè)或多個(gè)頁之類的一個(gè)或多個(gè)頂點(diǎn)緩沖器中。在一實(shí)施例中,頂點(diǎn)數(shù)據(jù)例如可以由API 420響應(yīng)于從諸如例如視頻游戲、媒體播放器、CAD程序、用戶界面等等之類的應(yīng)用接收API構(gòu)造而生成。也就是說,應(yīng)用可以向API 420傳遞一個(gè)或多個(gè)構(gòu)造,并且API 420可以生成幾千個(gè)圖元并且將它們存儲(chǔ)在一個(gè)或多個(gè)頂點(diǎn)緩沖器中。繼續(xù)對(duì)圖6的描述,操作610示出了 由內(nèi)核模式進(jìn)程接收與由顯示驅(qū)動(dòng)程序呈現(xiàn)的位圖相關(guān)聯(lián)的信息;以及由內(nèi)核模式進(jìn)程將所述位圖與用于圖元的頂點(diǎn)同步。例如并且參考圖4,進(jìn)程可以將用于呈現(xiàn)位圖的指令發(fā)出給圖形設(shè)備接口子系統(tǒng)446。圖形設(shè)備接口子系統(tǒng)446可以呈現(xiàn)位圖并且這些位圖可以與用于圖元的頂點(diǎn)同步。例如,存在如下情形 諸如用戶界面之類的進(jìn)程和/應(yīng)用可能發(fā)出位圖并且使用3D API來生成3D圖形。也就是說,某些應(yīng)用可能使用API 420,生成位圖,或者這二者都取決于這些應(yīng)用是如何被開發(fā)出的。其他應(yīng)用例如可能具有專有命令流,使得其僅能發(fā)出位圖。該實(shí)例中的終端服務(wù)器將不具有截取API構(gòu)造或頂點(diǎn)的機(jī)會(huì)。在這些情況下,操作系統(tǒng)400僅僅接收指令以呈現(xiàn)最終圖像。在這些示例性實(shí)例中,內(nèi)核模式進(jìn)程可以同步頂點(diǎn)和位圖,使得位圖和3D圖形可以合并成被正確呈現(xiàn)的最終執(zhí)行流。例如,該示例中的內(nèi)核模式進(jìn)程可以接收將頂點(diǎn)與位圖相關(guān)聯(lián)的信息,并且內(nèi)核模式進(jìn)程可以確定將相同流中的頂點(diǎn)和位圖發(fā)送給客戶端401。 在該示例中,客戶端401可以接收合并的流,執(zhí)行命令,并且將位圖與由圖元生成的圖像一起進(jìn)行呈現(xiàn)。繼續(xù)對(duì)圖6的描述,操作612示出了壓縮經(jīng)同步的用于圖元的頂點(diǎn)。例如,可以在將數(shù)據(jù)流發(fā)送給客戶端401之前使用批量壓縮器450來壓縮用于圖元的命令。在一實(shí)施例中,批量壓縮器450可以是棧實(shí)例414的用戶模式(未示出)或內(nèi)核模式組件,并且可以被配置為在被發(fā)送到客戶端401的數(shù)據(jù)流中查找相似的模式。在該實(shí)施例中,由于批量壓縮器450接收頂點(diǎn)流(而不是從多個(gè)應(yīng)用接收不同類型的多個(gè)API構(gòu)造),因此批量壓縮器 450具有較大的頂點(diǎn)數(shù)據(jù)集來篩選,以便進(jìn)行壓縮。也就是說,由于是用于多個(gè)進(jìn)程的頂點(diǎn)而不是不同API調(diào)用被遙控,因此存在批量壓縮器450能在一次運(yùn)行中找到相似模式的更大機(jī)會(huì)。在相同或其他實(shí)施例中,命令和/或位圖可以使用有損壓縮器、前移(move to front)編碼器、網(wǎng)格壓縮器等等來壓縮。這些技術(shù)在2008年12月8日提交的代理人案號(hào)為 MVIR-0338、名稱為“Improved Command Remoting ^Techniques (改進(jìn)型命令遙控技術(shù)),, 的美國(guó)專利申請(qǐng)No. xx/xxx, XXX中予以了描述,該申請(qǐng)的內(nèi)容通過引用全部并入本申請(qǐng)?,F(xiàn)在參考圖7,其示出了圖6的操作過程的包括附加操作714的可替代實(shí)施例,該附加操作714示出了由內(nèi)核模式進(jìn)程從圖形設(shè)備接口子系統(tǒng)接收與命令相關(guān)聯(lián)的信息。例如,圖形設(shè)備接口子系統(tǒng)446可以除了呈現(xiàn)用于進(jìn)程406的位圖以外還生成命令。例如并且如上所述,操作系統(tǒng)400不能從進(jìn)程訪問用于生成圖元的命令流,而是環(huán)境子系統(tǒng)444僅能接收呈現(xiàn)位圖的請(qǐng)求。在該示例中,替代于僅僅呈現(xiàn)位圖,⑶I 446可以附加地生成某些命令。通過給⑶I 446提供生成命令的能力,必須被壓縮并且發(fā)送給客戶端401的的數(shù)據(jù)量可以被減小。例如,⑶I 446可以生成的一些示例性命令可以包括、但不限于屏到屏位塊傳送,例如屏幕的一部分到另一部分的復(fù)制;圖案位塊傳送,例如密實(shí)填充(solid fill) 等等。在特定實(shí)施例中,替代于在用戶將窗口從屏幕的一部分移動(dòng)到另一部分時(shí)重繪整個(gè)屏幕,GDI 446可以生成屏到屏位塊傳送命令。內(nèi)核模式進(jìn)程可以接收標(biāo)識(shí)出屏到屏位塊傳送的信息,并且將該命令與其他命令和/或位圖同步,并且通過棧實(shí)例414將屏到屏位塊傳送命令發(fā)送給客戶端401?,F(xiàn)在參考圖8,其示出了圖6的操作過程的包括附加操作816的可替代實(shí)施例,該附加操作816示出了預(yù)處理經(jīng)同步的用于圖元的頂點(diǎn)。例如在本公開的一實(shí)施例中可以包括預(yù)處理器。該預(yù)處理器可以被配置為分析用于生成圖元的命令流并且將其置于一種將允許批量壓縮器450更容易找到模式并壓縮數(shù)據(jù)的格式。一般而言,可以使用前移編碼器、增量預(yù)處理等等。這些技術(shù)在2008年12月8日提交的代理人案號(hào)為MVIR-0338、名稱為“Improved Command Remoting ^Techniques (改進(jìn)型命令遙控技術(shù))”的美國(guó)專利申請(qǐng) No. xx/xxx, XXX中予以了描述?,F(xiàn)在轉(zhuǎn)到圖9,其示出了用于實(shí)施本發(fā)明的各方面的操作過程,包括操作900、 902、904、906和908。如圖所示,操作900開始操作過程,并且操作902示出了從用戶空間進(jìn)程接收與用于圖元的頂點(diǎn)相關(guān)聯(lián)的信息。參考圖4,在本公開的一實(shí)施例中,與用于圖元的頂點(diǎn)相關(guān)聯(lián)的信息可以從例如API 420、用戶模式驅(qū)動(dòng)程序422等等之類的用戶空間進(jìn)程接收。類似于上面所述的那樣,頂點(diǎn)可以被客戶端401的圖形處理單元用于呈現(xiàn)一個(gè)或多個(gè)三角形或線條。例如,在某些終端服務(wù)實(shí)施例中,用戶模式驅(qū)動(dòng)程序API 422可以使得易于從高級(jí)API構(gòu)造翻譯成頂點(diǎn)。然后,這些頂點(diǎn)可以存儲(chǔ)在例如用戶模式驅(qū)動(dòng)程序422、 傳輸棧410、棧實(shí)例414、圖形內(nèi)核424的一個(gè)或多個(gè)頂點(diǎn)緩沖器、或者分配給會(huì)話402的存儲(chǔ)器的一個(gè)或多個(gè)頁中。用于標(biāo)識(shí)出存儲(chǔ)在頂點(diǎn)緩沖器中的命令的一個(gè)或多個(gè)信息包可以
      11被發(fā)送給內(nèi)核模式進(jìn)程,比如例如GPU調(diào)度器4 或者OS內(nèi)核418等等。繼續(xù)對(duì)圖9的描述,操作904描繪了從圖形設(shè)備接口接收與位塊傳送命令相關(guān)聯(lián)的信息。如該操作所示,與執(zhí)行位塊傳送相關(guān)聯(lián)的命令例如可以從圖形顯示子系統(tǒng)446接收。在該示例中,位塊傳送命令可以包括使用光柵操作將若干位圖組合成一個(gè)位圖的操作。 例如,這些命令可以用于組合諸如源和目的地之類的兩個(gè)位圖。源和目的地位圖可以根據(jù)指定的光柵操作(ROP)來組合,并且其結(jié)果然后被寫到目的地位圖上?;綬OP僅僅用源矩形重寫目的地矩形,或者使用諸如AND、OR、XOR和NOT之類的運(yùn)算。在特定的示例中,位塊傳送命令可以包括、但不限于屏到屏位塊傳送,例如屏幕的一部分到另一部分的復(fù)制; 圖案位塊傳送,例如密實(shí)填充(solid fill)等等。繼續(xù)對(duì)圖9的描述,操作906示出了由至少一個(gè)內(nèi)核模式進(jìn)程將用于圖元的頂點(diǎn)與位塊傳送命令同步。例如并且參考圖4,操作906示出了 例如圖形內(nèi)核424、環(huán)境子系統(tǒng) 444、操作系統(tǒng)內(nèi)核418、或者組合之類的至少一個(gè)內(nèi)核模式進(jìn)程可以將存儲(chǔ)在一個(gè)或多個(gè)頂點(diǎn)緩沖器中的頂點(diǎn)與位塊傳送命令同步。在該示例中,所述至少一個(gè)內(nèi)核模式進(jìn)程可以將頂點(diǎn)和位圖合并成執(zhí)行流。如圖9的操作908所示,在一實(shí)施例中,該操作過程可以包括跨機(jī)器界限地發(fā)送經(jīng)同步的用于圖元的頂點(diǎn)和命令。例如,一旦命令和頂點(diǎn)已經(jīng)被同步并且合并成流,則其就可以跨機(jī)器界限地被發(fā)送,例如從終端服務(wù)器會(huì)話402發(fā)送給另一操作系統(tǒng)。在一實(shí)施例中,命令和頂點(diǎn)的流可以包括存儲(chǔ)在各個(gè)頂點(diǎn)緩沖器中的頂點(diǎn)。在該示例中,內(nèi)核模式驅(qū)動(dòng)程序430可以以特定次序執(zhí)行頂點(diǎn)/位塊傳送命令?,F(xiàn)在轉(zhuǎn)到圖10,其示出圖9的操作過程900的可替代實(shí)施例,包括操作 1010-1018。操作1010示出了將經(jīng)同步的用于圖元的頂點(diǎn)和命令發(fā)送給虛擬機(jī)。例如并且參考圖2、3和圖4,在本公開的一實(shí)施例中,經(jīng)同步的頂點(diǎn)和命令可以跨機(jī)器界限地被發(fā)送給虛擬機(jī),例如從圖2虛擬器216發(fā)送給虛擬機(jī)218。在該實(shí)施例中,分區(qū)總線可以用于使用在被普通轉(zhuǎn)讓的名稱為“Partition Bus (分區(qū)總線)”的美國(guó)專利申請(qǐng)?zhí)?1/1 ,647中描述的技術(shù)來跨機(jī)器界限地傳送命令,該申請(qǐng)的全部?jī)?nèi)容通過引用并入本申請(qǐng)。例如在該實(shí)施例中,命令流可以被發(fā)送給包括虛擬桌面技術(shù)的虛擬機(jī)。繼續(xù)對(duì)圖10的描述,操作1012示出了將經(jīng)同步的用于圖元的頂點(diǎn)和命令發(fā)送給終端服務(wù)器客戶端。繼續(xù)對(duì)圖6的描述,該示例中的內(nèi)核模式驅(qū)動(dòng)程序430可以將信號(hào)發(fā)送給與會(huì)話402相關(guān)聯(lián)的棧實(shí)例414,其中該會(huì)話402對(duì)棧實(shí)例414進(jìn)行定向以以特定的次序發(fā)送頂點(diǎn)緩沖器的內(nèi)容和命令,并且棧實(shí)例414可以通過網(wǎng)絡(luò)接口卡210將頂點(diǎn)緩沖器中的命令發(fā)送給客戶端401。然后,棧實(shí)例414可以通過網(wǎng)絡(luò)接口卡210將頂點(diǎn)緩沖器中的命令發(fā)送給客戶端401。現(xiàn)在參考圖10的操作1014,其描繪了 接收與由顯示驅(qū)動(dòng)程序生成的位圖相關(guān)聯(lián)的信息;以及將由顯示驅(qū)動(dòng)程序生成的位圖與用于圖元的頂點(diǎn)和位塊傳送命令同步。例如并且參考圖4,在本公開的一實(shí)施例中,進(jìn)程可以將用于呈現(xiàn)位圖的指令發(fā)出給圖形設(shè)備接口子系統(tǒng)446。圖形設(shè)備接口子系統(tǒng)446的顯示驅(qū)動(dòng)程序可以呈現(xiàn)位圖并且這些位圖可以與頂點(diǎn)交織。在該示例性實(shí)施例中,所述至少一個(gè)內(nèi)核模式進(jìn)程可以將頂點(diǎn)、位圖和位塊傳送命令同步成有序命令流。客戶端401可以接收合并的流,執(zhí)行該流并且顯示最終圖像。繼續(xù)對(duì)圖10的描述,操作1016示出了 從用戶空間進(jìn)程接收應(yīng)用程序接口構(gòu)造;以及由用戶模式驅(qū)動(dòng)程序生成用于圖元的頂點(diǎn)。例如,諸如用戶界面之類的用戶模式進(jìn)程可以進(jìn)行API調(diào)用。在該例中,用戶模式驅(qū)動(dòng)程序422可以生成用于圖元的頂點(diǎn)。例如,API 420可以包括一個(gè)或一組應(yīng)用程序接口,這些應(yīng)用程序接口可以允許軟件開發(fā)者開發(fā)出可以在不知道確切硬件的情況下訪問計(jì)算機(jī)系統(tǒng)的硬件的應(yīng)用。參考操作1018,其示出了預(yù)處理用于圖元的頂點(diǎn)。例如在本公開的一實(shí)施例中可以包括預(yù)處理器。該預(yù)處理器可以被配置為分析用于生成圖元的命令流并且將其置于一種將允許批量壓縮器450更容易找到模式并壓縮數(shù)據(jù)的格式。一般而言,可以使用前移編碼器、增量預(yù)處理等等?,F(xiàn)在參考圖11,其示出了圖10的操作過程的包括附加操作1120的可替代實(shí)施例, 該附加操作1120示出了壓縮經(jīng)預(yù)處理的用于圖元的頂點(diǎn)。例如,可以在將數(shù)據(jù)流發(fā)送給客戶端401之前使用批量壓縮器450來壓縮用于圖元的命令。在一實(shí)施例中,批量壓縮器450 可以是棧實(shí)例414的用戶模式(未示出)或內(nèi)核模式組件,并且可被配置為在被發(fā)送到客戶端401的數(shù)據(jù)流中查找相似的模式。在相同或其他實(shí)施例中,命令和/或位圖可以使用有損壓縮器、前移編碼器、網(wǎng)格壓縮器等等來壓縮。這些技術(shù)在2008年12月8日提交的代理人案號(hào)為MVIR-0338、名稱為“Improved Command Remoting ^Techniques (改進(jìn)型命令遙控技術(shù))”的美國(guó)專利申請(qǐng) No. xx/xxx, XXX中予以了描述,該申請(qǐng)的內(nèi)容通過弓丨用全部并入本申請(qǐng)?,F(xiàn)在參考圖12,示出了用于實(shí)施本公開的各方面的操作過程,包括操作 1200-1206。如圖所示,操作1200開始操作過程,并且操作1202示出了由用戶模式驅(qū)動(dòng)程序生成用于圖元的頂點(diǎn)。參考圖4,在本公開的一實(shí)施例中,用戶模式驅(qū)動(dòng)程序422可以生成可以被GPU處理的頂點(diǎn)、以及與可以從用戶模式驅(qū)動(dòng)程序422來接收的頂點(diǎn)相關(guān)聯(lián)的信息。類似于上面所述的那樣,用于圖元的頂點(diǎn)可以存儲(chǔ)在例如頁或存儲(chǔ)器之類的頂點(diǎn)緩沖器中,并且諸如例如操作系統(tǒng)調(diào)度器、環(huán)境子系統(tǒng)444、圖形內(nèi)核似4或任何其他內(nèi)核模式子系統(tǒng)或進(jìn)程之類的內(nèi)核模式進(jìn)程。繼續(xù)對(duì)圖12的描述,操作1204示出了同步用于圖元的頂點(diǎn)。例如并且參考圖4, 例如圖形內(nèi)核424、環(huán)境子系統(tǒng)444、操作系統(tǒng)內(nèi)核418、或者組合之類的至少一個(gè)內(nèi)核模式進(jìn)程可以同步設(shè)備級(jí)命令。例如,命令可以被放入隊(duì)列中以供執(zhí)行。然后,頂點(diǎn)可以被同步, 例如頂點(diǎn)的執(zhí)行次序可以被確定。在諸如圖4所述示例之類的特定示例中,可以與操作系統(tǒng)調(diào)度器類似地運(yùn)行的圖形處理調(diào)度器4 可以調(diào)度GPU操作。現(xiàn)在參考操作1206,其示出了將經(jīng)同步的用于圖元的頂點(diǎn)發(fā)送給終端服務(wù)器客戶端。繼續(xù)對(duì)圖12的描述,內(nèi)核模式驅(qū)動(dòng)程序430可以將執(zhí)行命令發(fā)送給棧實(shí)例414,而不是內(nèi)核模式驅(qū)動(dòng)程序430將命令發(fā)送給計(jì)算機(jī)200的GPU。然后,棧實(shí)例414可以將圖元發(fā)送給終端服務(wù)器客戶端以供在該客戶端的GPU上執(zhí)行。參照?qǐng)D13,其示出了操作過程1200的包括操作1308、1310、1313和1314的可替代實(shí)施例。操作1308示出了由用戶模式驅(qū)動(dòng)程序從用戶模式進(jìn)程接收應(yīng)用程序接口構(gòu)造。例如并且參考圖4,用戶模式驅(qū)動(dòng)程序422可以從例如諸如視頻游戲之類的執(zhí)行進(jìn)程接收API 調(diào)用。進(jìn)程可以向API 420發(fā)送用于圖元的指令,比如點(diǎn)列表、線列表、線帶(Line Strip)、 三角形列表、三角形帶、或三角形扇。或者換句話說,進(jìn)程可以將高級(jí)API構(gòu)造發(fā)送給API 420,API 420進(jìn)而可以生成一個(gè)或多個(gè)頂點(diǎn)。
      繼續(xù)對(duì)圖13的描述,操作1310示出了將用于圖元的頂點(diǎn)與位圖同步。例如并且參考圖4,位圖可以由圖形設(shè)備接口子系統(tǒng)446的顯示驅(qū)動(dòng)程序來呈現(xiàn),并且在該示例中, 位圖可以與用于生成圖元的命令交織。在該示例性實(shí)施例中,所述至少一個(gè)內(nèi)核模式進(jìn)程可以將3D圖形命令和位圖合并成有序命令流。例如,該示例中的所述至少一個(gè)內(nèi)核模式進(jìn)程可以接收將用于生成圖元的命令與位圖相關(guān)聯(lián)的信息,并且內(nèi)核模式進(jìn)程可以確定將相同流中的命令和位圖發(fā)送給客戶端401,使得客戶端401可以接收合并的流,執(zhí)行命令,并且將位圖與由圖元生成的圖像一起進(jìn)行呈現(xiàn)。繼續(xù)對(duì)圖13的描述,操作1312示出了將用于圖元的頂點(diǎn)與位塊傳送命令同步。 如該操作所示,與執(zhí)行位塊傳送相關(guān)聯(lián)的命令例如可以從圖形顯示子系統(tǒng)446接收。在該示例中,位塊傳送命令可以包括使用光柵操作將若干位圖組合成一個(gè)位圖的操作。例如, 這些命令可以用于組合諸如源和目的地之類的兩個(gè)位圖。在特定的示例中,位塊傳送命令可以包括、但不限于屏到屏位塊傳送,例如屏幕的一部分到另一部分的復(fù)制;圖案位塊傳送,例如密實(shí)填充等等。再次參考圖13,操作1314示出了預(yù)處理經(jīng)同步的用于圖元的頂點(diǎn)。例如在本公開的一實(shí)施例中可以包括預(yù)處理器。該預(yù)處理器可以被配置為分析用于生成圖元的命令流并且將其置于一種將允許批量壓縮器450更容易找到模式并壓縮數(shù)據(jù)的格式。一般而言,可以使用前移編碼器、增量預(yù)處理等等。繼續(xù)對(duì)圖13的描述,操作1316示出了壓縮經(jīng)同步的用于圖元的頂點(diǎn)。例如,頂點(diǎn)流可以使用批量壓縮器450來壓縮。在一實(shí)施例中,批量壓縮器450可以是棧實(shí)例414的組件,并且批量壓縮器450可以被配置為在被發(fā)送到客戶端401的數(shù)據(jù)流中查找相似的模式。前述的詳細(xì)描述通過示例和/或操作圖闡述了系統(tǒng)和/或進(jìn)程的各實(shí)施例。在這樣的框圖和/或示例包含一個(gè)或多個(gè)功能和/或操作的范圍內(nèi),本領(lǐng)域技術(shù)人員將理解,這樣的框圖,或示例內(nèi)的每一功能和/或操作可以分別地和/或共同地通過范圍廣泛的硬件、 軟件、固件或幾乎其任何組合來實(shí)現(xiàn)。雖然已示出和描述了本文中描述的主題內(nèi)容的特定方面,但是本領(lǐng)域技術(shù)人員將明白,基于本文中的教導(dǎo),可作出改變和修改而不脫離本文中描述的主題內(nèi)容,并且其更廣方面以及因此所附權(quán)利要求的范圍旨在涵蓋落在本文中描述的主題內(nèi)容的真實(shí)精神和范圍內(nèi)的所有此類改變和修改。
      權(quán)利要求
      1.一種方法,包括由至少一個(gè)內(nèi)核模式進(jìn)程GM)同步用于圖元的頂點(diǎn),所述頂點(diǎn)存儲(chǔ)在頂點(diǎn)緩沖器 (214)中;以及將經(jīng)同步的用于圖元的頂點(diǎn)發(fā)送O10)給終端服務(wù)器客戶端001)。
      2.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括由用戶模式驅(qū)動(dòng)程序(42 從應(yīng)用編程接口(420)接收用于生成圖元的應(yīng)用程序接口構(gòu)造;以及由用戶模式驅(qū)動(dòng)程序G22)生成用于圖元的頂點(diǎn)。
      3.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括 由應(yīng)用程序接口(422)生成用于圖元的頂點(diǎn)。
      4.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括由內(nèi)核模式進(jìn)程(424)接收與由顯示驅(qū)動(dòng)程序呈現(xiàn)的位圖相關(guān)聯(lián)的信息; 由內(nèi)核模式進(jìn)程(424)將所述位圖與用于圖元的頂點(diǎn)相關(guān)聯(lián)。
      5.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括 壓縮經(jīng)同步的用于圖元的頂點(diǎn)G50)。
      6.如權(quán)利要求4所述的方法,其特征在于,進(jìn)一步包括由內(nèi)核模式進(jìn)程(424)從圖形設(shè)備接口子系統(tǒng)(446)接收與命令相關(guān)聯(lián)的信息。
      7.如權(quán)利要求5所述的方法,其特征在于,進(jìn)一步包括 預(yù)處理經(jīng)同步的用于圖元的頂點(diǎn)。
      8.一種計(jì)算機(jī)系統(tǒng),包括用于從用戶空間進(jìn)程(406)接收與用于圖元的頂點(diǎn)相關(guān)聯(lián)的信息的電路;用于從圖形設(shè)備接口(446)接收與位塊傳送命令相關(guān)聯(lián)的信息的電路;用于由至少一個(gè)內(nèi)核模式進(jìn)程(424)將用于圖元的頂點(diǎn)與位塊傳送命令同步的電路;以及用于跨機(jī)器界限地發(fā)送經(jīng)同步的用于圖元的頂點(diǎn)和命令Ο10,430)的電路。
      9.如權(quán)利要求8所述計(jì)算機(jī)系統(tǒng),其特征在于,跨機(jī)器界限地發(fā)送經(jīng)同步的用于圖元的頂點(diǎn)和命令包括用于將經(jīng)同步的用于圖元的頂點(diǎn)和命令發(fā)送給虛擬機(jī)G30)的電路。
      10.如權(quán)利要求8所述計(jì)算機(jī)系統(tǒng),其特征在于,跨機(jī)器界限地發(fā)送經(jīng)同步的用于圖元的頂點(diǎn)和命令包括用于將經(jīng)同步的用于圖元的頂點(diǎn)和命令發(fā)送給終端服務(wù)器客戶端O10)的電路。
      11.如權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其特征在于,進(jìn)一步包括 用于接收與由顯示驅(qū)動(dòng)程序G46)生成的位圖相關(guān)聯(lián)的信息的電路;以及用于將由顯示驅(qū)動(dòng)程序生成的位圖與用于圖元的頂點(diǎn)和位塊傳送命令同步GM)的電路。
      12.如權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其特征在于,進(jìn)一步包括 用于從用戶空間進(jìn)程(406)接收應(yīng)用程序接口構(gòu)造的電路;以及用于由用戶模式驅(qū)動(dòng)程序G22)生成用于圖元的頂點(diǎn)的電路。
      13.如權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其特征在于,進(jìn)一步包括用于預(yù)處理用于圖元的頂點(diǎn)的電路。
      14.如權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其特征在于,進(jìn)一步包括 用于壓縮經(jīng)預(yù)處理的用于圖元的頂點(diǎn)G50)的電路。
      15.一種包括處理器可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括 用于由用戶模式驅(qū)動(dòng)程序G22)生成用于圖元的頂點(diǎn)的指令;用于同步(424)用于圖元的頂點(diǎn)的指令;以及用于將經(jīng)同步的用于圖元的頂點(diǎn)發(fā)送(210)給終端服務(wù)器客戶端的指令。
      16.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,進(jìn)一步包括用于由用戶模式驅(qū)動(dòng)程序(422)從用戶模式進(jìn)程(406)接收應(yīng)用程序接口構(gòu)造的指
      17.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,進(jìn)一步包括 用于將用于圖元的頂點(diǎn)與位圖同步GM)的指令。
      18.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,進(jìn)一步包括 用于將用于圖元的頂點(diǎn)與位塊傳送命令同步GM)的指令。
      19.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,進(jìn)一步包括 用于預(yù)處理經(jīng)同步的用于圖元的頂點(diǎn)的指令。
      20.如權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,進(jìn)一步包括 用于壓縮經(jīng)預(yù)同步的用于圖元的頂點(diǎn)G50)的指令。
      全文摘要
      在構(gòu)成本發(fā)明的一部分的權(quán)利要求書、附圖,以及文本中描述了用于遙控圖形的各種技術(shù)。
      文檔編號(hào)G06F9/06GK102239483SQ200980150080
      公開日2011年11月9日 申請(qǐng)日期2009年10月30日 優(yōu)先權(quán)日2008年12月8日
      發(fā)明者A·德羅爾, M·A·麥克馬倫, N·Y·阿布多, S·R·帕特里克 申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1