O driver AMD Radeon Vulkan”RADV”para gráficos de código aberto incluiu recentemente suporte para a extensão VK_NV_device_generated_commands no Mesa 22.2. A extensão, criada pela NVIDIA, está ativa há dois anos, permitindo que a placa de vídeo produza comandos de renderização por meio do hardware, em vez de depender apenas do software.

O driver AMD RADV Radeon Vulkan inicia suporte para dispositivos gerados comandos através de GPUs NVIDIA

Michael Larabel do site de código aberto Phoronix relatou a recente inclusão no Mesa 22.2. A NVIDIA codificou os comandos VK_NV_device_generated_commands para agora produzir”comandos gerados por dispositivos para superar a latência de readback e as ineficiências ao confiar na CPU para um trabalho específico de geração de comandos”, relata Larabel. Comandos gerados por dispositivo, ou DGC, também ajudam em situações em que o hardware da placa gráfica pode processar uma seção mais extensa da cena global para alterar os sombreadores”por desenho”.

Um exemplo visual de dispositivo-gerados comandos para a mesclagem RADV recente. Fonte: NVIDIA via Phoronix.

A postagem do blog NVIDIA de março de 2020 resume a extensão Vulkan adicionada recentemente ao Mesa 22.2.

Com avanços gerais em sombreamento programável, a GPU pode assumir um conjunto cada vez maior de responsabilidades de renderização, computando dados suplementares e permitindo uma variedade maior de algoritmos de renderização a serem implementados. No entanto, quando se trata de configurar o estado para chamadas de desenho, as decisões devem ser feitas principalmente na CPU. Portanto, era necessária a sincronização explícita ou o trabalho a partir dos resultados do quadro anterior. Os comandos gerados pelo dispositivo removem essa latência de leitura e superam as ineficiências existentes.

— Blog do desenvolvedor NVIDIA de 17 de março de 2020

A extensão VK_NV_device_generated_commands foi usada propositalmente desde suas origens no próprio driver de GPU da NVIDIA, mas agora estamos vendo que o driver AMD Radeon Vulkan no Mesa 22.2 também suporta placas gráficas Radeon. Phoronix observa que:

Nenhum recurso está livre de compensações. Uma abordagem de geração de dispositivo significa que algumas otimizações do lado do driver podem não se aplicar. Além disso, o processo de geração pode aumentar o tempo de quadro geral, nos casos em que a CPU é capaz de gravar comandos sem afetar o tempo da GPU. Por fim, requer memória de GPU adicional.

Em resumo, o objetivo desta extensão é principalmente reduzir a quantidade de trabalho real realizado na GPU, tomando decisões no dispositivo sobre o que e como o trabalho é gerado. Não se trata de descarregar a geração de comandos da CPU para a GPU em geral.

Bas Nieuwenhuizen, co-criador do driver RADV, foi um dos desenvolvedores trabalhando na fusão atual. Larabel ressalta que a extensão pode ser benéfica”para suporte VKD3D no manuseio da funcionalidade ExecuteIndirect do D3D12.”

Fontes de notícias: Phoronix, NVIDIA Developer Blog,

Categories: IT Info