-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kernel 6 and gstreamer OpenGL is unusable slow? #117
Comments
downgrading to gstreamer 1.20.7 did not help. |
if let me guess, there might be a memcpy() in v4l2src -> glupload, the v4l2src might provide non-dmabuf to glupload, which would cause a memcpy() when uploading userspace buf to texture in mali DDK. you can try to "export GST_DEBUG=v4l2bufferpool:5" to check the logs. and you can try to workaround it by hard-coding can_share_own_pool to 1 in gst1-plugins-good/sys/v4l2/gstv4l2object.c |
Thnx I will try this. the v4l2src is the HDMI-IN of rk3588 "hdmirx" |
|
there're some hack patches for glupload to import dmabuf directly without memcpy(): make sure that they are applied. export GST_DEBUG=glupload:5 |
is it possible, that the symbolic links from 1.22.9 to 1.22.11 don't work? |
normally it should work, since you said the 1.20.7 also failed. maybe you can check the build/tmp/work//gstgood/*/temp/log.do_patch about which patches been applied |
I freshly cloned meta-rockchip, because I already did some mess. I had to remove the patch gst patches seem all to be done. GST_DEBUG=glupload:5
|
you can upload your rootfs.img, maybe i can try to check it. |
I sent a fast shot, I hope you can use it. |
try: could be buffer not enough |
another try is to skip sync in kernel:
the proper way is to set V4L2_BUF_FLAG_NO_CACHE_CLEAN in the v4l2src. |
Also try to set FlipFB to none in: which would affect xserver render performance. |
Nothing helped. |
so the first a few frames in glimagesink is slow(due to x11 window initialization), the gst will try to sync them and causing those delays. you can try to add sync=false in your pipeline's glimagesink to avoid syncing (with system clock or audio) |
no change, the framrate is about 1 in 5sec I s it possible there is a problem with hdmirx? |
could be, you can try to test it with video: |
ok, not hdmirx, same problem with a video file. |
it works well on my side with camera and video. i have these environments: and with above hacks. |
Thnx a lot, this works! |
I have to set both |
are they usual set in a script, did I mess up something? |
I will rebuild all without the patches, and try it again. |
the Mali DDK(GPU library) doesn't support OpenGL, it only support EGL and OpenGLESv2, so if the gst has OpenGL enabled, it might use mesa3d(software compositor in this case). |
You can set these in /etc/profile.d/gst.sh, or set it in the gst-plugin-base's configure arguments: EXTRA_OEMESON += " |
with Kernel 5.10 and Kernel 6 there is the same error.
when i use this gstreamer pipeline
gst-launch-1.0 v4l2src device=/dev/video0 ! glupload ! glcolorconvert ! glcolorscale ! video/x-raw(memory:GLMemory), format=RGBA, width=1920, height=1080 ! gldownload ! glimagesink
it's super fast with nearly no CPU usage with Kernel 5.10 but with Kernel 6 it is unusable slow?
Do you have an idea Jeffy?
The text was updated successfully, but these errors were encountered: