Ich gehe gerade meine ein paar Tage dauernden Recherchen über Vulkan-API in meinem Kopf durch und diese hier stört mich.
Wie hier erwähnt, das optimale Setup für die beste Leistung ist, den Lader zu überspringen. Ich verstehe nicht wirklich, warum Vulkan nicht eine Möglichkeit bieten sollte, es „standardmäßig“ so einzurichten, indem man etwas #define oder was auch immer verwendet, das Funktionsprototypen entfernen würde, genau wie es VK_NO_PROTOTYPES tut, und stattdessen einer Funktion würde es eine Funktionszeigervariable mit demselben Namen und eine zusätzliche vkInitialize(vkInstance*)-Funktion geben, die diese Zeiger ausfüllen würde.
Das verwirrt mich nur Die Loader verwendet standardmäßig das gesamte „Trampolin“ und den „Terminator“, während 99 % der Anwendungen eine einzelne Instanz und ein einzelnes Gerät erfordern.
Ich bin damit einverstanden, dass es sich um „schlechtes Design“ oder handelt „Vulkan ist plattformunabhängig, also versuchen Sie nicht, irgendwelche LoadLibraries und Dlopens hineinzuquetschen.“ Meine Frage ist, ob mir nicht noch etwas fehlt, das die Implementierung einer solchen Funktionalität verhindern würde in einer Premiere Ort.
Da vulkan-hpp genau das im Raii-Modul oder mit VULKAN_HPP_DEFAULT_DISPATCHER als offizielle Sache macht, sehe ich keinen Grund, warum die Vulkan C API nicht in etwas Ähnliches investieren würde.
Jede Meinung ist willkommen. Vielen Dank.
Warum ist die Vulkan-Schnittstelle so definiert, dass Dinge wie Volk vorhanden sein müssen, um sie optimal nutzen zu kön ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post