Hi, I’m trying to make the lv_port_linux_frame_buffer port work on an Orange Pi Zero 2.
So far, I haven’t been able to make it draw. The drm_flush method is being called, but nothing shows up on the screen. fbdev works but without vsync it’s not great.
I’ve been able to compile and build this example:
/*
* modeset-atomic - DRM Atomic-API Modesetting Example
* Written 2019 by Ezequiel Garcia <ezequiel@collabora.com>
*
* Dedicated to the Public Domain.
*/
/*
* DRM Double-Buffered VSync'ed Atomic Modesetting Howto
* This example extends modeset-vsync.c, introducing planes and the
* atomic API.
*
* Planes can be used to blend or overlay images on top of a CRTC
* framebuffer during the scanout process. Not all hardware provide
* planes and the number of planes available is also limited. If there's
* not enough planes available or the hardware does not provide them,
* users should fallback to composition via GPU or CPU to blend or
* overlay the planes. Notice that this render process will result
* in delay, what justifies the usage of planes by modern hardware
* that needs to be fast.
This file has been truncated. show original
And it works fine.
Here is essentially how I’m initializing it.
drm_init();
lv_disp_draw_buf_init(&disp_buf, buf, buf2, DISP_BUF_SIZE);
/*Initialize and register a display driver*/
disp_drv.draw_buf = &disp_buf;
disp_drv.flush_cb = drm_flush;
disp_drv.hor_res = 800;
disp_drv.ver_res = 480;
disp_drv.full_refresh = true;
lv_disp_drv_register(&disp_drv);
Hi,
Please open an issue in the lv_drivers repo.