On 05/23/2018 11:14 AM, Thomas Hellstrom wrote:
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>
---
  glamor/glamor_egl.c | 14 ++++++++++++--
  test-driver         | 10 +++++-----
  2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
index 123e9f2..a75a9b9 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;
  }
diff --git a/test-driver b/test-driver
index de1e61d..b8521a4 100755
--- a/test-driver
+++ b/test-driver
@@ -1,9 +1,9 @@
-#!/bin/sh
+#! /bin/sh
  # test-driver - basic testsuite driver script.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
  # distribute this file as part of a program that contains a
@@ -140,7 +140,7 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file
  # Local Variables:
  # mode: shell-script
  # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
  # time-stamp-start: "scriptversion="
  # time-stamp-format: "%:y-%02m-%02d.%02H"
  # time-stamp-time-zone: "UTC0"

Hmm. I wonder how the test-driver hunk got included. I'll resend the patch.

/Thomas


_______________________________________________
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