On the i.MX8 QuadMax, the DPU is accessible through an emulated G2D API. (The GPU on that SoC has no actual 2D core.) This means that the binary-only libg2d.so is the only way for applications to control and use the DPU (for example, for pixel format conversions and Amphion Malone frame detiling).
Or ... is it maybe possible to bypass G2D and use the DPU through libdrm? I can't find any API docs or command list. The libdrm NXP fork contains calls that can pass commands to the DPU, but not much more than that.
Solved! Go to Solution.
The dpu driver is dpu-blit.c,but there is no any description about this cmd list.
can my own code use this
->The driver can accept ioctl from user space, so you can use this DRM_IOCTL_IMX_DPU_SET_CMDLIST flag in drmioctl.
But you need research dpu-blit.c.
The libdrm api can directly operate DPU.
Okay, but can my own code use this? I can't find a list of DPU commands that I can use with libdrm for example. In include/drm/imx_drm.h , I find DRM_IOCTL_IMX_DPU_SET_CMDLIST , DRM_IOCTL_IMX_DPU_WAIT , DRM_IOCTL_IMX_DPU_GET_PARAM , and a couple of structs. But what would that cmdlist look like for example?
The dpu driver is dpu-blit.c,but there is no any description about this cmd list.
can my own code use this
->The driver can accept ioctl from user space, so you can use this DRM_IOCTL_IMX_DPU_SET_CMDLIST flag in drmioctl.
But you need research dpu-blit.c.