[Libdlo] randr.c RRFirstOutput() crash when using "displaylink" driver in combination with "nvidia" driver

Mulchman mulchman at gmail.com
Fri Mar 12 09:05:04 PST 2010


On 3/10/2010 15:26, Mulchman wrote:
> I'm encountering a crash in randr.c:448 (RRFirstOutput) when using the
> "displaylink" driver with the proprietary "nvidia" driver.

I added a RRScreenInit() function call to DisplayLinkScreenInit (as well
as mapping some function pointers in the rrScrPrivPtr struct to some
stub functions) and I get past this particular crash but it crashes
elsewhere - presumably because the stub randr functions I've added don't
actually do anything.

Does anyone know of a randr manual or anything describing the randr
interface?  My google-fu has been weak in this area.  Or, is there an
open source video driver for Linux that makes use of randr?  I've found
some intel video drivers but none of them use the functions from randr.c
(that the proprietary NVIDIA driver calls)...

These are the sorts of stubs I've added in displaylink.c-

// RandR
#if RANDR_12_INTERFACE
static Bool DLRRScreenSetSizeProcPtr(ScreenPtr pScreen, CARD16 width,
CARD16 height, CARD32 mmWidth, CARD32 mmHeight);
static Bool DLRRCrtcSetProcPtr(ScreenPtr pScreen, RRCrtcPtr crtc,
RRModePtr mode, int x, int y, Rotation rotation, int numOutputs,
RROutputPtr *outputs);
static Bool DLRRCrtcSetGammaProcPtr(ScreenPtr pScreen, RRCrtcPtr crtc);
static Bool DLRRCrtcGetGammaProcPtr(ScreenPtr pScreen, RRCrtcPtr crtc);
static Bool DLRROutputSetPropertyProcPtr(ScreenPtr pScreen, RROutputPtr
output, Atom property, RRPropertyValuePtr value);
static Bool DLRROutputValidateModeProcPtr(ScreenPtr pScreen, RROutputPtr
output, RRModePtr mode);
static void DLRRModeDestroyProcPtr(ScreenPtr pScreen, RRModePtr mode);
#endif
#if RANDR_13_INTERFACE
static Bool DLRROutputGetPropertyProcPtr(ScreenPtr pScreen, RROutputPtr
output, Atom property);
static Bool DLRRGetPanningProcPtr(ScreenPtr pScrn, RRCrtcPtr crtc,
BoxPtr totalArea, BoxPtr trackingArea, INT16 *border);
static Bool DLRRSetPanningProcPtr(ScreenPtr pScrn, RRCrtcPtr crtc,
BoxPtr totalArea, BoxPtr trackingArea, INT16 *border);
#endif /* RANDR_13_INTERFACE */
static Bool DLRRGetInfoProcPtr(ScreenPtr pScreen, Rotation *rotations);
static Bool DLRRCloseScreenProcPtr(int i, ScreenPtr pScreen);
#ifdef RANDR_10_INTERFACE
static Bool DLRRSetConfigProcPtr(ScreenPtr pScreen, Rotation rotation,
int rate, RRScreenSizePtr pSize);
#endif
static Bool DLRRGetInfoProcPtr(ScreenPtr pScreen, Rotation *rotations);
static Bool DLRRCloseScreenProcPtr(int i, ScreenPtr pScreen);


More information about the Libdlo mailing list