bLUEbYTE84 Guru
Joined: 21 Jul 2006 Posts: 566 Location: universe.tar.gz, src/earth.h, struct homo_sapiens_table
|
Posted: Tue Nov 07, 2006 2:21 pm Post subject: Can't get VSync in OpenGL with onboard via |
|
|
Hi,
I have an onboard via unichrome video card (K8M800 chipset). I did the hardware accel. & opengl setup and it's working fine (~800 fps in glxgears). However I experience severe tearing in full-screen opengl applications. Many applications don't have any way to trigger vsync setting, so I need to activate it in driver, which I didn't succeed. Tearing continues after modifying config files, and glxgears FPS stays the same (i.e. setting is ineffective). Here are the relevant config/diagnostic data:
xorg.conf
Code: |
Section "Module"
# This loads the DBE extension module.
Load "dbe" # Double buffer extension
# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
# This loads the font modules
# Load "type1"
# Load "speedo"
Load "freetype"
# Load "xtt"
# This loads the GLX module
Load "glx"
# This loads the DRI module
Load "dri"
EndSection
. . .
Section "Monitor"
Identifier "LG700s"
# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
HorizSync 30-70
# HorizSync 30-64 # multisync
# HorizSync 31.5, 35.2 # multiple fixed sync frequencies
# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies
# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
# VertRefresh 50-160
VertRefresh 60
EndSection
Section "Device"
Identifier "Unichrome"
Driver "via"
# Option "EnableAGPDMA" "true"
# Option "DisableIRQ" "false"
#VideoRam 32768
# Insert Clocks lines here if appropriate
EndSection
Section "Screen"
Identifier "Screen 1"
Device "Unichrome"
Monitor "LG700s"
DefaultDepth 16
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Section "ServerLayout"
# The Identifier line must be present
Identifier "Simple Layout"
Screen "Screen 1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
Section "DRI"
Mode 0666
EndSection
|
Output of xdriinfo screen 0
Code: |
<driinfo>
<section>
<description lang="en" text="Performance"/>
<description lang="de" text="Leistung"/>
<description lang="es" text="Rendimiento"/>
<description lang="nl" text="Prestatie"/>
<description lang="fr" text="Performance"/>
<option name="fthrottle_mode" type="enum" default="2" valid="0:2">
<description lang="en" text="Method to limit rendering latency">
<enum value="0" text="Busy waiting for the graphics hardware"/>
<enum value="1" text="Sleep for brief intervals while waiting for the graphics hardware"/>
<enum value="2" text="Let the graphics hardware emit a software interrupt and sleep"/>
</description>
<description lang="de" text="Methode zur Begrenzung der Bildverzögerung">
<enum value="0" text="Aktives Warten auf die Grafikhardware"/>
<enum value="1" text="Kurze Schlafintervalle beim Warten auf die Grafikhardware"/>
<enum value="2" text="Die Grafikhardware eine Softwareunterbrechnung erzeugen lassen und schlafen"/>
</description>
<description lang="es" text="Método para limitar la latencia de rénder">
<enum value="0" text="Esperar activamente al hardware gráfico"/>
<enum value="1" text="Dormir en intervalos cortos mientras se espera al hardware gráfico"/>
<enum value="2" text="Permitir que el hardware gráfico emita una interrupción de software y duerma"/>
</description>
<description lang="nl" text="Methode om beeldopbouwvertraging te onderdrukken">
<enum value="0" text="Actief wachten voor de grafische hardware"/>
<enum value="1" text="Slaap voor korte intervallen tijdens het wachten op de grafische hardware"/>
<enum value="2" text="Laat de grafische hardware een software onderbreking uitzenden en in slaap vallen"/>
</description>
<description lang="fr" text="Méthode d'attente de la carte graphique">
<enum value="0" text="Attente active de la carte graphique"/>
<enum value="1" text="Attente utilisant usleep()"/>
<enum value="2" text="Utiliser les interruptions"/>
</description>
</option>
<option name="vblank_mode" type="enum" default="1" valid="0:3">
<description lang="en" text="Synchronization with vertical refresh (swap intervals)">
<enum value="0" text="Never synchronize with vertical refresh, ignore application's choice"/>
<enum value="1" text="Initial swap interval 0, obey application's choice"/>
<enum value="2" text="Initial swap interval 1, obey application's choice"/>
<enum value="3" text="Always synchronize with vertical refresh, application chooses the minimum swap interval"/>
</description>
<description lang="de" text="Synchronisation mit der vertikalen Bildwiederholung">
<enum value="0" text="Niemals mit der Bildwiederholung synchronisieren, Anweisungen der Anwendung ignorieren"/>
<enum value="1" text="Initiales Bildinterval 0, Anweisungen der Anwendung gehorchen"/>
<enum value="2" text="Initiales Bildinterval 1, Anweisungen der Anwendung gehorchen"/>
<enum value="3" text="Immer mit der Bildwiederholung synchronisieren, Anwendung wählt das minimale Bildintervall"/>
</description>
<description lang="es" text="Sincronización con el refresco vertical (intervalos de intercambio)">
<enum value="0" text="No sincronizar nunca con el refresco vertical, ignorar la elección de la aplicación"/>
<enum value="1" text="Intervalo de intercambio inicial 0, obedecer la elección de la aplicación"/>
<enum value="2" text="Intervalo de intercambio inicial 1, obedecer la elección de la aplicación"/>
<enum value="3" text="Sincronizar siempre con el refresco vertical, la aplicación elige el intervalo de intercambio mÃnimo"/>
</description>
<description lang="nl" text="Synchronisatie met verticale verversing (interval omwisselen)">
<enum value="0" text="Nooit synchroniseren met verticale verversing, negeer de keuze van de applicatie"/>
<enum value="1" text="Initïeel omwisselingsinterval 0, honoreer de keuze van de applicatie"/>
<enum value="2" text="Initïeel omwisselingsinterval 1, honoreer de keuze van de applicatie"/>
<enum value="3" text="Synchroniseer altijd met verticale verversing, de applicatie kiest het minimum omwisselingsinterval"/>
</description>
<description lang="fr" text="Synchronisation de l'affichage avec le balayage vertical">
<enum value="0" text="Ne jamais synchroniser avec le balayage vertical, ignorer le choix de l'application"/>
<enum value="1" text="Ne pas synchroniser avec le balayage vertical par défaut, mais obéir au choix de l'application"/>
<enum value="2" text="Synchroniser avec le balayage vertical par défaut, mais obéir au choix de l'application"/>
<enum value="3" text="Toujours synchroniser avec le balayage vertical, l'application choisit l'intervalle minimal"/>
</description>
</option>
</section>
<section>
<description lang="en" text="Debugging"/>
<description lang="de" text="Fehlersuche"/>
<description lang="es" text="Depurando"/>
<description lang="nl" text="Debuggen"/>
<description lang="fr" text="Debogage"/>
<option name="no_rast" type="bool" default="false">
<description lang="en" text="Disable 3D acceleration"/>
<description lang="de" text="3D-Beschleunigung abschalten"/>
<description lang="es" text="Desactivar aceleración 3D"/>
<description lang="nl" text="3D versnelling uitschakelen"/>
<description lang="fr" text="Désactiver l'accélération 3D"/>
</option>
</section>
</driinfo>
|
Content of file ~/.drirc
Code: |
<driconf>
<device screen="0" driver="via">
<application name="all">
<option name="vblank_mode" value="3" />
</application>
</device>
</driconf>
|
Content of file ~/.drirc
Code: |
<driconf>
<device screen="0" driver="via">
<application name="all">
<option name="vblank_mode" value="3" />
</application>
</device>
</driconf>
|
And putting "unichrome" in place of via doesn't help either
Content of file ~/.drirc
Code: |
<driconf>
<device screen="0" driver="unichrome">
<application name="all">
<option name="vblank_mode" value="3" />
</application>
</device>
</driconf>
|
|
|