pl111: Rename the pl111 driver to "kmsro".
authorEric Anholt <eric@anholt.net>
Tue, 23 Oct 2018 19:33:09 +0000 (12:33 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 28 Jan 2019 17:35:45 +0000 (09:35 -0800)
The vc4 driver can do prime sharing to many different KMS-only devices,
such as the various tinydrm drivers for SPI-attached displays.  Rename the
driver away from "pl111" to represent what it will actually support:
various sorts of KMS displays with the renderonly layer used to attach a
GPU.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
35 files changed:
.travis.yml
Android.mk
Makefile.am
configure.ac
meson.build
meson_options.txt
src/gallium/Android.mk
src/gallium/Makefile.am
src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
src/gallium/auxiliary/target-helpers/drm_helper.h
src/gallium/auxiliary/target-helpers/drm_helper_public.h
src/gallium/drivers/kmsro/Android.mk [new file with mode: 0644]
src/gallium/drivers/kmsro/Automake.inc [new file with mode: 0644]
src/gallium/drivers/kmsro/Makefile.am [new file with mode: 0644]
src/gallium/drivers/kmsro/Makefile.sources [new file with mode: 0644]
src/gallium/drivers/pl111/Android.mk [deleted file]
src/gallium/drivers/pl111/Automake.inc [deleted file]
src/gallium/drivers/pl111/Makefile.am [deleted file]
src/gallium/drivers/pl111/Makefile.sources [deleted file]
src/gallium/meson.build
src/gallium/targets/dri/Makefile.am
src/gallium/targets/dri/meson.build
src/gallium/targets/dri/target.c
src/gallium/winsys/kmsro/drm/Android.mk [new file with mode: 0644]
src/gallium/winsys/kmsro/drm/Makefile.am [new file with mode: 0644]
src/gallium/winsys/kmsro/drm/Makefile.sources [new file with mode: 0644]
src/gallium/winsys/kmsro/drm/kmsro_drm_public.h [new file with mode: 0644]
src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c [new file with mode: 0644]
src/gallium/winsys/kmsro/drm/meson.build [new file with mode: 0644]
src/gallium/winsys/pl111/drm/Android.mk [deleted file]
src/gallium/winsys/pl111/drm/Makefile.am [deleted file]
src/gallium/winsys/pl111/drm/Makefile.sources [deleted file]
src/gallium/winsys/pl111/drm/meson.build [deleted file]
src/gallium/winsys/pl111/drm/pl111_drm_public.h [deleted file]
src/gallium/winsys/pl111/drm/pl111_drm_winsys.c [deleted file]

index 726622ee46a5e9e87ac09a4f1970060ba289a439..d98dcf33659b1bc1cf02ecef9b687ba4ef9e9bd2 100644 (file)
@@ -352,7 +352,7 @@ matrix:
         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
         - DRI_DRIVERS=""
         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
-        - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
+        - GALLIUM_DRIVERS="i915,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
         - VULKAN_DRIVERS=""
         - LIBUNWIND_FLAGS="--enable-libunwind"
       addons:
index 914854c27d633cddd850ddf1dcca3720ffe740cd..1a0bdd1736cfb0beb325990beb9538d6e0f6c9d1 100644 (file)
@@ -24,7 +24,7 @@
 # BOARD_GPU_DRIVERS should be defined.  The valid values are
 #
 #   classic drivers: i915 i965
-#   gallium drivers: swrast freedreno i915g nouveau pl111 r300g r600g radeonsi vc4 virgl vmwgfx etnaviv imx
+#   gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv imx
 #
 # The main target is libGLES_mesa.  For each classic driver enabled, a DRI
 # module will also be built.  DRI modules will be loaded by libGLES_mesa.
@@ -52,7 +52,7 @@ gallium_drivers := \
        freedreno.HAVE_GALLIUM_FREEDRENO \
        i915g.HAVE_GALLIUM_I915 \
        nouveau.HAVE_GALLIUM_NOUVEAU \
-       pl111.HAVE_GALLIUM_PL111 \
+       kmsro.HAVE_GALLIUM_KMSRO \
        r300g.HAVE_GALLIUM_R300 \
        r600g.HAVE_GALLIUM_R600 \
        radeonsi.HAVE_GALLIUM_RADEONSI \
index 9e27db046e5224d6f69543a4e2cd48f566b6b0f3..62c755aeca7fef6b724c034d5e90b8009e50d196 100644 (file)
@@ -45,7 +45,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
        --enable-libunwind \
        --with-platforms=x11,wayland,drm,surfaceless \
        --with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
-       --with-gallium-drivers=i915,nouveau,r300,pl111,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv,imx \
+       --with-gallium-drivers=i915,nouveau,r300,kmsro,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv,imx \
        --with-vulkan-drivers=intel,radeon
 
 ACLOCAL_AMFLAGS = -I m4
index 6766b8ca441041c15b189c1903b36867f2cdea17..8f668fb10ad1b73bc8fba05232b3370aaaccb2c3 100644 (file)
@@ -1408,7 +1408,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
 AC_ARG_WITH([gallium-drivers],
     [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
         [comma delimited Gallium drivers list, e.g.
-        "i915,nouveau,r300,r600,radeonsi,freedreno,pl111,svga,swrast,swr,tegra,v3d,vc4,virgl,etnaviv,imx"
+        "i915,nouveau,r300,r600,radeonsi,freedreno,kmsro,svga,swrast,swr,tegra,v3d,vc4,virgl,etnaviv,imx"
         @<:@default=r300,r600,svga,swrast@:>@])],
     [with_gallium_drivers="$withval"],
     [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
@@ -2830,8 +2830,8 @@ if test -n "$with_gallium_drivers"; then
                                DEFINES="$DEFINES -DUSE_V3D_SIMULATOR"],
                               [USE_V3D_SIMULATOR=no])
             ;;
-        xpl111)
-            HAVE_GALLIUM_PL111=yes
+        xkmsro)
+            HAVE_GALLIUM_KMSRO=yes
             ;;
         xvirgl)
             HAVE_GALLIUM_VIRGL=yes
@@ -2868,8 +2868,8 @@ if test "x$HAVE_GALLIUM_ETNAVIV" != xyes -a "x$HAVE_GALLIUM_IMX" = xyes  ; then
     AC_MSG_ERROR([Building with imx requires etnaviv])
 fi
 
-if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_PL111" = xyes  ; then
-    AC_MSG_ERROR([Building with pl111 requires vc4])
+if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_KMSRO" = xyes  ; then
+    AC_MSG_ERROR([Building with kmsro requires vc4])
 fi
 
 if test "x$HAVE_GALLIUM_NOUVEAU" != xyes -a "x$HAVE_GALLIUM_TEGRA" = xyes; then
@@ -2966,7 +2966,7 @@ fi
 
 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
-AM_CONDITIONAL(HAVE_GALLIUM_PL111, test "x$HAVE_GALLIUM_PL111" = xyes)
+AM_CONDITIONAL(HAVE_GALLIUM_KMSRO, test "x$HAVE_GALLIUM_KMSRO" = xyes)
 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
@@ -3116,7 +3116,7 @@ AC_CONFIG_FILES([Makefile
                  src/gallium/drivers/i915/Makefile
                  src/gallium/drivers/llvmpipe/Makefile
                  src/gallium/drivers/nouveau/Makefile
-                 src/gallium/drivers/pl111/Makefile
+                 src/gallium/drivers/kmsro/Makefile
                  src/gallium/drivers/r300/Makefile
                  src/gallium/drivers/r600/Makefile
                  src/gallium/drivers/radeonsi/Makefile
@@ -3164,7 +3164,7 @@ AC_CONFIG_FILES([Makefile
                  src/gallium/winsys/freedreno/drm/Makefile
                  src/gallium/winsys/i915/drm/Makefile
                  src/gallium/winsys/nouveau/drm/Makefile
-                 src/gallium/winsys/pl111/drm/Makefile
+                 src/gallium/winsys/kmsro/drm/Makefile
                  src/gallium/winsys/radeon/drm/Makefile
                  src/gallium/winsys/amdgpu/drm/Makefile
                  src/gallium/winsys/svga/drm/Makefile
index 2d730708d06783c1ad69a2f9757f29e0c56cc63a..2ebce75b13b80f1f30161d30895e607424e5f08b 100644 (file)
@@ -131,7 +131,7 @@ if _drivers.contains('auto')
       ]
     elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
       _drivers = [
-        'pl111', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'imx', 'nouveau',
+        'kmsro', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'imx', 'nouveau',
         'tegra', 'virgl', 'swrast',
       ]
     else
@@ -145,7 +145,7 @@ if _drivers.contains('auto')
           host_machine.system()))
   endif
 endif
-with_gallium_pl111 = _drivers.contains('pl111')
+with_gallium_kmsro = _drivers.contains('kmsro')
 with_gallium_radeonsi = _drivers.contains('radeonsi')
 with_gallium_r300 = _drivers.contains('r300')
 with_gallium_r600 = _drivers.contains('r600')
@@ -213,8 +213,8 @@ endif
 if with_gallium_imx and not with_gallium_etnaviv
   error('IMX driver requires etnaviv driver')
 endif
-if with_gallium_pl111 and not with_gallium_vc4
-  error('pl111 driver requires vc4 driver')
+if with_gallium_kmsro and not with_gallium_vc4
+  error('kmsro driver requires vc4 driver')
 endif
 if with_gallium_tegra and not with_gallium_nouveau
   error('tegra driver requires nouveau driver')
index bfb06c4dd42f94e3b991732788aba37aac41b048..937137e3bf49cae99a4956ee8506469787a56662 100644 (file)
@@ -58,7 +58,7 @@ option(
   type : 'array',
   value : ['auto'],
   choices : [
-    '', 'auto', 'pl111', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
+    '', 'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
     'swrast', 'v3d', 'vc4', 'etnaviv', 'imx', 'tegra', 'i915', 'svga', 'virgl',
     'swr',
   ],
index 21a1620974ef1fb7402f4823fcc560cd2e7e2ba3..12e55037fdc5d4c4856843b75dcdc2e4f755bb6c 100644 (file)
@@ -38,7 +38,7 @@ SUBDIRS += winsys/sw/kms-dri winsys/sw/dri drivers/softpipe
 SUBDIRS += winsys/freedreno/drm drivers/freedreno
 SUBDIRS += winsys/i915/drm drivers/i915
 SUBDIRS += winsys/nouveau/drm drivers/nouveau
-SUBDIRS += winsys/pl111/drm drivers/pl111
+SUBDIRS += winsys/kmsro/drm drivers/kmsro
 SUBDIRS += winsys/radeon/drm drivers/r300
 SUBDIRS += winsys/radeon/drm drivers/r600
 SUBDIRS += winsys/radeon/drm winsys/amdgpu/drm drivers/radeonsi
index e75c1866832eedaade45752db72f64cb43d0f6af..8cb391cfd753dc0c399d946c5d317e45234d013f 100644 (file)
@@ -60,8 +60,8 @@ if HAVE_GALLIUM_IMX
 SUBDIRS += drivers/imx winsys/imx/drm
 endif
 
-if HAVE_GALLIUM_PL111
-SUBDIRS += drivers/pl111 winsys/pl111/drm
+if HAVE_GALLIUM_KMSRO
+SUBDIRS += drivers/kmsro winsys/kmsro/drm
 endif
 
 ## swrast/softpipe
index 5a88a2ac2f007110a762dbf1561783e0f81e498a..230bafe5e159747fef6783bd9788b85e7e6f1149 100644 (file)
@@ -108,7 +108,7 @@ static const struct drm_driver_descriptor driver_descriptors[] = {
     },
     {
        .driver_name = "pl111",
-        .create_screen = pipe_pl111_create_screen,
+        .create_screen = pipe_kmsro_create_screen,
         .configuration = pipe_default_configuration_query,
     },
     {
index bb5c5790d9df0bef874cae8c282adc55e81a64e5..927a013338929903e1187e081166318bf0e5ea4f 100644 (file)
@@ -83,24 +83,24 @@ pipe_nouveau_create_screen(int fd, const struct pipe_screen_config *config)
 
 #endif
 
-#ifdef GALLIUM_PL111
-#include "pl111/drm/pl111_drm_public.h"
+#ifdef GALLIUM_KMSRO
+#include "kmsro/drm/kmsro_drm_public.h"
 
 struct pipe_screen *
-pipe_pl111_create_screen(int fd, const struct pipe_screen_config *config)
+pipe_kmsro_create_screen(int fd, const struct pipe_screen_config *config)
 {
    struct pipe_screen *screen;
 
-   screen = pl111_drm_screen_create(fd);
+   screen = kmsro_drm_screen_create(fd);
    return screen ? debug_screen_wrap(screen) : NULL;
 }
 
 #else
 
 struct pipe_screen *
-pipe_pl111_create_screen(int fd, const struct pipe_screen_config *config)
+pipe_kmsro_create_screen(int fd, const struct pipe_screen_config *config)
 {
-   fprintf(stderr, "pl111: driver missing\n");
+   fprintf(stderr, "kmsro: driver missing\n");
    return NULL;
 }
 
index 155c525762c81b5172bdfbeb8d79fe488ba5bc07..750ed09335c65bd5525966ca43f4472715f7b893 100644 (file)
@@ -43,7 +43,7 @@ struct pipe_screen *
 pipe_vc4_create_screen(int fd, const struct pipe_screen_config *config);
 
 struct pipe_screen *
-pipe_pl111_create_screen(int fd, const struct pipe_screen_config *config);
+pipe_kmsro_create_screen(int fd, const struct pipe_screen_config *config);
 
 struct pipe_screen *
 pipe_etna_create_screen(int fd, const struct pipe_screen_config *config);
diff --git a/src/gallium/drivers/kmsro/Android.mk b/src/gallium/drivers/kmsro/Android.mk
new file mode 100644 (file)
index 0000000..8a85102
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright (C) 2014 Emil Velikov <emil.l.velikov@gmail.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+LOCAL_PATH := $(call my-dir)
+
+# get C_SOURCES
+include $(LOCAL_PATH)/Makefile.sources
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+       $(C_SOURCES)
+
+LOCAL_MODULE := libmesa_pipe_kmsro
+
+include $(GALLIUM_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
+
+ifneq ($(HAVE_GALLIUM_KMSRO),)
+GALLIUM_TARGET_DRIVERS += pl111
+$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_kmsro)
+endif
diff --git a/src/gallium/drivers/kmsro/Automake.inc b/src/gallium/drivers/kmsro/Automake.inc
new file mode 100644 (file)
index 0000000..66d125c
--- /dev/null
@@ -0,0 +1,9 @@
+if HAVE_GALLIUM_KMSRO
+
+TARGET_DRIVERS += pl111
+TARGET_CPPFLAGS += -DGALLIUM_KMSRO
+TARGET_LIB_DEPS += \
+    $(top_builddir)/src/gallium/winsys/kmsro/drm/libkmsrodrm.la \
+    $(LIBDRM_LIBS)
+
+endif
diff --git a/src/gallium/drivers/kmsro/Makefile.am b/src/gallium/drivers/kmsro/Makefile.am
new file mode 100644 (file)
index 0000000..5bfacca
--- /dev/null
@@ -0,0 +1,8 @@
+include $(top_srcdir)/src/gallium/Automake.inc
+
+AM_CPPFLAGS = \
+       $(GALLIUM_CFLAGS)
+
+noinst_LTLIBRARIES = libkmsro.la
+
+libkmsro_la_SOURCES = $(C_SOURCES)
diff --git a/src/gallium/drivers/kmsro/Makefile.sources b/src/gallium/drivers/kmsro/Makefile.sources
new file mode 100644 (file)
index 0000000..2039675
--- /dev/null
@@ -0,0 +1,2 @@
+C_SOURCES :=
+
diff --git a/src/gallium/drivers/pl111/Android.mk b/src/gallium/drivers/pl111/Android.mk
deleted file mode 100644 (file)
index 00a123e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2014 Emil Velikov <emil.l.velikov@gmail.com>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-
-LOCAL_PATH := $(call my-dir)
-
-# get C_SOURCES
-include $(LOCAL_PATH)/Makefile.sources
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
-       $(C_SOURCES)
-
-LOCAL_MODULE := libmesa_pipe_pl111
-
-include $(GALLIUM_COMMON_MK)
-include $(BUILD_STATIC_LIBRARY)
-
-ifneq ($(HAVE_GALLIUM_PL111),)
-GALLIUM_TARGET_DRIVERS += pl111
-$(eval GALLIUM_LIBS += $(LOCAL_MODULE) libmesa_winsys_pl111)
-endif
diff --git a/src/gallium/drivers/pl111/Automake.inc b/src/gallium/drivers/pl111/Automake.inc
deleted file mode 100644 (file)
index 4ecd7de..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-if HAVE_GALLIUM_PL111
-
-TARGET_DRIVERS += pl111
-TARGET_CPPFLAGS += -DGALLIUM_PL111
-TARGET_LIB_DEPS += \
-    $(top_builddir)/src/gallium/winsys/pl111/drm/libpl111drm.la \
-    $(LIBDRM_LIBS)
-
-endif
diff --git a/src/gallium/drivers/pl111/Makefile.am b/src/gallium/drivers/pl111/Makefile.am
deleted file mode 100644 (file)
index b3e95ee..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-include $(top_srcdir)/src/gallium/Automake.inc
-
-AM_CPPFLAGS = \
-       $(GALLIUM_CFLAGS)
-
-noinst_LTLIBRARIES = libpl111.la
-
-libpl111_la_SOURCES = $(C_SOURCES)
diff --git a/src/gallium/drivers/pl111/Makefile.sources b/src/gallium/drivers/pl111/Makefile.sources
deleted file mode 100644 (file)
index 2039675..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-C_SOURCES :=
-
index 561af9d339c04f781146d95c4951350ded09b7a6..a3679e5ef62981675c512c764cf0d1cde5c3b347 100644 (file)
@@ -89,10 +89,10 @@ if with_gallium_vc4
 else
   driver_vc4 = declare_dependency()
 endif
-if with_gallium_pl111
-  subdir('winsys/pl111/drm')
+if with_gallium_kmsro
+  subdir('winsys/kmsro/drm')
 else
-  driver_pl111 = declare_dependency()
+  driver_kmsro = declare_dependency()
 endif
 if with_gallium_v3d
   subdir('winsys/v3d/drm')
index a857b5129fdcc5f4f43d0b13e01065b5c1f4eba6..42e4a6b4dc7b41f831a51aeeff383bcc8d49b290 100644 (file)
@@ -78,7 +78,7 @@ include $(top_srcdir)/src/gallium/drivers/tegra/Automake.inc
 
 include $(top_srcdir)/src/gallium/drivers/v3d/Automake.inc
 include $(top_srcdir)/src/gallium/drivers/vc4/Automake.inc
-include $(top_srcdir)/src/gallium/drivers/pl111/Automake.inc
+include $(top_srcdir)/src/gallium/drivers/kmsro/Automake.inc
 
 include $(top_srcdir)/src/gallium/drivers/virgl/Automake.inc
 
index 51940a2f350c4f87e66577ec1d113008693b7396..c1cb616b4dadbb28a5df26aafbc943cba453e962 100644 (file)
@@ -56,13 +56,13 @@ libgallium_dri = shared_library(
   dependencies : [
     dep_selinux, dep_expat, dep_libdrm, dep_llvm, dep_thread,
     driver_swrast, driver_r300, driver_r600, driver_radeonsi, driver_nouveau,
-    driver_pl111, driver_v3d, driver_vc4, driver_freedreno, driver_etnaviv,
+    driver_kmsro, driver_v3d, driver_vc4, driver_freedreno, driver_etnaviv,
     driver_imx, driver_tegra, driver_i915, driver_svga, driver_virgl,
     driver_swr,
   ],
 )
 
-foreach d : [[with_gallium_pl111, 'pl111_dri.so'],
+foreach d : [[with_gallium_kmsro, 'pl111_dri.so'],
              [with_gallium_radeonsi, 'radeonsi_dri.so'],
              [with_gallium_nouveau, 'nouveau_dri.so'],
              [with_gallium_freedreno, ['msm_dri.so', 'kgsl_dri.so']],
index 835d125f21e434390882d49d4543efd874cd3b16..2821cef197eaefaf678192ca3aa704262a6cdaec 100644 (file)
@@ -77,7 +77,7 @@ DEFINE_LOADER_DRM_ENTRYPOINT(v3d)
 
 #if defined(GALLIUM_VC4)
 DEFINE_LOADER_DRM_ENTRYPOINT(vc4)
-#if defined(GALLIUM_PL111)
+#if defined(GALLIUM_KMSRO)
 DEFINE_LOADER_DRM_ENTRYPOINT(pl111)
 #endif
 #endif
diff --git a/src/gallium/winsys/kmsro/drm/Android.mk b/src/gallium/winsys/kmsro/drm/Android.mk
new file mode 100644 (file)
index 0000000..13600fd
--- /dev/null
@@ -0,0 +1,33 @@
+# Copyright (C) 2014 Emil Velikov <emil.l.velikov@gmail.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+LOCAL_PATH := $(call my-dir)
+
+# get C_SOURCES
+include $(LOCAL_PATH)/Makefile.sources
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(C_SOURCES)
+
+LOCAL_MODULE := libmesa_winsys_kmsro
+
+include $(GALLIUM_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/src/gallium/winsys/kmsro/drm/Makefile.am b/src/gallium/winsys/kmsro/drm/Makefile.am
new file mode 100644 (file)
index 0000000..ad471d3
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright © 2012 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+include Makefile.sources
+include $(top_srcdir)/src/gallium/Automake.inc
+
+AM_CFLAGS = \
+       -I$(top_srcdir)/src/gallium/drivers \
+       -I$(top_srcdir)/src/gallium/winsys \
+       $(GALLIUM_WINSYS_CFLAGS) \
+       $(LIBDRM_CFLAGS)
+
+noinst_LTLIBRARIES = libkmsrodrm.la
+
+libkmsrodrm_la_SOURCES = $(C_SOURCES)
+
+EXTRA_DIST = meson.build
diff --git a/src/gallium/winsys/kmsro/drm/Makefile.sources b/src/gallium/winsys/kmsro/drm/Makefile.sources
new file mode 100644 (file)
index 0000000..220b6fc
--- /dev/null
@@ -0,0 +1,3 @@
+C_SOURCES := \
+   kmsro_drm_public.h \
+   kmsro_drm_winsys.c
diff --git a/src/gallium/winsys/kmsro/drm/kmsro_drm_public.h b/src/gallium/winsys/kmsro/drm/kmsro_drm_public.h
new file mode 100644 (file)
index 0000000..4da4e4b
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2016 Christian Gmeiner <christian.gmeiner@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Authors:
+ *    Christian Gmeiner <christian.gmeiner@gmail.com>
+ */
+
+#ifndef __KMSRO_DRM_PUBLIC_H__
+#define __KMSRO_DRM_PUBLIC_H__
+
+struct pipe_screen;
+
+struct pipe_screen *kmsro_drm_screen_create(int fd);
+
+#endif /* __KMSRO_DRM_PUBLIC_H__ */
diff --git a/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c b/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c
new file mode 100644 (file)
index 0000000..4448150
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2016 Christian Gmeiner <christian.gmeiner@gmail.com>
+ * Copyright (C) 2017 Broadcom
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "kmsro_drm_public.h"
+#include "vc4/drm/vc4_drm_public.h"
+#include "xf86drm.h"
+
+#include "pipe/p_screen.h"
+#include "renderonly/renderonly.h"
+
+struct pipe_screen *kmsro_drm_screen_create(int fd)
+{
+   struct renderonly ro = {
+      /* Passes the vc4-allocated BO through to the KMS-only DRM device using
+       * PRIME buffer sharing.  The VC4 BO must be linear, which the SCANOUT
+       * flag on allocation will have ensured.
+       */
+      .create_for_resource = renderonly_create_gpu_import_for_resource,
+      .kms_fd = fd,
+      .gpu_fd = drmOpenWithType("vc4", NULL, DRM_NODE_RENDER),
+   };
+
+   if (ro.gpu_fd < 0)
+      return NULL;
+
+   struct pipe_screen *screen = vc4_drm_screen_create_renderonly(&ro);
+   if (!screen)
+      close(ro.gpu_fd);
+
+   return screen;
+}
diff --git a/src/gallium/winsys/kmsro/drm/meson.build b/src/gallium/winsys/kmsro/drm/meson.build
new file mode 100644 (file)
index 0000000..f157982
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright © 2017 Broadcom
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+libkmsrowinsys = static_library(
+  'kmsrowinsys',
+  files('kmsro_drm_winsys.c'),
+  include_directories : [
+    inc_src, inc_include,
+    inc_gallium, inc_gallium_aux, inc_gallium_winsys,
+  ],
+  c_args : [c_vis_args],
+  dependencies: dep_libdrm,
+  link_with : libvc4winsys,
+)
+
+driver_kmsro = declare_dependency(
+  compile_args : '-DGALLIUM_KMSRO',
+  link_with : libkmsrowinsys,
+)
diff --git a/src/gallium/winsys/pl111/drm/Android.mk b/src/gallium/winsys/pl111/drm/Android.mk
deleted file mode 100644 (file)
index 16edd97..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (C) 2014 Emil Velikov <emil.l.velikov@gmail.com>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-
-LOCAL_PATH := $(call my-dir)
-
-# get C_SOURCES
-include $(LOCAL_PATH)/Makefile.sources
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(C_SOURCES)
-
-LOCAL_MODULE := libmesa_winsys_pl111
-
-include $(GALLIUM_COMMON_MK)
-include $(BUILD_STATIC_LIBRARY)
diff --git a/src/gallium/winsys/pl111/drm/Makefile.am b/src/gallium/winsys/pl111/drm/Makefile.am
deleted file mode 100644 (file)
index 148e912..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright © 2012 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-
-include Makefile.sources
-include $(top_srcdir)/src/gallium/Automake.inc
-
-AM_CFLAGS = \
-       -I$(top_srcdir)/src/gallium/drivers \
-       -I$(top_srcdir)/src/gallium/winsys \
-       $(GALLIUM_WINSYS_CFLAGS) \
-       $(LIBDRM_CFLAGS)
-
-noinst_LTLIBRARIES = libpl111drm.la
-
-libpl111drm_la_SOURCES = $(C_SOURCES)
-
-EXTRA_DIST = meson.build
diff --git a/src/gallium/winsys/pl111/drm/Makefile.sources b/src/gallium/winsys/pl111/drm/Makefile.sources
deleted file mode 100644 (file)
index b4496e6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-C_SOURCES := \
-   pl111_drm_public.h \
-   pl111_drm_winsys.c
diff --git a/src/gallium/winsys/pl111/drm/meson.build b/src/gallium/winsys/pl111/drm/meson.build
deleted file mode 100644 (file)
index 9cb6faf..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright © 2017 Broadcom
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-libpl111winsys = static_library(
-  'pl111winsys',
-  files('pl111_drm_winsys.c'),
-  include_directories : [
-    inc_src, inc_include,
-    inc_gallium, inc_gallium_aux, inc_gallium_winsys,
-  ],
-  c_args : [c_vis_args],
-  dependencies: dep_libdrm,
-  link_with : libvc4winsys,
-)
-
-driver_pl111 = declare_dependency(
-  compile_args : '-DGALLIUM_PL111',
-  link_with : libpl111winsys,
-)
diff --git a/src/gallium/winsys/pl111/drm/pl111_drm_public.h b/src/gallium/winsys/pl111/drm/pl111_drm_public.h
deleted file mode 100644 (file)
index f362b0f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2016 Christian Gmeiner <christian.gmeiner@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Authors:
- *    Christian Gmeiner <christian.gmeiner@gmail.com>
- */
-
-#ifndef __PL111_DRM_PUBLIC_H__
-#define __PL111_DRM_PUBLIC_H__
-
-struct pipe_screen;
-
-struct pipe_screen *pl111_drm_screen_create(int fd);
-
-#endif /* __PL111_DRM_PUBLIC_H__ */
diff --git a/src/gallium/winsys/pl111/drm/pl111_drm_winsys.c b/src/gallium/winsys/pl111/drm/pl111_drm_winsys.c
deleted file mode 100644 (file)
index ef7b080..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2016 Christian Gmeiner <christian.gmeiner@gmail.com>
- * Copyright (C) 2017 Broadcom
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include <fcntl.h>
-#include <unistd.h>
-
-#include "pl111_drm_public.h"
-#include "vc4/drm/vc4_drm_public.h"
-#include "xf86drm.h"
-
-#include "pipe/p_screen.h"
-#include "renderonly/renderonly.h"
-
-struct pipe_screen *pl111_drm_screen_create(int fd)
-{
-   struct renderonly ro = {
-      /* Passes the vc4-allocated BO through to the pl111 DRM device using
-       * PRIME buffer sharing.  The VC4 BO must be linear, which the SCANOUT
-       * flag on allocation will have ensured.
-       */
-      .create_for_resource = renderonly_create_gpu_import_for_resource,
-      .kms_fd = fd,
-      .gpu_fd = drmOpenWithType("vc4", NULL, DRM_NODE_RENDER),
-   };
-
-   if (ro.gpu_fd < 0)
-      return NULL;
-
-   struct pipe_screen *screen = vc4_drm_screen_create_renderonly(&ro);
-   if (!screen)
-      close(ro.gpu_fd);
-
-   return screen;
-}