cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
deepg799
Explorer
Explorer
533 Views
Registered: ‎01-20-2019

Low performance | MultiScalar

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.

 

0 Kudos
Reply
7 Replies
kvasantr
Moderator
Moderator
434 Views
Registered: ‎04-12-2017

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

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
kvasantr
Moderator
Moderator
397 Views
Registered: ‎04-12-2017

Hello @deepg799 

did you find solution for your problem?

regards

Kunal

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Reply
deepg799
Explorer
Explorer
386 Views
Registered: ‎01-20-2019

Hii @kvasantr 

No, still we are struggling to get the performance number from the multiscalar IP.

Below is our multi-scalar block configuration.

multi_scalar.png

 

The vivado design for the multiscalar is similar to the below block diagram.

deepg799_2-1602235719256.png

Here, your valuable input will be highly appreciated. thank you.

0 Kudos
Reply
kvasantr
Moderator
Moderator
346 Views
Registered: ‎04-12-2017

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

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
deepg799
Explorer
Explorer
306 Views
Registered: ‎01-20-2019

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

root@root:~# gst-inspect-1.0 -a | grep xm2msc
v4l2video0convert: String. Default: "xm2msc"
v4l2video1convert: String. Default: "xm2msc"
v4l2video2convert: String. Default: "xm2msc"
v4l2video3convert: String. Default: "xm2msc"
v4l2video4convert: String. Default: "xm2msc"
v4l2video5convert: String. Default: "xm2msc"
v4l2video6convert: String. Default: "xm2msc"
v4l2video7convert: String. Default: "xm2msc"
 
Could you please give your valuable input on this?
 
0 Kudos
Reply
deepg799
Explorer
Explorer
257 Views
Registered: ‎01-20-2019

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.

 

0 Kudos
Reply
deepg799
Explorer
Explorer
229 Views
Registered: ‎01-20-2019

@kvasantr 

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 

0 Kudos
Reply