xf86-video-intel: src/sna/sna_dri.c src/uxa/intel_dri.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Jan 17 02:54:47 PST 2014
src/sna/sna_dri.c | 5 +++--
src/uxa/intel_dri.c | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
New commits:
commit f23ab963c4f4ada2051588dfc85264aa2798dbf7
Author: Rinat <ibragimovrinat at mail.ru>
Date: Fri Jan 17 10:47:44 2014 +0000
Provide DRI2DriverVDPAU for future compatibility
Since 2010, DRI2 supports multiple driver names. That was added to ease
selection of appropriate driver by libvdpau. As for today, intel driver
support only DRI2DriverDRI (== 0), but not DRI2DriverVDPAU (== 1).
Although there is no any hardware-specific VDPAU driver for intel video
adapters at the moment, it would be easier to use generic drivers like
libvdpau-va-gl by creating symlink named libvdpau_i965.so.1. That way
appropriate driver will be selected in run time automatically:
libvdpau_i965.so.1 on i965 equipped machines, and libvdpau_nvidia.so.1
on nvidia equipped ones.
[ickle: Whilst I think this is a workaround for a brainfart in libvdpau
that it defaults to libvdpau_nvidia.so rather than first to
libdvpau_${DRI2DriverDRI} and then to a hardcoded libvdpau_backend.so,
I have no better solution, and this does seem in accordance with the
spec.]
Signed-off-by: Rinat <ibragimovrinat at mail.ru>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73507
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index fedf263..ba705ec 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -2463,7 +2463,7 @@ bool sna_dri_open(struct sna *sna, ScreenPtr screen)
DRI2InfoRec info;
int major = 1, minor = 0;
#if DRI2INFOREC_VERSION >= 4
- const char *driverNames[1];
+ const char *driverNames[2];
#endif
DBG(("%s()\n", __FUNCTION__));
@@ -2507,9 +2507,10 @@ bool sna_dri_open(struct sna *sna, ScreenPtr screen)
info.ScheduleSwap = sna_dri_schedule_swap;
info.GetMSC = sna_dri_get_msc;
info.ScheduleWaitMSC = sna_dri_schedule_wait_msc;
- info.numDrivers = 1;
+ info.numDrivers = 2;
info.driverNames = driverNames;
driverNames[0] = info.driverName;
+ driverNames[1] = info.driverName;
#endif
#if DRI2INFOREC_VERSION >= 6
diff --git a/src/uxa/intel_dri.c b/src/uxa/intel_dri.c
index 1d7efab..ca58052 100644
--- a/src/uxa/intel_dri.c
+++ b/src/uxa/intel_dri.c
@@ -1567,7 +1567,7 @@ Bool I830DRI2ScreenInit(ScreenPtr screen)
int dri2scr_major = 1;
int dri2scr_minor = 0;
#if DRI2INFOREC_VERSION >= 4
- const char *driverNames[1];
+ const char *driverNames[2];
#endif
if (intel->force_fallback) {
@@ -1634,9 +1634,10 @@ Bool I830DRI2ScreenInit(ScreenPtr screen)
info.ScheduleSwap = I830DRI2ScheduleSwap;
info.GetMSC = I830DRI2GetMSC;
info.ScheduleWaitMSC = I830DRI2ScheduleWaitMSC;
- info.numDrivers = 1;
+ info.numDrivers = 2;
info.driverNames = driverNames;
driverNames[0] = info.driverName;
+ driverNames[1] = info.driverName;
#endif
return DRI2ScreenInit(screen, &info);
More information about the xorg-commit
mailing list