From 4949876dd04e8facc4ba3fd06c3b057295591a15 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 19 Oct 2019 16:51:30 -0400 Subject: [PATCH] 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 Reviewed-by: Christian Gmeiner Acked-by: Karol Herbst --- src/gallium/targets/pipe-loader/meson.build | 1 + src/gallium/targets/pipe-loader/pipe_kmsro.c | 21 ++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/gallium/targets/pipe-loader/pipe_kmsro.c 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) -- 2.30.2