2016-06-01 10 views
2

https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateInfo.htmlVkDeviceQueueCreateInfo内のqueueCountの目的は何ですか?

私は現在、何をする:

は、グラフィックスや面を支持キューを持つデバイスを検索します。

次に、graphicsQueuesurfaceQueueのインデックスが見つかりました。私の場合、彼らは同じですが、彼らは違うかもしれないと思います。

私はいつもqueueCountを1に設定していますが、これまでのところ問題は発生しませんでしたが、queueCountからVkQueueFamilyProperties.queueCountに設定する必要があります。

今、私は実際に何をしているのだろうか? queueCountの方が性能が良いことを示していますか?

+0

@NicolBolas私は間違いを犯しました。私はqueueCountを正しく1に設定しましたが、フラグパラメータと混同しました。 –

答えて

2

これは、使用するファミリのキューの数です。キューファミリーは、すべて同じことをすることができるキューのグループです。

0にqueueCount設定が許可されていません。

Valid usage [of VkDeviceQueueCreateInfo]

  • queueCountは、あなたがその家族のvkGetDeviceQueueから機能キューを持っ0

より大きくなければなりませんそれ以降は未定義の動作の結果です。それはちょうどあなたのプログラムをクラッシュさせたかもしれません。

Valid usage [of vkGetDeviceQueue]

  • デバイスが作成されたときにqueueIndexは
VkDeviceQueueCreateInfo構造のqueueCount部材を介して 、指定されたキューの家族のインデックス用に作成されたキューの数より小さくなければなりません
2

いいえ、これはパフォーマンスとは関係ありません。 QueueCount(キュー作成用)は、選択したキュー・ファミリ・インデックスに対するそのコールで作成したいキューの数です。

4つのコンピューティングキューを作成したい場合、vkGetDeviceQueueを1回呼び出すだけで、computeをサポートする(キュー)ファミリインデックスを選択し、queueCountを4に設定することで、それらを一度に作成できます。can be found hereを複数提供するデバイスの例。

+0

"*複数のキューファミリを提供するデバイスの例がここにあります*"複数のキューファミリは、*同じ*ファミリの複数のキューオブジェクトとは何も関係ありません。これは 'queueCount'が扱うものです。 –

関連する問題