Réduction de la rémanence des écrans LCD [ Remanence LCD ] - Ecran - Hardware - Périphériques
Marsh Posté le 07-06-2004 à 11:53:49
si je comprend bien ca change un peut le contraste et diminu le fps, si on fait pareil a la main ca donne le meme resultat sur les autres ecrans non ?
Marsh Posté le 07-06-2004 à 12:02:19
starmindfr> cela réduit un peu le contraste, c'est vrai, mais c'est très léger. Mais seul un script peut améliorer vraiment le résultat puisque il faut modifier dynamiquement l'image afin de la pré-compenser pour contrer les effets de rémanence des écrans LCD : On travaille sur les transitions foncées=>claires.
On peut annuler l'agissement sur le contraste de l'image en modifiant les lignes suivantes :
MAD diffFramesPixel, diffFramesPixel, aghostFactor, blackValue; |
par
MAD oColor, diffFramesPixel, aghostFactor, thisFramesPixel; |
Cela permettra d'avoir un contraste maximal et améliorera les performances.
Marsh Posté le 07-06-2004 à 14:03:47
Voici la suite des tests réalisés sur une autre machine :
- AthlonXP 2800+ 1Go
- Radeon 9600 128Mo
- Catalyst 4.4
- Réglages 3D par défaut du Catalyst
- Réglages réduits dans Quake3
- 1024x768x32
Sans le Script :
103.3 FPS
Avec le Script (ou sa variante) :
47.1 FPS
J'ai enlevé 3 lignes du script et j'obtient toujours la même vitesse. Ce que me pousse à penser que c'est copie qui prend du temps.
Marsh Posté le 07-06-2004 à 14:20:27
Après quelques recherches, c'est la fonction TEX qui consomme le plus de temps...
Marsh Posté le 07-06-2004 à 21:05:04
J'ai fait un essai avec le script monochrome sur la RADEON 9600 128Mo : 74FPS...
Marsh Posté le 07-06-2004 à 21:20:45
Voici un test de la Radeon 9500...
http://www.pcinpact.com/articles/a/10/3.htm
et ici
http://www.tomshardware.fr/article [...] &NumPage=1
En voyant les tests avec les jeux utilisant les PixelShaders, je comprend mieux pourquoi c'est fortement ralenti...
Dommage que j'ai pas une carte vidéo plus récente et plus puissante. Si quelqu'un a une Radeon plus puissante...
Marsh Posté le 07-06-2004 à 22:38:00
christophe_d13 a écrit : |
J'ai une 9800 Pro...Mais pas encore de LCD...Tu me prètes ton écran ?
Marsh Posté le 07-06-2004 à 22:51:36
Tu as essayé le script ?
Je viens de voir un problème sur allocsurf. Je suis en train d'y travaillé. Mais si tu pouvais faire un bench via q3 (avec et sans), ce serait cool.
Merci.
Marsh Posté le 08-06-2004 à 08:17:12
Après de nombreuses recherches, il semblerait qu'il y ait un problème sur la gestion des pixel shader script ARB.
J'ai encore amélioré mon code, je posterais ce soir une version plus rapide.
Marsh Posté le 08-06-2004 à 09:36:54
odln a écrit : J'ai une 9800 Pro...Mais pas encore de LCD...Tu me prètes ton écran ? |
Bah non, j'ai pas de LCD ! C'est pour ça que je te demandais le tien J'ai pas réussi à avoir le 193P (2 commandes annulées pour cause indisponibilité) et me suis rabattu sur un LG en cours de livraison...
Marsh Posté le 08-06-2004 à 13:14:41
christophe_d13> et si jamais on n'est pas satisfait du résultat, comment on fait pour revenir en arrière ?
J'ai une 9600 Pro et un écran 19" Belinea alors ça m'interesse cette histoire mais j'ai pas envie de tout fouttre en l'air
Merci de la réponse
ps:
Citation : |
Comment se fait-il que l'on diminue la rémanence en diminuant le fps, j'ai du mal à saisir... qqn peut m'espliké ? merci
Marsh Posté le 08-06-2004 à 13:15:23
christophe_d13 a écrit : odln> Tu es d'où ? |
Région parisienne ! Je plaisantais pour le 193P...Ca faisait aussi office de petit up de sympathie et puis ton code m'intéresse. Dommage qaund même que ce soit un fps killer !Mon LG est arrivé aujourd'hui, donc je l'essaierai ce soir mais pas de dalle MVA pour lui, donc exit le code !...Sorry
Marsh Posté le 08-06-2004 à 14:41:40
Drapal
Ca a l'air interessant, mais je ne sais pas quel type de dalle j'ai sur mon LCD !
J'essayerais ce soir si j'ai le temps !
PS : j'ai un ecran LCD 15" Philips 150C et une radeon 9500 pro 128Mo
Marsh Posté le 08-06-2004 à 17:55:13
odln> Pas sûr...
Je pense que mon code doit donner de bon résultat sur une dalle classique mais il faut peut-être mettre "aghostFactor = { 0.3, 0.3, 0.3, 0.0 };"
Marsh Posté le 08-06-2004 à 19:16:38
Cela s'annoce de mieux en mieux...
Avec le nouveau script... Toujours R9500/AthlonXP/Quake3
sans le script 256,6 FPS |
Up> Je confirme le bug des SmartShader :
Il existe une fonction allocsurf pour l'allocation de surface, mais rien pour la libération, le transfert entre 2 exécutions...
J'ai oublié de dire...
En testant les SmartShader du pilote, cela marche parfaitement !
Par contre, les sources des SmartShader du pilote ont le même bug...
Il s'agit bien d'un bug des Catalyst 4.4, la désallocation étant automatique.
Je vais essayer le 4.5 ce soir.
Marsh Posté le 08-06-2004 à 20:00:01
Je continue... Voici un script qui ne travaille que sur la frame en cours - donc qui n'a pas le problème du bug des SmartShader.
Evidemment, il est beaucoup moins puissant...
Il augmente le noir vers une valeur plus claire et modifie le gamma de l'image.
Assez efficace sur un MVA/PVA. A tester sur les autres dalles.
shader lumaghostPixelShader = |
Ce Script est encore plus rapide...
Quake3/R9500/AthlonXP |
...Dommage qu'il ne soit pas aussi efficace que le premier.
Marsh Posté le 09-06-2004 à 22:44:33
Un petit lien pour tester la rémanence...
http://www.t45ol.com/play_flash.php?ID=575
Christophe_d13, peux tu me dire ce que cela donne avec ton 193P ( avec et sans ton code).
J'ai reçu mon LG et ça rémane boeuf dans ce jeu ( sorry, je n'ai pas eu le temps d'essayer ton script, il faut dire que je ne suis pas un spécialiste de la chose et que du temps me sera donc certainement nécessaire...)
Thks
Marsh Posté le 09-06-2004 à 23:17:16
Super ce petit jeu... Dommage qu'il ne marche pas en OpenGL... On ne peut pas sélectionner le moteur 3D.
Up> Pas d'openGL = Pas de test avec mes script.
Ceci dit, en remontant la luminosité, c'est un petit peu mieux.
Mais la traînée de la raquette reste importante.
Mon Hercules ProphetView 720 fait mieux, mais c'est plus flou.
Marsh Posté le 10-06-2004 à 07:54:21
Un petit up> je viens de tester le CATALYST 4.6
Ouhhhaaaaaa..... Y a plus rien qui marche !!!
Cela affiche n'importe quoi à l'écran et le bug d'allocation est toujours présent !!!
Marsh Posté le 10-06-2004 à 10:09:19
Un test mortel pour la rémanence : Billard GL (OpenGL)
http://www.tobias-nopper.de/BillardGL/download-en.html
Sur mon Bélinea, j'ai des trainées noires derrières les boules. J'ai pas encore testé le script.
Marsh Posté le 10-06-2004 à 12:59:44
christophe_d13 a écrit : Super ce petit jeu... Dommage qu'il ne marche pas en OpenGL... On ne peut pas sélectionner le moteur 3D. |
Ok, compris. Sur le LG, y a aussi de belles trainées noires + celle de la balle ( très légère celle là )
Marsh Posté le 10-06-2004 à 14:59:29
A l'inverse, le billard avec mon script en opengl donne de très résultats !
Marsh Posté le 11-06-2004 à 08:27:27
Si ça peut t'aider Christophe je dois recevoir une 9800Pro dans les jours qui viennent donc je pourrais bencher avec et sans ton code, j'en profiterai pour comprarer les différents drivers ati parce qu'il parait que les omega ont une option qui fait comme ton code ! ça te dis quelques chose ?
Par contre pour les applis D3D comment fait on sans ton code ?
Marsh Posté le 11-06-2004 à 09:30:15
J'ai jamais essayé les Omega... Je n'étais même pas au courant. J'ai mis au point mon script en rédigeant le test sur le 193P et je me suis apperçu que l'on pouvait logiciellement faire des améliorations (réduire le contraste, compenser le front montant...).
Pour D3D, pour l'instant tant qu'ATI ne fait pas une prise en charge des SmartShader utilisateur, ce n'est pas possible.
Up> Je viens d'aller sur Omega et j'ai rien trouvé. Peux-tu m'en dire plus ?
J'essayerai si j'ai le temps ce week-end d'installer le dernier Omega.
Marsh Posté le 11-06-2004 à 09:41:34
Perso jai ete decu par les Omega :
- Far Cry depuis les omega jai des freeze complets et des rechargement de texture
- eve online klk ecrans on eu des comportement etranges genre clipping
Par contre ct justement pour corriger des bugs visuels dans eve rapport aux derniers nvidia ca c corrigé mais globalement je pense y avoir perdu...
Marsh Posté le 11-06-2004 à 12:50:41
Ben pour les omegas pour l'instant tant ke g pas ma 9800pro j'pe pas tester par contre je me renseigne auprès de la personne qui m'a dit ça pour essayer d'en savoir plus...
Marsh Posté le 11-06-2004 à 19:14:07
Bon bah j'ai essayé le jeu de billard sur le 1920P avec et sans trop script et n'ai pas vraiment vu de différences. J'ai ptet merdé ...
La rémanence est dans les deux cas perceptible et en particulier sur certaines couleurs ( pour d'autres elle ne l'est pas ).
Perso, c'est mon premier LCD, la rémanence me donne mal à la tête donc droit de rétrataction, retour à l'expéditeur... Je vais devoir attendre les nouvelles dalles
Marsh Posté le 11-06-2004 à 23:16:15
odln> Tu peux essayé le second script (lumaghost) pour savoir s'il est bien actif (l'image est beaucoup plus claire).
En effet, j'ai remarqué que certains CATALYST n'appréciaient pas psscontrol. Donc parfois j'ai cru que mon script était foireux alors qu'il n'était même pas actif.
Enfin, si tu remontes le niveau de noir en poussant la luminosité au max, la rémanence est-elle la même ?
Marsh Posté le 11-06-2004 à 23:32:50
odln perso v tester le philips 190s5c si le stock c pas evaporé lundi (zen on vendu presque 10 rien que ce vendredi... sur le papier il est +rapide que le 1920p vu que c une techno de dale moin zolie mais + speed
Marsh Posté le 12-06-2004 à 10:23:07
Christophe_d13> Ok, je vais essayer aujourd'hui, j'ai les Catalyst 4.5...
Starmindfr> Je vais bien sûr suivre tes impressions sur le Philips !
J'attends de voir comment se passe le retour du mien, je le "sens" moyen, on verra bien comment se passe le remboursement. Ce qui est con, c'est que l'image statique est vraiment sublime...
Marsh Posté le 12-06-2004 à 10:33:50
odln> Je n'ai pas essayé les 4.5.
Je les ai développé sur les 4.4 et je sais que sur les 4.6, ça ne marche pas (aucun d'ailleurs).
Quasiment tout le problème des LCD : Des images statiques douces et reposantes et des images en mouvement fatiguantes...
Marsh Posté le 12-06-2004 à 12:38:50
Lumaghost marche nickel avec les 4.5 et l'image est super belle ! Y a toujours pas mal de rémanence cependant... Un peu gommeé par la "lumière", un tout petit peu...
Marsh Posté le 12-06-2004 à 18:31:38
Ben aghost comme dit dans mon post précédent, je ne vois pas de grosse grosse différence. J'ai un fichier " SmartShaderErrorLog.txt" qui s'est créé. Il est vide, mais cela veut il dire que ça merdoit ?
Marsh Posté le 12-06-2004 à 18:47:37
Non, cela veut dire qu'il fonctionne correctement. OK.
Dans le fichier aghost, tu peux modifier la ligne suivante :
PARAM aghostFactor = { 0.45, 0.45, 0.45, 0.0 };
à la place de 0.45, essaye des valeurs plus élevées progressivement (0.50, 0.60, 0.70...) pour voir s'il y a une différence (surtout dans les traînés du noir).
Enfin il y a le niveau du noir.
PARAM blackValue = { 0.02, 0.02, 0.02, 0.0 };
En mettant 0.03, 0.04 ou 0.05, cela rend le noir un peu gris mais réduit la rémanence (comme lumaghost).
Si ton noir est trop profond, commence avec blackValue (pour avoir un noir convenable mais pas trop foncé) puis avec aghostFactor.
Marsh Posté le 12-06-2004 à 21:49:06
Bon ben avec 0.45, ça atténue boeuf la rémanence ! Trop fort .
Mais ça divise aussi par 2 les FPS...
Je garde ton script pour mon futur LCD, en espérant qu'il ne pe servira à rien puisque je vais essayer de faire en sorte que le prochain ne rémane pas trop...
Marsh Posté le 12-06-2004 à 23:40:52
Hélas oui, ça réduit les FPS... PixelShader oblige.
Pourtant mon script pourrait passer par une LUT et être plus rapide mais actuellement il faudrait passer par le CPU et cela ne serait pas forcément plus rapide :
- Copie VidéoRAM vers LocalRAM (le mode Read de la vram est très lent pour le CPU).
- Traîtement CPU
- Copie LocalRAM vers VidéoRAM
Les deux dernières étapes seraient assez rapides (tout en pouvant être regroupées tout comme la première)... Une vingtaine de cycles pour le CPU par pixel. Cela occuperait sur un CPU à 2GHz en 1280x1024 environ 13ms. C'est beaucoup, mais c'est parce qu'il faut travailler sur plus de 5Mo et ce n'est pas dans la mémoire cache.
On peut dés lors considérer qu'actuellement le PixelShader constitue une très bonne alternative. Il faudrait que le filtre soit implémenter directement dans les pilotes pour aller plus vite.
Marsh Posté le 07-06-2004 à 11:45:39
Reprise des informations postées sur le Samsung 193P
Attention, ce premier post correspond toujours à la dernière version de aghost.pss
Les textes qui suivent peuvent ne plus trop concorder...
Voici donc le Script PixelShader pour réduire la rémanence des écrans LCD et surtout ceux équipés de dalle MVA/PVA dont le 193P. Je vous laisse seul juge du résultat, mais moi, je ne peux plus m'en passer.
Pour être le plus large possible, si vous avez des traînées (surtout sur le noir), ce script est fait pour vous !
Je n'ai qu'une Radeon 9500 64Mo donc je ne sais pas s'il peut fonctionner sur une GeForce... (et comment...)
Il fonctionne correctement avec CATALYST 4.4 (mis à par le bug allocsurf toujours pas corrigé par ATI).
J'ai testé la version 4.6, il n'y a plus rien qui marche correctement (il est possible qu'il faille une autre version de psscontrol2 ou que le 4.6 bugue complètement !).
Marche à suivre
- Avec Notepad, copiez-y le code ci-dessous et sauver le fichier avec le nom aghost.pss
- Téléchargez le programme ci-dessous, dezipper le programme psscontrol2.exe et lancez-le.
http://www.beyond3d.com/downloads/ [...] ntrol2.zip
- Sélectionnez le fichier aghost.pss.
Le script est maintenant actif pour les jeux OpenGL.
shader aghostPixelShader =
"!!ARBfp1.0
# *********************************************************************
# TFT LCD Anti-ghost OpenGL ARB Pixel Shader 1.2 Script
# (c) Blade / Christophe Gossa 2004
# All rights reserved.
#
# Specialy done for Samsung 193P and MVA/PVA but works with common LCD
# Speed is 7 or 8 instructions slot...
#
# Use this script for personnal use only !
# Commercial, onload, or other using is not allowed without approval.
# *********************************************************************
# **********************************************
# Ideal value for MVA/PVA - 20ms (ie Samsung 193P)
PARAM aghostFactor = { 0.45, 0.45, 0.45, 0.0 };
# Good Value for MVA/PVA - 25ms
# PARAM aghostFactor = { 0.5, 0.5, 0.5, 0.0 };
# Good Value for common Slow-LCD
# PARAM aghostFactor = { 0.3, 0.3, 0.3, 0.0 };
# Good Value for common Fast-LCD
# PARAM aghostFactor = { 0.2, 0.2, 0.2, 0.0 };
# **********************************************
# blackValue improves the response time
# higher value = lower response time
# Ideal value for MVA/PVA LCD with High Contrast
PARAM blackValue = { 0.02, 0.02, 0.02, 0.0 };
# Good value for common LCD
# PARAM blackValue = { 0.01, 0.01, 0.01, 0.0 };
# **********************************************
PARAM nullValue = { 0.0, 0.0, 0.0, 0.0 };
PARAM oneValue = { 1.0, 1.0, 1.0, 0.0 };
TEMP thisFramesPixel;
TEMP lastFramesPixel;
TEMP diffFramesPixel;
TEX thisFramesPixel, fragment.texcoord[0], texture[0], 2D;
TEX lastFramesPixel, fragment.texcoord[0], texture[1], 2D;
# Création de la différence du front montant 0...1
SUB diffFramesPixel, thisFramesPixel, lastFramesPixel;
CMP diffFramesPixel, diffFramesPixel, nullValue, diffFramesPixel;
# Compensation pour les petites transitions
LRP diffFramesPixel, diffFramesPixel, oneValue, diffFramesPixel;
# **********************************************
# Création de la sortie - Reduced contrast w/ blackValue
# This tune improves much more the response time !
MAD diffFramesPixel, diffFramesPixel, aghostFactor, blackValue;
ADD result.color, thisFramesPixel, diffFramesPixel;
# Création de la sortie - Max contrast w/o blackValue
# Better response time, but not as best as possible !
# MAD result.color, diffFramesPixel, aghostFactor, thisFramesPixel;
# **********************************************
END";
shader copyPixelShader =
"!!ARBfp1.0
# **********************************************
# Routine de copie
# 1 instruction slot
# **********************************************
TEX result.color, fragment.texcoord[0], texture[0], 2D;
END";
surface buffer0 = allocsurf ( width, height );
surface buffer1 = allocsurf ( width, height );
if (swapNumber%2)
{
texture[0].source = backbuffer;
destination buffer1;
apply copyPixelShader;
texture[0].source = backbuffer;
texture[1].source = buffer0;
destination backbuffer;
apply aghostPixelShader;
}
else
{
texture[0].source = backbuffer;
destination buffer0;
apply copyPixelShader;
texture[0].source = backbuffer;
texture[1].source = buffer1;
destination backbuffer;
apply aghostPixelShader;
}
Résultat du test (merci fendnts) :
- Quake3 en 1024x768x32
- AthlonXP 2160 (180x12) et 512Mo
- Gigabyte Radeon 9500 64Mo
- Catalyst 4.4
Avec le Script : 101,4 FPS (ancienne version 89,2 FPS)
Sans le Script : 256,6 FPS
Il serait interressant de tester sur une carte plus récente doté de plus de mémoire vidéo (128Mo).
Je vais faire un test également sur une machine équipée d'une Radeon 9600 - 128Mo.
Message édité par christophe_d13 le 12-06-2004 à 19:04:05