Commit 7e069832 authored by Emma Anholt's avatar Emma Anholt
Browse files

kmsro: Add support for V3D.



Like vc4, we expect to have SOCs with various displays that have a single
V3D instance for rendering.

v2: Add v3d to the list of drivers that make enabling kmsro valid.
Acked-by: Rob Clark's avatarRob Clark <robdclark@chromium.org>
parent a8a0e5c0
......@@ -217,7 +217,7 @@ endif
if with_dri_i915 and with_gallium_i915
error('Only one i915 provider can be built')
endif
if with_gallium_kmsro and not (with_gallium_vc4 or with_gallium_etnaviv or with_gallium_freedreno or with_gallium_panfrost or with_gallium_lima)
if with_gallium_kmsro and not (with_gallium_v3d or with_gallium_vc4 or with_gallium_etnaviv or with_gallium_freedreno or with_gallium_panfrost or with_gallium_lima)
error('kmsro driver requires one or more renderonly drivers (vc4, etnaviv, freedreno, panfrost, lima)')
endif
if with_gallium_tegra and not with_gallium_nouveau
......
......@@ -26,6 +26,7 @@
#include <unistd.h>
#include "kmsro_drm_public.h"
#include "v3d/drm/v3d_drm_public.h"
#include "vc4/drm/vc4_drm_public.h"
#include "etnaviv/drm/etnaviv_drm_public.h"
#include "freedreno/drm/freedreno_drm_public.h"
......@@ -109,5 +110,17 @@ struct pipe_screen *kmsro_drm_screen_create(int fd)
}
#endif
#if defined(GALLIUM_V3D)
ro.gpu_fd = drmOpenWithType("v3d", NULL, DRM_NODE_RENDER);
if (ro.gpu_fd >= 0) {
ro.create_for_resource = renderonly_create_kms_dumb_buffer_for_resource,
screen = v3d_drm_screen_create_renderonly(&ro);
if (!screen)
close(ro.gpu_fd);
return screen;
}
#endif
return screen;
}
......@@ -25,6 +25,9 @@ endif
if with_gallium_lima
kmsro_c_args += '-DGALLIUM_LIMA'
endif
if with_gallium_v3d
kmsro_c_args += '-DGALLIUM_V3D'
endif
if with_gallium_vc4
kmsro_c_args += '-DGALLIUM_VC4'
endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment