Comment 27 for bug 307306

Revision history for this message
Peter Clifton (pcjc2) wrote :

Also, unfortunately the problem isn't fixed by the cheaper call to XRRGetScreenResourcesCurrent

Other Xrandr calls are expensive, such as the "XRRGetScreenSizeRange" one made in gnome-desktop's gnome-rr.c

This Xserver backtrace shows the issue:

#0 0xb809e430 in __kernel_vsyscall ()
#1 0xb7ce7700 in __nanosleep_nocancel () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7d24ffc in usleep () from /lib/tls/i686/cmov/libc.so.6
#3 0xb7ab826e in i830WaitForVblank (pScreen=0xa197040) at ../../src/i830_display.c:379
#4 0xb7abaf80 in i830_crtc_mode_set (crtc=0xa199b80, mode=0xbfdb9ea0, adjusted_mode=0xa4d70e8, x=0, y=0) at ../../src/i830_display.c:1511
#5 0x080ed08d in xf86CrtcSetModeTransform (crtc=0xa199b80, mode=0xbfdb9ea0, rotation=1, transform=0x0, x=0, y=0)
    at ../../../../hw/xfree86/modes/xf86Crtc.c:366
#6 0x080ed6d6 in xf86CrtcSetMode (crtc=0xa199b80, mode=0xbfdb9ea0, rotation=8180, x=0, y=0) at ../../../../hw/xfree86/modes/xf86Crtc.c:413
#7 0xb7ab956d in i830GetLoadDetectPipe (output=0xa19b618, mode=0xbfdb9ea0, dpms_mode=0xbfdb9f78) at ../../src/i830_display.c:1811
#8 0xb7ad746d in i830_tv_detect (output=0xa19b618) at ../../src/i830_tv.c:1376
#9 0x080eda90 in xf86ProbeOutputModes (scrn=0xa197040, maxX=4096, maxY=4096) at ../../../../hw/xfree86/modes/xf86Crtc.c:1500
#10 0x080f56c0 in xf86RandR12GetInfo12 (pScreen=0xa19c460, rotations=0xbfdba16a) at ../../../../hw/xfree86/modes/xf86RandR12.c:1255
#11 0x08162e89 in RRGetInfo (pScreen=0xa19c460) at ../../randr/rrinfo.c:196
#12 0x08167084 in ProcRRGetScreenSizeRange (client=0xa3d2208) at ../../randr/rrscreen.c:227
#13 0x0815f305 in ProcRRDispatch (client=0x0) at ../../randr/randr.c:473
#14 0x0808cdbf in Dispatch () at ../../dix/dispatch.c:437
#15 0x08071aad in main (argc=10, argv=0xbfdba324, envp=Cannot access memory at address 0x8
) at ../../dix/main.c:383