Vulkan Cookbook 第一章 20 摧毀Vulkan例項
摧毀Vulkan例項
在所有其他資源被銷燬之後,我們可以銷燬Vulkan例項。
怎麼做...
1.獲取已建立並儲存在名為instance的VkInstance型別變數中的例項控制代碼。 2.呼叫vkDestroyInstance( instance, nullptr),第一個引數傳入instance,第二個引數為nullptr。 3.出於安全原因,請將VK_NULL_HANDLE值分配給例項變數。
這個怎麼運作...
1.在關閉應用程式之前,我們應該確保釋放所有已建立的資源。使用一下程式碼銷燬Vulkan例項:
if( instance ) { vkDestroyInstance( instance, nullptr ); instance = VK_NULL_HANDLE; }
相關推薦
Vulkan Cookbook 第一章 20 摧毀Vulkan例項
摧毀Vulkan例項 在所有其他資源被銷燬之後,我們可以銷燬Vulkan例項。 怎麼做... 1.獲取已建立並儲存在名為instance的VkInstance型別變數中的例項控制代碼。 2.呼叫vkDestroyInstance( instance, nullptr),
Vulkan Cookbook 第一章 8 建立Vulkan例項
建立Vulkan例項 Vulkan例項是一個收集應用程式狀態的物件。它包含諸如應用程式名稱、引擎的名稱和版本之類的資訊,或啟用例項級擴充套件和層。 通過例項,我們還可以列舉可用的物理裝置並建立邏輯裝置,在這些邏輯裝置上執行典型的操作,例如影象建立或繪圖。因此,在使用Vul
Vulkan CookBook 第一章 3 連線Vulkan Loader庫
連線Vulkan Loader庫 對Vulkan API的支援由圖形硬體供應商實現,並通過圖形驅動程式提供。每個供應商都可以在他們選擇的任何動態庫中實現它,甚至可以通過驅動程式更新來更改它。 這就是為什麼和驅動程式一起安裝Vulkan Loader的原因。我們也可以從安裝S
Vulkan Cookbook 第一章 2 啟用驗證層
啟用驗證層 Vulkan API的設計考慮了效能。提高其效能的一種方法是降低驅動程式執行的狀態和錯誤檢查。這是Vulkan被稱為“瘦API”或“瘦驅動程式”的原因之一,它是硬體的最小抽象,這是API可跨多個硬體供應商和裝置型別(高效能桌面)計算機,行動電話以及低功耗嵌入式系
Vulkan Cookbook 第一章 4 準備載入Vulkan API函式
準備載入Vulkan API函式 當我們想在我們的應用程式中使用Vulkan API時,我們需要獲取Vulkan文件中指定的過程。為了做到這一點,我們可以向Vulkan Loader庫新增一個依賴項,在我們的專案中靜態連結它,並使用vulkan.h標頭檔案中定義的函式原型。
Vulkan Cookbook 第一章 6 載入全域性級函式
載入全域性級函式 我們已經獲得了vkGetInstanceProcAddr()函式,通過這個函式,我們可以以獨立於OS的方式載入所有其他Vulkan API入口點。 Vulkan函式可分為全域性函式、例項函式和裝置函式三個層次。裝置級函式用於執行典型的操作,如繪圖、著色器
Vulkan Cookbook 第一章 15 建立邏輯裝置
建立邏輯裝置 邏輯裝置是在我們的應用程式中建立的最重要的物件之一。它代表從真正的硬體啟用的所有擴充套件、特性以及佇列的抽象: 邏輯裝置允許我們執行通常在渲染應用程式中完成的所有工作,例如建立影象和緩衝區、設定管道狀態或載入著色器。 它給我們最重要的能力是記錄命令(例如
Vulkan Cookbook 第一章 譯者總結篇
本篇對第一章進行總結。 要想使用Vulkan進行計算,必須使用佇列(Queue)來提交命令。為了得到我們想要的佇列,需要先建立或啟用一些東西。順序是:例項->物理裝置->邏輯裝置->佇列族->佇列。 拿到佇列前每個部分,都要經過三到四個步驟:查詢-
Vulkan Cookbook 第二章 影象演示
影象演示 在本章中我們將介紹以下內容: 建立啟用了WSI擴充套件的Vulkan例項 建立演示表面 選擇支援向給定曲面演示的佇列族建立啟用了WSI擴充套件的邏輯裝置 選擇所需的演示模式 獲得演示表面的功能 選擇一些交換鏈影象 選擇交換鏈影象的大小 選擇交換鏈影象的所需使用場景
Vulkan Cookbook 第二章 4 建立啟用了WSI擴充套件的邏輯裝置
建立啟用了WSI擴充套件的邏輯裝置 當我們建立一個啟用了WSI擴充套件的例項並找到支援影象顯示的佇列族時,是時候建立一個邏輯裝置了。 裝置級WSI擴充套件允許我們建立交換鏈。 這是由演示引擎管理的影象集合。 為了使用這些影象中的任何一個並將其渲染到它們中,我們需要獲取它
Vulkan Cookbook 第二章 6 獲得演示表面的功能
獲得演示表面的功能 當我們建立交換鏈時,需要指定建立引數。 必須提供符合支援限制的值, 但我們並不清楚這些值。它們可以從演示表面獲得。 因此,為了正確建立交換鏈,我們需要獲取表面的功能。 怎麼做... 1.使用vkEnumeratePhysicalDevices()
Vulkan Cookbook 第二章 8 選擇交換鏈影象的大小
選擇交換鏈影象的大小 通常,為交換鏈建立的影象應該適合應用程式的視窗。 支援的尺寸應該可在呈現表面的功能中使用。 但在某些作業系統上,影象的大小定義了視窗的最終大小。 我們還應該牢記這一點,並檢查交換鏈影象的適當尺寸。 怎麼做... 1.獲取呈現表面的功能(請參閱獲
Vulkan Cookbook 第二章 9 選擇交換鏈影象的所需使用場景
選擇交換鏈影象的所需使用場景 使用交換鏈建立的影象通常用作顏色附件。 這意味著我們想要渲染它們(將它們用作渲染目標)。 但我們並不僅限於這種情況。 我們可以將交換鏈影象用於其他目的 - 可以從中進行取樣,將它們用作複製操作中的資料來源,或將資料複製到其中。 這些都是不同
第一章 spring boot實例項目快速搭建
ppi 地址 desc spa .so -m generate ssp get 環境說明:由於此次主要是學習spring cloud,故例子程序都進行簡化,沒有service層。數據庫持久層使用JPA,數據庫使用內嵌的H2。web使用spring mvc,項目構建使用mav
Vulkan Cookbook 第三章 17 摧毀訊號量
摧毀訊號量 譯者注:示例程式碼點選此處 訊號量可以多次重複使用,因此通常我們不需要在應用程式執行時刪除它們。但是當不再需要訊號量時,如果我們確定裝置沒有使用它(沒有待處理的等待,也沒有待處理的訊號操作),我們就可以銷燬它。 怎麼做... 1.獲取邏輯裝置的控制代碼。將此控制代碼儲存在
Vulkan Cookbook 第四章 20 釋放記憶體物件
釋放記憶體物件 譯者注:示例程式碼點選此處 當不在需要記憶體物件時,需要銷燬它們。 怎麼做... 1.獲取邏輯裝置的控制代碼並將其儲存在名為logical_device的VkDevice型別變數中。 2.獲取名為memory_object的VkDeviceMemory型別的變數,其中
Vulkan Cookbook 第四章 18 摧毀影象
摧毀影象 譯者注:示例程式碼點選此處 應該銷燬不在使用的影象以釋放其資源。 怎麼做... 1.獲取邏輯裝置的控制代碼並將其儲存在名為logical_device的VkDevice型別變數中。 2.使用影象的控制代碼初始化名為image的VkImage型別變數。 3.呼叫vkDestr
Vulkan Cookbook 第四章 15 使用殘存緩衝區更新裝置本地記憶體繫結的緩衝區
使用殘存緩衝區更新裝置本地記憶體繫結的緩衝區 譯者注:示例程式碼點選此處 暫存資源用於更新非主機不可見的記憶體內容。這樣的記憶體無法對映,因此我們需要一箇中間緩衝區,其內容可以很容易地對映和更新,並且可以從中傳輸資料。 怎麼做... 1.獲取儲存在名為logical_device的V
Vulkan Cookbook 第四章 14 將資料從影象複製到緩衝區
將資料從影象複製到緩衝區 譯者注:示例程式碼點選此處 在Vulkan中,我們不僅可以把資料從緩衝區傳輸到影象,還可以將資料從影象複製到緩衝區。繫結到它們的記憶體物件的屬性是什麼並不重要。但是資料複製操作是更新無法對映的裝置本地記憶體的唯一方法。 怎麼做... 1.獲取命令緩衝區的控制
Vulkan Cookbook 第四章 13 將資料從緩衝區複製到影象
將資料從緩衝區複製到影象 譯者注:示例程式碼點選此處 對於影象,我們可以繫結從不同記憶體型別分配的記憶體物件。但我們只能從的應用程式直接對映和更新主機可見記憶體。當想要更新使用裝置本地記憶體的影象記憶體時。我們需要從緩衝區中複製資料。 怎麼做... 1.獲取命令緩衝區的控制代碼並將其