From 83d7123dc32e7fb8b1e05ed21af845707d115295 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 30 Jun 2019 01:00:17 +0200 Subject: vo_gpu: remove mali-fbdev Useless at this point, I don't even know if it still works, or how to test it. --- DOCS/man/options.rst | 2 - video/out/gpu/context.c | 4 - video/out/opengl/context_mali_fbdev.c | 158 ---------------------------------- wscript | 13 +-- wscript_build.py | 1 - 5 files changed, 2 insertions(+), 176 deletions(-) delete mode 100644 video/out/opengl/context_mali_fbdev.c diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 79a2287467..8439a00163 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -5176,8 +5176,6 @@ The following video options are currently all specific to ``--vo=gpu`` and X11/EGL android Android/EGL. Requires ``--wid`` be set to an ``android.view.Surface``. - mali-fbdev - Direct fbdev/EGL support on some ARM/MALI devices. vdpauglx Use vdpau presentation with GLX as backing. Experimental use only. Using this will have no advantage (other than additional bugs or diff --git a/video/out/gpu/context.c b/video/out/gpu/context.c index 68ccf954db..767d4612e8 100644 --- a/video/out/gpu/context.c +++ b/video/out/gpu/context.c @@ -44,7 +44,6 @@ extern const struct ra_ctx_fns ra_ctx_angle; extern const struct ra_ctx_fns ra_ctx_dxgl; extern const struct ra_ctx_fns ra_ctx_rpi; extern const struct ra_ctx_fns ra_ctx_android; -extern const struct ra_ctx_fns ra_ctx_mali_fbdev; extern const struct ra_ctx_fns ra_ctx_vdpauglx; /* Vulkan */ @@ -91,9 +90,6 @@ static const struct ra_ctx_fns *contexts[] = { #if HAVE_EGL_DRM &ra_ctx_drm_egl, #endif -#if HAVE_MALI_FBDEV - &ra_ctx_mali_fbdev, -#endif #if HAVE_VDPAU_GL_X11 &ra_ctx_vdpauglx, #endif diff --git a/video/out/opengl/context_mali_fbdev.c b/video/out/opengl/context_mali_fbdev.c deleted file mode 100644 index 8576e536d3..0000000000 --- a/video/out/opengl/context_mali_fbdev.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - * This file is part of mpv. - * - * mpv is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * mpv is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with mpv. If not, see . - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "common/common.h" -#include "context.h" -#include "egl_helpers.h" - -static bool get_fbdev_size(int *w, int *h) -{ - int fd = open("/dev/fb0", O_RDWR | O_CLOEXEC); - if (fd < 0) - return false; - - struct fb_var_screeninfo info = {0}; - bool ok = !ioctl(fd, FBIOGET_VSCREENINFO, &info); - if (ok) { - *w = info.xres; - *h = info.yres; - } - - close(fd); - - return ok; -} - -struct priv { - struct GL gl; - EGLDisplay egl_display; - EGLConfig egl_config; - EGLContext egl_context; - EGLSurface egl_surface; - struct fbdev_window egl_window; - int w, h; -}; - -static void mali_uninit(struct ra_ctx *ctx) -{ - struct priv *p = ctx->priv; - ra_gl_ctx_uninit(ctx); - - if (p->egl_surface) { - eglMakeCurrent(p->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE, - EGL_NO_CONTEXT); - eglDestroySurface(p->egl_display, p->egl_surface); - } - if (p->egl_context) - eglDestroyContext(p->egl_display, p->egl_context); - eglReleaseThread(); -} - -static void mali_swap_buffers(struct ra_ctx *ctx) -{ - struct priv *p = ctx->priv; - eglSwapBuffers(p->egl_display, p->egl_surface); -} - -static bool mali_init(struct ra_ctx *ctx) -{ - struct priv *p = ctx->priv = talloc_zero(ctx, struct priv); - - if (!get_fbdev_size(&p->w, &p->h)) { - MP_FATAL(ctx, "Could not get fbdev size.\n"); - goto fail; - } - - p->egl_display = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if (!eglInitialize(p->egl_display, NULL, NULL)) { - MP_FATAL(ctx, "EGL failed to initialize.\n"); - goto fail; - } - - EGLConfig config; - if (!mpegl_create_context(ctx, p->egl_display, &p->egl_context, &config)) - goto fail; - - p->egl_window = (struct fbdev_window){ - .width = p->w, - .height = p->h, - }; - - p->egl_surface = eglCreateWindowSurface(p->egl_display, config, - (EGLNativeWindowType)&p->egl_window, NULL); - - if (p->egl_surface == EGL_NO_SURFACE) { - MP_FATAL(ctx, "Could not create EGL surface!\n"); - goto fail; - } - - if (!eglMakeCurrent(p->egl_display, p->egl_surface, p->egl_surface, - p->egl_context)) - { - MP_FATAL(ctx, "Failed to set context!\n"); - goto fail; - } - - mpegl_load_functions(&p->gl, ctx->log); - - struct ra_gl_ctx_params params = { - .swap_buffers = mali_swap_buffers, - }; - - if (!ra_gl_ctx_init(ctx, &p->gl, params)) - goto fail; - - return true; - -fail: - mali_uninit(ctx); - return false; -} - -static bool mali_reconfig(struct ra_ctx *ctx) -{ - struct priv *p = ctx->priv; - ctx->vo->dwidth = p->w; - ctx->vo->dheight = p->h; - ra_gl_ctx_resize(ctx->swapchain, p->w, p->h, 0); -} - -static int mali_control(struct ra_ctx *ctx, int *events, int request, void *arg) -{ - return VO_NOTIMPL; -} - -const struct ra_ctx_fns ra_ctx_mali_fbdev = { - .type = "opengl", - .name = "mali-fbdev", - .reconfig = mali_reconfig, - .control = mali_control, - .init = mali_init, - .uninit = mali_uninit, -}; diff --git a/wscript b/wscript index a979b33ac5..f19ba6565a 100644 --- a/wscript +++ b/wscript @@ -793,20 +793,11 @@ video_output_features = [ 'desc': 'OpenGL without platform-specific code (e.g. for libmpv)', 'deps': 'libmpv-shared || libmpv-static', 'func': check_true, - }, { - 'name': '--mali-fbdev', - 'desc': 'MALI via Linux fbdev', - 'deps': 'libdl', - 'func': compose_checks( - check_cc(lib="EGL"), - check_statement('EGL/fbdev_window.h', 'struct fbdev_window test'), - check_statement('linux/fb.h', 'struct fb_var_screeninfo test'), - ), }, { 'name': '--gl', 'desc': 'OpenGL context support', 'deps': 'gl-cocoa || gl-x11 || egl-x11 || egl-drm || ' - + 'gl-win32 || gl-wayland || rpi || mali-fbdev || ' + + 'gl-win32 || gl-wayland || rpi || ' + 'plain-gl', 'func': check_true, 'req': True, @@ -830,7 +821,7 @@ video_output_features = [ }, { 'name': 'egl-helpers', 'desc': 'EGL helper functions', - 'deps': 'egl-x11 || mali-fbdev || rpi || gl-wayland || egl-drm || ' + + 'deps': 'egl-x11 || rpi || gl-wayland || egl-drm || ' + 'egl-angle-win32 || egl-android', 'func': check_true } diff --git a/wscript_build.py b/wscript_build.py index 30e5b16986..2ef2209d46 100644 --- a/wscript_build.py +++ b/wscript_build.py @@ -450,7 +450,6 @@ def build(ctx): ( "video/out/opengl/context_drm_egl.c", "egl-drm" ), ( "video/out/opengl/context_dxinterop.c","gl-dxinterop" ), ( "video/out/opengl/context_glx.c", "gl-x11" ), - ( "video/out/opengl/context_mali_fbdev.c","mali-fbdev" ), ( "video/out/opengl/context_rpi.c", "rpi" ), ( "video/out/opengl/context_vdpau.c", "vdpau-gl-x11" ), ( "video/out/opengl/context_wayland.c", "gl-wayland" ), -- cgit v1.2.3