2017-07-12 4 views
2

Beim Lesen von Dokumentation für VkPipelineCreateFlagBits:Compute Pipeline als Mutter

VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT gibt an, dass die Rohrleitung zu sein, die übergeordneten eine Pipeline erlaubt erzeugt werden, die zu vkCreateGraphicsPipelines in einem nachfolgenden Aufruf erstellt werden

Ich wundere mich, warum es explizit Grafik-Pipelines angibt. Warum gilt das nicht auch für vkCreateComputePipelines? Scheint, wie ich kann ComputePipe -> GraphicsPipe aber nicht ComputePipe -> ComputePipe oder GraphicsPipe -> ComputePipe!?

Antwort

3

Dies scheint ein Fehler in der Dokumentation zu sein. Compute-Pipelines unterstützen auch Derivate, und Sie können die Basis-Pipeline übergeben, um über die basePipelineHandle oder basePipelineIndex der VkComputePipelineCreateInfo abzuleiten.

Ich habe dies in einer Beispielanwendung getan und es hat gut funktioniert. Keine Validierungsfehler und Pipeline-Erstellung funktionierte gut.

3

Das ist wahrscheinlich ein Spezifikationsfehler.
Sie können GraphicsPipe von GraphicsPipe ableiten.
Und Sie können ComputePipe von ComputePipe ableiten.

(Im Zweifelsfall stattdessen den Valid Nutzungs Aussagen lesen. Dennoch beiden Texte normative sind, so dass man schön sein sollte, und Dinge wie dies auf Vulkan spec GitHub melden.)

+2

Es darauf hingewiesen werden sollte, [a bug wurde dafür eingereicht, und Khronos hat bestätigt, dass dies ein Dokumentationsproblem ist] (https://github.com/KhronosGroup/Vulkan-Docs/issues/525). Compute Pipeliens sollen abgeleitet werden. –