From 1a76fa5574e8e8f88ac3518a4e4494e1af301dc1 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 29 Jan 2010 23:28:46 -0800 Subject: [PATCH] Initialize DRI2 info rec version 4 list of driver names With DRI2 supporting multiple subsystems, the video driver must initialize the list of driver names instead of just passing the single driver name used by Mesa. Without this, the X server will fail to initialize DRI2 as the numDrivers field in this structure will be uninitialized. Signed-off-by: Keith Packard --- src/i830_dri.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/i830_dri.c b/src/i830_dri.c index ed9d69f6..0996629e 100644 --- a/src/i830_dri.c +++ b/src/i830_dri.c @@ -865,6 +865,9 @@ Bool I830DRI2ScreenInit(ScreenPtr screen) int dri2_major = 1; int dri2_minor = 0; #endif +#if DRI2INFOREC_VERSION >= 4 + const char *driverNames[1]; +#endif #ifdef USE_DRI2_1_1_0 if (xf86LoaderCheckSymbol("DRI2Version")) { @@ -879,6 +882,7 @@ Bool I830DRI2ScreenInit(ScreenPtr screen) #endif intel->deviceName = drmGetDeviceNameFromFd(intel->drmSubFD); + memset(&info, '\0', sizeof(info)); info.fd = intel->drmSubFD; info.driverName = IS_I965G(intel) ? "i965" : "i915"; info.deviceName = intel->deviceName; @@ -907,6 +911,9 @@ Bool I830DRI2ScreenInit(ScreenPtr screen) info.ScheduleSwap = I830DRI2ScheduleSwap; info.GetMSC = I830DRI2GetMSC; info.ScheduleWaitMSC = I830DRI2ScheduleWaitMSC; + info.numDrivers = 1; + info.driverNames = driverNames; + driverNames[0] = info.driverName; #endif return DRI2ScreenInit(screen, &info);