# [XORG] glxgears Running synchronized to the vertical refresh

## JuanSimpson

Hola !

Cambié de x86 a ~x86 y agregué el overlay de x11, sin motivo aparante ...  :Very Happy: 

En fin, actualicé todo y ahora tengo:

```
$ equery list x11-base/xorg

[ Searching for package 'xorg' in 'x11-base' among: ]

 * installed packages

[I--] [ ~] x11-base/xorg-server-1.6.0 (0)

[I--] [ ~] x11-base/xorg-x11-7.4 (0)
```

```
$ equery list mesa

[ Searching for package 'mesa' in all categories among: ]

 * installed packages

[I--] [ ~] media-libs/mesa-7.4 (0)

[I--] [ ~] x11-apps/mesa-progs-7.4 (0)
```

Pero al ejecutar glxgears aparece lo siguiente:

```
$ glxgears

Running synchronized to the vertical refresh.  The framerate should be

approximately the same as the monitor refresh rate.

294 frames in 5.0 seconds = 58.721 FPS

292 frames in 5.0 seconds = 58.223 FPS

299 frames in 5.0 seconds = 59.620 FPS

299 frames in 5.0 seconds = 59.619 FPS

299 frames in 5.0 seconds = 59.620 FPS
```

No se exáctamente que significa "synchronized to the vertical refresh" y si esto sea bueno o no.

Busqué un poco acerca de esto: http://www.mail-archive.com/xorg@lists.freedesktop.org/msg05335.html pero no entendí mucho de lo que ahí hablan.

Alguien podría ayudarme a saber sí tengo una mala configuración de mi tarjeta o con el nuevo xorg todo será así.

----------

## edgar_uriel84

Según parece no es muy bueno (aunque quizás no estorbe), debes ajustar parámetros de tu xorg.conf así:

```
Section "Monitor"

    Identifier    "Nombre"

    HorizSync     30-40

    VertRefresh    50-60

EndSection
```

Los valores los puse a lo tonto, pero el caso es que son frecuencias con las que trabaja tu monitor yo lo he ajustado con computadoras muy viejas. Hay mucha info en google y en el man de xorg.conf:

 *man xorg.conf wrote:*   

> HorizSync horizsync-range
> 
>     gives the range(s) of horizontal sync frequencies supported by the monitor. horizsync-range may be a comma separated list of either discrete values or ranges of values. A range of values is two values separated by a dash. By default the values are in units of kHz. They may be specified in MHz or Hz if MHz or Hz is added to the end of the line. The data given here is used by the Xorg server to determine if video modes are within the specifications of the monitor. This information should be available in the monitor's handbook. If this entry is omitted, a default range of 28-33kHz is used. 
> 
> VertRefresh vertrefresh-range
> ...

 

Para algo más especifico creo que necesitaría información de tu HW (o copia un xorg generado de un LiveCD y trabaja sobre él). Bueno, me voy a dormir, muero de sueño XD

----------

## i92guboj

Nos vendría bien saber qué tarjeta y qué driver usas. Y también echarle un vistazo a tu xorg.conf.

De todas formas, deberías medir el rendiiento en una aplicación real, y no en glxgears. Para ver si DRI está activo puedes usar esto:

```
glxinfo|grep direct
```

De lo que hablan en ese enlace, y tienen razón, es del hecho de que glxgears no es un benchmark válido. Además, es inútil tener 1400 frames si tu monitor solo puede mostrar 60 como máximo. La frecuencia de refresco vertical de tu monitor te dice cuantas veces por segundo se redibuja el contenido de tu monitor. 60hz quiere decir 60 veces por segundo. Por tanto, como mucho, tu monitor puede mostrar 60 imágenes distintas cada segundo, ni una más. 

El hecho de que glxgears te diga sesenta o sesenta mil no importa mucho si todo funciona como debería. Quizás simplemente los desarrolladores de esta utilidad se han dado cuenta de lo inútil que resulta como test de rendimiento.

----------

## Txema

Como muy bien explica i92guboj, no hay nada malo en que hayan sincronizado glxgears con la tasa de refresco vertical, sino todo lo contrario, es mejor y si te fijas, seguro que se ve más fluido, ya que si no está sincronizado, la aplicación estará mostrando imágenes que al monitor no le da tiempo a mostrar, y eso provocará que entre dos imágenes se pierdan varias imágenes intermedias, es decir, esos molestos "saltos" en los gráficos.

Si usas compiz se nota una diferencia abismal entre correr glxgears normal, que a mi me da ~3500 fps pero va a saltos, o sincronizado a la tasa de refresco vertical ~60 fps, que va fluido.

Saludos

----------

## JuanSimpson

:O creo que ya entiendo.

Aún así pego mi xorg.conf pero en la laptop que uso la única frecuencia es 60hz

```
Section "ServerLayout"

   Identifier     "X.org Configured"

   Screen      0  "Screen0" 0 0

   InputDevice    "Mouse0" "CorePointer"

   InputDevice    "Keyboard0" "CoreKeyboard"

EndSection

Section "Files"

   ModulePath   "/usr/lib/xorg/modules"

   FontPath     "built-ins"

EndSection

Section "Module"

   Load  "extmod"

   Load  "dri"

   Load  "record"

   Load  "glx"

   Load  "dbe"

   Load  "dri2"

EndSection

Section "InputDevice"

   Identifier  "Keyboard0"

   Driver      "evdev"

EndSection

Section "InputDevice"

   Identifier  "Mouse0"

   Driver      "evdev"

EndSection

Section "Monitor"

   Identifier   "Monitor0"

   VendorName   "Monitor Vendor"

   ModelName    "Monitor Model"

EndSection

Section "Device"

        ### Available Driver options are:-

        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",

        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"

        ### [arg]: arg optional

        #Option     "NoAccel"               # [<bool>]

        #Option     "SWcursor"              # [<bool>]

        #Option     "ColorKey"              # <i>

        #Option     "CacheLines"            # <i>

        #Option     "Dac6Bit"               # [<bool>]

        #Option     "DRI"                   # [<bool>]

        #Option     "NoDDC"                 # [<bool>]

        #Option     "ShowCache"             # [<bool>]

        #Option     "XvMCSurfaces"          # <i>

        #Option     "PageFlip"              # [<bool>]

   Identifier  "Card0"

   Driver      "intel"

   VendorName  "Intel Corporation"

   BoardName   "Mobile GM965/GL960 Integrated Graphics Controller"

   BusID       "PCI:0:2:0"

EndSection

Section "Screen"

   Identifier "Screen0"

   Device     "Card0"

   Monitor    "Monitor0"

   SubSection "Display"

      Viewport   0 0

      Depth     1

   EndSubSection

   SubSection "Display"

      Viewport   0 0

      Depth     4

   EndSubSection

   SubSection "Display"

      Viewport   0 0

      Depth     8

   EndSubSection

   SubSection "Display"

      Viewport   0 0

      Depth     15

   EndSubSection

   SubSection "Display"

      Viewport   0 0

      Depth     16

   EndSubSection

   SubSection "Display"

      Viewport   0 0

      Depth     24

   EndSubSection

EndSection

Section "DRI"

     Mode 0666

EndSection

Section "Extensions"

   Option "Composite" "Enable"

EndSection
```

Si tengo dri:

```
$ glxinfo | grep direct

direct rendering: Yes
```

----------

## i92guboj

Entonces, si las aplicaciones van como han ido siempre, no tienes de qué preocuparte  :Smile: 

----------

## JuanSimpson

Ok, creo que no tendré que preocuparme ... gracias

----------

## Soul Lost

A mi me ha ido mal, al cambiar a xorg-server 1.5, sobre todo con la gráfica. A parte de obtener menos fps con glxgears (que como dicen, no es confiable), aplicaciones como el UrT (Urban Terror) me corrían muy lento, se me "trababa" como si fuera en cámara lenta. Supongo que puede ser por no especificar el valor VertRefresh de monitor (que obtenía un mensaje similar al tuyo). Mis valores (sacados del manual del monitor) son:

```

VertRefresh 50.0 - 160.0

DisplaySize 336 269

```

Intente correr las X con y sin archivo de configuración, pero los resultados eran los mismos. Además de que las decoraciones de las ventanas de Gnome y efectos al cambiar de escritorio virtual andaban lentos también (si hacía uso más intensivo de la pc). No sé si esos valores deben ir dentro de un archivo *.fdi como en el caso de otros dispositivos. Como sea, al último regresé a la versión estable anterior. Mi packages.mask para tales motivos (para el que aún no esté decidido del todo o tenga problemas):

 */etc/portage/package.mask wrote:*   

>  >x11-base/xorg-server-1.3.0.0-r6
> 
>  >x11-drivers/xf86-video-intel-2.1.1
> 
>  >media-libs/mesa-6.5.2-r1
> ...

 

Con eso basta para "todavía" no migrar a Xorg 1.5, en casos particulares puede faltar uno que otro paquete, y para que portage no se queje con paquetes bloqueados y demás.

----------

