Em desenvolvimento · Recursos, versões e compatibilidade são informados por aparelho e release.

Wiki rogpOS

Desempenho, FPS e latência

Como o rogpOS mede o ritmo dos quadros e decide ajustes sem sacrificar estabilidade.

Desempenho não é o maior número mostrado na tela. O objetivo é manter ritmo previsível, áudio estável, entrada responsiva e temperatura aceitável no aparelho real.

O que medimos

  • FPS real: diferença do contador de quadros do núcleo ao longo de uma janela de tempo.
  • Frametime: tempo médio por quadro. A 60 FPS, a referência é 16,67 ms; a 30 FPS, 33,33 ms.
  • Ritmo: variação entre quadros, que pode ser perceptível mesmo quando a média parece boa.
  • Atrasos laterais: carregamento, cache, áudio, armazenamento, temperatura e frequência do processador.

O RetroArch expõe frame_count e core_fps ao rogpOS. Os consumidores calculam o FPS observado a partir dos deltas. Isso separa a taxa declarada pelo núcleo daquilo que foi realmente entregue.

Perfil antes de ajuste

Os ajustes agressivos permanecem desligados por padrão. O perfil estável de SNES busca 60 FPS sem ativar automaticamente runahead, preemptive frames ou política agressiva de CPU. Cada sistema pode ganhar um perfil específico depois que medições e testes físicos sustentarem a mudança.

Técnicas e seus custos

Governor de CPU

O governor performance solicita a maior frequência permitida pela política ativa. Isso pode reduzir variação de latência, mas aumenta consumo e temperatura. O rogpOS prevê ativação durante a sessão e restauração do estado anterior na saída, protegida por trap.

Prioridade de agendamento

SCHED_FIFO pode reduzir interferência do escalonador, mas é opt-in e precisa de fallback para nice. Uma prioridade de tempo real mal aplicada pode prejudicar áudio, entrada ou o próprio sistema.

Runahead e quadros preditivos

Runahead depende de save states rápidos e de folga de CPU. Pedir quadros demais pode produzir engasgos ou comportamento incorreto. Por isso, a configuração é por sistema e começa desligada.

Frameskip

Frameskip pode preservar a velocidade de emulação quando o hardware não acompanha o desenho. Ele também pode tornar o movimento irregular. No PPSSPP, o limite automático precisa respeitar jogos de 30 FPS para não derrubá-los indevidamente para 15 ou 10 FPS.

Cache e trabalho visível

Texturas usam cache limitado. Listas calculam o intervalo visível e evitam reconstruir tudo em cada quadro. Leituras de armazenamento e lançamento de processos ficam fora do renderer. Essa disciplina costuma valer mais do que uma otimização isolada.

Método de validação

  1. Grave versão, aparelho, sistema, núcleo e conteúdo de teste.
  2. Registre FPS, frametime, áudio, temperatura e duração da sessão.
  3. Altere um único recurso atrás de uma flag.
  4. Repita a mesma sequência e compare a distribuição, não apenas a média.
  5. Confirme entrada, áudio, retorno ao launcher e restauração do estado anterior.
  6. Mantenha rollback simples.

Um ganho sem repetição, sem alvo identificado ou sem teste físico continua sendo hipótese.

Referências oficiais