最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[Rust]wgpu學(xué)習(xí)筆記(一)Instance,Surface,Device和Queue

2021-06-24 11:16 作者:Zerous  | 我要投稿

CSDN反饋了一年不支持Rust代碼塊,今天突然發(fā)現(xiàn)小破站的專欄竟然支持。跑了跑了。比利比利干杯= =+

vulkan和wgpu長得差不多,但是感覺wgpu更好學(xué)233。

本文內(nèi)容主要參考自Learn wgpu和Vulkan tutorial。

Instance

我對Instance的理解是一個地基,有了Instance才好創(chuàng)建Device, Queue和Surface。里面應(yīng)該是存了些函數(shù)指針啥的東西,好調(diào)到驅(qū)動里對應(yīng)的函數(shù)。

我看了下vkspec里對VkInstance的描述,應(yīng)該是說的Vulkan狀態(tài)被打包成了Instance對象,而不使用OpenGL那樣的全局狀態(tài)機(jī)了。

用以下代碼創(chuàng)建一個Instance。

沒有其他的平臺相關(guān)依賴。這個BackendBit參數(shù)是用來選擇后端的。看了一下,目前可以選擇的API后端有這些

Primary:

  1. Vukan

  2. metal

  3. DX12

  4. WebGPU

Secondary:

  1. DX11

  2. OpenGL

wgpu對Primary的API支持得更好。直接Primary就完事了!

Surface

按照wgpu的文檔和vkspec的描述,Surface是一個對各個平臺的窗口或者是(可渲染)表面的抽象。我感覺說的有些繞= =...按照我的理解,Surface就是代表了一塊能夠給你畫東西的一個畫布,換句話說就是一片屏幕區(qū)域,可以讓顯卡直接把渲染出的圖片輸出上去。

Vulkan里Surface是一個KHR拓展,并不在核心庫。而且Surface和平臺關(guān)系很大,不同的平臺都有對應(yīng)的Surface。但是wgpu里面不是拓展,用GPU API的確實(shí)也一般是用來做渲染吧233。

用以下代碼創(chuàng)建一個Surface對象

這里的window是一個實(shí)現(xiàn)了HasRawWindowHandle trait的對象。這個trait的提供一個函數(shù)raw_window_handle,調(diào)用之后就能取到對應(yīng)平臺的窗口句柄。因此wgpu版本的Surface就沒有像Vulkan那樣分很多版本。

Device和Queue

這倆聯(lián)系挺緊的,就放一起吧。

Device直譯過來就是設(shè)備,一般就是指顯卡。但是wgpu里的Device也不完全代表一塊顯卡。根據(jù)wgpu文檔的描述,Device相當(dāng)于是和顯卡建立的一個連接,可以通過Device創(chuàng)建用于渲染或者計算的相關(guān)資源。

Queue直譯過來是隊(duì)列,應(yīng)該指的就是這玩意的數(shù)據(jù)結(jié)構(gòu)是一個隊(duì)列。但是我覺得把它理解成一個CPU和GPU之間互發(fā)消息的管道入口更好。在Vulkan里面Queue分成了很多種,支持不同的功能:渲染、計算和遷移(Transfer)。

Device和Queue對象都是由Adapter來創(chuàng)建。wgpu文檔里的描述是Adapter是一個對物理設(shè)備的句柄,想必是對應(yīng)了Vulkan的Physical Device了。不過我目前的理解中Adapter只是一個用來創(chuàng)建Device和Queue的臨時對象...

通過Instance能拿到Adapter,調(diào)用Adapter的request_device方法可以拿到Device和Queue的元組。

可以看到,這里wgpu是根據(jù)Surface來自動選擇要使用的Adapter的。省去了一些Vulkan要手動選擇之類的操作,很Nice。

今天差不多就記到這,摸了。直到現(xiàn)在寫文章做回顧才發(fā)現(xiàn)wgpu的Render Pass在代碼的表現(xiàn)上還是和Vulkan區(qū)別相對比較大的一個概念= =wgpu的Render Pass看起來更像是Command Buffer。有空再繼續(xù)記。

[Rust]wgpu學(xué)習(xí)筆記(一)Instance,Surface,Device和Queue的評論 (共 條)

分享到微博請遵守國家法律
岳阳县| 榆林市| 海丰县| 建阳市| 八宿县| 延寿县| 宝应县| 普格县| 额敏县| 股票| 聂拉木县| 洛宁县| 大悟县| 洞头县| 长治市| 婺源县| 哈巴河县| 喀喇沁旗| 江达县| 台北县| 安岳县| 遵义县| 海城市| 庆阳市| 石渠县| 武川县| 沙田区| 丰台区| 阿勒泰市| 嵊泗县| 寿宁县| 澜沧| 蒙自县| 琼中| 临颍县| 乐都县| 昭平县| 汤阴县| 高邮市| 杭锦后旗| 阿图什市|