Hi Martin,
On 1 August 2018 at 15:24, Martin Fuzzey martin.fuzzey@flowbird.group wrote:
Hi,
I am running into the same problem using etnaviv on i.MX6 under Android 8.1
The mesa etnaviv code uses CREATE_DUMB / MAP_DUMB for the scanout buffers and is called from the surfaceflinger process.
But, under Android 8.1 drm_hwcomposer runs in a seperate process to surfaceflinger. Since drm_hwcomposer needs to use the KMS API it must be the DRM master, that means that surface flinger cannot be DRM master too.
Adding a render node to the imx drm device and configuring mesa to user fixes the problem but requires the render node to have access rights to use CREATE_DUMB / MAP_DUMB.
Here is my full patch:
Make imx-drm export a render node so that mesa can use it to allocate
Let's start with the not-so obvious question: Why does one open the imx as render node?
Of the top of my head: There is nothing in egl/android that should require an authenticated device. Hence, using a card node should be fine - the etnaviv code opens the render node it needs.
It's been a while since I looked at the imx/etna code, so I may be missing something.
HTH Emil