Commit f6292c32 authored by Jonathan Marek's avatar Jonathan Marek Committed by Rob Clark

kmsro: Add freedreno renderonly support

Signed-off-by: Jonathan Marek's avatarJonathan Marek <jonathan@marek.ca>
parent 7d458c0c
......@@ -209,8 +209,8 @@ 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)
error('kmsro driver requires one or more renderonly drivers (vc4, etnaviv)')
if with_gallium_kmsro and not (with_gallium_vc4 or with_gallium_etnaviv or with_gallium_freedreno)
error('kmsro driver requires one or more renderonly drivers (vc4, etnaviv, freedreno)')
endif
if with_gallium_tegra and not with_gallium_nouveau
error('tegra driver requires nouveau driver')
......
......@@ -37,6 +37,10 @@ if HAVE_GALLIUM_VC4
AM_CFLAGS += -DGALLIUM_VC4
endif
if HAVE_GALLIUM_FREEDRENO
AM_CFLAGS += -DGALLIUM_FREEDRENO
endif
noinst_LTLIBRARIES = libkmsrodrm.la
libkmsrodrm_la_SOURCES = $(C_SOURCES)
......
......@@ -28,6 +28,7 @@
#include "kmsro_drm_public.h"
#include "vc4/drm/vc4_drm_public.h"
#include "etnaviv/drm/etnaviv_drm_public.h"
#include "freedreno/drm/freedreno_drm_public.h"
#include "xf86drm.h"
#include "pipe/p_screen.h"
......@@ -69,5 +70,17 @@ struct pipe_screen *kmsro_drm_screen_create(int fd)
}
#endif
#if defined(GALLIUM_FREEDRENO)
ro.gpu_fd = drmOpenWithType("msm", NULL, DRM_NODE_RENDER);
if (ro.gpu_fd >= 0) {
ro.create_for_resource = renderonly_create_kms_dumb_buffer_for_resource,
screen = fd_drm_screen_create(ro.gpu_fd, &ro);
if (!screen)
close(ro.gpu_fd);
return screen;
}
#endif
return screen;
}
......@@ -25,6 +25,9 @@ endif
if with_gallium_vc4
kmsro_c_args += '-DGALLIUM_VC4'
endif
if with_gallium_freedreno
kmsro_c_args += '-DGALLIUM_FREEDRENO'
endif
libkmsrowinsys = static_library(
'kmsrowinsys',
......
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