08/02/2020
知識補充
總結使用物理裝置建立邏輯裝置,佇列家族建立佇列。邏輯裝置由vkdevice宣告,如果要建立邏輯裝置,首先需要確認佇列資訊,邏輯裝置代表處於初始化狀態的裝置,在建立邏輯裝置時,可以選擇可選特性,開啟需要的擴充套件。
物理裝置可以查詢支援的不同的佇列族,找到相關索引的佇列族,就可以建立佇列族。
邏輯裝置需要兩個佇列,乙個關於圖形的另乙個關於呈現的佇列族。可以先繫結乙個佇列族。
queuefamilyindices indices =
findqueuefamilies
(physicaldevice)
;std::vector queuecreateinfos;
std::set<
uint32_t
> uniquequeuefamilies =
;float queuepriority =
1.0f
;for
(uint32_t queuefamily : uniquequeuefamilies)
; queuecreateinfo.stype = vk_structure_type_device_queue_create_info;
queuecreateinfo.queuefamilyindex = queuefamily;
//以索引的方式儲存者佇列族
queuecreateinfo.queuecount =1;
queuecreateinfo.pqueuepriorities =
&queuepriority;
queuecreateinfos.
push_back
(queuecreateinfo)
;}
vkphysicaldevicefeatures devicefeatures
;vkdevicecreateinfo createinfo
;createinfo.stype = vk_structure_type_device_create_info;
//繫結佇列族 <---- 可以是1個或者多個
createinfo.queuecreateinfocount =
static_cast
<
uint32_t
>
(queuecreateinfos.
size()
);createinfo.pqueuecreateinfos = queuecreateinfos.
data()
;//繫結物理裝置特性
createinfo.penabledfeatures =
&devicefeatures;
//擴充套件內容
createinfo.enabledextensioncount =0;
//繫結驗證層
if(enablevalidationlayers)
else
//通過物理裝置建立邏輯裝置if(
vkcreatedevice
(physicaldevice,
&createinfo,
nullptr
,&device)
!= vk_success)
//建立了佇列族,相當於自動建立了相對應的佇列,可以同個下面函式提取建立好的佇列
vkgetdevicequeue
(device, indices.graphicsfamily.
value()
,0,&graphicsqueue)
;vkgetdevicequeue
(device, indices.presentfamily.
value()
,0,&presentqueue)
;
當建立好邏輯裝置後,將會自動建立佇列,可以從佇列家族中儲存下來方便以後使用
//先宣告:
vkqueue graphicsqueue;
vkqueue presentqueue;
vkgetdevicequeue
(device, indices.graphicsfamily.
value()
,0,&graphicsqueue)
;vkgetdevicequeue
(device, indices.presentfamily.
value()
,0,&presentqueue)
;
對於任何跨平台的開放式api,擴充套件都是最根本的特性。這些擴充套件允許實現者不斷試驗,建立並且推動技術進步。
擴充套件分為兩類:例項擴充套件(vkinstance)和裝置(vkdevice)擴充套件。例項擴充套件用於在某個平台上整體增強vulkan系統。裝置擴充套件用於擴充套件系統裡乙個或者多個裝置的能力。擴充套件必須在建立vulkan例項與裝置時啟用。
使用vkenumerateinstanceproperties()來查詢所有支援的例項擴充套件。使用vkenumeratedeviceproperties()來查詢是吃的裝置擴充套件
vkdevicewaitidle()
;//等待邏輯裝置空閒
vkdestroydevice()
;//銷毀裝置
vkdestroyinstance()
;//銷毀例項
初識Vulkun(23) 載入模型
08 13 2020 vulkan 載入模型 loading models 應用程式現在已經可以渲染紋理3d模型,但是 vertices 頂點和 indices 索引陣列中的幾何體不是很有趣。在本章節我們擴充套件程式,從實際的模型檔案衝載入頂點和索引資料,並使圖形卡實際做一些工作。void load...
5 初識線性表
線性表,從名字上你就能感覺到,是具有像線一樣的性質,像剛才提到的那樣,乙個班級的小朋友,乙個跟著乙個排著隊,有乙個打頭,有乙個收尾,當中的小朋友每乙個都知道他前面乙個是誰,他後面乙個是誰,這樣如同有一根線把他們串聯起來了。就可以稱之為線性表 由n n o 個資料特性相同的元素構成的有限序列稱為線性表...
初識5G網路
技術指標 列出一張與4g網路的對比更為直觀 技術指標 流量密度 連線數密度 時延 移動性 能效 使用者體驗速率 頻譜速率 峰值速率 4g 0.1tbps km 10萬 km 10ms 350km h 1b倍10mbps 1倍1gbps 5g 10tbps km 100萬 km 1ms500km h ...