Während die leistungsstarke Grafik-und Rechen-API von Vulkan von vielen Anbietern unterstützt wird, sind Microsoft und Apple zwei namhafte Organisationen, die diesen Khronos Group-Standard nicht unterstützt haben. Microsoft bevorzugt offensichtlich das hauseigene Direct3D. Microsoft bereitet jedoch die Einreichung seiner ersten Vulkan-Erweiterung vor.
Als Teil der Vorbereitungen für die Einreichung ihrer ersten Vulkan-Erweiterung kam es über Nacht zu einer Zusammenführung mit der Vulkan-Spezifikations-Repository zum Hinzufügen des Herstellerpräfixes „MSFT“.
Die vk.xml verfügt jetzt über ein MSFT-Tag zur Darstellung künftiger Erweiterungen der Microsoft Corporation.
Microsoft-Ingenieure arbeiten an einer mehrschichtigen Vulkan-Treibererweiterung. Die Absicht der vorgeschlagenen VK_MSFT_layered_driver-Erweiterung besteht darin, dem gemeinsamen Vulkan-Loader dabei zu helfen, besser mit der Treiberschichtung umzugehen, um die Sortierung physischer Geräte zu verbessern. Hier ist ihre Problemstellung, die die Situation erklärt, die der noch zusammenzuführende VK_MSFT_layered_driver angehen möchte:
“Der Vulkan-Loader ist in der Lage, physische Geräte nach plattformspezifischen Kriterien zu sortieren. Unter Windows verwendet der Loader beispielsweise LUIDs, um physische Geräte in die gleiche Reihenfolge zu bringen als DXGI-Adapter. Es ist jedoch möglich, mehrere Vulkan-Treiber zu haben, die Unterstützung für dasselbe physische Gerät bieten, wobei einer eine „native“ vom Hersteller bereitgestellte Implementierung und ein anderer eine „geschichtete“ Implementierung auf einer anderen API ist. Beispiele Zu den mehrschichtigen Implementierungen gehören VulkanOn12 (auch bekannt als Dozen), geschichtet auf D3D12, und MoltenVK, geschichtet auf Metal.
Auf einem System, in dem ein physisches Gerät zwei mögliche Treiber hat, ist die Sortierreihenfolge zwischen ihnen derzeit nicht spezifiziert. Eine ideale Sortierreihenfolge sollten alle nativen/nicht geschichteten Treiber sortiert vor allen geschichteten Treibern platzieren, da zu erwarten ist, dass native Treiber mehr Funktionalität und eine höhere Leistung bieten, da die Schichtung von Natur aus den Mehraufwand erhöht. Der Lader weiß jedoch nicht, welchen Fahrer er bevorzugen soll.
Ein weiteres Problem, das in dieser Spezifikation nicht behandelt wird, ist der Fall, dass Sie über mehrere „native“ Treiber für ein einzelnes physisches Gerät verfügen. In diesem Fall bleibt die Sortierreihenfolge unbestimmt, da eine korrekte Reihenfolge zwischen den Treibern nicht offensichtlich ist.“
Aus Sicht von Microsoft versuchen sie, die Handhabung ihres eigenen Mesa Dzn-Treibers zu verbessern für Vulkan API auf Direct3D 12. Wie bereits erwähnt, kann diese Erweiterung auch für MoltenVK in Vulkan auf Apples Metal-Grafik-/Compute-API hilfreich sein.
Wer sich für die mehrschichtige Treibererweiterungsarbeit interessiert, kann sich dieser Pull-Request für die neuesten Diskussionen. Auf jeden Fall macht es Spaß zu sehen, wie Microsoft seinen ersten Vulkan-Beitrag vorbereitet.