1 pontos por GN⁺ 2024-08-31 | 1 comentários | Compartilhar no WhatsApp

GPU API MkII

Introdução ao projeto
  • A nova API de GPU do SDL foi introduzida
  • É semelhante ao projeto MoonWorks e tem como alvo APIs modernas, como Vulkan
  • Já está sendo usada em jogos como Samurai Gunn 2
Principais recursos e vantagens
  • Função de compute: a API Refresh permite usar recursos de compute de forma simples
  • Sistema de shaders: usa compilação offline e oferece suporte a vários formatos
  • Segurança de recursos: garante internamente a segurança dos recursos, sem expor APIs complexas ao usuário
Sistema de shaders
  • Usa o script shaderbuild.py para fazer o build offline dos shaders
  • Ao gerar módulos de shader, usa o formato IR de cada backend
  • O próprio SDL não faz wrapper de compiladores de shader
Andamento do desenvolvimento
  • Suporte a Metal iniciado
  • Suporte à geração de shaders por meio do port do FNA3D
  • Suporte a hardware instancing previsto para ser adicionado
Feedback da comunidade
  • Há opiniões variadas sobre o modelo de compilação offline de shaders
  • A forma como o SDL_gpu lida com ciclos foi bem avaliada
  • Ainda são necessárias melhorias contínuas para dar suporte a vários backends
Planos futuros
  • Escrever comentários de documentação no estilo SDL
  • Reforçar o suporte a Metal e D3D12
  • Adicionar programas de teste e corrigir bugs

# Resumo do GN⁺

  • A nova API de GPU do SDL oferece suporte a APIs gráficas modernas e pode ser usada em vários jogos
  • O sistema de shaders adota compilação offline para otimizar o desempenho
  • Ela continua sendo aprimorada com base no feedback da comunidade, com reforço planejado para o suporte a Metal e D3D12
  • Essa API é útil para desenvolvedores de jogos e oferece flexibilidade com suporte a vários backends

1 comentários

 
GN⁺ 2024-08-31
Comentários do Hacker News
  • O SDL3 ainda está em prévia, mas a nova API de GPU foi integrada ao branch principal

    • A nova API de GPU permite escrever o código gráfico e os shaders uma única vez e fazê-los funcionar em múltiplas plataformas (incluindo consoles) com o mínimo de complicação
    • Antes, era necessário Unity, Unreal ou uma solução personalizada
    • WebGPU/WGSL também é um esforço semelhante de stack gráfica multiplataforma
    • Atualmente, a API de GPU do SDL3 não oferece suporte a WebGPU como backend
  • É surpreendente que a API de GPU do SDL tenha ficado pronta tão rápido

    • O WebGPU nativo está em desenvolvimento e ainda não está concluído
    • Como a API de GPU do SDL oferece suporte a mais plataformas, eu esperava que demorasse mais
  • Fico feliz por ter podido contribuir com a parte de dx12

  • O SDL é um software de alta qualidade, compila rapidamente em várias plataformas e sempre funciona

    • Há expectativa em relação à nova API
  • Sou um grande fã do SDL

    • Ao procurar uma biblioteca de jogos multiplataforma, o SDL e sua API ofereciam o equilíbrio certo
    • Eu precisava de uma biblioteca em C(++) que pudesse criar janelas e contextos gráficos
    • Eu não queria aprender uma nova linguagem
  • Estou ansioso para ver no que tudo isso vai dar

    • Espero que surjam mais opções para construir engines de jogo e apps personalizados
  • Aprender Vulkan foi divertido e útil, mas pareceu um progresso lento

    • Se o SDL3 existisse desde o começo, eu teria conseguido fazer mais coisas
  • Nunca usei esta biblioteca, mas gostaria de ver exemplos de capacidade de computação de GPU multiplataforma

    • Preciso de sugestões de por onde começar
  • Gostaria de ver o Raylib ganhar um backend de GPU do SDL

    • Aí eu usaria imediatamente
  • Fico me perguntando se isto tem relação com https://github.com/grimfang4/sdl-gpu

    • Ou se é algo totalmente separado com o mesmo nome