[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