[packman] AMD Radeon 600 series, Leap 15.4, VLC DVD player

Steven Swart steven.swart at gmail.com
Mon Feb 20 10:59:35 CET 2023


Good day, Packmans!

Apologies for taking so long to get back to this, I have been busy, and my
testing took a while.

Long email to follow, I hope it doesn't get rejected by the listserver for
size.

Manfred, for my AMD GPU, the results (extract) of vdpauinfo for the
OpenSUSE Factory Mesa drivers are as follows:

Decoder capabilities:



name                        level macbs width height

----------------------------------------------------

MPEG1                          --- not supported ---

MPEG2_SIMPLE                    3 65536  4096  4096

MPEG2_MAIN                      3 65536  4096  4096

H264_BASELINE                  --- not supported ---

H264_MAIN                      --- not supported ---

H264_HIGH                      --- not supported ---

VC1_SIMPLE                     --- not supported ---

VC1_MAIN                       --- not supported ---

VC1_ADVANCED                   --- not supported ---

MPEG4_PART2_SP                  3 65536  4096  4096

MPEG4_PART2_ASP                 5 65536  4096  4096

DIVX4_QMOBILE                  --- not supported ---

DIVX4_MOBILE                   --- not supported ---

DIVX4_HOME_THEATER             --- not supported ---

DIVX4_HD_1080P                 --- not supported ---

DIVX5_QMOBILE                  --- not supported ---

DIVX5_MOBILE                   --- not supported ---

DIVX5_HOME_THEATER             --- not supported ---

DIVX5_HD_1080P                 --- not supported ---

H264_CONSTRAINED_BASELINE      --- not supported ---

H264_EXTENDED                  --- not supported ---

H264_PROGRESSIVE_HIGH          --- not supported ---

H264_CONSTRAINED_HIGH          --- not supported ---

H264_HIGH_444_PREDICTIVE       --- not supported ---

VP9_PROFILE_0                  --- not supported ---

VP9_PROFILE_1                  --- not supported ---

VP9_PROFILE_2                  --- not supported ---

VP9_PROFILE_3                  --- not supported ---

HEVC_MAIN                      --- not supported ---

HEVC_MAIN_10                   --- not supported ---

HEVC_MAIN_STILL                --- not supported ---

HEVC_MAIN_12                   --- not supported ---

HEVC_MAIN_444                  --- not supported ---

HEVC_MAIN_444_10               --- not supported ---

HEVC_MAIN_444_12               --- not supported ---

AV1_MAIN                       --- not supported ---

AV1_HIGH                       --- not supported ---

AV1_PROFESSIONAL               --- not supported ---

For both the Packman and my custom-built Mesa drivers, the output is
different:

Decoder capabilities:



name                        level macbs width height

----------------------------------------------------

MPEG1                          --- not supported ---

MPEG2_SIMPLE                    3 65536  4096  4096

MPEG2_MAIN                      3 65536  4096  4096

H264_BASELINE                  52 65536  4096  4096

H264_MAIN                      52 65536  4096  4096

H264_HIGH                      52 65536  4096  4096

VC1_SIMPLE                      1 65536  4096  4096

VC1_MAIN                        2 65536  4096  4096

VC1_ADVANCED                    4 65536  4096  4096

MPEG4_PART2_SP                  3 65536  4096  4096

MPEG4_PART2_ASP                 5 65536  4096  4096

DIVX4_QMOBILE                  --- not supported ---

DIVX4_MOBILE                   --- not supported ---

DIVX4_HOME_THEATER             --- not supported ---

DIVX4_HD_1080P                 --- not supported ---

DIVX5_QMOBILE                  --- not supported ---

DIVX5_MOBILE                   --- not supported ---

DIVX5_HOME_THEATER             --- not supported ---

DIVX5_HD_1080P                 --- not supported ---

H264_CONSTRAINED_BASELINE       0 65536  4096  4096

H264_EXTENDED                  --- not supported ---

H264_PROGRESSIVE_HIGH          --- not supported ---

H264_CONSTRAINED_HIGH          --- not supported ---

H264_HIGH_444_PREDICTIVE       --- not supported ---

VP9_PROFILE_0                  --- not supported ---

VP9_PROFILE_1                  --- not supported ---

VP9_PROFILE_2                  --- not supported ---

VP9_PROFILE_3                  --- not supported ---

HEVC_MAIN                      186 65536  4096  4096

HEVC_MAIN_10                   --- not supported ---

HEVC_MAIN_STILL                --- not supported ---

HEVC_MAIN_12                   --- not supported ---

HEVC_MAIN_444                  --- not supported ---

HEVC_MAIN_444_10               --- not supported ---

HEVC_MAIN_444_12               --- not supported ---

AV1_MAIN                       --- not supported ---

AV1_HIGH                       --- not supported ---

AV1_PROFESSIONAL               --- not supported ---

Support for eight codecs gets added!

I have updated my HOWTO for building your own Mesa drivers locally. For
those who have already got the link, you may just redownload it from the
same link. For those who don't and want a copy, drop me a direct *(Private!)
*email.

There were a few minor corrections and additions, but mainly what I added
was a whole new section on benchmarking. There is no harm in posting that
and my test results here, I think.

Please see below:
Benchmarking



Nearly a month after writing the first version of this document, I have
managed to do some benchmarking for these drivers, by way of comparison,
using the Phoronix Test Suite. These tests take a long time to run, and I
wasn’t able to run them continuously, because I needed that machine for
other purposes. So, what I did was run these tests overnight, while I was
asleep.



On a multitasking OS like Linux, it is difficult to eliminate operating
system interference while the tests are running, but I did try to eliminate
CPU and drive usage from cron jobs, by disabling certain services. For
example:



> systemctl disable mlocate



Note, however, for this service, I had to remove and reinstall it again
after I had finished. Reenabling it with systemctl didn’t work as expected.
My test procedure also was to only start the tests after a reboot, without
opening any big applications, (not even Firefox), and I ensured that after
a reboot, only a few of the lightweight default KDE apps were open, such as
Konsole, Dolphin and Kate.



On a rolling release like Tumbleweed, it is also difficult to isolate
changes to the base operating system, given that Tumbleweed updates daily.
Because days went by between tests, as I recall, there were also kernel
updates between each test.



Nevertheless, I think the results I obtained gave a fair indication of the
relative performance of the different drivers.



The Phoronix website:



http://www.phoronix-test-suite.com/



The Phoronix GitHub page:



https://github.com/phoronix-test-suite/



To install the Phoronix test suite:

> git clone https://github.com/phoronix-test-suite/phoronix-test-suite.git



> cd phoronix-test-suite/



> sudo ./install-sh

> sudo zypper in php8 php8-zip php8-gd php8-zlib php8-bz2 php8-pcntl
php8-posix php8-curl php8-sockets php8-readline



To list available tests suites:



> phoronix-test-suite list-available-suites



At first glance, these were the tests that I believe would test GPU
performance:

pts/desktop-graphics



pts/graphics-magick



pts/ffmpeg



pts/fluidx3d



pts/imaging



pts/raytracing



pts/renderers



pts/video-encoding



pts/vulkan-compute



pts/vulkan-rt



Probably, because this driver change mainly has to do with hardware
acceleration of codecs, these would be the two best candidates to run:



pts/ffmpeg



pts/video-encoding



However, my main use case has more to do with the general performance of my
desktop graphics, namely music visualisation, and emulators for obsolete
gaming platforms. So, I ended up running this test:

> phoronix-test-suite run pts/desktop-graphics



The first time you run this test, it will download and install several
games and other graphical test applications, which takes a while.



Not that I had a problem installing glmark2. The build process gave me some
sort of C++14–related compiler error. I tried fiddling around with the
build options, but was unable to resolve the issue. So, I cheated:

> sudo zypper in glmark2

In:
~/.phoronix-test-suite/installed-tests/pts/glmark2-1.3.0/pts-install.json



I changed it to look like this:



    "test_installation": {

        "status": "INSTALLED",

        #!/bin/sh



In: ~/.phoronix-test-suite/installed-tests/pts/glmark2-1.3.0/glmark2



I changed it to look like this:

#/bin/sh
glmark2 $@ > $LOG_FILE 2>&1

echo $? > ~/test-exit-status



After the whole test suite has been run, it will give you the option to
start the results viewer. However, you can do that at any time by running
this command:

> phoronix-test-suite start-result-viewer



I ran the test suite three times, once against the default OpenSUSE Factory
drivers, once against the Packman drivers, and once against my custom-built
drivers, as per the instruction above. These were built on Sunday, the 29th
of January 2023, from the following src packages:

Mesa-22.3.4-1435.1.src.rpm

Mesa-drivers-22.3.4-1435.1.src.rpm



(Just a note here, after I had concluded all these tests, I tried to
reinstall my custom-built drivers, but rpm refused to install them. The
cause was that, in the meantime, the Mesa drivers had gone through a minor
version update. I downloaded the latest src rpms and rebuilt those. So, it
would seem that one might need to rebuild the Mesa drivers from source
every time there is a major or minor version update from the repos, if you
use this method.)



The run times for my tests were as follows:

testc1-packman      February 14 12 Hours, 16 Minutes

testb-opensuse      February 09 11 Hours, 48 Minutes

testa-custom        February 03 11 Hours, 54 Minutes



This was the test result output:

testc1-packman, testb-opensue, testa-custom

AMD Opteron X3216 APU testing with a HPE ProLiant MicroServer Gen10 (5.12
BIOS) and AMD Radeon R5 512MB on openSUSE 20230213 via the Phoronix Test
Suite - Packman Drivers



testb-opensue: AMD Opteron X3216 APU testing with a HPE ProLiant
MicroServer Gen10 (5.12 BIOS) and AMD Radeon R5 512MB on openSUSE 20230208
via the Phoronix Test Suite. - Factory drivers



testa-custom: AMD Opteron X3216 APU testing with a HPE ProLiant MicroServer
Gen10 (5.12 BIOS) and AMD Radeon R5 512MB on openSUSE 20230201 via the
Phoronix Test Suite. - Custom Build





testc1-packman:



      Processor: AMD Opteron X3216 APU @ 1.60GHz (1 Core / 2 Threads),
Motherboard: HPE ProLiant MicroServer Gen10 (5.12 BIOS), Chipset: AMD 15h,
Memory: 8GB, Disk: 250GB VB0250EAVER + 320GB Western Digital WD3200AAKS-0 +
500GB Seagate ST500DM002-1BD14 + 3001GB Seagate ST3000DM008-2DM1, Graphics:
AMD Radeon R5 512MB, Audio: AMD Kabini HDMI/DP, Monitor: LG Ultra HD,
Network: 2 x Broadcom NetXtreme BCM5720 PCIe + Realtek RTL8192EE PCIe



      OS: openSUSE 20230213, Kernel: 6.1.10-1-default (x86_64), Desktop:
KDE Plasma 5.27.0, Display Server: X Server 1.21.1.7, OpenGL: 4.6 Mesa
22.3.5 (LLVM 15.0.7 DRM 3.49), Compiler: GCC 12.2.1 20230124 [revision
193f7e62815b4089dfaed4c2bd34fd4f10209e27] + Clang 15.0.7 + LLVM 15.0.7,
File-System: xfs, Screen Resolution: 3840x2160



testb-opensuse:



      Processor: AMD Opteron X3216 APU @ 1.60GHz (1 Core / 2 Threads),
Motherboard: HPE ProLiant MicroServer Gen10 (5.12 BIOS), Chipset: AMD 15h,
Memory: 8GB, Disk: 250GB VB0250EAVER + 320GB Western Digital WD3200AAKS-0 +
500GB Seagate ST500DM002-1BD14 + 3001GB Seagate ST3000DM008-2DM1, Graphics:
AMD Radeon R5 512MB, Audio: AMD Kabini HDMI/DP, Monitor: LG Ultra HD,
Network: 2 x Broadcom NetXtreme BCM5720 PCIe + Realtek RTL8192EE PCIe



      OS: openSUSE 20230208, Kernel: 6.1.10-1-default (x86_64), Desktop:
KDE Plasma 5.26.5, Display Server: X Server 1.21.1.7, OpenGL: 4.6 Mesa
22.3.4 (LLVM 15.0.7 DRM 3.49), Compiler: GCC 12.2.1 20230124 [revision
193f7e62815b4089dfaed4c2bd34fd4f10209e27] + Clang 15.0.7 + LLVM 15.0.7,
File-System: xfs, Screen Resolution: 3840x2160



testa-custom:



      Processor: AMD Opteron X3216 APU @ 1.60GHz (1 Core / 2 Threads),
Motherboard: HPE ProLiant MicroServer Gen10 (5.12 BIOS), Chipset: AMD 15h,
Memory: 8GB, Disk: 250GB VB0250EAVER + 320GB Western Digital WD3200AAKS-0 +
500GB Seagate ST500DM002-1BD14 + 3001GB Seagate ST3000DM008-2DM1 + 32GB USB
Flash Drive, Graphics: AMD Radeon R5 512MB, Audio: AMD Kabini HDMI/DP,
Monitor: LG Ultra HD, Network: 2 x Broadcom NetXtreme BCM5720 PCIe +
Realtek RTL8192EE PCIe



      OS: openSUSE 20230201, Kernel: 6.1.8-1-default (x86_64), Desktop: KDE
Plasma 5.26.5, Display Server: X Server 1.21.1.6, OpenGL: 4.6 Mesa 22.3.4
(LLVM 15.0.7 DRM 3.49), Compiler: GCC 12.2.1 20230124 [revision
193f7e62815b4089dfaed4c2bd34fd4f10209e27] + Clang 15.0.7 + LLVM 15.0.7,
File-System: xfs, Screen Resolution: 3840x2160





OpenArena 0.8.8

Resolution: 1920 x 1080

Frames Per Second > Higher Is Better

testc1-packman . 18.1
|========================================================

testb-opensuse . 18.2
|========================================================

testa-custom ... 18.1
|========================================================





OpenArena 0.8.8

Resolution: 1920 x 1080 - Total Frame Time

Milliseconds < Lower Is Better

testc1-packman . MIN: 6.0  AVG: 55.3  MAX: 94.0

testb-opensuse . MIN: 6.0  AVG: 55.4  MAX: 97.0

testa-custom ... MIN: 6.0  AVG: 55.7  MAX: 96.0





Tesseract 2014-05-12

Resolution: 3840 x 2160

Frames Per Second > Higher Is Better

testc1-packman . 12.10
|=======================================================

testb-opensuse . 12.13
|=======================================================

testa-custom ... 12.13
|=======================================================





Unigine Heaven 4.0

Resolution: 3840 x 2160 - Mode: Fullscreen - Renderer: OpenGL

Frames Per Second > Higher Is Better

testc1-packman . 1.04564
|=====================================================

testb-opensuse . 1.04544
|=====================================================

testa-custom ... 1.04591
|=====================================================





Unigine Valley 1.0

Resolution: 3840 x 2160 - Mode: Fullscreen - Renderer: OpenGL

Frames Per Second > Higher Is Better

testc1-packman . 1.03202
|=====================================================

testb-opensuse . 1.03296
|=====================================================

testa-custom ... 1.03386
|=====================================================





Xonotic 0.8.5

Resolution: 3840 x 2160 - Effects Quality: Low

Frames Per Second > Higher Is Better

testc1-packman . 25.87
|======================================================

testb-opensuse . 25.80
|======================================================

testa-custom ... 26.28
|=======================================================





Xonotic 0.8.5

Resolution: 3840 x 2160 - Effects Quality: High

Frames Per Second > Higher Is Better

testc1-packman . 11.11
|=======================================================

testb-opensuse . 11.09
|=======================================================

testa-custom ... 11.18
|=======================================================





Xonotic 0.8.5

Resolution: 3840 x 2160 - Effects Quality: Ultra

Frames Per Second > Higher Is Better

testc1-packman . 10.17
|=======================================================

testb-opensuse . 10.16
|=======================================================

testa-custom ... 10.22
|=======================================================





Xonotic 0.8.5

Resolution: 3840 x 2160 - Effects Quality: Ultimate

Frames Per Second > Higher Is Better

testc1-packman . 8.4478494
|===================================================

testb-opensuse . 8.4382181
|===================================================

testa-custom ... 8.4188414
|===================================================





GLmark2 2021.08.30

Resolution: 3840 x 2160

Score > Higher Is Better

testc1-packman . 84
|=========================================================

testb-opensuse . 83
|========================================================

testa-custom ... 86
|==========================================================





ParaView 5.10.1

Test: Many Spheres - Resolution: 3840 x 2160

Frames / Sec > Higher Is Better

testc1-packman . 2.33
|=======================================================

testb-opensuse . 2.35
|========================================================

testa-custom ... 2.36
|========================================================





ParaView 5.10.1

Test: Many Spheres - Resolution: 3840 x 2160

MiPolys / Sec > Higher Is Better

testc1-packman . 233.88
|=====================================================

testb-opensuse . 235.35
|======================================================

testa-custom ... 236.55
|======================================================





ParaView 5.10.1

Test: Wavelet Volume - Resolution: 3840 x 2160

Frames / Sec > Higher Is Better

testc1-packman . 6.31
|=======================================================

testb-opensuse . 6.42
|========================================================

testa-custom ... 6.35
|=======================================================





ParaView 5.10.1

Test: Wavelet Volume - Resolution: 3840 x 2160

MiVoxels / Sec > Higher Is Better

testc1-packman . 101.03
|=====================================================

testb-opensuse . 102.75
|======================================================

testa-custom ... 101.60
|=====================================================





ParaView 5.10.1

Test: Wavelet Contour - Resolution: 3840 x 2160

Frames / Sec > Higher Is Better

testc1-packman . 1.24
|=======================================================

testb-opensuse . 1.25
|========================================================

testa-custom ... 1.26
|========================================================





ParaView 5.10.1

Test: Wavelet Contour - Resolution: 3840 x 2160

MiPolys / Sec > Higher Is Better

testc1-packman . 12.90
|======================================================

testb-opensuse . 13.05
|======================================================

testa-custom ... 13.17
|=======================================================



You can probably see the comparisons better from the PDF report, which you
may download here:



https://app.box.com/s/i34b7v3i3saql0cpbl5wcv6f4pq15w2v


Out of sixteen tests, the custom-built drivers were the fastest for twelve
tests; the Packman drivers were the fastest for one test, and the OpenSUSE
Factory drivers were the fastest for three tests.



Out of sixteen tests, the custom-built drivers were the slowest for two
tests, the Packman drivers were the slowest for nine tests, and the
OpenSUSE factory drivers were the slowest for five tests.
Conclusions



If your use case is highly performant desktop graphics, such as a gaming
machine, and you want to squeeze every last bit of performance out of your
hardware, and you also want to take advance of hardware acceleration for
your codecs, it is probably worth the time and effort it will require to
build the Mesa drivers from source, according to the method outlined herein.



If your use case is hardware acceleration of video codecs, and you are on
Tumbleweed, the Packman drivers are probably your best, (and certainly
easiest), option. However, at the time of this writing, the Mesa drivers
for Leap 15.4 and 15.5 Beta are still unavailable from the Packman repo.
Building from source is your only option.



At this point, I do not know why my custom-built drivers are faster than
the Packman drivers; I am not sure what the difference is in build
environments. Perhaps the Packman maintainers can have a look at this


Probably, running the ffmpeg and video-encoding test suites will give you a
better indication of the impact of these different drivers on hardware
acceleration. I leave that as an exercise for the reader, although I may
some day find the time to do it, and will update this document accordingly.

Kind regards,
Steven.



On Tue, 24 Jan 2023 at 20:10, Manfred Hollstein <manfred.h at gmx.net> wrote:

> Update:
>
> I have compared the output from running vdpauinfo in the following
> situations:
>
>  1. original Mesa packages from TW
>  2. original Mesa packages from PMBS without the patch
>  3. Mesa packages from PMBS with the patch applied in my home
>     repository on PMBS
>
> The result on my Intel based systems is that there is *no* difference. I
> therefore suggested to revoke the patch. If you think there might be a
> difference on an AMD/Nvidia based graphics stack, feel free to test with
> it.
>
> Sorry for the noise!
>
> Cheers.
>
> l8er
> manfred
>
> On Tue, 24 Jan 2023, 15:24:15 +0100, Manfred Hollstein wrote:
> > Hi there,
> >
> > On Tue, 24 Jan 2023, 10:45:02 +0100, Manfred Hollstein wrote:
> > > [...]
> > > On Tue, 24 Jan 2023, 09:16:24 +0100, Masaru Nomiya wrote:
> > > > [...]
> > > > This has nothing to do with the video codec problem, but Steven
> > > > didn't say he couldn't compile Mesa-drivers, so .... (_ _?
> > >
> > > This is effectively needed to fix Mesa.spec:
> > >
> > >   %if "%{flavor}" == "drivers"
> > >   %if %{video_codecs}
> > >   BuildRequires:  pkgconfig(x264)
> > >   BuildRequires:  pkgconfig(x265)
> > >   %endif
> > >   %endif
> > >
> > > I'll try to get that pushed into openSUSE.org:X11:Xorg/Mesa, which
> would
> > > then fix our Essentials/A_tw-Mesa package.
> >
> > my request has just been accepted and forwarded to openSUSE:Factory
> >
> >   <https://build.opensuse.org/request/show/1060658>
> >
> > I'll track that and send an update once it's in Factory!
> >
> > Cheers.
> >
> > l8er
> > manfred
> _______________________________________________
> Packman mailing list
> Packman at links2linux.de
> https://lists.links2linux.de/cgi-bin/mailman/listinfo/packman


More information about the Packman mailing list