Kmssink multiple monitors on single GPU

Hi

I’ve been looking into gstreamer for decoding video directly to display without using X11.
I came across Kmssink that does a wonderful job on a single monitor, but runs into issues with DRM permission when trying muliple monitor on separate pipelines.
I saw in 1.22.5 that there was a “fd” property added, but my testing yealds no good results.
Are there any example code available for using kmssink with the fd propery or have anybody actually gotten it to work ? Help/Ideas would be greatly appreciated as this point.

Hi @thorm

I think I encountered the same issue on rpi 4. Do you have any updates on this problem?

gst-launch-1.0 videotestsrc ! kmssink connector-id=32

and

gst-launch-1.0 videotestsrc ! kmssink connector-id=41

both work fine, but

gst-launch-1.0 videotestsrc ! tee name=t t. ! kmssink connector-id=32 fd=1 t. ! kmssink connector-id=41 fd=1

yields:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: GStreamer encountered a general resource error.
Additional debug info:
../sys/kms/gstkmssink.c(2032): gst_kms_sink_show_frame (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
drmModeSetPlane failed: Permission denied (13)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Freeing pipeline ...
$ gst-launch-1.0 --version
gst-launch-1.0 version 1.22.0
GStreamer 1.22.0
https://tracker.debian.org/pkg/gstreamer1.0