Hello,
1.I am trying to create multiple frame buffer on top of a qt application without using qt that means from another executable to show some warning dialogs by using kernel drm ioctl api.First I opened /dev/dri/card0 succesfully but while setting to drm master with ioctl DRM_IOCTL_SET_MASTER I am getting error from kernel that shows drm master is already set.When I debugged the issue, I have observed that dev->master is already true on drm_setmaster_ioctl function and directly exiting from function without setting master on drivers/gpu/drm/drm_auth.c file because of qt application( that run on wayland).For that reason, I am getting permission denied error while calling DRM_IOCTL_MODE_SETCRTC ioctl call.
If I remove qt application and run my development app to draw some shape on screen it is working since at that moment there is no drm master and I can set drm master successfully.So I have observed that there is some ioctl call to share master permission DRM_IOCTL_AUTH_MAGIC but it did not helped me.I can hack the kernel code by removing dev->master check on drm_setmaster_ioctl function from drivers/gpu/drm/drm_auth.c but it is not a good approach.
Could you please give me some direction on the issue to see what I am missing?
2.When I tried to set different size for framebuffer other than our hdmi resolution(1280x720), I do not see any drawing shape on screen with my executable app that I ment on question 1, Could you help me to create different sizes framebuffer by using drm ioctl api?
3.Could you please give me a bit details for drm framebuffer and drm plane.I am a bit confused to use of these functionalities.So I want to show some warning dialogs, some information bar top of qt app on different place on screen, without using qt functions as I mentioned in first question and need to know which one I need to use, framebuffer or plane ? Could you please give me some idea and information ?
I am using bsp yocto release 4.14.98 and have a imx8qm-mek platform with hdmi connected to lilliput.
Best Regards