AnsweredAssumed Answered

OpenVG vgDrawPath() does not return

Question asked by Ros Spolyak on Nov 12, 2019
Latest reply on Nov 13, 2019 by Bio_TICFSL

We are using OpenVG on iMX6 SoloLite to speed up 2D acceleration for maps navigation. Acceleration works fine until the process that does the navigation blocks on vgDrawPath() call and never return. Process restart does not solve the issue until we restart the Galcore kernel driver.

 

This issue occurs randomly. Application can work for hours executing the same OpenVG functions, but sooner or later it eventually blocks at the same place in the code on vgDrawPath().

I have also noticed that enabling debug logging in Galcore driver resolves the issue (with logs enabled vgDrawPath() was never blocking) which sounds like synchronization/timing issue between libOpenVG and Galcore.

Here is strace output after application is blocked:

# ./strace -p 879
./strace: Process 879 attached
ioctl(10, _IOC(0, 0x75, 0x30, 0)

 

libOpenVG is provided with Yocto and fetched from NXP website. It comes in binary form so I can't debug why vgDrawPath() hang and never return.

 

I would appreciate any hints on how to debug this issue further.

Outcomes