Em uma missão para tentar fazer o jogo Halo Infinite rodar no Linux via Steam Play (Proton) com processadores gráficos da era AMD GFX6 / GCN 1.0, o colaborador prolífico de drivers de código aberto da Valve, Samuel Pitoiset, adicionou suporte ao VK_NV_device_generated_commands para essas GPUs Radeon GCN originais.
Samuel Pitoiset conseguiu adicionar suporte ao driver Mesa RADV para NV_device_generated_commands em GPUs GFX6. O VK_NV_device_generated_commands é uma extensão da NVIDIA que permite a geração de vários comandos gráficos críticos para buffers de comando. De acordo com a especificação da extensão:
"Ao renderizar um grande número de objetos, o dispositivo pode ser utilizado para implementar várias funções críticas, como atualização de matrizes ou implementação de seleção de oclusão, seleção de frustum, classificação de frente para trás, etc. Essa é uma extensão especial, já que um aplicativo é livre para definir suas próprias estruturas de dados e apenas processá-las usando shaders.
No entanto, se o aplicativo deseja iniciar rapidamente a renderização do fluxo final de objetos, o Vulkan não estendido força o aplicativo a ler novamente o fluxo processado e emitir o comando gráfico do host. Para cenas muito grandes, a sobrecarga de sincronização e o custo para gerar o buffer de comando podem se tornar um gargalo. Essa extensão permite que um aplicativo gere um fluxo de mudanças de estado e comandos do lado do dispositivo e o converta de forma eficiente em um buffer de comando sem ter que lê-lo de volta para o host.
Além disso, ela permite alterações incrementais nesses buffers de comando, manipulando apenas seções parciais de um fluxo de comando, como ligações de pipeline. O Vulkan não estendido requer a recriação de buffers de comando inteiros nesse cenário ou atualizações sincronizadas no host."
Ao adicionar essa extensão ao GFX6, Pitoiset comentou na solicitação de mesclagem: "Divirta-se jogando Halo Infinite no GFX6. :-)"
No entanto, posteriormente, ele atualizou o texto para adicionar: "Talvez não, porque pode exigir sparse, que é gfx8+ :(". Portanto, não está claro se ele será capaz de executar o Halo Infinite nessas primeiras GPUs GCN antes de encontrar alguma solução alternativa devido à falta de suporte a texturas esparsas. De qualquer forma, é bom ver os desenvolvedores da Valve trabalhando para melhorar o suporte para essas GPUs antigas. O GFX6 cobre as GPUs Cabo Verde, Pitcairn, Tahiti, Oland e Hainan. Esse suporte GFX6 NV_device_generated_commands está presente no Mesa 23.2-devel agora e será lançado oficialmente no próximo trimestre.
Até a próxima !!
Nenhum comentário:
Postar um comentário