AnsweredAssumed Answered

iMX6Q - Running QT5 GLES App with separate Gstreamer App causes Vivante Mapping failures

Question asked by James Covey-Crump on Mar 23, 2017
Latest reply on Apr 27, 2017 by James Covey-Crump

We're using fido YOCTO release (I appreciate this is fairly old - but seemingly stable release) - kernel is 3.14.79. gstreamer1.0, imx-gstreamer plugins 0.11.1.


We are using the imx6 IPU facilites for overlaying framebuffers.  QT application (using GLES) on /dev/fb1, which overlays the output of a separate gstreamer application rendering on /dev/fb0.


Our problem is that whilst running the QT application, and setting up and starting the gstreamer pipeline (in the other application), we seem to have some kind of race condition on Mapping some Video Memory in Vivante gpu (gc_hal) core...

[20055.716812] gcmkONERROR: status=-1(gcvSTATUS_INVALID_ARGUMENT) @ gckKERNEL_MapVideoMemoryEx(362)
[20055.725657] gcmkONERROR: status=-1(gcvSTATUS_INVALID_ARGUMENT) @ gckKERNEL_LockVideoMemory(1160)
[20055.725696] gcmkONERROR: status=-1(gcvSTATUS_INVALID_ARGUMENT) @ gckVGKERNEL_Dispatch(589)

I am drawing the conclusion of a race condition as sometimes it succeeds, but very often we see these errors.


The issue is not seen if the QT application is not running, nor is it seen if the gstreamer pipeline is started before the QT application is started.


Any clues?