Embora os gráficos de alto desempenho e a API de computação do Vulkan sejam apoiados por muitos fornecedores, a Microsoft e a Apple são duas organizações notáveis que não apoiaram esse padrão do Khronos Group. Da parte da Microsoft, eles obviamente preferem seu Direct3D interno. No entanto, a Microsoft está se preparando para enviar sua primeira extensão Vulkan.
Como parte dos preparativos para enviar sua primeira extensão Vulkan, durante a noite houve uma merge para o Repositório de especificação Vulkan para adicionar o prefixo do fornecedor”MSFT”.
O vk.xml agora tem uma tag MSFT para representar qualquer extensão da Microsoft Corporation no futuro.
Os engenheiros da Microsoft estão trabalhando em uma extensão de driver em camadas Vulkan. A intenção com a extensão VK_MSFT_layered_driver proposta é ajudar o carregador Vulkan comum a lidar melhor com camadas de driver para melhorar a classificação do dispositivo físico. Aqui está a declaração do problema explicando a situação que o VK_MSFT_layered_driver ainda a ser mesclado espera resolver:
“O carregador Vulkan é capaz de classificar dispositivos físicos de acordo com critérios específicos da plataforma. Por exemplo, no Windows, o carregador usa LUIDs para colocar dispositivos físicos na mesma ordem como adaptadores DXGI. No entanto, é possível ter vários drivers Vulkan que fornecem suporte para o mesmo dispositivo físico, onde um é uma implementação”nativa”fornecida pelo fornecedor e outra é uma implementação”em camadas”sobre uma API diferente. Exemplos de implementações em camadas incluiria VulkanOn12 (também conhecido como Dozen), em camadas em D3D12, e MoltenVK, em camadas em Metal.
Em um sistema em que um dispositivo físico tem dois drivers possíveis, a ordem de classificação entre eles não é especificada no momento. Uma ordem de classificação ideal deve colocar todos os drivers nativos/sem camadas classificados antes de qualquer driver com camadas, pois deve-se esperar que os drivers nativos forneçam mais funcionalidade e melhor desempenho, já que a camada inerentemente adiciona sobrecarga. Mas o carregador não tem como saber qual driver prefere.
Um problema adicional que não é abordado por esta especificação é o caso em que você tem vários drivers”nativos”para um único dispositivo físico. Nesse caso, a ordem de classificação permanece não especificada, pois uma ordem correta entre os drivers não é óbvia.”
Do ponto de vista da Microsoft, eles estão tentando melhorar o manuseio de seu próprio driver Mesa Dzn para Vulkan API no topo do Direct3D 12. Conforme declarado, esta extensão também pode ser útil para MoltenVK no Vulkan no topo da API de gráficos/computação Metal da Apple.
Os interessados no trabalho de extensão de driver em camadas podem ver este pull request para as discussões mais recentes. De qualquer forma, é divertido ver a Microsoft preparando sua primeira contribuição Vulkan.