2017-11-03 7 views
0

私は単純なコンポジターを書こうとしています。 Vulkanでは、別のインスタンスからデータオブジェクト(フレームバッファ、イメージ、またはバッファ)にアクセスできますか。 (すなわち、ハンドルを別のプロセスに渡す)。私はUbuntuを使用しており、X、waylandなどを使わずにこれをやろうとしています。ありがとうVulkanのインスタンス間でフレームバッファオブジェクトを共有できますか?

答えて

3

Vulkanオブジェクトは厳密な階層にグループ分けされています。オブジェクトを作成するために使用されたオブジェクトはそれを所有しており、一般に、作成されたオブジェクトは、そのオブジェクトを作成するために使用されたオブジェクトを破棄すると、もはや使用できなくなります。

たとえば、vkAllocateMemoryは、VkDeviceです。そのメモリオブジェクトは、その論理デバイスから割り当てられ、それにバインドされています。そのデバイスが破壊された場合は、それ以上使用することはできません。また、そのデバイスがアプリケーションに属していない場合は、そのデバイスを使用することもできません。

KHR_external_memory拡張子(およびそのバリエーションファミリ)によって、Vulkanはデバイス間のメモリにアクセスできます。これはプロセス間でも機能します。 VkPhysicalDeviceIDPropertiesKHR::deviceUUIDの物理デバイスを使用するローカル論理デバイスを作成する2つのプロセスを持つことができます。これらの論理デバイスは互いにメモリを共有することができますが、共有することを指示するためには特別な構造体を使用する必要があります。

この共有は、同じ物理デバイスを表す論理デバイスがdeviceUUIDでのみ機能することに注意してください。

+0

ありがとうございました。 – phil

関連する問題