Informations pour les utilisateurs de circuit S3
Projet XFree86 Inc.

15 Janvier 1996

1. Matériel supporté

Le serveur S3 actuel supporte les circuits S3 suivants : 911, 924, 801/805, 928, 732 (Trio32), 764 (Trio64), 864, 868, 964 et 968. Le serveur S3 détecte le circuit 866, mais il n'a pas été testé avec ce dernier. Si vous avez rencontré des problèmes ou si vous avez réussi à faire fonctionner le serveur avec ce circuit, contactez nous.

Vous trouverez dans la liste qui suit, des informations sur un certain nombre de cartes qui fonctionnent. Si vous y trouvez votrecarte, le serveur devrait normalement fonctionner.

S3 801/805, AT&T 20C490 (ou similaire) RAMDAC

8 et 15/16 bpp

Note: Les RAMDACs AT&T20C490 sont automatiquement détectées par le serveur. Pour les RAMDACs compatibles, vous devez ajouter à votre fichier XF86Config l'entrée `Ramdac "att20c490"'.

Les RAMDACs AT&T 20C490 ou 20C491 fonctionnent avec l'option "dac_8_bit". Ce n'est pas le cas de tous les clônes (dont la Winbond 82C490).

L'Orchid Fahrenheit 1280+ VLB nécessite `Option "nolinear"'.

S3 805 VLB, S3 GENDAC (RAMDAC + synthétiseur d'horloge)

8 et 15/16 bpp

           ClockChip "s3gendac"
           RamDac    "s3gendac"

S3 801/805, AT&T 20C490 RAMDAC, Horloge ICD2061A

8 et 15/16 bpp

Note: Les RAMDACs AT&T20C490 sont automatiquement détectées par le serveur. Pour les RAMDACs compatibles, vous devez ajouter à votre fichier XF86Config l'entrée `Ramdac "att20c490"'.

           ClockChip "icd2061a"
           RamDac    "att20c490"
           Option    "dac_8_bit

S3 805, Diamond SS2410 RAMDAC, Horloge ICD2061A

8 et 15bpp(*) seulement.

           nécessite `Option "nolinear"'

(*) La SS2410 RAMDAC est compatible avec l'AT&T20C490 en mode 15bpp. Pour que le serveur la considère comme une AT&T20C490, vous devez ajouter à votre fichier XF86Config l'entrée `Ramdac "att20c490" '.

S3 801/805, Chrontel 8391 Horloge/Ramdac

8 et 15/16 bpp.

La 8391 est compatible avec la RAMDAC AT&T 20C490

           ClockChip "ch8391"
           Ramdac    "ch8391"
           Option    "dac_8_bit"

S3 928, AT&T 20C490 RAMDAC

8 et 15/16 bpp

Note: Les RAMDACs AT&T20C490 sont automatiquement détectées par le serveur. Pour les RAMDACs compatibles, vous devez ajouter à votre fichier XF86Config l'entrée `Ramdac "att20c490"'.

La détection de RAMDACs peut poser des problèmes avec certaines de ces cartes, une valeur de RamDac doit être précisée pour éviter la détection.

Les RAMDACs AT&T 20C490 ou 20C491 fonctionnent avec l'option "dac_8_bit". Ce n'est pas le cas de tous les clônes (dont la Winbond 82C490).

S3 928, Sierra SC15025 RAMDAC, Horloge ICD2061A

8, 15/16 et 24(32) bpp

Supporte 8bit/pixel RGB en 8bpp et la gamma correction pour les modes 15/16 et 24bpp

L'affichage 24 bpp peut être ``neigeux'' si la fréquence d'horloge est proche de la valeur limite (30MHz). Ceci n'est pas considéré comme dangereux, mais limite l'utilisation du mode 24 bpp.

Les circuits D-step ne peuvent être utilisés avec une largeur de ligne de 1152; pour une carte équipée de 1 Mo utilisez une résolution de 1088x800x8 (similaire pour 2 Mo, 1088x800x16).

           ClockChip "icd2061a"

S3 928, Bt9485 RAMDAC, Horloge ICD2061A

8, 15/16 et 24(32) bpp

Support RGB avec sync-on-green si l'option "sync_on_green" est activée et si le cavalier de la carte est configuré pour les sorties BNC.

Adressage linéaire VLB à 0x7FCxxxxx ce qui permet de supporter 64Mo ou plus de mémoire principale.

           ClockChip "icd2061a"
           Option    "stb_pegasus"

S3 928, Bt485 RAMDAC, Horloge SC11412

8, 15/16 et 24(32) bpp

           ClockChip "SC11412"
           Option    "SPEA_Mercury"

S3 928, Bt485 RAMDAC, ICD2061A Horloge

8, 15/16 et 24(32) bpp

           ClockChip "icd2061a"
           Option    "number_nine"

S3 928, Ti3020 RAMDAC, ICD2061A Horloge

8, 15/16 et 24(32) bpp

Support RGB avec sync-on-green

           ClockChip "icd2061a"
           Option    "number_nine"

S3 864, AT&T20C498, ICS2494 Horloge

Le circuit ICS2494 a une fréquence d'horloge fixe, vous devez utiliser X -probeonly pour obtenir les valeurs correctes.

8, 15/16 et 24(32) bpp

S3 864, AT&T20C498 ou STG1700 RAMDAC, Horloge ICD2061A ou ICS9161

8, 15/16 et 24(32) bpp

           ClockChip "icd2061a"

S3 864, 20C498 ou 21C498 RAMDAC, ICS2595 Horloge

8, 15/16 et 24(32) bpp

Si vous rencontrez des problèmes, essayez de basculer vers le mode suivant avec la combinaison CTRL+ALT+``KP+''.

Les modes interlacés ne fonctionnent pas correctement.

La Mirage P64 avec le BIOS 4.xx utilise le S3 SDAC.

           ClockChip "ics2595"

S3 864, S3 86C716 SDAC RAMDAC et Horloge

8, 15/16 et 24 bpp

S3 864, ICS5342 RAMDAC et Horloge

8, 15/16 et 24 bpp

           ClockChip "ics5342"
           Ramdac    "ics5342"

S3 864, AT&T21C498-13 RAMDAC, Horloge ICD2061A

8, 15/16, 24(32) bpp

           ClockChip "icd2061a"
           Option    "number_nine"

S3 964, AT&T 20C505 RAMDAC, ICD2061A Horloge

8, 15/16, 24(32) bpp

           ClockChip "icd2061a"
           Ramdac    "att20c505"

S3 964, Bt485 RAMDAC, Horloge ICD2061A

8, 15/16, 24(32) bpp

           ClockChip "icd2061a"

S3 964, Bt9485 ou AT&T 20C505 RAMDAC, Horloge ICS9161a

8, 15/16, 24(32) bpp

           ClockChip "ics9161a"
           Option    "SPEA_Mercury"

S3 964, Ti3020 RAMDAC, Horloge ICD2061A

8, 15/16, 24(32) bpp

           ClockChip "icd2061a"

S3 964, Ti3025 RAMDAC, Ti3025 Horloge

8 bpp, 15, 16 et 24(32) bpp

Certains problèmes subsistent avec le support GXE64 Pro. #9 ne supporte plus la GXE64 Pro en mode 1600x1200. Une nouvelle carte (plus chère) sera prochainement disponible (GXE-64Pro-1600), elle utilise une RAMDAC à 220MHz au lien d'une RAMDAC à 135MHz.

S3 764 (Trio64)

8/15/16/24 bpp

Note: la Trio64 possède une RAMDAC et une horloge incorporée, le serveur fonctionnera donc avec toutes les cartes Trio64 et vous n'aurez pas à spécifier les valeurs de RAMDAC et d'horloge dans le fichier XF86Config.

S3 732 (Trio32)

8/15/16/24 bpp

Note: la Trio32 possède une RAMDAC et une horloge incorporée, le serveur fonctionnera donc avec toutes les cartes Trio32 et vous n'aurez pas à spécifier les valeurs de RAMDAC et d'horloge dans le fichier XF86Config.

S3 868, S3 86C716 SDAC RAMDAC et Horloge

8/15/16/24 bpp

S3 868, AT&T 20C409 RAMDAC et Horloge

8/15/16/24 bpp

Note: le multiplexage de point n'est pas supporté.

S3 968, Ti3026 RAMDAC, Ti3026 Clockchip

8/15/16/24 bpp

S3 968, Ti3026 RAMDAC, ICS9161A Clockchip

8/15/16/24 bpp

Note: actuellement l'utilisation d'une double horloge ne fonctionne pas, la fréquence maximum est limitée à 120MHz.

S3 964, IBM RGB 514/524/525/528 RAMDAC & Horloge

8/15/16/24 bpp

           s3RefClk   50
           DACspeed  170
           Option  "slow_vram"

S3 968, IBM RGB 514/524/525/528 RAMDAC & Horloge

           s3RefClk   50
           DACspeed  170
           s3RefClk   16
           DACspeed  220 

Cette carte nécessite la ligne si-dessous dans chaque sous-section Display:

           Invert_VCLK "*" 0
           s3RefClk   24
           DACspeed  220
           s3RefClk   16
           DACspeed  220

Cette carte nécessite la ligne si-dessous dans chaque sous-section Display:

           Invert_VCLK "*" 0

8/15/16/24 bpp

2. 16bpp et 32bpp

Avec les cartes 801/805 + AT&T490 (telle que la Fahrenheit 1280+ VLB) seuls les modes 15 et 16bpp sont supportés. Le mode 32bpp n'est pas disponible sur ce type de carte.

3. Liste des horloges (ClockChips) supportées

ICD2061A                                ==> ClockChip "icd2061a"
ICS9161A (ICD2061A compatible)          ==> ClockChip "ics9161a"
DCS2824-0 (Diamond, ICD2061A comp.)     ==> ClockChip "dcs2824"
S3 86c708 GENDAC                        ==> ClockChip "s3gendac"
ICS5300 GENDAC (86c708 compatible)      ==> ClockChip "ics5300"
S3 86c716 SDAC                          ==> ClockChip "s3_sdac"
ICS5342 GENDAC                          ==> ClockChip "ics5342"
STG 1703                                ==> ClockChip "stg1703"
Sierra SC11412                          ==> ClockChip "sc11412"
ICS2595                                 ==> ClockChip "ics2595"
TI3025                                  ==> ClockChip "ti3025"
TI3026                                  ==> ClockChip "ti3026"
IBM RGB 5xx                             ==> ClockChip "ibm_rgb5xx"
Chrontel 8391                           ==> ClockChip "ch8391"
AT&T 20C409                             ==> ClockChip "att20c409"
AT&T 20C499 (untested)                  ==> ClockChip "att20c499"

4. Liste des circuits RAMDAC supportés

Si votre RAMDAC ne se trouve pas dans la liste qui suit, soyez très prudent lors de l'utilisation de XF86_S3. Il est préférable de contacter l'équipe XFree86.

Les RAMDACs regroupées ensemble sont traitées de la même façon. Par exemple, le serveur indiquera "bt485" même si vous avez spécifié une RAMDAC "bt9485". Idem pour les RAMDACs "s3_gendac" et "ics5300".

ATT20C409          ==> RAMDAC "att20c409"
ATT20C490          ==> RAMDAC "att20c490"
ATT20C491          ==> RAMDAC "att20c491"
CH8391             ==> RAMDAC "ch8391"
ATT20C498          ==> RAMDAC "att20c498"
ATT21C498          ==> RAMDAC "att21c498"
ATT22C498          ==> RAMDAC "att22c498"
ATT20C505          ==> RAMDAC "att20c505"
BT485              ==> RAMDAC "bt485"
BT9485             ==> RAMDAC "bt9485"
IBMRGB514          ==> RAMDAC "ibm_rgb514"
IBMRGB525          ==> RAMDAC "ibm_rgb525"
IBMRGB524          ==> RAMDAC "ibm_rgb524"
IBMRGB526          ==> RAMDAC "ibm_rgb526"
IBMRGB528          ==> RAMDAC "ibm_rgb528"
S3_GENDAC          ==> RAMDAC "s3gendac"
ICS5300            ==> RAMDAC "ics5300"
S3_SDAC            ==> RAMDAC "s3_sdac"
ICS5342            ==> RAMDAC "ics5342"
S3_TRIO32          ==> RAMDAC "s3_trio32"
S3_TRIO64          ==> RAMDAC "s3_trio64"
S3_TRIO64          ==> RAMDAC "s3_trio"
SC11482            ==> RAMDAC "sc11482"
SC11483            ==> RAMDAC "sc11483"
SC11484            ==> RAMDAC "sc11484"
SC11485            ==> RAMDAC "sc11485"
SC11487            ==> RAMDAC "sc11487"
SC11489            ==> RAMDAC "sc11489"
SC15025            ==> RAMDAC "sc15025"
STG1700            ==> RAMDAC "stg1700"
STG1703            ==> RAMDAC "stg1703"
TI3020             ==> RAMDAC "ti3020"
TI3025             ==> RAMDAC "ti3025"
TI3026             ==> RAMDAC "ti3026"
Autres             ==> RAMDAC "normal"

Si vous vous en sentez le courage, vous pouvez ouvrir votre machine et jetez un coup d'oeil au circuit RAMDAC. Généralement, il s'agit d'un des plus gros circuits (le deuxième ou troisième qui n'est pas une EPROM) de la carte. Le marquage du circuit suit le modèle suivant :

     <Company logo>
     <company identifier><part number>-<speed grade>
     <manufacturing week><manufacturing year>
     <lot number><other funny numbers>

Exemple :

     @@
     @@ AT&T
     ATT20C490-11
     9339S ES
     9869874

Il s'agit d'un circuit AT&T 20C490 dont la vitesse est fixée à 110 MHz. Vous devez donc utiliser la ligne `DacSpeed 110' dans votre fichier XF86Config. Vous trouverez sur le circuit la valeur maximale, soyez donc prudent.

Les cirucits marqués -80 ou -8 doivent utiliser `DacSpeed 80' dans la section périphérique.

S3 86C716-ME SDAC  ==>  DacSpeed 110
SC15025-8          ==>  DacSpeed  80
ATT20C490-80       ==>  DacSpeed  80
IBM 8190429        ==>  DacSpeed 170
IBM 03H5428        ==>  DacSpeed 170
IBM 03H6447        ==>  DacSpeed 170
IBM 03H6448        ==>  DacSpeed 220
IBM 03H5319        ==>  DacSpeed 220
IBM 63G9902        ==>  DacSpeed 250
IBM 37RGB514CF17   ==>  DacSpeed 170
IBM 37RGB524CF22   ==>  DacSpeed 220
              ^^

5. Notes supplémentaires

Lors de la détection les cartes Sierra SC1148{5,7,9} ne sont pas différenciées des cartes SC1148{2,3,4}. Les séries {2,3,4} fonctionnent en mode 15bpp, les séries {5,7,9} fonctionnent en mode 16bpp. Si vous avez une carte SC1148{5,7,9} et si vous voulez utiliser le mode 16bpp à la place du mode 15bpp, vous devez préciser une ligne RAMDAC "sc11485".

Certaines RAMDACs (Ti3025 par exemple) nécessitent quelques modifications pour que le curseur fonctionne correctement.

6. Valeur d'horloge de référence pour RAMDACS IBM RGB 5xx

Les cartes équipées de RAMDACs IBM RGB5xx utilisent plusieurs fréquences d'entrées pour le synthétiseur d'horloge. Voici comment les trouver :

Dans un premier temps exécutez

       X -probeonly >& outfile

et cherchez dans le fichier de sortie le circuit correspondant à peu de chose près à :

       (--) S3: Using IBM RGB52x programmable clock (MCLK 66.000 MHz)
       (--) S3: with refclock 16.000 MHz (probed 15.952 & 16.041)
                              ^^^^^^      ^^^^^^^^^^^^^^^^^^^^^^

Vous trouverez la valeur qui peut être utilisée, ainsi que deux autres valeurs (entre parenthèses) qui sont basées sur des horloges textes à 25MHz et 28MHz. La détection fonctionne seulement si vous utilisez un mode texte normal 80x25 ou 80x28.

Les valeurs de refclock connues sont :

          STB Velocity 64         24 Mhz
          Genoa VideoBlitz II AV  50 MHz
          Hercules S3 964         50 MHz
          Hercules S3 968         16 MHz
          #9 Motion 771           16 MHz

Elles dépendent du quartz qui équipe votre carte et d'un certain nombre d'autres choses (dont les horloges supplémentaires sur les cartes Genoa).

Si vous déclarez que votre carte utilise un horloge à 16MHz, alors qu'elle utilise en réalité une horloge à 50MHz, toutes les valeurs de pixel clocks seront multipliées par trois et le mode 640x480 à 25MHZ utilisera une fréquence à 75MHz, soyez donc très prudent.

Si vous trouvez la bonne valeur de refclock, ajoutez la dans votre fichier de configuration (section périphérique) avec par exemple :

          s3RefClk  16

ou

          s3RefClk  50

7. Comment éviter un affichage ``neigeux'' ?

Pour les cartes équipées du circuit S3 Vision864, il existe une correction automatique qui dépend de la valeur de l'horloge pixel et de l'horloge mémoire MCLK. Pour la plupart des horloges, cette valeur ne peut être lue (actuellement seul le S3 SDAC peut lire la valeur MCLK) et doit donc être spécifiée par l'utilisateur (la valeur par défaut est 60[MHz]).

Avec la nouvelle entrée `s3MCLK' du fichier XF86Config, vous pouvez par exemple spécifier

        s3MCLK 55

pour une valeur MCLK de 55 MHz afin de réduire l'effet ``neigeux''. Des valeurs inférieures diminueront les performances, n'utilisez donc pas des valeurs trop basses (55 ou 50 convient pour la majorité des cartes).

Vous trouverez plus bas un petit script qui sera utile pour déterminer un valeur approximative de MCLK (à 1 ou 2 MHz près). Avant d'exécuter le script, ajoutez la ligne

        s3MNadjust -31 255

à la section device de votre fichier XF86Config et redémarrez X Windows. N'oubliez pas de supprimer la ligne après avoir exécuté le script.

L'exécution du script permet d'utiliser xbench et/ou x11perf pour effectuer un test afin de déterminer la valeur MCLK (exprimée en Mhz).

Quatre tests sont réalisés, vous aurez donc quatre évaluations différentes (la première doit être la plus précise).


  #!/bin/sh
  exec 2> /dev/null
  scale=2
  calc() {
    m=`awk 'BEGIN{printf "%.'$scale'f\n",'"( $1 + $2 ) / $3; exit}" `
    [ -z "$m" ] && m=` echo "scale=$scale; ( $1 + $2 ) / $3" | bc `
    [ -z "$m" ] && m=` echo "$scale $1 $2 + $3 / pq" | dc `
    echo $m
  }
  run_xbench() {
    r=` ( echo 1; echo 2; echo 3; echo 4 ) | xbench -only $1 | grep rate `
    [ -z "$r" ] && return
    cp="$2 $3"
    set $r
    calc $3 $cp
  }
  run_x11perf() {
    r=` x11perf $1 | grep trep | tr '(/)' '   ' `
    [ -z "$r" ] && return
    cp="$2 $3"
    set $r
    calc `calc 1000 0 $4` $cp
  }
  run_x11perf "-rect500 -rop GXxor"     3.86  5.53  #  0 1  #    4.11    5.52  #
  run_xbench invrects500                4.63  5.48  #  0 1  #    4.69    5.48  #
  run_x11perf "-rect500 -rop GXcopy"  -16.42 13.90  #  0 1  #  -14.99   13.88  #
  run_xbench fillrects500              -7.81 13.57  #  0 1  #   -8.53   13.58  #
  exit


©1996 Pour l'adaptation française : "Logiciels du Soleil"