Desde pelo menos o mês de outubro do ano passado que o driver V3DV da Mesa alcançou a conformidade Vulkan 1.1 para este driver de código aberto Broadcom Vulkan usado principalmente pelo Raspberry Pi 4 e modelos mais recentes. Neste momento, o Vulkan 1.2 está apenas no horizonte.
Parece que o driver V3DV Mesa logo estará cruzando o limite do suporte ao Vulkan 1.2 e novamente estará buscando a conformidade oficial do Vulkan CTS com o The Khronos Group.
Iago Toral, da empresa de consultoria Igalia, que vem trabalhando com a gangue Raspberry Pi neste driver Vulkan, transmitiu as boas notícias. Um teste com o Vulkan 1.2 exposto foi realizado no Raspberry Pi 4 e “correu surpreendentemente bem” com apenas algumas falhas de teste.
Driver de código aberto Raspberry Pi “V3DV” se aproximando do Vulkan 1.2
Em breve, eles esperam poder enviar os resultados do conjunto de testes de conformidade do V3DV Vulkan 1.2 assim que resolverem os poucos problemas restantes. Há também alguns recursos opcionais do Vulkan 1.2 a serem examinados, incluindo aqueles em torno da indexação de descritores e do sombreador float16 int8. No entanto, a extensão de endereço do dispositivo de buffer opcional não pode ser suportada sem hacks, pois a GPU Broadcom V3D suporta apenas endereços de 32 bits e não quaisquer valores de 64 bits, conforme definido pela especificação. Há também várias outras extensões opcionais que não podem ser implementadas por falta de suporte de hardware.
Mais detalhes sobre este próximo marco do driver Raspberry Pi Vulkan através do blog Igalia.
Driver Radeon RADV preparado para a próxima extensão de sombreamento de malha da Vulkan
O driver Mesa Radeon Vulkan “RADV” tem trabalhado no suporte experimental de sombreamento de malha e, mais recentemente, no código Mesa Git em torno de shaders de tarefas para RADV. Timur Kristóf, que é contratado pela Valve para trabalhar na pilha de gráficos Linux de código aberto, está trabalhando no suporte ao mesh/task shader em preparação para uma próxima extensão Vulkan entre fornecedores em torno do mesh shading.
No momento, o suporte ao sombreamento de malha Vulkan é por meio da extensão NV_mesh_shader da NVIDIA, mas foi dito que há uma extensão entre fornecedores vindo do grupo de trabalho da API Vulkan para tornar a implementação mais aplicável a outros fornecedores e drivers de hardware. Os shaders de malha combinam o processamento de vértices e primitivos como uma mudança fundamental no pipeline de renderização de gráficos.
Diagrama da NVIDIA no pipeline de sombreamento de malha versus a abordagem de pipeline existente.
A NVIDIA suporta mesh shaders desde que Turing e AMD começam com GPUs RDNA2 (Radeon RX 6000 series). A Intel também está preparando shaders de malha no Linux para GPUs DG2/Alchemist.
Após todo o trabalho recente de shader de malha/tarefa de Timur, ele escreveu vários posts em seu novo blog que descrevem o esforço. Veja esta última postagem do blog se estiver interessado em todos os detalhes técnicos sobre o suporte a mesh/task shader RADV.
Embora no momento exista apenas a extensão NV_mesh_shader, a extensão apropriada do sombreador de malha Vulkan deve estar aqui em breve. Timur concluiu seu último post com:
Foi oficialmente confirmado que uma extensão de sombreamento de malha de vários fornecedores Vulkan será lançada em breve. Embora eu não possa dar detalhes sobre a nova extensão, acho que não será surpresa para ninguém que possa ter sido a motivação para meu trabalho em mesh e task shaders.
Assim que a nova extensão se tornar pública, postarei alguns pensamentos sobre ela e uma comparação com a extensão NV_mesh_shader específica do fornecedor.
Via Phoronix