I revive this old thread with an edge case.
Here there is some code (and precompiled binary) that creates a pbuffer and uses vgGaussianBlur() to make some image manipulation using VC4. It does not render anything on screen, but running this while some audio is playing causes massive buffer underruns with audio_pwm_mode=2.
I tested this on an old raspberry pi 1 model B
Also I noticed that with sustained workloads (one or two video playing simultaneously + OpenVG graphics rendering at full framerate) , audio_pwm_mode=2 often hangs up the GPU so bad that a reboot is required.
Curiously when the GPU is hung, vhciq_test tests works (-f, -p) but calling eglCreateContext() causes the process to lock over a mutex.
I have some logs for this, but I don't know if they are useful
Any chances to get this fixed or simply revert to audio_pwm_mode=1?
PS: apparently my workload hangs the GPU even with audio_pwm_mode=1, but far less often.
edit: to compile the thing use
Code: Select all
cc -I /opt/vc/include -L /opt/vc/lib -l EGL -l GLESv2 -Og blur.c -o blur.bin