web-dev-qa-db-fra.com

Comment Windows Aero empêche-t-il les déchirures d'écran?

Lorsque Windows Aero est activé, l'écran ne se déchire pas, contrairement à l'utilisation du thème Basique sans Aero.

Pourquoi, cependant, les jeux avec la synchronisation verticale semblent-ils avoir un retard d’entrée beaucoup plus important que lorsqu’on fait quelque chose sur le bureau? Il semble même que la synchronisation de jeux fenêtrés avec V-sync off soit meilleure qu’elle ne le serait si ils utilisaient la méthode intégrée au jeu.

Pourquoi et comment cela se produit-il ou semble-t-il se produire?

14
Jason Powers Murray

En réalité, la raison pour laquelle Aero peut éviter les déchirures sans avoir à forcer VSYNC dans une application est qu'il s'agit d'un gestionnaire de fenêtre de composition. Il dessine le bureau et toutes les fenêtres de manière asynchrone par rapport à toute application en cours d'exécution.

C’est-à-dire que lorsque vous activez la composition dans Windows Vista/7 (il est toujours activé dans Windows 8), il dessine toutes les fenêtres à l'aide d'une copie de la dernière image qui a été permutée de l'arrière vers l'avant. Le compositeur (Microsoft appelle cela DWM, Desktop Window Manager) compose tout avec VSYNC activé, et parce qu'il dessine à l'aide d'une copie du dernier entièrement échangé = image tampon avant pour chaque fenêtre, les images partiellement dessinées ne sont jamais affichées. Cependant, il a malheureusement pour effet secondaire d'empêcher le bon fonctionnement de logiciels vraiment anciens conçus pour puiser dans la mémoire tampon avant - mais les logiciels modernes ne le font pas.

En résumé, le DWM ajoute une couche supplémentaire de protection contre les déchirures. Une solution qui permettra à toute application exécutée sur le système d’atteindre une vitesse indépendamment de la vitesse de rafraîchissement de l’affichage, tout en évitant les déchirures. Sur un tel système, en mode fenêtré, la seule chose qui permet d'activer VSYNCdans OpenGL ou Direct3D est de limiter réellement l'utilisation du processeur/du GPU.

C’est la raison pour laquelle VSYNC adaptive a été créé. L’idée n’est donc pas de pénaliser les applications qui ne peuvent pas maintenir le taux de rafraîchissement de l’affichage en les forçant dans un facteur inférieur du taux de rafraîchissement (par exemple, 60 Hz -> 30, 20). , 15, 10, 12, 6, 5, 4, 3, 2, 1) mais pour limiter les applications qui dessinent plus rapidement que le moniteur peut afficher des images en utilisant une quantité excessive de puissance CPU/GPU.

8
Andon M. Coleman

Lorsque Aero est activé, le Desktop Window Manager utilise double buffering :

La fonctionnalité Windows Aero utilise intensivement le double tampon pour dessiner à l'écran.

Source

Wikipedia dit ceci sur la façon dont cela est utilisé avec V-sync pour éviter le déchirement de l'écran:

Pendant l'intervalle de suppression verticale, le pilote demande à la carte vidéo soit de copier rapidement la zone graphique hors écran dans la zone d'affichage active (double mise en mémoire tampon), soit de traiter les deux zones mémoire comme pouvant être affichées, et simplement de basculer entre elles (page retournement).

5
bwDraco

La double mise en tampon + synchro V entraîne l’absence de déchirement. Aero utilise cette configuration.

3
DeepSpace101

DWM (la technologie qui permet l’effet Aero) rend tout sur votre écran sous forme de surface D3D (ce qui permet à la vidéo de continuer à jouer sur Flip). Cette technique de rendu empêche automatiquement déchirure , bien que la méthode de jeu doive être meilleure que la méthode DWM générique (c'est son propre moteur, après tout). Il est donc probable que la méthode de jeu ne soit pas très bonne au départ ou qu'elle n'ait pas été optimisée pour votre configuration.

2
Martheen Cahya Paulo