View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Vídeos

Abrir menu Fechar menu
  • Coleções
  • Tópicos
  • Todos os vídeos
  • Sobre

Mais vídeos

  • Sobre
  • Resumo
  • Transcrição
  • Conheça o Metal 4

    Aprenda a integrar os novos recursos avançados do Metal 4 aos seus apps já desenvolvidos com Metal. Abordaremos como o Metal possibilita aproveitar ao máximo o Apple Silicon e programar o hardware com mais eficiência. Você também aprenderá como o Metal 4 oferece novos recursos para integrar o aprendizado de máquina ao seu código do Metal.

    Capítulos

    • 0:00 - Introdução
    • 1:44 - Codificar comandos
    • 4:03 - Gerenciar recursos
    • 10:43 - Compilar shaders
    • 13:52 - Integrar aprendizado de máquina
    • 17:26 - Otimizar com o MetalFX
    • 19:22 - Adotar o Metal 4
    • 23:08 - Próximas etapas

    Recursos

    • Processing a texture in a compute function
    • Understanding the Metal 4 core API
    • Using a render pipeline to render primitives
    • Using the Metal 4 compilation API
      • Vídeo HD
      • Vídeo SD

    Vídeos relacionados

    WWDC25

    • Aprimore jogos com o Metal 4
    • Combine o aprendizado de máquina e os gráficos do Metal 4
    • Explore jogos feitos com o Metal 4
    • Melhore ainda mais seus jogos
    • Novidades na renderização no Metal para apps imersivos
  • Buscar neste vídeo...

    Olá! Sou Aaron e estou animado para compartilhar os detalhes de uma grande atualização da API Metal. Metal é a API gráfica e de computação de entrada da Apple. Ela impulsionou múltiplas gerações de aplicações complexas, incluindo os jogos mais recentes, como Cyberpunk 2077, além de poderosos apps profissionais. Metal se tornou essencial na maneira como os desenvolvedores pensam sobre renderização e computação nas plataformas da Apple. Aproveitando mais de uma década de experiência... o Metal 4 leva a API para o próximo nível, permitindo que os desenvolvedores entreguem os jogos e apps profissionais mais exigentes. O Metal 4 foi desenvolvido tendo em mente as próximas gerações de jogos, gráficos e apps de computação. Ele libera todo o potencial de desempenho do Apple Silicon, ao mesmo tempo que garante que você o ache familiar e acessível caso esteja vindo de outras APIs gráficas ou de computação, como o DirectX. O Metal 4 faz parte do mesmo framework Metal que você pode já ter nos apps e é compatível com dispositivos equipados com o Apple M1 e versões posteriores, assim como o A14 Bionic e mais recentes. O Metal 4 começa com uma estrutura de comandos totalmente nova, com gerenciamento explícito de memória, e muda a forma como os recursos são gerenciados para permitir visuais mais ricos e complexos. A compilação de shader é mais rápida e oferece mais opções, permitindo que o app reduza compilações redundantes, e o aprendizado de máquina agora pode ser integrado perfeitamente ao restante do app Metal. Novas soluções integradas também estão disponíveis via MetalFX para aumentar o desempenho do app. Também mostrarei como começar a adotar o Metal 4. Vou começar com a forma como o app codifica e envia comandos. O Metal é representado no sistema por um dispositivo Metal, que o sistema operacional fornece ao app. Depois de ter um dispositivo Metal, você pode criar filas de comandos para enviar tarefas ao hardware. E buffers de comando que contêm o trabalho a ser enviado. Os codificadores de comando permitem que você codifique comandos nesses buffers de comando. Você pode aproveitar o Metal 4 usando o mesmo MTLDevice que o app usa hoje. O Metal 4 fornece um modelo novo, mas familiar, para codificação de comandos e introduz novas versões dos demais objetos.

    Essas mudanças começam com a nova MTL4CommandQueue, que o app pode obter usando o MTLDevice. O Metal 4 dissocia os buffers de comando da fila que os utilizará. Assim, o app também solicita um MTL4CommandBuffer do dispositivo. Os buffers de comando são independentes uns dos outros, facilitando a codificação em paralelo no app. Os apps aproveitam codificadores para diferentes tipos de comando, incluindo desenhos, despachos, operações de cópia e construção de estruturas de aceleração. O Metal 4 consolida os codificadores de comando existentes. Com o novo codificador de computação unificado, o app também pode gerenciar a codificação de comandos de blit e de estrutura de aceleração. Isso reduz o número total de codificadores necessários. Também há um novo MTL4RenderCommandEncoder. Ele possui um mapa de anexos que o app pode usar para mapear saídas lógicas de shader para anexos físicos de cor. O app pode configurar o mapa de anexos de um único codificador de renderização com todos os anexos de cor necessários e alternar entre eles dinamicamente. Isso evita que você precise alocar codificadores de renderização adicionais, economizando memória do app e código desnecessário. O app pode usar qualquer combinação dos tipos de codificador disponíveis para codificar comandos em buffers de comando. Os buffers de comando são suportados por memória. À medida que o app codifica comandos, os dados são gravados nessa memória. No Metal 4, essa memória é gerenciada por um alocador de comandos Metal 4. Use o dispositivo para criar um alocador de comandos e assumir o controle direto do uso da memória do buffer de comando do app. O gerenciamento de memória é essencial para maximizar o que os apps modernos podem acomodar em seus recursos disponíveis do sistema. E esses apps estão utilizando mais recursos do que nunca. O app gerencia recursos de maneira diferente no Metal 4. O Metal utiliza dois tipos fundamentais de recursos. Os buffers do Metal armazenam dados genéricos formatados pelo app, enquanto as texturas do Metal armazenam dados formatados como imagens. No passado, os apps usavam menos recursos, às vezes até um único buffer e textura por objeto. E então os apps adicionaram mais texturas para melhorar o nível de detalhes da superfície. E, então, para introduzir mais variedade na renderização, os apps também adicionaram mais geometria. Os apps modernos continuaram essa tendência, aproveitando cada vez mais recursos para dar suporte a novos casos de uso complexos. Mas, enquanto o número de recursos aumentava, as APIs apenas expunham um conjunto fixo de pontos de vínculo de recursos, para definir os recursos para cada desenho ou despacho. Historicamente, cada desenho normalmente usava apenas alguns. Por exemplo, este coelho tem apenas uma textura e um buffer para sua geometria. E, para cada desenho, cada objeto pode alterar os buffers de geometria e texturas para modificar a aparência da superfície. No entanto, à medida que a contagem de chamadas de desenho aumentou e os shaders se tornaram mais complexos, o impacto de gerenciar pontos de vínculo por desenho adicionou tempo de CPU.

    Assim, os apps mudaram para um modelo "bindless", onde os recursos vinculados são movidos para outro buffer para armazenar as associações. Dessa forma, o apps só precisa vincular um único buffer de argumento para cada objeto ou até mesmo para toda a cena. Isso significa que você pode reduzir significativamente o número de pontos de vínculo necessários. Para ajudar seu app a evitar custos extras com pontos de vínculo, o Metal 4 fornece um novo tipo de tabela de argumentos para armazenar os pontos de vínculo necessários. As tabelas de argumentos são especificadas para cada estágio em um codificador, mas podem ser compartilhadas entre estágios. Você cria tabelas com um tamanho baseado nos pontos de vínculo de que o app precisa.

    Por exemplo, no caso "bindless", a tabela de argumentos precisa apenas de uma vinculação de buffer. A GPU também precisa ser capaz de acessar todos esses recursos. É aqui que a residência entra em cena. O Apple Silicon oferece um amplo espaço de memória unificada. Você pode usá-lo para armazenar todos os recursos do app, mas o Metal ainda precisa saber quais recursos tornar residentes. No Metal 4, o app usa conjuntos de residência para especificar os recursos que o Metal deve tornar residentes. Isso garante que eles estejam acessíveis ao hardware. Os conjuntos de residência são fáceis de integrar à codificação por quadro e ao comprometimento de buffers de comando. Você só precisa garantir que o conjunto de residência contenha todos os recursos necessários para o buffer de comando que você comprometer. Mas como o conteúdo do conjunto de residência raramente muda, ele pode ser populado na inicialização do app. E, uma vez que o conjunto é criado, você pode adicioná-lo a uma fila de comandos do Metal 4. Todos os buffers de comando comprometidos com essa fila incluirão esses recursos. Se precisar fazer atualizações, isso deve ter um custo muito menor em tempo de execução. Para apps que transmitem recursos dentro e fora em uma thread separada, você pode mover o custo de atualização do conjunto de residência para essa thread e atualizar o conjunto em paralelo com a codificação. Um ótimo exemplo de jogo que se beneficiou dos conjuntos de residência é Control Ultimate Edition. O Technical Publishing Director da Remedy Entertainment, Tuukka Taipalvesi, disse o seguinte: Control Ultimate Edition achou fácil integrar os conjuntos de residência. Ao separar os recursos em diferentes conjuntos de residência com base no uso e gerenciar a residência de recursos em uma thread de segundo plano, observamos reduções significativas na sobrecarga de gerenciamento de residência e menor uso de memória quando o ray tracing está desativado.

    Criar jogos incríveis como Control exige mais recursos do que nunca. Você pode até precisar de mais memória do que está disponível, especialmente ao visar uma variedade de dispositivos. Para aproveitar ao máximo a memória disponível, o app pode controlar dinamicamente como os recursos utilizam essa memória. Isso exige um controle refinado de como a memória é alocada para os recursos, já que nem todos os recursos são necessários ao mesmo tempo. Os apps podem ajustar a qualidade controlando o nível de detalhe residente para oferecer o mesmo conteúdo em uma variedade maior de dispositivos. O app pode fazer isso usando recursos esparsos de posicionamento.

    O Metal 4 oferece suporte a buffers e texturas alocados como recursos esparsos de posicionamento. Esses recursos são alocados sem páginas para armazenar seus dados. Com recursos esparsos de posicionamento, as páginas vêm de um heap de posicionamento. O app aloca páginas do heap de posicionamento para fornecer armazenamento para o conteúdo dos recursos. Com o foco do Metal 4 na concorrência por padrão, é necessário garantir que as atualizações de recursos sejam sincronizadas. Para simplificar a sincronização, o Metal 4 introduz uma API de barreira que oferece baixa sobrecarga, sincronização de estágio para estágio e mapeia bem as barreiras em outras APIs. Você pode ver as barreiras em ação no exemplo do Metal 4, "processando uma textura em uma função de computação". O app começa com uma imagem colorida, aplica um shader de computação que a converte para tons de cinza e, em seguida, renderiza essa textura convertida na tela. Essas etapas têm uma dependência do recurso compartilhado: a saída do processamento da textura. O exemplo garante que as gravações e leituras de recursos ocorram na ordem correta, usando barreiras do Metal 4. Sem sincronização, essas etapas podem ser executadas em qualquer ordem, o que pode significar o uso do conteúdo de textura incorreto. Ou pior ainda, se as duas etapas se sobrepuserem, isso resultará em uma saída corrompida. Para acertar a ordem, o app usa uma barreira. As barreiras funcionam de estágio para estágio. Então, você precisará considerar em qual estágio cada operação ocorre, com base nos estágios do codificador.

    O processamento da textura será executado em um codificador de comando de computação como uma operação de estágio de despacho. A renderização fará parte de um codificador de comando de renderização, que lê a textura em uma operação de fragmento. Então, a barreira necessária é uma barreira de despacho para fragmento, que aguarda a conclusão do trabalho do estágio de despacho antes de permitir que qualquer trabalho de fragmento comece. Usar barreiras de modo eficaz é importante para obter o melhor desempenho no app, especialmente com um grande número de recursos.

    Além dos recursos, os apps modernos também gerenciam um grande número de shaders. Esses shaders precisam ser compilados antes de serem enviados para o hardware, para renderizar e computar no app. Os shaders são escritos na linguagem de sombreamento Metal e convertidos em Metal IR. O IR é então compilado para binários de GPU que podem ser executados nativamente pelo hardware. Como desenvolvedor, você tem controle sobre quando a compilação de shaders ocorre. O dispositivo Metal fornece uma interface para enviar shaders ao sistema operacional para compilação pelo CPU. O Metal 4 gerencia a compilação com contextos dedicados de compilação. A nova interface MTL4Compiler agora está separada do dispositivo. O app usa o dispositivo para alocar a interface do compilador. A interface fornece controle claro e explícito sobre quando o app realiza a compilação na CPU. Você também pode aproveitar o MTL4Compiler para aproveitar as melhorias de agendamento na pilha de compilação de shaders. O MTL4Compiler herda a classe de qualidade de serviço atribuída à thread que solicita a compilação. Quando várias threads são compiladas ao mesmo tempo, o sistema operacional prioriza solicitações de threads de maior prioridade para garantir que os shaders mais importantes do app sejam processados primeiro antes de passar para outras compilações. O controle explícito da compilação de shaders é importante, já que os apps modernos têm mais shaders do que nunca. Durante a geração do estado do pipeline, o app deve compilar cada shader pela primeira vez antes que o trabalho na GPU possa prosseguir. Às vezes, os pipelines compartilham Metal IR comum. Por exemplo, o app pode aplicar diferentes estados de cor para renderizar com transparências variadas. E essa mesma situação pode se aplicar a outros conjuntos de pipelines também. Com o Metal 4, você pode otimizar para esse caso, reduzindo o tempo gasto na compilação de shaders. Os pipelines de renderização agora podem usar estados flexíveis de pipeline de renderização para construir Metal IR comum uma única vez. Isso cria um pipeline não especializado. O app então especializa o pipeline com o estado de cor pretendido. O Metal reutilizará o Metal IR compilado para criar eficientemente um pipeline especializado para execução. Estados flexíveis de pipeline de renderização economizam tempo de compilação ao reutilizar Metal IR entre pipelines de shaders. O app cria um pipeline não especializado uma vez antes de especializá-lo para cada um dos estados de cor necessários. Você pode repetir esse processo para outros pipelines que compartilham Metal IR e compartilhar os resultados da compilação de cada um para reduzir o tempo que o app gasta compilando shaders. A compilação no dispositivo ainda consome tempo de CPU. O caminho mais eficiente ainda é eliminar completamente a compilação no dispositivo. O Metal 4 simplifica a coleta de configurações de pipeline. Para mais informações sobre como aproveitar o fluxo de trabalho de compilação do Metal 4, bem como mais detalhes sobre codificação de comandos, acompanhe e explore os jogos no Metal 4. O Metal 4 torna a integração de aprendizado de máquina mais fácil do que nunca, abrindo novas possibilidades para o app. Técnicas de renderização, como upscaling, compressão de ativos, mesclagem de animação e sombreamento neural, cada uma se beneficia do app direcionado de aprendizado de máquina. Para aplicar essas técnicas com eficiência, os apps precisam operar em conjuntos de dados e estruturas complexas. Os buffers são flexíveis, mas deixam grande parte do trabalho pesado para o app, e as texturas não são a melhor opção. O Metal 4 adiciona suporte para tensores, um tipo fundamental de recurso de aprendizado de máquina, compatível em todos os contextos. Os tensores do Metal são contêineres de dados multidimensionais. Eles são expansíveis bem além de duas dimensões, proporcionando a flexibilidade necessária para descrever a organização dos dados para o uso prático em aprendizado de máquina. O Metal 4 integra tensores diretamente na API, assim como na linguagem de sombreamento do Metal. Os tensores reduzem a complexidade da indexação em dados multidimensionais, permitindo que o app Metal 4 se concentre em usá-los para aplicar aprendizado de máquina de maneiras inovadoras. Para tornar isso ainda mais fácil, o Metal 4 expande o conjunto de codificadores de comandos suportados. O novo codificador de comandos de aprendizado de máquina permite executar redes em larga escala diretamente dentro do app Metal. Os codificadores de aprendizado de máquina funcionam de maneira semelhante aos tipos de codificadores existentes no Metal. Os tensores são consumidos como recursos mapeados em uma tabela de argumentos. A codificação é feita nos mesmos buffers de comando do Metal 4 e suporta barreiras para sincronização com outros codificadores do Metal 4. Os codificadores de aprendizado de máquina do Metal 4 são compatíveis com redes expressas no formato de pacote CoreML existente. Use a cadeia de ferramentas do Metal para converter os elementos em um pacote Metal e, em seguida, alimente a rede no codificador. O novo codificador de aprendizado de máquina é ideal para redes grandes que precisam de intercalação em nível de comando com o restante do app Metal. Se você tiver redes menores, o Metal 4 oferece a flexibilidade de integrá-las em seus pipelines de shader existentes. Por exemplo, a avaliação de materiais neurais substitui as texturas de materiais tradicionais por dados de textura latentes. O app amostra essas texturas latentes para criar tensores de entrada, realiza inferência usando os valores amostrados e utiliza o resultado final para executar o sombreamento. Dividir cada etapa em seu próprio pipeline é ineficiente, pois cada etapa precisa sincronizar tensores da memória do dispositivo, operá-los e sincronizar as saídas para operações futuras. Para obter o melhor desempenho, o app deve combinar essas etapas em um único envio de shader, para que cada operação possa compartilhar a memória comum da thread. Implementar inferência é uma tarefa complexa, mas o Metal 4 oferece suporte com primitivas de desempenho do Metal. As primitivas de desempenho do Metal são primitivas de shader projetadas para executar cálculos complexos e podem operar nativamente em tensores. Cada uma delas é otimizada para rodar em alta velocidade no Apple Silicon. As operações de tensor são ideais para incorporar pequenas redes nos shaders. O app pode usá-los como parte da linguagem de sombreamento do Metal e, ao fazer isso, o compilador de shader do sistema operacional insere o código de shader, otimizado para o dispositivo utilizado no shader. Para saber como usar os novos recursos de aprendizado de máquina do Metal, confira a sessão "Combinar o aprendizado de máquina e os gráficos do Metal 4". O Metal 4 fornece todas as ferramentas necessárias para integrar técnicas de aprendizado de máquina de ponta. Você também pode aproveitar soluções prontas para produção incorporadas ao MetalFX. Os dispositivos Apple têm telas incríveis e de alta resolução, perfeitas para exibir seus jogos incríveis. O MetalFX permite que o app ofereça altas resoluções com taxas de atualização ainda maiores ao renderizar cenas complexas com reflexos realistas.

    A renderização de imagens em alta resolução pode consumir a GPU por um período significativo. Em vez disso, o app pode renderizar imagens de baixa qualidade e usar o MetalFX para aprimorá-las. O tempo combinado para renderizar sua imagem final é reduzido, e isso significa que o app pode economizar tempo para cada quadro que renderiza. Você pode usar o tempo economizado para renderizar o próximo quadro mais cedo. E se você quiser atingir as taxas de atualização mais altas sem sacrificar a qualidade, o MetalFX tem uma ótima solução integrada. Este ano, o MetalFX adiciona suporte para interpolação de quadros. O app pode usá-lo para gerar quadros intermediários em muito menos tempo do que levaria para renderizar cada quadro do zero. Você pode usar esses quadros intermediários para alcançar taxas de quadro ainda mais altas. O ray tracing é outra técnica que os apps usam para obter resultados de renderização realistas, rastreando raios da câmera até uma fonte de luz. No entanto, se poucos raios forem lançados, a imagem resultante será muito ruidosa para ser utilizada. O MetalFX agora também oferece suporte à remoção de ruído durante o processo de aprimoramento, permitindo que o app elimine o ruído de imagens renderizadas com menos raios e entregue resultados em tamanho real. O MetalFX ajuda você a produzir resultados de alta qualidade que jogadores vão adorar, com taxas de atualização aumentadas. Seu jogo pode combiná-lo com o ray tracing do Metal 4 para obter resultados incríveis. Você pode aprender mais sobre como usar esses recursos em "Ir além com jogos Metal 4". O app pode combinar todos esses recursos para fazer coisas incríveis. E o Metal 4 foi projetado para tornar a portabilidade acessível e modular. Um app é composto por várias categorias-chave de funcionalidade, incluindo: como ele compila shaders, como codifica e envia comandos para o hardware e, por fim, como gerencia recursos. Cada um desses aspectos pode ser abordado separadamente em suas próprias fases distintas. A compilação é, talvez, o primeiro passo mais fácil a ser dado. Você pode alocar um compilador Metal 4 e inseri-lo nos fluxos de compilação do app para melhorar a qualidade do serviço. Depois de adotar a nova interface de compilação, o app pode integrar pipelines de renderização flexíveis para acelerar a compilação do pipeline de renderização ou aproveitar melhorias de coleta para aprimorar a compilação antecipada. Independentemente de adotar o novo compilador ou não, o app também pode se beneficiar da geração de comandos com o Metal 4. Com o modelo de codificação e geração de comandos do Metal 4, você pode ter um controle maior sobre suas alocações de memória. Você também pode aproveitar a codificação paralela nativa entre tipos de codificador para acelerar o processo e o novo conjunto de recursos de aprendizado de máquina do Metal 4 desbloqueia novas possibilidades para seus pipelines de renderização. O app pode adotar o codificador de aprendizado de máquina ou o Shader ML, com base na rede que deseja integrar. Você pode levar isso um passo adiante com a gestão de recursos do Metal 4. Os conjuntos de residência são uma vitória fácil. Integre-os para simplificar o processo de gerenciamento de residência. As barreiras permitem que o app sincronize o acesso aos recursos entre diferentes passagens de modo eficiente. E os recursos esparsos posicionáveis possibilitam a construção de streaming de recursos no app Metal. Como desenvolvedor, você está na melhor posição para avaliar como melhorar o app. E o Metal 4 oferece a flexibilidade para adotar as novas funcionalidades onde você mais precisa. O recurso Placement Sparse é um ótimo exemplo de uma funcionalidade que possibilita um caso de uso específico. Aqui está como você pode integrá-lo ao app Metal existente. O app Metal já executa tarefas usando a fila de comandos Metal existente, enquanto as operações de mapeamento esparso de posicionamento exigem uma fila de comandos Metal 4. Você pode usar um MTLEvent para sincronizar o trabalho entre as filas de comandos do Metal e do Metal 4 no app. A primeira chamada do evento de sinal desbloqueia o MTL4CommandQueue para atualizar os mapeamentos de recursos esparsos posicionáveis. Uma segunda chamada de evento de sinal notifica o app para continuar o trabalho de renderização usando os recursos esparsos posicionáveis. Você pode usar o mesmo MTLEvent de antes. O app deve enviar tarefas que não dependem desses recursos antes de aguardar o evento, garantindo que o hardware permaneça totalmente utilizado. O Metal vem com um conjunto avançado de ferramentas para desenvolvedores, ajudando a depurar e otimizar os apps Metal. E, neste ano, essas mesmas ferramentas vêm com suporte para o Metal 4. A API e o Shader Validation economizam um tempo valioso ao identificar problemas comuns. E o abrangente Metal Debugger ajuda você a explorar profundamente o uso do Metal 4. O Metal Performance HUD fornece uma sobreposição em tempo real para monitorar o desempenho do app, e o Metal System Trace permite analisar rastros de desempenho do app. Você pode aprender sobre todas essas ferramentas e encontrar a documentação no site Apple Developer. Além disso, confira "Melhorar seus jogos" para ótimas técnicas de depuração e otimização de jogos. O Xcode 26 também vem com um novo modelo Metal 4 integrado. Inicie um novo projeto e selecione os modelos de jogo antes de escolher o Metal 4 como sua tecnologia de jogo. Com o modelo integrado do Xcode, é fácil iniciar uma renderização básica e começar sua jornada com o Metal 4. Agora que você descobriu o que o Metal 4 pode fazer, já pode aprender como aplicá-lo às necessidades do app. Se você está desenvolvendo um jogo, pode se aprofundar e explorar como usar os novos recursos de codificação de comandos e compilação do Metal 4. Depois disso, você pode aprender como ir além e otimizar o jogo com MetalFX, além de descobrir como aproveitar o ray tracing do Metal 4. Ou você pode aprender a usar o Metal 4 para combinar aprendizado de máquina e gráficos no app Metal. O Metal 4 possibilita uma nova geração de apps e jogos com um conjunto incrível de recursos. Você apenas arranhou a superfície com a base necessária para mergulhar fundo. Você pode começar a usar o Metal 4 em apps novos ou existentes com a próxima versão beta para desenvolvedores. O código de exemplo é um ótimo exemplo de como começar sua adoção do Metal 4. Já está disponível. Agradeço sua participação.

    • 0:00 - Introdução
    • A API do Metal da Apple recebe uma atualização importante com o Metal 4, criado para as próximas gerações de jogos, gráficos e apps de computação. Ele oferece gerenciamento explícito de memória, gerenciamento de recursos mais robusto, compilação de shaders mais rápida, integração fluida com aprendizado de máquina e novos recursos de desempenho do MetalFX. O Metal 4 é compatível com os chips Apple M1 (e posteriores) e A14 Bionic (e posteriores), com base no framework do Metal existente.

    • 1:44 - Codificar comandos
    • Você pode aproveitar o Metal 4 usando o mesmo MTLDevice que o app usa hoje. O Metal 4 introduz novos objetos para obter maior flexibilidade, como MTL4CommandAllocator para controle direto da memória do buffer de comando e MTL4RenderCommandEncoder com um mapa de anexos que associa as saídas lógicas do shader aos anexos físicos de cor. O app pode configurar e alternar entre anexos de cor usando um único codificador de renderização, economizando memória e código.

    • 4:03 - Gerenciar recursos
    • O Metal 4 otimiza o gerenciamento de recursos para apps modernos, que usam significativamente mais buffers e texturas do que nunca. Com o novo tipo MTL4ArgumentTable, é possível armazenar os pontos de ligação para os recursos de que o app precisa. Use conjuntos de residência para especificar os recursos que o Metal deve tornar residentes para a GPU. O preenchimento do conjunto de residência pode ser feito na inicialização do app, e atualizações posteriores requerem um custo mínimo de CPU. Os buffers e texturas do Metal 4 podem ser alocados como recursos esparsos de posicionamento, oferecendo um controle preciso sobre a alocação de memória a esses recursos. O Metal 4 também apresenta uma API de barreira com baixa sobrecarga para sincronizar recursos de um estágio para outro.

    • 10:43 - Compilar shaders
    • O Metal 4 introduz a nova interface MTL4Compiler, que fornece controle explícito sobre quando o app executa a compilação de shader na CPU. Com os novos estados de pipeline de renderização flexível, é possível criar um pipeline não especializado que pode ser especializado reutilizando o IR comum do Metal para diferentes estados de cor, reduzindo o tempo que o app gasta compilando shaders.

    • 13:52 - Integrar aprendizado de máquina
    • O Metal 4 torna ainda mais fácil integrar o aprendizado de máquina aos apps e jogos. Técnicas de renderização como upscaling, compressão de recursos, mesclagem de animações e sombreamento neural são todas beneficiadas. O Metal 4 adiciona suporte para tensores, contêineres de dados multidimensionais projetados especificamente para aprendizado de máquina, tensores diretamente na API, bem como na linguagem de sombreamento do Metal.

    • 17:26 - Otimizar com o MetalFX
    • Com o MetalFX, o app oferece altas resoluções com taxas de atualização ainda maiores ao renderizar cenas complexas com reflexos realistas. O app pode renderizar imagens de baixa qualidade e o MetalFX irá aprimorá-las. O MetalFX também adiciona suporte para interpolação de quadros, que seu app pode usar para gerar quadros intermediários muito mais rápido do que gerá-los do zero, para que você possa obter taxas de quadro ainda mais altas. Para cenas com rastreamento de raios, o MetalFX também oferece suporte à remoção de ruído durante o processo de aprimoramento, permitindo que o app entregue resultados em tamanho real a partir de imagens renderizadas com menos raios.

    • 19:22 - Adotar o Metal 4
    • O Metal 4 foi projetado para tornar a portabilidade acessível e modular. Você pode adotá-lo em seu app ou jogo do Metal usando uma abordagem modular. Concentre-se na área que trará mais impacto: como ele compila shaders, como codifica e envia comandos para o hardware ou como gerencia recursos. Para muitos usuários, os conjuntos de residência representam um ganho fácil de desempenho. O posicionamento esparso também é um ótimo exemplo de recurso que permite um caso de uso específico, e é simples integrá-lo a um app do Metal. Use o conjunto avançado de ferramentas para desenvolvedores compatíveis com o Metal 4 para ajudar a depurar e otimizar seus apps do Metal. Além da compilação, o Metal 4 oferece modelos de geração e codificação de comandos que fornecem maior controle sobre as alocações de memória, permitem a codificação paralela nativa e introduzem recursos de aprendizado de máquina para otimizar pipelines de renderização. O gerenciamento de recursos no Metal 4 também é simplificado por meio de recursos como conjuntos de residências, barreiras e alocação de recursos esparsos, que permitem um fluxo eficiente de recursos. O Metal 4 abrange um conjunto avançado de ferramentas para desenvolvedores para depuração, otimização e monitoramento de desempenho. O Xcode 26 inclui um novo modelo do Metal 4, facilitando a criação e otimização de apps do Metal 4.

    • 23:08 - Próximas etapas
    • O Metal 4 possibilita uma nova geração de apps e jogos com um conjunto incrível de recursos. O código de exemplo, um ótimo exemplo de como iniciar a adoção do Metal 4, já está disponível.

Developer Footer

  • Vídeos
  • WWDC25
  • Conheça o Metal 4
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Store
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Sample Code
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Get the Apple Developer app.
    Copyright © 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines