Hi, > > xf86RandRModeConvert(pScrn, randr_mode, &mode); > > xf86SetModeCrtc(mode, scrn->adjustFlags); (DisplayModePtr mode, int > > adjustFlags) > > mode->Crtc<X> = mode-><X>; (not Flags) > > xf86RandR12CrtcNotify() > > RRCrtcNotify(randr_crtc, randr_mode, x, y, ...) > > crtc->mode = mode; > > RRCrtcChanged(crtc, TRUE) > > > > "??" meaning more guesswork than usual was required. :) > >
well, as far as I understand, the drivers register some mode change functions, and the serverside randr part calls these driver hooks (or are these xrandr hooks? ;) ) a quick grep in the ati-driver source (xf86-video-ati) looks promising: grep -r randr * configure.ac:XORG_DRIVER_CHECK_EXT(RANDR, randrproto) man/radeon.man:The output name is the randr output name, e.g., "VGA-0" or "DVI-0"; man/radeon.man:Specify the randr outputs to use with zaphod mode. If you do not specify man/radeon.man:will assign xrandr output LVDS to the first instance of the driver and src/radeon_probe.h:#include "randrstr.h" Binary file src/.drmmode_display.c.swp matches src/drmmode_display.c: /* bonghits in the randr 1.2 - uses dpms to disable crtc - bad buzz */ src/drmmode_display.c: err = RRConfigureOutputProperty(output->randr_output, p->atoms[0], src/drmmode_display.c: err = RRChangeOutputProperty(output->randr_output, p->atoms[0], src/drmmode_display.c: err = RRConfigureOutputProperty(output->randr_output, p->atoms[0], src/drmmode_display.c: err = RRChangeOutputProperty(output->randr_output, p->atoms[0], src/drmmode_display.c: if (crtc->randr_crtc) src/drmmode_display.c: RRCrtcGammaSet(crtc->randr_crtc, lut_r, lut_g, lut_b); src/radeon_modes.c:#include "randrstr.h" src/radeon_modes.c:#include <randrstr.h> src/radeon_driver.c: "Please use the xrandr 1.2 if you " src/radeon_driver.c: " xrandr 1.2 support\n"); src/radeon_driver.c: if (crtc->randr_crtc) src/radeon_driver.c: RRCrtcGammaSet(crtc->randr_crtc, lut_r, lut_g, lut_b); src/radeon_driver.c: * it changes with randr, rotation, etc. src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, backlight_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, backlight_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, load_detection_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, load_detection_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, coherent_mode_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, coherent_mode_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, tmds_pll_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, tmds_pll_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, rmx_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, rmx_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, monitor_type_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, monitor_type_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, tv_hsize_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, tv_hsize_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, tv_hpos_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, tv_hpos_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, tv_vpos_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, tv_vpos_atom, src/radeon_output.c: err = RRConfigureOutputProperty(output->randr_output, tv_std_atom, src/radeon_output.c: err = RRChangeOutputProperty(output->randr_output, tv_std_atom, src/radeon_output.c: * initialise the static data sos we don't have to re-do at randr change */ cheers, Flo _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
