summaryrefslogtreecommitdiff
path: root/recipes-graphics/xorg-xserver/xserver-xorg-1.18.4/0002-HACK-enable-GLX-with-DRI3.patch
blob: f27c2a93f8286d5c33b4fa2ea071e9b9dd4990aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
From 1baf53e2b345ae7d883d4fa6c74f09188ea53b51 Mon Sep 17 00:00:00 2001
From: Alexandre Courbot <acourbot@nvidia.com>
Date: Fri, 25 Sep 2015 14:37:01 +0900
Subject: [PATCH 2/7] [HACK] enable GLX with DRI3

---
 glamor/glamor_egl.c                   | 5 ++++-
 hw/xfree86/dri2/dri2.c                | 5 ++++-
 hw/xfree86/drivers/modesetting/dri2.c | 5 +++--
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
index b6941f2..8d25171 100644
--- a/glamor/glamor_egl.c
+++ b/glamor/glamor_egl.c
@@ -724,6 +724,7 @@ glamor_egl_screen_init(ScreenPtr screen, struct glamor_context *glamor_ctx)
     glamor_ctx->make_current = glamor_egl_make_current;
 
 #ifdef DRI3
+    xf86Msg(X_INFO, "DRI3 capable: %d\n", glamor_egl->dri3_capable);
     if (glamor_egl->dri3_capable) {
     	glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
         /* Tell the core that we have the interfaces for import/export
@@ -740,7 +741,9 @@ glamor_egl_screen_init(ScreenPtr screen, struct glamor_context *glamor_ctx)
             /* To do DRI3 device FD generation, we need to open a new fd
              * to the same device we were handed in originally.
              */
-            glamor_egl->device_path = drmGetDeviceNameFromFd(glamor_egl->fd);
+            //glamor_egl->device_path = drmGetDeviceNameFromFd(glamor_egl->fd);
+            glamor_egl->device_path = "/dev/dri/renderD128";
+	    xf86Msg(X_INFO, "DRI3 device name: %s %d\n", glamor_egl->device_path, glamor_egl->fd);
 
             if (!dri3_screen_init(screen, &glamor_dri3_info)) {
                 xf86DrvMsg(scrn->scrnIndex, X_ERROR,
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index d55be19..00c5c61 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -1334,9 +1334,12 @@ DRI2Connect(ClientPtr client, ScreenPtr pScreen,
         return FALSE;
 
     *driverName = ds->driverNames[driver_id];
-    *deviceName = ds->deviceName;
+    //*deviceName = ds->deviceName;
+    *deviceName = "/dev/dri/renderD128";
     *fd = ds->fd;
 
+    xf86Msg(X_INFO, "%s: %s %s %d\n", __func__, *driverName, *deviceName, *fd);
+
     if (client) {
         DRI2ClientPtr dri2_client;
         dri2_client = dri2ClientPrivate(client);
diff --git a/hw/xfree86/drivers/modesetting/dri2.c b/hw/xfree86/drivers/modesetting/dri2.c
index 83cb3e0..3834a01 100644
--- a/hw/xfree86/drivers/modesetting/dri2.c
+++ b/hw/xfree86/drivers/modesetting/dri2.c
@@ -831,9 +831,10 @@ ms_dri2_screen_init(ScreenPtr screen)
     }
 
     memset(&info, '\0', sizeof(info));
-    info.fd = ms->fd;
+    info.fd = gbm_device_get_fd(ms->drmmode.gbm);
+    //info.fd = ms->fd;
     info.driverName = NULL; /* Compat field, unused. */
-    info.deviceName = drmGetDeviceNameFromFd(ms->fd);
+    info.deviceName = drmGetDeviceNameFromFd(info.fd);
 
     info.version = 4;
     info.CreateBuffer = ms_dri2_create_buffer;
-- 
2.9.3