From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olivier =?ISO-8859-1?Q?Cr=EAte?= Subject: libva decoding performance regression with kernel 4.0-rc Date: Thu, 09 Apr 2015 21:00:43 -0400 Message-ID: <1428627643.3417.22.camel@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: Sender: linux-kernel-owner@vger.kernel.org To: Brad Volkin Cc: Daniel Vetter , Jani Nikula , David Airlie , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org Hello, Using an Atom E3845 board, we had a pretty bad performance regression when upgrading to 4.0-rc6 from 3.19. With the help of git bisect, I traced it back to commit 78a42377. Reverting this commit and subsequent related commits (b9ffd80, 71745376, etc) fixes the performance regression for me. Without those patches, I can play 8-9 1080p MPEG2 streams, after them, it's down to 5-6. I tested using a libdrm checkout from Feb 16, and the latest git master of libva, libva-intel-driver and gst-plugins-vaapi. The "identity drop-probability=3D1" is to prevent anything from being displayed, so i= t's purely decoding performance. Pure decode, single stream not displayed: time gst-launch-1.0 filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x= 1080p_16x9_29-97fps.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! iden= tity drop-probability=3D1 ! vaapisink With kernel 3.18.0-rc7-01052-g493018d real 0m11.429s user 0m6.516s sys 0m1.640s With kernel 3.18.0-rc7-01053-g78a4237 real 0m12.694s user 0m6.744s sys 0m2.680s 8 simultaneous streams displayed: time gst-launch-1.0 filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x= 1080p_16x9_29-97fps.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaap= isink sync=3D0 \ filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x1080p_16x9_29-97fp= s.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaapisink sync=3D0 \ filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x1080p_16x9_29-97fp= s.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaapisink sync=3D0 \ filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x1080p_16x9_29-97fp= s.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaapisink sync=3D0 \ filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x1080p_16x9_29-97fp= s.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaapisink sync=3D0 \ filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x1080p_16x9_29-97fp= s.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaapisink sync=3D0 \ filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x1080p_16x9_29-97fp= s.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaapisink sync=3D0 \ filesrc location=3D18Mbps_CBR_MPEG2_Main-High_1920x1080p_16x9_29-97fp= s.m2t ! tsdemux ! mpegvideoparse ! vaapidecode ! vaapisink sync=3D0 With kernel 3.18.0-rc7-01052-g493018d real 2m45.317s user 1m21.296s sys 0m51.080s With kernel 3.18.0-rc7-01053-g78a4237 real 3m1.275s user 1m24.336s sys 1m38.360s --=20 Olivier Cr=C3=AAte olivier.crete@collabora.com