diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-10-19 16:51:30 -0400 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-10-26 13:17:42 +0000 |
commit | 4949876dd04e8facc4ba3fd06c3b057295591a15 (patch) | |
tree | c93f7fdfe981482b83c1f688aecb238978611ce9 /src | |
parent | ace5138548c9833dacad14482ecadaa672884611 (diff) |
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 <[email protected]>
Reviewed-by: Christian Gmeiner <[email protected]>
Acked-by: Karol Herbst <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/targets/pipe-loader/meson.build | 1 | ||||
-rw-r--r-- | src/gallium/targets/pipe-loader/pipe_kmsro.c | 21 |
2 files changed, 22 insertions, 0 deletions
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) |