10-03-2020 01:53 AM - edited 10-03-2020 01:55 AM
I have integrated the Xilinx MultiScalar IP in my custom 7EV MPSoC device and done the kernel configuration as mentioned in the below link.
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/75399218/Multi-Scaler+Linux+Driver
Problem:
Getting very low performance while running the below GST pipeline.
gst-launch-1.0 videotestsrc num-buffers=200 ! video/x-raw, width=1920, height=1080, format=NV12 ! v4l2video0convert capture-io-mode=4 output-io-mode=4 ! video/x-raw, width=640, height=480, format=BGR ! autovideosink
below is the warning message getting while running the above pipeline from the multiscalar element (v4l2video0convert)
"Wrong alignment configuration WxH"
Note The performance of the above pipeline as expected if height value =180, no matter what is the width value configuration in the v4l2video0convert element.
Any input will be very useful to debug the same.
Thanks in advance.
10-06-2020 12:33 AM
Hello @deepg799
can you explain how exactly is your pipeline with multiscaler in your vivado design?
Multiple IPs required aligned stride and height to work properly, So with your pipeline details, I may be able to provide workaround to fix.
with regards
Kunal
10-09-2020 01:25 AM
Hello @deepg799
did you find solution for your problem?
regards
Kunal
10-09-2020 02:30 AM
Hii @kvasantr
No, still we are struggling to get the performance number from the multiscalar IP.
Below is our multi-scalar block configuration.
The vivado design for the multiscalar is similar to the below block diagram.
Here, your valuable input will be highly appreciated. thank you.
10-11-2020 11:31 PM
Hello @deepg799
May I know what is the exact sink device you plan to use for your testing?
as per your design you can use PS-DP since I do not see any other connectivity IP in your design.
If it's PS-DP, can you replace autovideosink with kmssink bus-id=fd4a0000.zynqmp-display fullscreen-overlay=1 sync=false -v and check the performance?
also what performance do you see with fakevideosink plugin?
I think the performance challenge would be because of autovideosink plugin. because with fakesink, we have seen no challenge yet.
regards
Kunal
10-16-2020 06:58 AM - edited 10-16-2020 06:59 AM
Hii @kvasantr
Thanks for your valuable input.
The processing time for the MultiScalar IP is = 25ms, measured by using the Gst_Tracer utility. Even with fakesink also the number is the same and if I replace the multiscalar element with videoscale element (for soft scaling) then the performance is as expected.
One thing I observed mentioned below.
when we run gst-inspect-1.0 we get the below output:
root@root:~# gst-inspect-1.0 -a | grep xm2msc
[ 82.725905] xilinx-multiscaler a0100000.v_multi: Channel 0 instance created
[ 82.739457] xilinx-multiscaler a0100000.v_multi: Channel 0 instance released
[ 82.746567] xilinx-multiscaler a0100000.v_multi: Channel 1 instance created
[ 82.754651] xilinx-multiscaler a0100000.v_multi: Channel 1 instance released
[ 82.761717] xilinx-multiscaler a0100000.v_multi: Channel 2 instance created
[ 82.769807] xilinx-multiscaler a0100000.v_multi: Channel 2 instance released
[ 82.776862] xilinx-multiscaler a0100000.v_multi: Channel 3 instance created
[ 82.784934] xilinx-multiscaler a0100000.v_multi: Channel 3 instance released
[ 82.791995] xilinx-multiscaler a0100000.v_multi: Channel 4 instance created
[ 82.800082] xilinx-multiscaler a0100000.v_multi: Channel 4 instance released
[ 82.807138] xilinx-multiscaler a0100000.v_multi: Channel 5 instance created
[ 82.815211] xilinx-multiscaler a0100000.v_multi: Channel 5 instance released
[ 82.822265] xilinx-multiscaler a0100000.v_multi: Channel 6 instance created
[ 82.830390] xilinx-multiscaler a0100000.v_multi: Channel 6 instance released
[ 82.837449] xilinx-multiscaler a0100000.v_multi: Channel 7 instance created
[ 82.845421] xilinx-multiscaler a0100000.v_multi: Channel 7 instance released
[ 83.064070] xilinx-multiscaler a0100000.v_multi: Channel 0 instance created
[ 83.076722] xilinx-multiscaler a0100000.v_multi: Channel 0 instance released
[ 83.083780] xilinx-multiscaler a0100000.v_multi: Channel 1 instance created
[ 83.091818] xilinx-multiscaler a0100000.v_multi: Channel 1 instance released
[ 83.098940] xilinx-multiscaler a0100000.v_multi: Channel 2 instance created
[ 83.106949] xilinx-multiscaler a0100000.v_multi: Channel 2 instance released
[ 83.114004] xilinx-multiscaler a0100000.v_multi: Channel 3 instance created
[ 83.122017] xilinx-multiscaler a0100000.v_multi: Channel 3 instance released
[ 83.129071] xilinx-multiscaler a0100000.v_multi: Channel 4 instance created
[ 83.137042] xilinx-multiscaler a0100000.v_multi: Channel 4 instance released
[ 83.144096] xilinx-multiscaler a0100000.v_multi: Channel 5 instance created
[ 83.152074] xilinx-multiscaler a0100000.v_multi: Channel 5 instance released
[ 83.159131] xilinx-multiscaler a0100000.v_multi: Channel 6 instance created
[ 83.167097] xilinx-multiscaler a0100000.v_multi: Channel 6 instance released
[ 83.174152] xilinx-multiscaler a0100000.v_multi: Channel 7 instance created
[ 83.182018] xilinx-multiscaler a0100000.v_multi: Channel 7 instance released
* (gst-inspect-1.0:2657): WARNING *: 13:22:35.024: tried to get connection-id after disabling DTLS
* (gst-inspect-1.0:2657): WARNING *: 13:22:35.029: tried to get connection-id after disabling DTLS
* (gst-inspect-1.0:2657): CRITICAL *: 13:22:36.316: Failed to get connection to xfconfd: Could not connect: Connection refused
But, the expected output is shown below as mentioned in the link
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/75399218/Multi-Scaler+Linux+Driver
10-20-2020 01:02 AM
Hii @kvasantr
Putting the debugging log in the Gst-pipeline getting the below error:
0:00:00.382074530 2738 0x55765b6c90 ERROR v4l2 gstv4l2object.c:1968:gst_v4l2_object_get_interlace_mode: Driver bug detected - check driver with v4l2-compliance from http://git.linuxtv.org/v4l-utils.git
Any input on this issue?
Thanks in advance.
10-21-2020 04:20 AM
Yes, you are right the autovideosink element is creating the delay. (confirmed by tracking the proc. time of each element).
Need your input on the following questions:-
1- If i use kmmsink, the output is not getting pass to the DP monitor. black screen will come on DP output while running the below pipeline.
gst-launch-1.0 filesrc location=KungFuHustle_H264.mp4 ! qtdemux ! h264parse ! omxh264dec ! v4l2video0convert capture-io-mode=4 output-io-mode=4 ! video/x-raw, width=640, height=480, format=RGB ! queue max-size-bytes=0 ! kmssink bus-id="fd4a0000.zynqmp-display" fullscreen-overlay=0 sync=false
2- Getting the below Error log while running the gst-pipeline in debugging mode.
0:00:00.753735140 2710 0x55856f0070 ERROR v4l2 gstv4l2object.c:1968:gst_v4l2_object_get_interlace_mode: Driver bug detected - check driver with v4l2-compliance from http://git.linuxtv.org/v4l-utils.git
3- Getting warning from the Gst-pipeline.
xilinx-multiscaler a0100000.v_multi_scaler: Wrong align parameters 10, wxh: 1x1.
Your input will be highly appreciated.
Thanks you in advance