Vulkan Cookbook 第三章 譯者總結篇
本篇對第三章進行總結。
為了讓Vulkan處理我們的命令,必須建立命令緩衝區將命令記錄在緩衝區中然後提交給特定佇列。
為了得到我們想要的命令緩衝區需要先通過邏輯裝置級函式建立命令池,然後通過命令池分配一個命令緩衝區,此操作也同樣通過邏輯裝置級函式。
為了將命令記錄到命令緩衝區,我們必須保證此命令緩衝區沒有被正在使用。為了進行此同步操作我們必須使用圍欄。圍欄是通過邏輯裝置級函式建立的。
為了讓我們提交到佇列的緩衝區在其他特定佇列任務執行完成以後執行,需要使用訊號量,我們可以用訊號量等待多個特定佇列的特定階段完成後執行我們提交的佇列特定階段。建立訊號量也是通過邏輯裝置級函式。注意!訊號量同步佇列是在Vulkan裝置內部進行的,我們在應用程式層不能得知訊號量的狀態!要想應用程式和佇列同步只能使用圍欄!
接下來我們將記錄命令完成的命令緩衝區、訊號量和圍欄一起提交給特定佇列就等裝置處理了。
相關推薦
Vulkan Cookbook 第三章 譯者總結篇
本篇對第三章進行總結。 為了讓Vulkan處理我們的命令,必須建立命令緩衝區將命令記錄在緩衝區中然後提交給特定佇列。 為了得到我們想要的命令緩衝區需要先通過邏輯裝置級函式建立命令池,然後通過命令池分配一個命令緩衝區,此操作也同樣通過邏輯裝置級函式。 為了將命令記錄到命令緩衝區,我們必須保
Vulkan Cookbook 第四章 譯者總結篇
譯者總結篇 想要使用Vulkan緩衝區和影象儲存資料,必須先建立它們。 緩衝區:在建立時需要知道緩衝區應該有多大以及想要如何使用緩衝區。緩衝區大小由我們希望儲存在其中的資料決定。緩衝區在應用程式中使用的方式由緩衝區的用法指定。我們不能以緩衝區建立期間未定義的方式使用緩衝區。 影象:
Vulkan Cookbook 第三章 19 銷燬命令池
銷燬命令池 譯者注:示例程式碼點選此處 當從給定池分配的所有命令緩衝區不在使用,並且我們也不需要該池時,可以安全的銷燬它。 怎麼做... 1.獲取邏輯裝置控制代碼並將其儲存在名為logical_device的VkDevice型別變數中。 2.使用應銷燬的池的控制代碼來初始化名為com
Vulkan Cookbook 第三章 18 釋放命令緩衝區
釋放命令緩衝區 譯者注:示例程式碼點選此處 當不再需要命令緩衝區以及它們未等待在裝置上執行時,可以釋放它們。 怎麼做... 1.獲取邏輯裝置的控制代碼並使用它來初始化名為logical_device的VkDevice型別變數。 2.獲取從邏輯裝置建立的命令池的控制代碼。將此控制代碼儲
Vulkan Cookbook 第三章 17 摧毀訊號量
摧毀訊號量 譯者注:示例程式碼點選此處 訊號量可以多次重複使用,因此通常我們不需要在應用程式執行時刪除它們。但是當不再需要訊號量時,如果我們確定裝置沒有使用它(沒有待處理的等待,也沒有待處理的訊號操作),我們就可以銷燬它。 怎麼做... 1.獲取邏輯裝置的控制代碼。將此控制代碼儲存在
Vulkan Cookbook 第三章 2 分配命令緩衝區
分配命令緩衝區 命令緩衝區用於儲存(記錄)稍後提交給佇列的命令,它們位於佇列中由硬體執行處理後給我們結果。當我們建立命令池時,可以用它們來分配命令緩衝區。 怎麼做... 1.獲取已建立邏輯裝置的控制代碼,並將其儲存在名為logical_device的VkDevice
Vulkan Cookbook 第一章 譯者總結篇
本篇對第一章進行總結。 要想使用Vulkan進行計算,必須使用佇列(Queue)來提交命令。為了得到我們想要的佇列,需要先建立或啟用一些東西。順序是:例項->物理裝置->邏輯裝置->佇列族->佇列。 拿到佇列前每個部分,都要經過三到四個步驟:查詢-
XSS的原理分析與解剖:第三章(技巧篇)**************未看*****************
第二章 != chrom 插入 是把 調用 bject innerhtml ats ??0×01 前言: 關於前兩節url: 第一章:http://www.freebuf.com/articles/web/40520.html 第二章:http://www.free
第三章知識總結
3.1 記憶體中字的儲存 一個字的大小為兩個位元組,8086CPU一個暫存器的大小為兩個位元組,所以使用8086CPU的暫存器儲存一個字單元的時候,高位元組暫存器儲存字的高位位元組,低位元組暫存器儲存字的低位位元組。在用記憶體儲存一個字的時候,高記憶體單
2018-2019-1 20189215 《構建之法》第三章學習總結
第3章 軟體工程師的成長 教材學習內容總結 軟體工程的術語中,單個的成員叫做Individual Contributor(IC)。 軟體開發流程不光指團隊的流程,還包括個人開發流程,因為軟體團隊是由個人組成的,個人在團隊中有獨立的流程 IC在團隊中的流程 通過交流
【組合語言】——第三章課後總結
第三章 的書本上主要有以下幾個內容: 1.記憶體中字的儲存 字單元:即存放一個字型資料(16位)的記憶體單元,由兩個地址連續的記憶體單元組成。 小端法:高地址記憶體單元中存放字型資料的高位位元組,低地址記憶體單元中存放字型資料的地位位元組。 任何兩個地址連續的記憶體單元,N號單元和N+1號單元,可以將
2018-2019-1 20189215 《深入理解計算機系統》第三章學習總結
《第3章 程式的機器級表示》 彙編程式碼是機器程式碼的文字表示,是與特定機器密切相關的。用高階語言編寫的程式可以在很多不同的機器上編譯和執行。 3.2 程式編碼 彙編程式碼表示非常接近於機器程式碼。與機器程式碼的二進位制格式相比,彙編程式碼的主要特點是它用可讀性更好的文字格式表示,能
201711671106《Java程式設計》第三章學習總結
教材學習內容總結 學習了第三章運算子,表示式和基本的java語句 運算子與表示式 一、算數運算子: 二目運算子:+ - * / % 單目運算子:++ --
第三章面向總結
第三章總結: 1.分析記憶體貫穿始終,要學會分析記憶體!! 2.物件和類的概念: 3.類(物件)之間的關係: 4.面向物件設計思想 5.class 6.new (1)引用的概念 (2)構造方法的概念 7.方法過載 (1)構造方法過載 8.this 9.stati
201711671135 《Java程式設計》第三章學習總結
本章主要學習了運算子,感覺Java中大部分運算子和C語言相同,基本語句如條件分支語句、迴圈語句等也和C語言類似。 1.算術運算子:①加減運算子(+,-),二目運算子(連線兩個操作元的運算子)。加減的結合方向是從左到右。是整型或者浮點型資料,優先順序4級。 &n
Vulkan Cookbook 第四章 15 使用殘存緩衝區更新裝置本地記憶體繫結的緩衝區
使用殘存緩衝區更新裝置本地記憶體繫結的緩衝區 譯者注:示例程式碼點選此處 暫存資源用於更新非主機不可見的記憶體內容。這樣的記憶體無法對映,因此我們需要一箇中間緩衝區,其內容可以很容易地對映和更新,並且可以從中傳輸資料。 怎麼做... 1.獲取儲存在名為logical_device的V
Vulkan Cookbook 第四章 14 將資料從影象複製到緩衝區
將資料從影象複製到緩衝區 譯者注:示例程式碼點選此處 在Vulkan中,我們不僅可以把資料從緩衝區傳輸到影象,還可以將資料從影象複製到緩衝區。繫結到它們的記憶體物件的屬性是什麼並不重要。但是資料複製操作是更新無法對映的裝置本地記憶體的唯一方法。 怎麼做... 1.獲取命令緩衝區的控制
Vulkan Cookbook 第四章 13 將資料從緩衝區複製到影象
將資料從緩衝區複製到影象 譯者注:示例程式碼點選此處 對於影象,我們可以繫結從不同記憶體型別分配的記憶體物件。但我們只能從的應用程式直接對映和更新主機可見記憶體。當想要更新使用裝置本地記憶體的影象記憶體時。我們需要從緩衝區中複製資料。 怎麼做... 1.獲取命令緩衝區的控制代碼並將其
Vulkan Cookbook 第四章 12 在緩衝區之間複製資料
在緩衝區之間複製資料 在Vulkan中,為了將資料上傳到緩衝區,我們不僅限於記憶體對映技術。既使繫結到它們的記憶體物件是從不同的記憶體型別分配的,也可以在緩衝區之間賦值資料。 譯者注:示例程式碼點選此處 怎麼做... 1.獲取命令緩衝區的控制代碼。將其儲存在名為command_buf
Vulkan Cookbook 第四章 11 對映、更新和取消對映主機可見記憶體
對映、更新和取消對映主機可見記憶體 譯者注:示例程式碼點選此處 對於渲染期間使用的影象和緩衝區,建議繫結位於影象硬體(裝置本地記憶體)上的記憶體。這會產生最好的表現。但我們不能直接訪問這樣的記憶體,需要使用中間(暫存)資源來調節GPU(裝置)和CPU(主機)之間的資料傳輸。 另一方面,暫