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なら適合物理デバイスってことらしい。ただ正直これでなぜ適合なのかわからん。