Comment Windows Aero empêche-t-il le déchirement de l'écran?

14

Lorsque Windows Aero est activé, il n'y a pas de déchirement d'écran, contrairement à l'utilisation du thème de base sans Aero.

Pourquoi, cependant, les jeux avec synchronisation verticale semblent-ils avoir un décalage d'entrée beaucoup plus important que lorsqu'ils font quelque chose sur le bureau? Il semble même synchroniser les jeux avec fenêtres avec V-sync désactivé, mieux qu'ils ne le seraient s'ils utilisaient la méthode intégrée au jeu.

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

Jason Powers Murray
la source

Réponses:

8

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

Autrement dit, lorsque vous activez le compositing dans Windows Vista / 7 (il est toujours activé dans Windows 8), il dessinera toutes les fenêtres en utilisant une copie de la dernière image qui a été permutée d'arrière en avant. Le compositeur (Microsoft l'appelle DWM, Desktop Window Manager ) compose tout avec VSYNC activé, et parce qu'il dessine en utilisant une copie de la dernière image tampon avant entièrement permutée pour chaque fenêtre, il n'affiche jamais les images partiellement dessinées. Cependant, cela a un effet secondaire malheureux d'empêcher les logiciels vraiment anciens qui ont été conçus pour être utilisés exclusivement dans le tampon avant de fonctionner correctement - mais les logiciels modernes ne le font pas.

En un mot, le DWM ajoute une couche supplémentaire de protection contre les déchirures. Celui qui permettra à toute application en cours d'exécution sur le système de dessiner à un taux quel que soit le taux de rafraîchissement de l'écran tout en empêchant les déchirures. Sur un tel système, en mode fenêtré, la seule chose qui permet d'activer VSYNC dans OpenGL ou Direct3D est en fait de réduire l'utilisation du CPU / GPU.

C'est pourquoi VSYNC adaptatif a été créé, l'idée qu'il n'y a pas pour pénaliser les applications qui ne peuvent pas soutenir le taux de rafraîchissement de l'écran en les forçant à 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 à partir d'une quantité excessive de puissance CPU / GPU.

Andon M. Coleman
la source
5

Avec Aero activé, le gestionnaire de fenêtres de bureau utilise une double mise en mémoire tampon :

La fonctionnalité Windows Aero utilise largement la double mise en mémoire tampon pour dessiner sur l'écran.

La source

Wikipedia a ceci à dire sur la façon dont cela est utilisé avec V-sync pour empêcher le déchirement de l'écran:

Pendant l'intervalle de suppression verticale, le pilote ordonne à la carte vidéo de copier rapidement la zone graphique hors écran dans la zone d'affichage active (double tampon), ou de traiter les deux zones de mémoire comme affichables, et de simplement basculer entre elles (page retournement).

bwDraco
la source
6
La double mise en mémoire tampon n'empêche pas la déchirure, elle empêche l'utilisateur de voir les choses en cours de rendu. Si vous avez un double tampon et que vous effectuez un basculement de page au milieu d'un rafraîchissement d'écran, vous obtenez toujours la déchirure.
Wyzard
Bien sûr, vous pouvez toujours vous déchirer si vous faites mal la double mise en mémoire tampon, mais le fait est que DB peut être utilisé pour empêcher la déchirure.
nitro2k01
3

Le double tampon + V-sync sur n'entraîne aucune déchirure. Aero utilise cette configuration.

DeepSpace101
la source
2

DWM (la technologie qui permet l'effet Aero) rend tout dans votre écran comme une surface D3D (ce qui permet à la vidéo de continuer à jouer sur Flip). Cette technique de rendu empêche automatiquement la déchirure , bien que la méthode de jeu devrait être meilleure que la méthode DWM générique (c'est leur propre moteur, après tout). Il est donc probable que la méthode de jeu n'est pas si bonne en premier lieu, ou qu'elle n'a pas été optimisée pour votre configuration.

Martheen Cahya Paulo
la source
2
En soi, l'utilisation de Direct3D n'empêche pas le déchirement de l'écran. C'est un double tampon.
bwDraco