[PATCH] xwayland: device isn't even open that explains why drmGetCap fails and it advertises no Prime capabilities
Igor Gnatenko
i.gnatenko.brain at gmail.com
Wed Jan 15 11:11:46 PST 2014
Since d9769c193765ac303ad4d4760e57ff368df1f663 DRI_PRIME=1 works
isn't correctly.
1. $ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x7b cap: 0x0 crtcs: 2 outputs: 4 associated
providers: 0 name:Intel
Provider 1: id: 0x55 cap: 0xf, Source Output, Sink Output, Source
Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 0
name:radeon
2. $ xrandr --setprovideroffloadsink 0x55 0x7b
X Error of failed request: BadValue (integer parameter out of range
for operation)
Major opcode of failed request: 139 (RANDR)
Minor opcode of failed request: 34 ()
Value in failed request: 0x7b
Serial number of failed request: 16
Current serial number in output stream: 17
Reported-and-tested-by: Kirill Rusinov <carasin.berlogue at mail.ru>
Signed-off-by: Igor Gnatenko <i.gnatenko.brain at gmail.com>
Signed-off-by: Axel Davy <davyaxel at free.fr>
Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1033903
---
src/uxa/intel_driver.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c
index 1c38075..c5d85c8 100644
--- a/src/uxa/intel_driver.c
+++ b/src/uxa/intel_driver.c
@@ -549,6 +549,12 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
intel->PciInfo = xf86GetPciInfoForEntity(intel->pEnt->index);
+ if (!xorgWayland && (!intel_open_drm_master(scrn))) {
+ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+ "Failed to become DRM master.\n");
+ return FALSE;
+ }
+
scrn->monitor = scrn->confScreen->monitor;
scrn->progClock = TRUE;
scrn->rgbBits = 8;
@@ -604,14 +610,13 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
}
intel->drmSubFD = xwl_screen_get_drm_fd(intel->xwl_screen);
+
+ if (!intel->xwl_screen && !intel_open_drm_master(scrn))
+ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+ "Failed to become DRM master.\n");
}
#endif
- if (!intel->xwl_screen && !intel_open_drm_master(scrn))
- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
- "Failed to become DRM master.\n");
-
-
if (!intel_init_bufmgr(intel)) {
PreInitCleanup(scrn);
return FALSE;
--
1.8.4.2
More information about the xorg-devel
mailing list