Como o motor funciona
O OLED Guard Pro não é um protetor de tela. É um pipeline de vídeo em tempo real, residente na GPU, que roda a cada frame, em cada tela conectada, enquanto você usa o seu computador. Esta página é o tour técnico.
O pipeline de quatro estágios
1. Captura — Windows Graphics Capture / Desktop Duplication
O Windows inclui duas APIs que entregam um handle de textura na GPU daquilo que o DWM está compondo para uma determinada tela: Windows Graphics Capture (WGC) e DXGI Desktop Duplication. O OLED Guard suporta as duas. A configuração Método de captura escolhe entre Auto, WGC ou Desktop Duplication. Auto prefere Desktop Duplication, o caminho padrão de menor sobrecarga, mas pode recorrer ao WGC no Windows 11 se Desktop Duplication não iniciar. Você também pode selecionar WGC explicitamente quando Desktop Duplication falha em um jogo ou configuração específica. De qualquer forma, as propriedades das quais dependemos se mantêm:
- A captura roda na GPU. O frame buffer nunca sai da memória de vídeo.
- As duas APIs funcionam dentro de jogos em tela cheia sem bordas (que é o modo no qual a maioria dos jogadores de fato joga). Abordagens mais antigas como BitBlt ou PrintWindow não funcionam.
- HDR, múltiplos monitores e telas de alta taxa de atualização são suportados sem que precisemos fazer nada de especial.
Se o driver gráfico for redefinido no meio da sessão ou a captura morrer, o motor percebe e reinicia o pipeline de forma limpa em vez de parar silenciosamente.
2. Modelo — shader de exposição por pixel
Um pixel shader processa cada frame capturado em resolução nativa. Para cada pixel, ele calcula:
luminance = dot(pixelRGB, vec3(0.2126, 0.7152, 0.0722));
delta = luminance * frameTime;
exposure[p] = exposure[p] + delta;
Duas passagens paralelas também rodam:
- Envelope de movimento. Um filtro temporal passa-alta de baixo custo: o quanto este pixel mudou nos últimos N frames? Pixels com muito movimento têm sua exposição decaída mais rápido, porque conteúdo em movimento não concentra o envelhecimento.
- Detector de estabilidade. Um filtro passa-baixa sobre o envelope de movimento: pixels cujo valor permaneceu estável por muitos frames são marcados como “estáticos” e se tornam candidatos à proteção.
O histograma de exposição fica com buffer duplo na memória da GPU. Não há leitura de volta para a CPU no caminho crítico.
3. Apresentação: transformar o risco em um campo contínuo
O modelo de exposição diz onde o desgaste do painel está se formando. O estágio de apresentação decide como esse risco de fato aparece na tela. Na v5, isso é um único campo contínuo em vez de uma pilha de passes de camada de proteção separados. Ele é construído a partir de dois campos temporais de baixa resolução:
- Ocupação responde "há conteúdo protegível de forma persistente aqui?", então um breve flash brilhante não dispara o escurecimento.
- Intensidade responde "quanta proteção o modelo de risco quer aqui?".
A atenuação visível é o produto desses dois campos, moldada por modificadores em ordem explícita: um núcleo de segurança imediato para picos reais de alto risco, o piso de HUD aprendido do Game IQ, um período de tolerância estático, retângulos de exclusão e uma ponderação de borda em vinheta opcional. A aparência final pode ser Fine Grain, uma textura sutil e móvel de ruído azul, ou Smooth, um acabamento uniforme sem textura. Ambos têm a mesma atenuação média e não mudam a detecção, a responsividade nem a intensidade da proteção. Como a apresentação é mantida separada do histórico, o conteúdo em movimento pode liberar a atenuação obsoleta sem apagar a exposição que o painel realmente acumulou.
No modo de controle de predefinições Manual, você escolhe a predefinição e a intensidade. Com o Autopilot, o controlador lê a classificação ao vivo do sinal (trabalho, jogo, vídeo, ocioso), o envelope de movimento por pixel e o traço de dinamismo, e adapta a predefinição e a responsividade. A Intensity global e o acabamento Fine Grain/Smooth continuam sob o seu controle. Você pode acompanhar a classificação no indicador Avançado > Live Classifier.
4. Composição — alfa pré-multiplicado do DWM
Um segundo shader renderiza a camada de proteção escolhida em uma janela transparente sempre no topo. O Desktop Window Manager compõe essa janela sobre a sua área de trabalho usando alfa pré-multiplicado — o mesmo caminho que ele usa para as próprias animações do Windows’. É por isso que a camada de proteção funciona corretamente em:
- modos SDR e HDR,
- jogos em tela cheia sem bordas,
- telas de taxa de atualização variável (G-Sync / FreeSync),
- configurações com múltiplos monitores,
- configurações de DPI misto.
O DWM é quem faz a mesclagem de verdade. Nós apenas fornecemos um frame.
Por tela, em paralelo
Cada tela conectada roda a sua própria cópia do pipeline. Elas não compartilham estado. Uma troca de monitor, uma conexão a quente, uma mudança de resolução — o motor percebe, descarta o pipeline afetado e o reconstrói sem perturbar os demais.
O que roda na CPU
A CPU faz:
- A compilação dos shaders na inicialização,
- as predefinições, a configuração e a interface em React,
- o monitoramento da janela em primeiro plano para os perfis de aplicativo,
- os comandos DDC/CI quando você muda o brilho pelo aplicativo.
A CPU não vê o conteúdo da sua tela. Os frames permanecem na memória da GPU o tempo todo.
Orçamento de desempenho
Uma medição representativa a 1440p / 144 Hz em uma GPU de médio porte:
| Estágio | Custo por frame |
|---|---|
| Captura | ~ 0,4 ms |
| Modelo | ~ 0,3 ms |
| Composição | ~ 0,5 ms |
| Total | ~ 1,2 ms |
Isso é 7% de um orçamento de 16,6 ms / 60 Hz, mas roda do lado da GPU em vez de bloquear o caminho de renderização do seu jogo, então o impacto em tempo real nos benchmarks costuma ficar abaixo de 1%. Resoluções mais altas, taxas de atualização mais altas e GPUs mais fracas escalam o custo; o formato relativo permanece o mesmo.
O que foi deliberadamente deixado de fora
Algumas decisões de projeto que revalidamos mais de uma vez:
- Sem modelo de risco baseado em células. Uma camada de proteção que raciocinava sobre blocos de 32 × 32 foi prototipada e abandonada. A modelagem por pixel é mais honesta quanto à física; os blocos rígidos produziam artefatos em escada nos limites do conteúdo. O campo de apresentação da v5 é de baixa resolução de propósito, mas é continuamente suavizado e mesclado com crossfade, então ele nunca forma escada como aqueles blocos rígidos formavam, e o modelo de risco por baixo permanece por pixel.
- Sem heurísticas de burn-in do lado da CPU. O motor não tenta reconhecer “isto é uma barra lateral do Discord” ou “isto é um logotipo do YouTube”. O reconhecimento é frágil e envelhece mal. A exposição é a grandeza física universal.
- Sem pipeline de telemetria. Os histogramas por pixel nunca saem da sua máquina. Não temos servidores que os recebam, por design.
Se você quiser ver o motor em ação, a página do Motor avançado no aplicativo de desktop expõe o classificador ao vivo, os traços do autocontrolador por parâmetro e a faixa de sinais ao vivo a 60 Hz.