Mesa (master): pipe-loader: Add kmsro pipe_loader target

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Oct 26 13:41:54 UTC 2019


Module: Mesa
Branch: master
Commit: 4949876dd04e8facc4ba3fd06c3b057295591a15
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4949876dd04e8facc4ba3fd06c3b057295591a15

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Sat Oct 19 16:51:30 2019 -0400

pipe-loader: Add kmsro pipe_loader target

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 at collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Acked-by: Karol Herbst <kherbst at redhat.com>

---

 src/gallium/targets/pipe-loader/meson.build  |  1 +
 src/gallium/targets/pipe-loader/pipe_kmsro.c | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/src/gallium/targets/pipe-loader/meson.build b/src/gallium/targets/pipe-loader/meson.build
index 8a6282dceb6..df6d223ab2d 100644
--- a/src/gallium/targets/pipe-loader/meson.build
+++ b/src/gallium/targets/pipe-loader/meson.build
@@ -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
index 00000000000..1c1a8d24561
--- /dev/null
+++ b/src/gallium/targets/pipe-loader/pipe_kmsro.c
@@ -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)




More information about the mesa-commit mailing list