-
released this
2026-08-13 20:08:25 +00:00 | 0 commits to master since this releaseEnglish
Fixed: the crash when changing the resolution scale during a game
The previous release warned you about this, changing the scale while a game was running could take the graphics driver down with it. That warning is lifted.
The cause was not the value being written, it was the order. Changing the scale rebuilds every render target, while frame generation is still holding resources declared with the old dimensions, and it only finds out at the next frame it presents. When the rebuild takes longer than one frame, there is no presentation in between, frame generation is never told, a synchronisation object is left unsignalled, and the driver resets the GPU about two seconds later. That is why it felt random, everything depended on the instant you clicked.
Those two parallel paths are now a single sequence. The new scale is held back, frame generation is stopped first, and the scale is applied only once that is done. Tested over six minutes with frame generation on and eighteen scale changes back and forth across every step, no crash, no driver reset, and none of the early warning signs that used to show up one second before the failure.
Fixed: the picture drifting with the camera at rest, and the ground losing sharpness while walking
When you touched nothing, the image could still drift slightly. And while walking, the ground was less sharp than it should have been.
Both came from the same place. The calculation that places each pixel from one frame to the next chained two matrix multiplications in single precision, with a division in the middle by a value that becomes tiny on distant points. It produced motion where the camera had not moved by a single bit, a fifth of a pixel at mid distance and up to two pixels far away. Measured with rigorously identical matrices, the output should have been zero, and it was not.
The calculation is now a single multiplication, prepared in double precision. With the camera strictly still, the result is exactly zero. Verified by eye and by measurement on five games across four different engines.
Fixed: ghosting and stretched scenery
On some games the scenery stretched while moving, and ghost images settled in without ever clearing up.
When an engine writes several valid cameras within the same frame, the queue saturates and ends up delivering a camera two frames old, alternating between two values. The result is a stable stretch that sets in and never leaves. At every presentation, the queue now advances to the most recent camera.
Improved: the shaking of a character followed by the camera
A character the camera follows stays almost still on screen while the whole world scrolls behind him. Frame generation took the spikes in the motion field at face value and deformed the character in alternation.
Those spikes are now tamed, with a ceiling and a floor, without changing anything of what image reconstruction receives. The shaking is strongly reduced. Some of it remains on the top of the head and on what the character carries on his back, and work on that continues.
Improved: the resolution slider stays inside the chosen mode
The preset chosen in the menu is in charge, and the slider now picks a step inside that mode, from the first to the fourth, without ever spilling over into the neighbouring mode. Before, a fast mode pushed to its maximum could render almost as many pixels as your screen, under a label that promised the opposite.
The twelve steps of the three modes were checked one by one. They meet to the pixel without overlapping. DLAA is not affected, it keeps working at the resolution the game draws by itself.
Fixed: camera search, several games that got nothing from motion reconstruction now benefit from it
Some games never found their camera, and the whole chain stayed idle without saying so. Four distinct causes were fixed: games that draw through a path we were not watching, games that store their camera in a late slot the search never reached, games whose camera is mathematically unusable and was elected anyway, and games that release their buffers along the way, which cut reconstruction off for the rest of the session.
Several games that would not latch on now do, verified game by game.
Fixed: the picture stretched when switching to fullscreen
Switching to fullscreen while a game was running could leave the picture stretched, when the output size changed mid session. The chain now follows that change instead of keeping the old size.
Removed: a settings checkbox that no longer controlled anything
The advanced motion stack checkbox had no effect any more, since the settings it used to enable became permanent. Its text promised features that were already active, so it was removed rather than left to mislead.
Fixed: startup with the
--pptccommand line optionThe emulator refused to start when launched with that option, because of a type error in the original code, the option was read as an enumeration when it is a simple yes or no. The defect came from the base emulator and is fixed here. It only concerns people who launch from a shortcut or a script.
Improved: logs are quiet again
Diagnostic counters were writing dozens of lines per minute while you played. They only served development. The log now keeps what tells you what is active on your machine, and the volume is five times smaller.
A word about Xenoblade Chronicles 2
On this game, raising the internal scale beyond the first step brings out thin bright lines on surfaces and along the edges of the picture when the camera turns. The threshold is sharp and reproducible. The first step, which is exactly the value recommended for the mode, is clean. If you see those lines on this game, bring the slider down one step.
Requirements
DLSS in all its modes, DLAA, Quality, Balanced and Performance, needs an NVIDIA RTX card, series 20 or newer. Frame Generation needs a series 40 or 50. Without an RTX card, NIS is included in this fork and runs on any GPU.
The DLSS engine files are not in the package, they are NVIDIA proprietary files.
Français
Corrigé : le plantage quand on change la résolution en cours de partie
La version précédente vous mettait en garde là-dessus, changer l'échelle pendant qu'un jeu tournait pouvait emporter le pilote graphique. Cet avertissement est levé.
La cause n'était pas la valeur écrite, c'était l'ordre des opérations. Changer l'échelle reconstruit toutes les cibles de rendu, pendant que la génération d'images tient encore des ressources déclarées avec les anciennes dimensions, et elle ne l'apprend qu'à l'image suivante qu'elle présente. Quand la reconstruction dure plus d'une image, il n'y a pas de présentation entre les deux, la génération d'images n'est jamais prévenue, un objet de synchronisation reste sans signal, et le pilote réinitialise la carte deux secondes plus tard. C'est pour ça que ça semblait arriver au hasard, tout dépendait de l'instant du clic.
Les deux chemins parallèles sont devenus une seule séquence. La nouvelle échelle est mise en attente, la génération d'images est coupée d'abord, et l'échelle n'est appliquée qu'une fois la coupure faite. Testé sur six minutes avec la génération d'images allumée et dix-huit changements d'échelle dans tous les sens, aucun plantage, aucune réinitialisation du pilote, et aucun des signes précurseurs qui apparaissaient une seconde avant la panne.
Corrigé : l'image qui glissait caméra immobile, et le sol qui perdait sa netteté en marchant
Quand vous ne touchiez à rien, l'image pouvait dériver légèrement. Et en marchant, le sol devenait moins net qu'il n'aurait dû.
Les deux venaient du même endroit. Le calcul qui replace chaque pixel d'une image à l'autre enchaînait deux multiplications de matrices en précision simple, avec au milieu une division par une valeur qui devient minuscule sur les points lointains. Il en sortait du mouvement là où la caméra n'avait pas bougé d'un seul bit, un cinquième de pixel à mi-distance et jusqu'à deux pixels au loin. Mesuré avec des matrices rigoureusement identiques, la sortie aurait dû être zéro, elle ne l'était pas.
Le calcul se fait maintenant en une seule multiplication, préparée en double précision. Caméra strictement immobile, le résultat est zéro exact. Vérifié à l'œil et à la mesure sur cinq jeux et quatre moteurs différents.
Corrigé : les images fantômes et l'étirement du décor
Sur certains jeux, le décor s'étirait en mouvement et des images fantômes s'installaient sans jamais se résorber.
Quand un moteur écrit plusieurs caméras valides dans la même image, la file d'attente sature et finit par livrer une caméra vieille de deux images, qui alterne entre deux valeurs. Le résultat est un étirement stable, qui s'installe et ne part plus. À chaque présentation, la file défile maintenant jusqu'à la caméra la plus récente.
Amélioré : le tremblement du personnage suivi par la caméra
Un personnage que la caméra suit reste presque immobile à l'écran, alors que tout le décor défile derrière lui. La génération d'images croyait sur parole les pointes du champ de mouvement et déformait le personnage en alternance.
Ces pointes sont maintenant apprivoisées, avec un plafond et un plancher, sans rien changer à ce que reçoit la reconstruction d'image. Le tremblement est fortement réduit. Il en subsiste un peu sur le dessus de la tête et sur ce que le personnage porte dans le dos, et le travail se poursuit là-dessus.
Amélioré : le curseur de résolution reste dans le mode choisi
Le preset choisi dans le menu commande, et le curseur choisit maintenant un échelon à l'intérieur de ce mode, du premier au quatrième cran, sans jamais déborder sur le mode voisin. Auparavant, un mode rapide poussé au maximum pouvait rendre presque autant de pixels que votre écran, sous une étiquette qui promettait le contraire.
Les douze crans des trois modes ont été vérifiés un par un. Ils se touchent au pixel près sans se chevaucher. DLAA n'est pas concerné, il continue de travailler à la résolution que le jeu dessine lui-même.
Corrigé : la recherche de caméra, plusieurs jeux qui n'en profitaient pas en profitent maintenant
Certains jeux ne trouvaient jamais leur caméra, et toute la chaîne restait inactive sans le dire. Quatre causes distinctes ont été corrigées : les jeux qui dessinent par un chemin que nous ne regardions pas, ceux qui rangent leur caméra dans un emplacement tardif que la recherche n'atteignait jamais, ceux dont la caméra est mathématiquement inutilisable et se faisait quand même élire, et ceux qui libèrent leurs tampons en cours de route, ce qui coupait la reconstruction pour le reste de la partie.
Plusieurs jeux qui n'accrochaient pas accrochent désormais, vérifié jeu par jeu.
Corrigé : l'image étirée au passage en plein écran
Passer en plein écran pendant qu'un jeu tournait pouvait laisser l'image étirée, quand la taille de sortie changeait en cours de partie. La chaîne suit maintenant ce changement au lieu de garder l'ancienne taille.
Retiré : une case des réglages qui ne commandait plus rien
La case de la pile de mouvement avancée n'avait plus d'effet depuis que les réglages qu'elle activait sont devenus permanents. Son texte promettait des fonctions déjà actives, elle a été retirée pour ne pas induire en erreur.
Corrigé : le démarrage avec l'option
--pptcL'émulateur refusait de démarrer quand on le lançait avec cette option en ligne de commande, à cause d'une erreur de type dans le code d'origine, l'option était lue comme une énumération alors que c'est un simple oui ou non. Le défaut venait de l'émulateur de base, il est corrigé ici. Ça ne concerne que ceux qui lancent depuis un raccourci ou un script.
Amélioré : les journaux sont redevenus discrets
Des compteurs de diagnostic écrivaient des dizaines de lignes par minute pendant que vous jouiez. Ils ne servaient qu'au développement. Le journal ne garde plus que ce qui dit ce qui est actif chez vous, et le volume a été divisé par cinq.
Un mot sur Xenoblade Chronicles 2
Sur ce jeu, monter l'échelle interne au-delà du premier cran fait apparaître de fines lignes claires sur les surfaces et sur les bords de l'image quand la caméra tourne. Le seuil est net et il est reproductible. Le premier cran, qui correspond exactement à la valeur recommandée pour le mode, est propre. Si vous voyez ces lignes sur ce jeu, redescendez le curseur d'un cran.
Prérequis
DLSS dans tous ses modes, DLAA, Qualité, Équilibré et Performance, demande une carte NVIDIA RTX, série 20 ou plus récente. La génération d'images demande une série 40 ou 50. Sans carte RTX, NIS est inclus dans ce fork et fonctionne sur n'importe quelle carte.
Les fichiers du moteur DLSS ne sont pas dans le paquet, ce sont des fichiers propriétaires de NVIDIA.
Downloads