On 06/20/2018 07:58 PM, Deepak Singh Rawat wrote:
The patch looks good to me just one question, I see that flink name
is returned as fd, so handle is what vmwgfx expecting in that case ?

Yes. vmwgfx doesn't differentiate between handles and names.

/Thomas




Reviewed-by: Deepak Rawat <dra...@vmware.com>

KMS drivers are not required to support GEM. In particular, vmwgfx
doesn't support flink and handles and names are identical.
Getting a bo name should really be part of a lower level API, if needed,
but in the mean time work around this by setting the name identical to
the handle if GEM isn't supported.

This fixes modesetting driver dri2 on vmwgfx.

Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
---
v2: Strip changes to an unrelated file.
---
  glamor/glamor_egl.c | 14 ++++++++++++--
  1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
index 4a4ca4bd8..7ec749742 100644
--- a/glamor/glamor_egl.c
+++ b/glamor/glamor_egl.c
@@ -99,8 +99,18 @@ glamor_get_flink_name(int fd, int handle, int *name)
      struct drm_gem_flink flink;

      flink.handle = handle;
-    if (ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink) < 0)
-        return FALSE;
+    if (ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) {
+
+       /*
+        * Assume non-GEM kernels have names identical to the handle
+        */
+       if (errno == ENODEV) {
+           *name = handle;
+           return TRUE;
+       } else {
+           return FALSE;
+       }
+    }
      *name = flink.name;
      return TRUE;
  }
--
2.14.3

_______________________________________________
Sent to linux-graphics-maintai...@vmware.com


_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to