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 <robdclark@chromium.org>
This commit is contained in:
@@ -217,7 +217,7 @@ endif
|
|||||||
if with_dri_i915 and with_gallium_i915
|
if with_dri_i915 and with_gallium_i915
|
||||||
error('Only one i915 provider can be built')
|
error('Only one i915 provider can be built')
|
||||||
endif
|
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)')
|
error('kmsro driver requires one or more renderonly drivers (vc4, etnaviv, freedreno, panfrost, lima)')
|
||||||
endif
|
endif
|
||||||
if with_gallium_tegra and not with_gallium_nouveau
|
if with_gallium_tegra and not with_gallium_nouveau
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "kmsro_drm_public.h"
|
#include "kmsro_drm_public.h"
|
||||||
|
#include "v3d/drm/v3d_drm_public.h"
|
||||||
#include "vc4/drm/vc4_drm_public.h"
|
#include "vc4/drm/vc4_drm_public.h"
|
||||||
#include "etnaviv/drm/etnaviv_drm_public.h"
|
#include "etnaviv/drm/etnaviv_drm_public.h"
|
||||||
#include "freedreno/drm/freedreno_drm_public.h"
|
#include "freedreno/drm/freedreno_drm_public.h"
|
||||||
@@ -109,5 +110,17 @@ struct pipe_screen *kmsro_drm_screen_create(int fd)
|
|||||||
}
|
}
|
||||||
#endif
|
#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;
|
return screen;
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,9 @@ endif
|
|||||||
if with_gallium_lima
|
if with_gallium_lima
|
||||||
kmsro_c_args += '-DGALLIUM_LIMA'
|
kmsro_c_args += '-DGALLIUM_LIMA'
|
||||||
endif
|
endif
|
||||||
|
if with_gallium_v3d
|
||||||
|
kmsro_c_args += '-DGALLIUM_V3D'
|
||||||
|
endif
|
||||||
if with_gallium_vc4
|
if with_gallium_vc4
|
||||||
kmsro_c_args += '-DGALLIUM_VC4'
|
kmsro_c_args += '-DGALLIUM_VC4'
|
||||||
endif
|
endif
|
||||||
|
Reference in New Issue
Block a user