Vulkan メモ2
Physical devices and queue families
Validation layerのExtension supportの時もそうだったが、countの変数を0初期化して、vkEnumerate~にcountやその他を引数で渡すと数えてくれるらしい。
最後にvectorの先頭ポインタを与えると一覧が得れるっぽい。countが0でないことを確認してから一覧を取得している。なんでかね。
次に一覧をforで回してisSDeviceSuitableで適合するものを探す。なかったらphysicalDeviceがVK_NULL_HANDLEなのでエラーを吐かせる。
物理デバイスの情報とかサポートしてる物とか取得できる。
queueFamilyが利用できるかのチェック。もし利用できなかったら数字は0になるわけだが、そういうマジックナンバーよくないよね。ってことでoptionalを使うらしい。
quereFamilyからqueueFlags(bit mask)を取得。比較してOKなら適合物理デバイスってことらしい。ただ正直これでなぜ適合なのかわからん。