日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

没有任何秘密的 API:Vulkan* 简介第 1 部分:序言

發布時間:2024/5/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 没有任何秘密的 API:Vulkan* 简介第 1 部分:序言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

教程 1: Vulkan* – 序言
加載 Vulkan Runtime 庫并獲取導出函數指示器
獲取全局級函數指示器
創建 Vulkan 實例
獲取實例級函數指示器
創建邏輯設備
設備屬性
設備特性
隊列、隊列家族和命令緩沖區
獲取設備級函數指示器
檢索隊列
Tutorial01 執行
清空
結論

前往第 2 部分
教程 1:Vulkan* – 序言

我們從不顯示任何內容的簡單應用開始。 因為教程太長,因此本文不展示完整的源代碼(以及窗口、渲染循環等)。 大家可以訪問 https://github.com/GameTechDev/IntroductionToVulkan,在提供的示例中獲取包含完整源代碼的示例項目。 此處我僅展示與 Vulkan 相關的部分代碼。 在應用中使用 Vulkan API 的方法有多種:

可以動態加載驅動程序的庫來提供 Vulkan API 實施,并自己獲取它提供的函數指示器。
可以使用 Vulkan SDK 并鏈接至提供的 Vulkan Runtime (Vulkan Loader) 靜態庫。
可以使用 Vulkan SDK,在運行時動態加載 Vulkan Loader 庫,并通過它加載函數指示器。
不建議使用第一種方法。 硬件廠商可以任意修改它們的驅動程序,從而可能影響與特定應用的兼容性。 甚至還會破壞應用,并要求開發人員編寫支持 Vulkan 的應用,以覆寫部分代碼。 這就是為什么最好使用部分抽象層的原因。

建議使用 Vulkan SDK 的 Vulkan Loader。 它能夠提供更多配置功能和更高的靈活性,無需修改 Vulkan 應用源代碼。 有關靈活性的一個示例是層。 Vulkan API 要求開發人員創建嚴格遵守 API 使用規則的應用。 如果出現錯誤,驅動程序幾乎不會提供反饋,僅報告部分嚴重且重大的錯誤(比如內存不足)。 因為使用該方法,所以 API 本身能夠盡可能的小、快。 但如果我們希望獲得更多有關哪些地方出錯的信息,那么必須啟用調試/驗證層。 不同的層級用途各不相同,比如內存使用、相應參數傳遞、對象壽命檢查等等。 這些層級都會降低應用的性能,但會為我們提供更多信息。

我們還需選擇是靜態鏈接至 Vulkan Loader ,還是動態加載并在運行時由我們自己獲取函數指示器。 選擇哪一種只是個人喜好問題。 本文將重點介紹第三種使用 Vulkan 的訪問,從 Vulkan Runtime 庫動態加載函數指示器。 該方法與我們希望在 Windows* 系統上使用 OpenGL* 時的做法類似,采用該方法時,默認實施僅提供部分基礎函數。 剩下的函數必須使用 wglGetProcAddress() 或標準窗口 GetProcAddress() 函數動態加載。 這就是創建 GLEW 或 GL3W 等 wrangler 庫的對象。

加載 Vulkan Runtime 庫并獲取導出函數指示器

在本教程中,我們將逐步介紹如何自己獲取 Vulkan 函數指示器。 我們從 Vulkan Runtime 庫 (Vulkan Loader) 加載這些指示器,該運行時庫應與支持 Vulkan 的顯卡驅動程序一同安裝。 面向 Vulkan 的動態庫 (Vulkan Loader) 在 Windows* 和 Linux* 上分別命名為 vulkan-1.dll 和 libvulkan.so。

從現在起,我引用第一個教程的源代碼,重點為 Tutorial01.cpp 文件。 因此在應用的初始化代碼中,我們需要使用如下代碼加載 Vulkan 庫…查看全文


了解更多相關內容,請關注CSDN英特爾開發專區!

總結

以上是生活随笔為你收集整理的没有任何秘密的 API:Vulkan* 简介第 1 部分:序言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。