Sebbene l’API grafica e di calcolo ad alte prestazioni Vulkan sia supportata da molti fornitori, Microsoft e Apple sono due organizzazioni importanti che non hanno supportato questo standard del Khronos Group. Da parte di Microsoft, ovviamente preferiscono il loro Direct3D interno. Tuttavia, Microsoft sta preparando l’invio della sua prima estensione Vulkan.
Come parte dei preparativi per l’invio della loro prima estensione Vulkan, durante la notte c’è stata una unione alla Repository delle specifiche Vulkan per l’aggiunta del prefisso del fornitore”MSFT”.
Il vk.xml ora ha un tag MSFT per rappresentare qualsiasi estensione di Microsoft Corporation in futuro.
Gli ingegneri Microsoft stanno lavorando a un’estensione del driver a più livelli Vulkan. L’intento con l’estensione VK_MSFT_layered_driver proposta è aiutare il comune caricatore Vulkan a gestire meglio la stratificazione dei driver per migliorare l’ordinamento dei dispositivi fisici. Ecco la loro dichiarazione del problema che spiega la situazione che VK_MSFT_layered_driver ancora da unire spera di affrontare:
“Il caricatore Vulkan è in grado di ordinare i dispositivi fisici in base a criteri specifici della piattaforma. Ad esempio, su Windows, il caricatore utilizza i LUID per mettere i dispositivi fisici nello stesso ordine come adattatori DXGI.Tuttavia, è possibile avere più driver Vulkan che forniscono supporto per lo stesso dispositivo fisico, dove uno è un’implementazione”nativa”fornita dal fornitore e un altro è un’implementazione”a più livelli”su un’API diversa. delle implementazioni a più livelli includerebbe VulkanOn12 (aka Dozen), a strati su D3D12, e MoltenVK, a strati su Metal.
Su un sistema in cui un dispositivo fisico ha due possibili driver, l’ordinamento tra di essi non è attualmente specificato. Un ordinamento ideale dovrebbe posizionare tutti i driver nativi/non stratificati ordinati prima di qualsiasi driver stratificato, poiché ci si dovrebbe aspettare che i driver nativi forniscano più funzionalità e prestazioni più elevate, poiché la stratificazione aggiunge intrinsecamente sovraccarico. Ma il caricatore non ha modo di sapere quale conducente preferire.
Un ulteriore problema che non viene affrontato da questa specifica è il caso in cui si disponga di più driver”nativi”per un singolo dispositivo fisico. In tal caso, l’ordinamento rimane non specificato, poiché un ordinamento corretto tra i driver non è ovvio.”
Dal punto di vista di Microsoft, stanno cercando di migliorare la gestione del proprio driver Mesa Dzn per l’API Vulkan in cima a Direct3D 12. Come affermato, questa estensione può essere utile anche per MoltenVK in Vulkan in cima all’API di grafica/calcolo Metal di Apple.
Chi è interessato al lavoro di estensione del driver a più livelli può vedere questa pull request per le ultime discussioni. In ogni caso, è divertente vedere Microsoft preparare il suo primo contributo Vulkan.