Como o Windows Aero impede o rasgo da tela?

14

Quando o Windows Aero está ativado, não há nenhum rasgo na tela, em vez de usar o tema Básico sem o Aero.

Por que, porém, os jogos com sincronização vertical parecem ter um atraso de entrada muito maior do que ao fazer algo na área de trabalho? Parece mesmo sincronizar os jogos em janelas com a V-sync desligada, melhor do que se estivessem usando qualquer método embutido no jogo.

Por que e como isso acontece ou parece acontecer?

    
por Jason Powers Murray 27.02.2013 / 03:38

4 respostas

8

Na verdade, o motivo pelo qual o Aero pode impedir o rasgo sem ter que forçar o VSYNC em um aplicativo é porque ele é um gerenciador de janelas de composição. Ele desenha a área de trabalho e todas as janelas de forma assíncrona em relação a qualquer aplicativo em execução.

Isto é, quando você ativa a composição no Windows Vista / 7 (é sempre habilitado no Windows 8), ele desenha todas as janelas usando um cópia da última imagem que foi trocada de trás para frente. O compositor (a Microsoft chama de DWM, Desktop Window Manager ) compõe tudo com o VSYNC ativado, e porque ele desenha usando uma cópia da última imagem do buffer frontal totalmente trocado para cada janela nunca exibe quadros parcialmente desenhados. No entanto, ele tem um efeito colateral infeliz de impedir que softwares realmente antigos que foram projetados para serem usados no buffer frontal funcionem corretamente - mas o software moderno não faz isso.

Em suma, o DWM adiciona uma camada adicional de proteção contra o rasgo. Um que permitirá que qualquer aplicativo em execução no sistema desenhe em uma taxa, independentemente da taxa de atualização da exibição e ainda evite a distorção. Em tal sistema, em modo de janela, a única coisa que habilita o VSYNC em OpenGL ou Direct3D é realmente limitar a utilização de CPU / GPU.

É por isso que o VSYNC adaptativo foi criado, a idéia não é penalizar aplicativos que não podem sustentar a taxa de atualização da tela forçando-os a um fator menor da taxa de atualização (por exemplo, 60 Hz - > 30, 20, 15 , 10, 12, 6, 5, 4, 3, 2, 1), mas para limitar os aplicativos que estão desenhando mais rápido do que o monitor pode exibir imagens usando uma quantidade excessiva de energia da CPU / GPU.

    
por 05.12.2013 / 00:06
5

Com o Aero ativado, o Gerenciador de janelas da área de trabalho usa buffer duplo :

The Windows Aero feature makes extensive use of double buffering to draw on the screen.

Origem

Wikipedia tem isto a dizer sobre como isso é usado com a V-sync para evitar o rasgo da tela:

During the vertical blanking interval, the driver orders the video card to either rapidly copy the off-screen graphics area into the active display area (double buffering), or treat both memory areas as displayable, and simply switch back and forth between them (page flipping).

    
por 27.02.2013 / 04:22
3

Buffer duplo + V-sync nos resultados sem rasgo. Aero usa essa configuração.

    
por 27.02.2013 / 06:04
2

O DWM (a tecnologia que ativa o efeito Aero) renderiza tudo na tela como uma superfície D3D (que possibilita que o vídeo continue sendo reproduzido no Flip). Essa técnica de renderização impede automaticamente o rasgar , embora o método do jogo deva ser melhor do que o método DWM genérico (afinal, é seu próprio mecanismo). Portanto, é provável que o método do jogo não seja tão bom em primeiro lugar ou não tenha sido otimizado para sua configuração.

    
por 27.02.2013 / 04:11