pipe-loader: Add kmsro pipe_loader target
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Sat, 19 Oct 2019 20:51:30 +0000 (16:51 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Sat, 26 Oct 2019 13:17:42 +0000 (13:17 +0000)
kmsro is used by numerous embedded GPUs for a common winsys abstraction.
Let's add support for it for the dynamic pipe loader, so clover can
probe on these drivers.

We build the target with Panfrost. When other drivers need kmsro+clover,
we can revisit the build system part; my mesonfu is wanting.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
src/gallium/targets/pipe-loader/meson.build
src/gallium/targets/pipe-loader/pipe_kmsro.c [new file with mode: 0644]

index 8a6282dceb6ea0a028c3a737f211d095bfc57765..df6d223ab2d011114a6bfa3864afdddc9b5831fa 100644 (file)
@@ -54,6 +54,7 @@ pipe_loaders = [
   [with_gallium_r600, 'r600', driver_r600, []],
   [with_gallium_radeonsi, 'radeonsi', [driver_radeonsi, idep_xmlconfig], []],
   [with_gallium_freedreno, 'msm', driver_freedreno, []],
+  [with_gallium_panfrost, 'kmsro', [driver_kmsro, driver_panfrost], []],
   [with_gallium_svga, 'vmwgfx', driver_svga, []],
   [with_gallium_softpipe, 'swrast', [driver_swrast, driver_swr], [libwsw, libws_null]],
 ]
diff --git a/src/gallium/targets/pipe-loader/pipe_kmsro.c b/src/gallium/targets/pipe-loader/pipe_kmsro.c
new file mode 100644 (file)
index 0000000..1c1a8d2
--- /dev/null
@@ -0,0 +1,21 @@
+
+#include "target-helpers/inline_debug_helper.h"
+#include "state_tracker/drm_driver.h"
+#include "kmsro/drm/kmsro_drm_public.h"
+
+static struct pipe_screen *
+create_screen(int fd, const struct pipe_screen_config *config)
+{
+   struct pipe_screen *screen;
+
+   screen = kmsro_drm_screen_create(fd, config);
+   if (!screen)
+      return NULL;
+
+   screen = debug_screen_wrap(screen);
+
+   return screen;
+}
+
+PUBLIC
+DRM_DRIVER_DESCRIPTOR("kmsro", NULL, create_screen)