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.