Vulkan 基本類型,Vulkan 開發(fā)需要設(shè)計的類型非常多,整理其基本類型如下,主要包含設(shè)備、隊列、命令緩沖、隊列家族、渲染通,管線等,具體內(nèi)容如下所示:
| Vulkan類型 | 功能說明 |
|---|---|
| 實例(VkInstance) | 用于存儲Vulkan程序相關(guān)狀態(tài)的軟件結(jié)構(gòu),可以在邏輯上區(qū)分不同的Vulkan應(yīng)用程序或者同一應(yīng)用程序內(nèi)部不同的Vulkan上下文 |
| 物理設(shè)備(VkPhysicalDevice) | 對系統(tǒng)中 GPU 硬件的抽象,每個 GPU 對應(yīng)一個物理設(shè)備。另外,每個實例下可以有多個物理設(shè)備 |
| 設(shè)備(VkDevice) | 基于物理設(shè)備創(chuàng)建的邏輯設(shè)備,本質(zhì)上是存儲信息的軟件結(jié)構(gòu),其中主要保留了與對應(yīng)物理設(shè)備相關(guān)的資源。每個物理設(shè)備可以對應(yīng)多個邏輯設(shè)備 |
| 命令池(VkCommandPool) | 服務(wù)高效分配命令緩沖 |
| 命令緩沖(VkCommandBuffer) | 用于記錄組成繪制或計算任務(wù)的各個命令,在命令池中分配。若執(zhí)行的是不變的繪制命令,可以對記錄了命令的命令緩沖進(jìn)行重用 |
| 命令緩沖啟動信息(VkCommandBufferBeginInfo) | 攜帶了命令緩沖啟動時必要信息的對象 |
| 命令緩沖提交信息(VkSubmitInfo) | 攜帶了命令緩沖提交給隊列執(zhí)行時必要信息的對象,包括需要等待的信息量數(shù)量、等待的信號量列表、命令緩沖數(shù)量、命令緩沖列表、觸發(fā)的信號量數(shù)量觸發(fā)的信號量列表等 |
| 列表家族屬性( VkQueueFamilyProperties) | 攜帶了特定隊列家族屬性信息的軟件結(jié)構(gòu),包括家族中隊列的數(shù)量、能力標(biāo)志等。每一個隊列家族中可能含有多個能力相近的隊列,常用的隊列家族主要有支持圖形任務(wù)和計算任務(wù)的兩大類 |
| 隊列( VkQueue) | 功能為接收提交的任務(wù),將任務(wù)按序由所屬GPU硬件依次執(zhí)行 |
| 格式(VkFormat) | 一個枚舉類型,包含了Vulkan開發(fā)中用到的各種內(nèi)存組織形式,如VK_FORMAT_R8G8B8A8_UNORM 就表示支持RGBA四個色彩通道,每個通道8個數(shù)據(jù)比特 |
| 2D尺寸(VkExtent2D) | 用于記錄2D尺寸的結(jié)構(gòu)體,有width和height兩個屬性 |
| 圖像(VkImage) | 設(shè)備內(nèi)存的一種使用模式,這種模式下對應(yīng)的內(nèi)存用于存儲圖像像素數(shù)據(jù),其中存儲的像素數(shù)據(jù)可能是來自于紋理圖像也可能是來自于繪制任務(wù)的結(jié)果等 |
| 圖像視圖(VkImageView) | 配合圖像對象使用,其中攜帶了對應(yīng)圖像的類型、格式、色彩通道交換設(shè)置等方面的信息 |
| 交換鏈( VkSwapchainKHR) | 將畫面呈現(xiàn)到特定目標(biāo)平臺(如windows, Android, Linux等)窗體或者表面的機(jī)制,通過它可以提供多個用于呈現(xiàn)的圖像。這些圖像與目標(biāo)平臺相關(guān),可以看作目標(biāo)平臺呈現(xiàn)用KHR表面的抽象接口。持續(xù)換幀呈現(xiàn)時交替使用其中的多個圖形執(zhí)行,避免用戶看到繪制過程中的畫面引起畫面撕裂。一般情況下,交換鏈中至少有兩個用于呈現(xiàn)的圖像,有些設(shè)備中數(shù)量會更多 |
| 幀緩沖(VkFrameBuffer) | 為繪制服務(wù),其中可以包含顏色附件(用于記錄一幀畫面中各個像素的顏色值)、深度附件(用于記錄一幀畫面中各個像素的深度值)、模板附件(用于記錄一幀畫面中各個像素的模板值)等 |
| 緩沖( VkBuffer) | 設(shè)備內(nèi)存的一種使用模式,這種模式下對應(yīng)的內(nèi)存用于存儲各種數(shù)據(jù)。比如:繪制用頂點(diǎn)信息數(shù)據(jù)、繪制用一致變量數(shù)據(jù)等 |
| 緩沖描述信息( VkDescriptorBufferInfo) | 攜帶了描述緩沖信息的結(jié)構(gòu)體,包含對應(yīng)緩沖、內(nèi)存偏移量、范圍等 |
| 渲染通道(VkRenderPass) | 其中包含了一次繪制任務(wù)需要的各方面信息,諸如顏色附件、深度附件情況,子通道列表、子通道相互依賴信息等,用于向驅(qū)動描述繪制工作的結(jié)構(gòu)、過程。一般來說,每個渲染通道從開始到結(jié)束將產(chǎn)生一幀完成的畫面 |
| 清除內(nèi)容(VkClearValue) | 包含了每次繪制前清除幀緩沖所用數(shù)據(jù)的相關(guān)值,主要有清除用顏色值,深度值、模板值 |
| 渲染通道啟動信息(VkRenderPassBeginInfo) | 攜帶了啟動渲染通道時所需的信息,包括對應(yīng)的渲染通道、渲染區(qū)域的位置及尺寸、繪制前的清除數(shù)據(jù)值等 |
| 渲染子通道描述(VkSubpassDescription) | 一個渲染通道由多個子通道組成,至少需要一個子通道。每個子通道用一個VkSubpassDescription實例描述,其中包含了此子通道的輸入附件,顏色附件,深度附件等方面的信息 |
| 描述集布局(VkDescriptionSetLayout) | 服務(wù)于描述集,給出布局接口。通俗講就是給出著色器中包含了哪些一致變量、分別是什么類型、綁定編號是什么、對應(yīng)于哪個管線階段(比如頂點(diǎn)著色器、片源著色器)等 |
| 描述集(VkDescriptorSet) | 用于繪制前更新著色器所需的一致變量等 |
| 寫入描述集( VkWriteDescriptorSet) | 用于繪制前更新著色器所需的一致變量等 |
| 描述集池( VkDescriptorPool) | 用于高效地分配描述集 |
| 管線布局( VkPipelineLayout) | 描述管線整體布局,包括哪些推送常量、有哪些描述集等 |
| 管線( VkPipeline) | 包含了執(zhí)行指定繪制工作對應(yīng)管線的各方面信息、諸如管線布局、頂點(diǎn)數(shù)據(jù)輸入情況、圖元組裝設(shè)置、光柵化設(shè)置、混合設(shè)置、視口于剪裁設(shè)置、深度及模板測試設(shè)置、多重采樣設(shè)置等 |
| 著色器階段創(chuàng)建信息(VkPipelineShaderStageCreateInfo) | 攜帶了單個著色器階段信息的對象,包括著色器的SPIR-V模板、著色器主方法名稱、著色器對應(yīng)階段(比如頂點(diǎn)著色器、片元著色器、幾何著色器、曲面細(xì)分著色器)等 |
| 頂點(diǎn)輸入綁定描述(VkVertexInputBindingDescription) | 用于描述管線的頂點(diǎn)數(shù)據(jù)輸入情況,包括綁定點(diǎn)編號,數(shù)據(jù)數(shù)據(jù)頻率(比如每頂點(diǎn)一套數(shù)據(jù))、數(shù)據(jù)間隔等 |
| 頂點(diǎn)輸入屬性描述(VkVertexInputAttributeDescription) | 描述頂點(diǎn)輸入的某項數(shù)據(jù)信息(比如頂點(diǎn)位置、頂點(diǎn)顏色),包括綁定點(diǎn)編號、位置編號、數(shù)據(jù)格式、偏移量等 |
| 管線緩沖(VkPipelineCache) | 為高效地創(chuàng)建管線提供支持 |
| 格式屬性(VkFormatProperties) | 用于存儲執(zhí)行格式類型(比如 VK_FORMAT_D16_UNORM)的格式屬性,包括線性瓦片特征標(biāo)志、最優(yōu)化瓦片特征標(biāo)志、緩沖特種標(biāo)志等 |
| 物理設(shè)備內(nèi)存屬性(VkPhysicalDeviceMemoryProperties) | 用于存儲獲取的基于指定GPU的設(shè)備內(nèi)存屬性,包括內(nèi)存類型數(shù)量、內(nèi)存類型列表、內(nèi)存堆數(shù)量、內(nèi)存堆列表等 |
| 設(shè)備內(nèi)存(VkDeviceMemory) | 設(shè)備內(nèi)存的邏輯抽象,前面提到的緩沖(VuBuffer)、圖形(VkImage)都需要綁定設(shè)備內(nèi)存才能正常工作 |
| 信號量(VkSemaphore) | 用于一個設(shè)備(GPU)內(nèi)部相同或不同隊列并發(fā)執(zhí)行任務(wù)時的同步工作,一般與方法VkQueueSubmit配合使用,以確保通過VkQueueSubmit方法提交的任務(wù)在指定信號量未觸發(fā)前阻塞直至信號量觸發(fā)后才執(zhí)行。要特別注意的是,若有多個提交的任務(wù)同時等待同一個信號量觸發(fā),則此信號量的觸發(fā)僅僅會被一個等待的任務(wù)接收到,其他等待的任務(wù)還將繼續(xù)等待。這里的“同步”指的是并發(fā)執(zhí)行時解決沖突的一種策略,有興趣的讀者可以進(jìn)一步查閱相關(guān)資料 |
| 柵欄(VkFence) | 用于主機(jī)和設(shè)備之間的同步,通俗地講就是用于CPU和GPU并發(fā)執(zhí)行任務(wù)時的同步 |
| KHR表面(VkSurfaceKHR) | 此類對象服務(wù)于幀畫面的呈現(xiàn) |
| KHR表面能力(VkSurfaceCapabilitiesKHR) | 攜帶了用于呈現(xiàn)畫面的表面相關(guān)呈現(xiàn)能力的信息,比如畫面尺寸范圍、交換鏈中的圖像數(shù)量、是否支持屏幕交換等 |
| 呈現(xiàn)信息(VkPresentInfoKHR) | 攜帶了執(zhí)行呈現(xiàn)時所需的一些信息,包括需要等待的信號量數(shù)量、信號量列表、交換鏈的數(shù)量、交換鏈列表、此次呈現(xiàn)的圖像在交換鏈中的索引等 |
來源:電子創(chuàng)新網(wǎng)
審核編輯:何安
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
API
+關(guān)注
關(guān)注
2文章
2031瀏覽量
65981 -
Vulkan
+關(guān)注
關(guān)注
0文章
30瀏覽量
6071
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
1688 API接口的應(yīng)用場景介紹
、集成企業(yè)系統(tǒng),并支持JSON或XML格式的數(shù)據(jù)傳輸。認(rèn)證機(jī)制通常采用OAuth 2.0或AppKey/AppSecret方式,確保安全訪問。以下從技術(shù)角度,我將逐步介紹1688 API的核心應(yīng)用場
全網(wǎng)最全面介紹拼多多API接口指南
? ?在電商領(lǐng)域,拼多多作為領(lǐng)先的平臺,提供了豐富的API接口,幫助開發(fā)者實現(xiàn)商品管理、訂單處理、用戶交互等功能。本文將從零開始,全面介紹拼多多API的使用方法、核心接口、調(diào)用示例和注意事項,確保您
全網(wǎng)最全面介紹1688API接口指南
? 1688是阿里巴巴集團(tuán)旗下的B2B批發(fā)平臺,為企業(yè)和個人提供海量商品資源。其API接口允許開發(fā)者將1688的功能集成到自有系統(tǒng)中,實現(xiàn)自動化商品搜索、訂單管理、數(shù)據(jù)同步等。本指南將全面介紹
API接口使用全指南:從基礎(chǔ)調(diào)用到實戰(zhàn)技巧
一、API接口的基本認(rèn)知 API接口本質(zhì)上是一組預(yù)先定義的規(guī)則,規(guī)定了不同系統(tǒng)之間如何傳遞數(shù)據(jù)。常見的API類型包括: RESTful API
代購系統(tǒng) API 介紹
1. 用戶相關(guān) API 用戶注冊 POST /api/users/register 參數(shù):username, email, password, phone 返回:user_id, token 用戶
京東API 介紹
京東 API 是京東開放平臺提供的一組標(biāo)準(zhǔn)化接口,允許開發(fā)者通過程序化方式訪問京東生態(tài)的核心業(yè)務(wù)能力,涵蓋商品、訂單、物流、金融、智能客服等多個領(lǐng)域。以下是基于最新技術(shù)規(guī)范的詳細(xì)介紹: 一、核心
基于Vulkan的端側(cè)AI運(yùn)算
本期內(nèi)容由AI Model SIG提供,介紹了在開源鴻蒙中,利用圖形接口Vulkan的計算著色器能力,在端側(cè)部署大模型的的整體思路和實踐分享。
Imagination GPU 全面支持 Vulkan 1.4 和 Android 16
Imagination最新發(fā)布的驅(qū)動(DDK25.1RTM2)支持最新版本Android操作系統(tǒng),同時增強(qiáng)了OpenCL擴(kuò)展集及Android平臺上Vulkan1.4支持。Vulkan
電商API常見錯誤排查指南:避免集成陷阱
? 在電商平臺開發(fā)中,API集成是連接系統(tǒng)、實現(xiàn)數(shù)據(jù)交換的核心環(huán)節(jié)。然而,許多開發(fā)者在集成過程中常遇到錯誤,導(dǎo)致項目延遲、數(shù)據(jù)丟失或用戶體驗下降。本文將逐步介紹常見錯誤類型、排查方法以及預(yù)防策略
鴻蒙開發(fā)API9 到 API12,有哪些不同
“分水嶺”,后續(xù)的API版本對于目前的畢設(shè)來說提升并不大,目前畢設(shè)的話,API12已經(jīng)夠用了。
介紹一些兩者的較為關(guān)鍵的區(qū)別:
一、開發(fā)工具版本
API9的開發(fā)工具現(xiàn)在官網(wǎng)已經(jīng)下載不到
發(fā)表于 06-29 22:47
HarmonyOS NEXT應(yīng)用開發(fā)-Notification Kit(用戶通知服務(wù))通知類型、級別與渠道
1. ContentType
支持設(shè)備Phone2in1TabletCarWearable
通知內(nèi)容類型。
元服務(wù)API: 從API version 12開始,該接口支持在元服務(wù)中使用。
系統(tǒng)能力
發(fā)表于 06-09 14:39
如何獲取 OpenAI API Key?API 獲取與代碼調(diào)用示例 (詳解教程)
Key 并非易事。本指南旨在提供全面深入的技術(shù)指導(dǎo),系統(tǒng)梳理 OpenAI API Key 的獲取、類型、計費(fèi)、安全及管理
英偉達(dá)RTX 5070顯卡獲Vulkan1.4認(rèn)證
與 Vulkan API 的兼容性進(jìn)行跟蹤,涵蓋從獨(dú)立顯卡到集成顯卡的多種產(chǎn)品。RTX 5070 Ti 和 5070 被列入其中,意味著它們能全面支持未來的圖形技術(shù),為玩家和開發(fā)者帶來更出色的視覺
Java集合API的改進(jìn)介紹
簡介 本文我們將探討不同 jdk 版本中各類的起源,以及新引入的類和接口背后的目的。我們將分析之前版本存在的問題,以及為何需要引入新的類或接口。此外,我們還將介紹集合類和接口中的新特性。文章將逐一

Vulkan API 基本類型介紹
評論