On Fri, Mar 2, 2018 at 7:55 PM, Daniel Díaz Rodríguez <daniel.d...@linaro.org> wrote: > Hello, Rob! > > > On 14 July 2017 at 10:29, Daniel Díaz <daniel.d...@linaro.org> wrote: >> Those functions are not available on libMali, thus breaking >> builds and creating havoc. >> >> Removing the specific parts of the code that deal with >> gbm_bo_map() and gbm_bo_unmap() renders the kmscube utility >> a little less useful, but still valuable. > > Last time we talked about this patch you mentioned you were hesitant > and deciding whether to do this using this approach or at run time. > Have you, by any chance, had any thoughts on this recently?
Hmm, would it work instead for kmscube to provide __weak versions of those fxns that just return NULL? (or exit(-1) or whatever?) That way it is at least a runtime thing instead of a compile-time thing.. BR, -R > Greetings! See you soon. > > Daniel Díaz > daniel.d...@linaro.org > > > >> Signed-off-by: Daniel Díaz <daniel.d...@linaro.org> >> Cc: Rob Clark <robdcl...@gmail.com> >> Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com> >> >> --- >> v2: Formatting, add informational message. >> >> Makefile.am | 5 ++++- >> configure.ac | 3 +++ >> gst-decoder.c | 7 ++++++- >> kmscube.c | 4 ++++ >> 4 files changed, 17 insertions(+), 2 deletions(-) >> >> diff --git a/Makefile.am b/Makefile.am >> index a36087d..ab4adbf 100644 >> --- a/Makefile.am >> +++ b/Makefile.am >> @@ -43,7 +43,6 @@ kmscube_SOURCES = \ >> common.c \ >> common.h \ >> cube-smooth.c \ >> - cube-tex.c \ >> drm-atomic.c \ >> drm-common.c \ >> drm-common.h \ >> @@ -59,3 +58,7 @@ kmscube_LDADD += $(GST_LIBS) >> kmscube_CFLAGS += $(GST_CFLAGS) >> kmscube_SOURCES += cube-video.c gst-decoder.c >> endif >> + >> +if ENABLE_GBM_MAP >> +kmscube_SOURCES += cube-tex.c >> +endif >> diff --git a/configure.ac b/configure.ac >> index 8397f7b..c7f1f4d 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -65,5 +65,8 @@ if test "x$enable_gbm_modifiers" = xyes; then >> AC_DEFINE(HAVE_GBM_MODIFIERS, 1, [Define if you can use GBM >> properties.]) >> fi >> >> +AC_CHECK_LIB([gbm], [gbm_bo_map], [HAVE_GBM_BO_MAP=yes], []) >> +AM_CONDITIONAL(ENABLE_GBM_MAP, [test "x$HAVE_GBM_BO_MAP" = "xyes"]) >> + >> AC_CONFIG_FILES([Makefile]) >> AC_OUTPUT >> diff --git a/gst-decoder.c b/gst-decoder.c >> index 2d6d581..b84980e 100644 >> --- a/gst-decoder.c >> +++ b/gst-decoder.c >> @@ -332,6 +332,7 @@ set_last_frame(struct decoder *dec, EGLImage frame, >> GstSample *samp) >> dec->last_samp = samp; >> } >> >> +#if HAVE_GBM_BO_MAP >> // TODO this could probably be a helper re-used by cube-tex: >> static int >> buf_to_fd(const struct gbm *gbm, int size, void *ptr) >> @@ -357,6 +358,7 @@ buf_to_fd(const struct gbm *gbm, int size, void *ptr) >> >> return fd; >> } >> +#endif >> >> static EGLImage >> buffer_to_image(struct decoder *dec, GstBuffer *buf) >> @@ -410,12 +412,15 @@ buffer_to_image(struct decoder *dec, GstBuffer *buf) >> >> if (is_dmabuf_mem) { >> dmabuf_fd = dup(gst_dmabuf_memory_get_fd(mem)); >> - } else { >> + } >> +#if HAVE_GBM_BO_MAP >> + else { >> GstMapInfo map_info; >> gst_buffer_map(buf, &map_info, GST_MAP_READ); >> dmabuf_fd = buf_to_fd(dec->gbm, map_info.size, >> map_info.data); >> gst_buffer_unmap(buf, &map_info); >> } >> +#endif >> >> if (dmabuf_fd < 0) { >> GST_ERROR("could not obtain DMABUF FD"); >> diff --git a/kmscube.c b/kmscube.c >> index 3a2c4dd..276dc55 100644 >> --- a/kmscube.c >> +++ b/kmscube.c >> @@ -142,7 +142,11 @@ int main(int argc, char *argv[]) >> else if (mode == VIDEO) >> egl = init_cube_video(gbm, video); >> else >> +#if HAVE_GBM_BO_MAP >> egl = init_cube_tex(gbm, mode); >> +#else >> + printf("gbm_bo_map() support missing\n"); >> +#endif >> >> if (!egl) { >> printf("failed to initialize EGL\n"); >> -- >> 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev