1 pontos por GN⁺ 2025-08-16 | 1 comentários | Compartilhar no WhatsApp
  • Ao executar jogos em tela cheia no MacBook, a maioria deles renderiza de forma borrada por causa do problema do notch da tela
  • O mecanismo de seleção de resolução do sistema não considera a área do notch, causando a escolha incorreta da área de saída
  • Selecionar uma resolução 16:10 é uma solução temporária, mas a causa raiz está no design das APIs da Apple e na falta de orientação
  • O problema pode ser reproduzido em jogos conhecidos (Shadow of the Tomb Raider, No Man’s Sky etc.); alguns jogos mais recentes (Cyberpunk 2077) lidam com isso corretamente
  • A Apple precisa melhorar as orientações e o suporte aos desenvolvedores com atualizações no HIG e nas APIs

Problema: por que jogos em tela cheia no Mac ficam com renderização borrada

  • Esse problema foi enviado à Apple em setembro de 2023 como o issue FB13375033
  • Ao rodar jogos em tela cheia em telas de MacBook, a maioria dos jogos não considera corretamente a área do notch, o que causa erros de renderização
  • Muitos jogos recebem do sistema a lista de resoluções suportadas e escolhem a primeira delas (a resolução de toda a área da tela), mas na prática a área em tela cheia disponível no AppKit fica limitada à região abaixo do notch
  • Quando o jogo renderiza na resolução total da tela, a área real disponível para desenhar é menor, então o frame é comprimido verticalmente, o que leva ao efeito de borrado

A estrutura das áreas da tela no Mac

  • Uma tela de Mac com notch tem três áreas principais
    • Limites totais da tela (incluindo notch e menu)
    • Safe area (abaixo do notch)
    • Área de tela cheia disponível no AppKit (abaixo da barra de menu)
  • A lista de resoluções retornada pela função CGDisplayCopyAllDisplayModes mistura a resolução total da tela com a resolução abaixo da barra de menu (geralmente na proporção 16:10)
  • A maioria dos jogos usa o primeiro item da lista (a área total da tela), gerando saída incorreta
  • Exemplo: Shadow of the Tomb Raider inicia por padrão na resolução total da tela (3456x2234), mas a área real disponível para desenho é 3456x2160 (uma diferença de 74 pixels que comprime a imagem e deixa a renderização borrada)

Solução: escolha correta da resolução e alternativa temporária

  • Usuários: ao executar jogos em tela cheia em uma tela de Mac com notch, é importante selecionar manualmente uma resolução 16:10 (o jogo não ajusta isso automaticamente)
  • Desenvolvedores: é preciso filtrar a lista de resoluções de forma um pouco mais refinada usando a propriedade safeAreaInsets de NSScreen
    • Foi fornecido um algoritmo em código para filtrar apenas resoluções compatíveis com a safe area (com o efeito colateral de filtrar em excesso algumas resoluções, como 4:3)
    • No fim, o problema precisa ser resolvido pela Apple

Jogos afetados: principais casos e situação atual

  • Shadow of the Tomb Raider, Control Ultimate Edition, No Man’s Sky, Riven, Stray e a maioria dos outros apresentam compressão e renderização borrada por causa do padrão incorreto de resolução
    • Control: define a resolução por conta própria, mas ela não corresponde à resolução real do Mac
    • No Man’s Sky: oferece proporções incorretas e resoluções tanto da safe area quanto da área fora dela
    • Riven, Stray: aplicam por padrão renderização em resolução comprimida
  • Cyberpunk 2077 escolhe uma resolução correta na proporção 16:10 (o método interno de filtragem não foi divulgado)
  • World of Warcraft: por usar uma API legada que permite desenhar até o notch, a resolução total funciona normalmente

O que a Apple poderia fazer: necessidade de resposta da Apple

  • É preciso adicionar ao documento HIG (Human Interface Guidelines) orientações e tratamento de resolução para telas com notch
  • É necessário atualizar CGDisplayMode no AppKit/Cocoa para facilitar o filtro de resoluções
  • É preciso projetar uma nova API voltada à otimização de jogos (resolvendo lista de resoluções e boilerplate)
  • Para os desenvolvedores, pode-se considerar recomendar o cálculo da própria lista de resoluções em vez de consultar resoluções diretamente, ou o uso de “render scale”
  • Se essas melhorias forem adotadas, a Apple também deveria atualizar em conjunto a documentação oficial e os códigos de exemplo

1 comentários

 
GN⁺ 2025-08-16
Opinião no Hacker News
  • Fico me perguntando se sou só eu que acho telas com cantos arredondados e notch extremamente estranhas; depois de décadas sofrendo com a geometria meio torta dos monitores CRT, finalmente os displays retangulares perfeitos viraram padrão, e é uma pena ver isso sendo estragado de novo só porque parece estiloso
    • Em vez de pensar no notch como aquela idiotice que rouba área da tela, dá para ver como algo que aumenta o tamanho total da tela ao reduzir as bordas; e, quando os cantos da tela ficam perto do notch, parece mais natural que a tela também seja arredondada, já que o corpo do notebook é arredondado; uma tela retangular dentro de um canto arredondado do notebook fica estranha. Mas isso varia conforme o contexto: no Mac, ao reproduzir vídeo, a tela vira retangular e a reprodução acontece abaixo do notch; no uso real, você tem uma tela maior; no trabalho, cantos arredondados e notch na barra de menu não incomodam; e em vídeo e jogos a tela volta a ser retangular. No fim, por causa dessas várias vantagens e da flexibilidade, não é algo que precise ser visto só de forma negativa
    • Com a tecnologia atual, existem três opções: 1) maximizar a tela sem bordas e sem câmera frontal, 2) ter câmera frontal mas sem bordas, deixando a tela 5 mm mais baixa e aquela faixa superior de 5 mm totalmente inútil, 3) combinar câmera frontal com borda/notch, criando um “espaço morto” no meio, mas com espaço utilizável nas laterais. E, como na maior parte do tempo menus e indicadores ficam no topo e o meio fica vazio, a área do notch na prática aumenta o espaço útil para apps. Em jogos, tanto o modelo #2 quanto o #3 acabam tendo espaço morto, então na prática não há diferença real. No fim, o notch não ocupa o centro real da tela; ele adiciona espaço à esquerda e à direita. Ainda assim, acho que existe um problema na forma como a resolução é reportada (se o valor passado para o app for diferente do real, isso gera confusão)
    • Uso um MacBook com notch e realmente quase não se percebe que ele existe; a maioria dos usuários de MacBook mal liga para o notch. Tem gente que reclama, mas é uma minoria bem pequena
    • Fico curioso se a tela é OLED; smartphones hoje em dia são todos OLED. Na minha opinião, o notch em si não serve para nada, mas de qualquer forma ele é necessário por causa da posição da câmera frontal; se for OLED, basta desligar os pixels quando necessário e ele passa a parecer uma borda, então no fim fica parecido com a alternativa de borda tradicional
    • Eu gostava mais de fontes sem antialiasing em LCD, porque os cantos quadrados dos pixels pareciam mais limpos de ver; mesmo assim, muita gente prefere o efeito suavizado do antialiasing. Acho que isso vem da sensação de CRT
  • World of Warcraft tem uma opção para que a UI evite o notch; internamente ele busca uma safe region em C_UI e depois ajusta o UIParent a ela, de modo que a tela do jogo usa a área inteira, mas a UI se ajusta para ficar abaixo do notch
    • O WoW sempre tratou o macOS como uma plataforma de primeira linha; é realmente uma pena que a Blizzard tenha parado de dar suporte ao macOS em lançamentos recentes
  • Isso mostra que a Apple não dá atenção ao gaming no Mac; eu mesmo investi pesado em MBP, Mac Studio e afins, mas o limite acaba vindo não do hardware, e sim da gestão lamentável do software para jogos. No fundo, isso acontece porque a Apple não consegue tirar 30% de taxa dos jogos no Mac como faz no iOS. No fim, lembro de um antigo professor dizendo: “mesmo quando parece que não é por dinheiro, no fim é tudo por dinheiro”
    • O problema ainda maior é que o nível de documentação da Apple é péssimo; você encontra listas de assinaturas de funções, mas para descobrir como usar de verdade precisa caçar alguma sessão da WWDC de anos atrás, e mesmo assim nem sempre fica claro se aquilo ainda está correto
    • É verdade que a Apple realmente não liga muito para jogos, mas problemas como notch e semelhantes também são resultado de uma contradição técnica criada por essa ideia de oferecer uma “abstração mágica”; dizem que o software lida com isso sozinho, mas na prática apps e jogos que precisam de controle fino da tela acabam todos exigindo hacks ou patches separados. Esse dilema entre limitação técnica e abstração se repete o tempo todo
    • A falta de atenção ao mercado de jogos no Mac também vem da percepção de que gaming é, por natureza, um negócio de margem baixa; em geral, gamers são sensíveis ao hardware, ao custo das peças e às margens, especialmente em coisas como preço de SSD e RAM. É completamente diferente do mercado criativo/enterprise, onde a Apple consegue manter lucros altos
    • Uso um Mac Studio M3 Ultra, um computador de US$ 4.000, e se eu tento fazer streaming de qualquer coisa com o StreamLabs (mesmo sem abrir jogo nenhum), a gravação trava e engasga; realmente não entendo por que isso acontece
    • A ideia de que a Apple faz isso porque não consegue pegar 30% no Mac não convence, porque a maior parte dos jogos do artigo está na App Store, então a Apple recebe sua comissão normalmente. Control Ultimate Edition, Shadow of the Tomb Raider, Riven, Cyberpunk 2077 Ultimate e Stray também estão lá. Isso parece menos sabotagem maliciosa da Apple e mais incompetência e desinteresse
  • Jogos antigos como WoW podem usar a API legada de tela cheia do CoreGraphics para desenhar livremente até dentro da área do notch; não conheço tão bem Mac, mas fico pensando se o certo não seria o jogo renderizar em tela cheia incluindo o notch para aumentar a imersão, enquanto UI e gameplay usam apenas a área segura. Fico curioso se jogos como Control, que simplesmente escolhem uma resolução arbitrária sem se importar muito, fizeram isso só por preguiça
    • Varia de jogo para jogo, mas a área acima do notch normalmente fica simplesmente preta ou é tratada como inacessível (nem o cursor pode ir até lá); é como se aquela parte tivesse sido removida da própria tela. Dá para pensar como sendo igual a um M1 Air sem notch
  • Não é um problema só da Apple; o Xbox 360 já tinha em 2008 a questão de overscan em TVs. Era preciso renderizar em tamanho menor que a resolução para respeitar a área segura, e os desenvolvedores sempre precisavam tratar isso separadamente. Com o safe area rect fornecido pelo XNA a situação melhorou um pouco, e hoje também é possível definir livremente o tamanho do backbuffer. Ao usar DLSS e afins, o ideal continua sendo manter a área segura em proporção 1:1. No fim, o desenvolvedor precisa entender claramente que a resolução do display e a resolução de renderização podem ser diferentes, e isso vale do mesmo jeito usando wgpu, vulkan, AppKit, SDL, glfw e várias outras ferramentas
    • Essencialmente, o que você está dizendo é que, para economizar recursos de processamento, a imagem é renderizada de propósito em tamanho menor, mas na saída HDMI ela acaba sendo ampliada de volta para 1080p, e isso, somado ao overscan da TV, pode até piorar o problema. Na verdade, a questão do overscan na TV poderia ser resolvida só com opções de FoV customizado e ajuste de tamanho da GUI, então não vejo necessidade de reduzir a própria tela
  • Surpreende que o artigo tenha focado só na parte da renderização borrada; na prática, isso afeta até a posição do ponteiro do mouse. Em cada jogo, é preciso abrir o menu do sistema e forçar o modo de tela cheia a ficar abaixo do notch, sempre manualmente. Isso deveria ser uma opção de acessibilidade no nível do sistema inteiro, e é estranho que não seja
  • Essa situação mostra bem o tamanho do mercado de jogos no Mac: muito pequeno, e é uma pena
    • Na prática, a participação do Mac é de apenas 1,88% segundo a pesquisa de hardware da Steam, menor até que a do Linux; por isso a maioria dos desenvolvedores simplesmente nem se preocupa
  • Comprei de propósito um MacBook Pro M3 justamente para não conseguir jogar; eu precisava de um notebook confiável para um mestrado em cibersegurança, e se tivesse comprado um notebook potente com Windows provavelmente acabaria me distraindo com jogos, então fiz essa escolha. No geral, o aparelho é excelente, mas quando tento jogar ele esquenta demais e isso me preocupa, então simplesmente desisti de jogar
  • A fonte deste site tem partes de algumas letras finas demais
    • Pessoalmente, sinto que a parte de cima de todas as letras é fina demais; dá a sensação de estar lendo algo impresso por uma impressora quase sem tinta (deixando o feedback como manda a tradição do Hacker News)
  • Queria saber como corrigir isso sem quebrar software existente; reordenar a lista?
    • Como o Windows fez, o sistema operacional poderia detectar que um app em execução é um jogo legado e passar informações “falsas” do sistema para que a imagem saia corretamente; esse tipo de abordagem foi um dos principais motivos do sucesso do Windows como plataforma para jogos. Isso não desapareceu totalmente até hoje, mas no passado esse tipo de solução era muito mais comum