In our project, the QT menu needs to be overlaid with the video (QT is always on the top of the video and has a translucent effect)
I read the TX1 TRM documentation, ch.24 and ch.25, each display controller has three full function display windows, A, B and C, supporting scaling and blending.
And, I have read the dc.c and fb.c in “kernel/driver/video/tegra/dc”.
When tegra_dc_probe is called, it configures the DC registers include the winA/B/C configuration, but only creates one framebuffer for one of the three windows, using the tegra_fb_register function.
How do I create three framebuffer, for the three windows A/B/C, when DC is created.
I am not an expert, but AFAIK fb is an interface that you can access the screen. As a result, one display per framebuffer. If you want fb0,1,2,…x, it should be created when you have multiple display. Obviously, it is not what you want.
As for Qt, which is a EGL based app, is using X11 as the framework to render. X server cannot access win A/B/C in tegra.
If I modify the dc.c in kernel, in tegra_dc_probe, call three times tegra_fb_register, mapping WIN A/B/C display mem to three fb, then in the application layer, write data to the three fb, can it be achieved to render image in three windows WIN A/B/C?
Is this idea feasible? I would like to hear your opinion