I've found an issue with the G2D HWC layer on i.MX8M Mini, here is my setup:
- Android 10.0.0-1.0.0 release
- i.MX8M Mini EVK platform
- MIPI display (1280x800 in my case)
- SF_PRIMARY_DISPLAY_ORIENTATION set to 90 (standard AOSP orientation variable)
That last variable changes the default display orientation from landscape to portrait in my case.
When using the default hwcomposer setting ("g2d 2D composition enabled!") rotation fails as you can see in the pictures attached:
- android10-imx8mm-portrait-g2dcompose.png = screencap output, looks correct/expected
- android10-imx8mm-portrait-g2dcompose-real-life.jpg = what I actually get on the screen
Now if I disable g2d hwc ("Opengl ES 3D composition enabled!"), it works as expected, it looks exactly like the screencap picture.
Let me know if you need any other info.
Solved! Go to Solution.
some update: android framework design not consider it support in HWC， now the only hack way can rotate with buildin =90 or "content insert " cmd control at run time.
As replied before the "hack" from before is an unacceptable solution as it breaks user rotation.
So NXP plan is just to deliver a broken HWC and not care about it? Pushing customers to use OpenGL rendering instead as it behaves properly?
Will this be added to the known issue list of next release?
Thanks for your feedback, looking forward to the fix.
In the meantime, can you explain this sentence: "with cmd line, it work well", what cmdline argument do you use to rotate the display?
Try at Console, with this cmd:
content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1
it will rotate 90 and display output is correct.
Oh ok I see, yes I confirm this kind of rotation works ok, I thought you meant "cmd line" like in kernel "cmdline".
I believe those 2 rotations are not handled the same in SurfaceFlinger.