Tegra 3 OpenGL ES directly to framebuffer

I am developing an embedded Linux system using the Apapalis T30 Tegra 3 SOM from Toradex. I only need a very simple multi-touch user interface for it. I am trying to push the performance and efficiency of the UI as far as I can because the device will have to render complex 3D models whilst allowing live interactions and I know for a fact that my users will be have models that will make it bog down no matter what. I am therefore trying to push that point as far away as I can. Memory will also be a constraint and some models might use up all the RAM if there is not enough available.

What I would like to do to solve this is to have an OpenGL ES 2 GUI with SVG UI elements combined with GLES 3D views, rendered directly to the frame-buffer. In other words, I want to completely ditch any form of a window/desktop manager because I won’t need it. I only need a single full-screen GLES drawing surface. I don’t even need pointer events etc. as I will be talking to the touch panel directly from my application.

I have looked around quite a bit but I could not really find any conclusive information. I am constantly reading reports of HW acceleration not working when the frame-buffer is directly used, but I guess one could render the GLES into an image and then just push it to the FB? I am also reading that the graphics driver might be locked to X11 but I am also struggling to find details about the Tegra GFX driver, I am reading reports about Nvidia opensourcing their driver, is this true?

Any assistance or explanations will be greatly appreciated.

PS. Please don’t preach me on how bad an idea this is and how I should rather use Qt or something like that, I want to find out how to do what I am planning here.

PPS. What a basically want to be able to do is what I understand embedded Qt 5 does in its “EGLFS” rendering mode.

The open source driver is not made by NVIDIA but the Nouveau community. AFAIK, it supports only the Tegra K1 on the mobile side, with a long list of limitations.

AFAIK, the OpenGL ES/EGL is tied to X.Org so you are stuck with that. But you don’t need a window manager or a bloat desktop environment with X.Org. And I think you can recompile X.Org if you want to strip it further.

I have looked around and found that the Latest vanilla kernel includes something called a DRM driver for the Tegra. I have managed to get the latest lt kernel (3.18) compiled and running on my device with the above driver configured in menuconfig. Would this driver not be able to do the job and if so, how would one go about using it?

Is the code under “core/drivers/drm-nvdc” you were referring to?