[Cin] Got RX550 working on Linux!

Andrew Randrianasulu randrianasulu at gmail.com
Fri Apr 25 13:29:39 CEST 2025


With some kind of HDMI (1.4) to VGA adapter

bash-5.1$ inxi -Gxi
Graphics:
  Device-1: AMD Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X]
    vendor: ASRock driver: amdgpu v: kernel bus-ID: 01:00.0
  Display: server: X.Org 1.21.1.99 driver: loaded: amdgpu
    resolution: 1440x900~60Hz
  OpenGL: renderer: AMD Radeon RX 550 / 550 Series (radeonsi polaris12 ACO
    DRM 3.49 6.1.44-x64)
    v: 4.6 Mesa 25.2.0-devel (git-cd8d8ca795) direct render: Yes

vainfo
Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.19 (libva 2.19.0)
vainfo: Driver version: Mesa Gallium driver 25.2.0-devel for AMD
Radeon RX 550 / 550 Series (radeonsi, polaris12, ACO, DRM 3.49,
6.1.44-x64)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

bash-5.1$ clpeak

Platform: rusticl
  Device: AMD Radeon RX 550 / 550 Series (radeonsi, polaris12, ACO,
DRM 3.49, 6.1.44-x64)
    Driver version  : 25.2.0-devel (git-cd8d8ca795) (Linux x86)
    Compute units   : 8
    Clock frequency : 1183 MHz

    Global memory bandwidth (GBPS)
      float   : 75.30
      float2  : 76.62
      float4  : 80.28
      float8  : 81.12
      float16 : 78.93

    Single-precision compute (GFLOPS)
      float   : 1188.83
      float2  : 1187.27
      float4  : 1182.98
      float8  : 1174.67
      float16 : 1157.09

    No half precision support! Skipped

    No double precision support! Skipped

    Integer compute (GIOPS)
      int   : 240.17
      int2  : 240.10
      int4  : 240.01
      int8  : 239.80
      int16 : 239.45

    Integer compute Fast 24bit (GIOPS)
      int   : 595.16
      int2  : 594.82
      int4  : 594.37
      int8  : 593.12
      int16 : 590.84

    Transfer bandwidth (GBPS)
      enqueueWriteBuffer              : 3.38
      enqueueReadBuffer               : 1.44
      enqueueWriteBuffer non-blocking : 3.39
      enqueueReadBuffer non-blocking  : 1.45
      enqueueMapBuffer(for read)      : 2.67
        memcpy from mapped ptr        : 3.53
      enqueueUnmap(after write)       : 3.29
        memcpy to mapped ptr          : 3.48

    Kernel launch latency : 90.27 us

bash-5.1$


So, mpv plays 4k HDR file from iPhone11 smoothly (finally!)

CinGG only can do 15 fps on this file :( (8bit RGBA project, x11 output)

Encoding into 8bit HEVC also work:

bash-5.1$ mediainfo /dev/shm/vaapi-test.mp4
General
Complete name                            : /dev/shm/vaapi-test.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/mp41)
File size                                : 132 MiB
Duration                                 : 19 s 158 ms
Overall bit rate                         : 57.7 Mb/s
Frame rate                               : 59.940 FPS
Writing application                      : Lavf61.1.100

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main at L5@Main
Codec ID                                 : hev1
Codec ID/Info                            : High Efficiency Video Coding
Duration                                 : 19 s 153 ms
Bit rate                                 : 57.6 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 59.940 (60000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.116
Stream size                              : 132 MiB (100%)
Color range                              : Full
Matrix coefficients                      : BT.709
Codec configuration box                  : hvcC

Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 19 s 158 ms
Source duration                          : 19 s 179 ms
Bit rate mode                            : Constant
Bit rate                                 : 128 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 300 KiB (0%)
Source stream size                       : 300 KiB (0%)
Language                                 : Russian
Default                                  : Yes
Alternate group                          : 1

but encoding still was  done in seven minutes for 20 seconds test clip
(no tonemap either)

So I guess my machine seriosly bootlenecked by PCIe speeds/memory speeds?

bash-5.1$ dmesg | grep amdgpu
[    9.887359] [drm] amdgpu kernel modesetting enabled.
[    9.887485] amdgpu: CRAT table not found
[    9.887527] amdgpu: Virtual CRAT table created for CPU
[    9.887583] amdgpu: Topology: Add CPU node
[    9.888699] amdgpu 0000:01:00.0: No more image in the PCI ROM
[    9.889843] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from ROM BAR
[    9.889886] amdgpu: ATOM BIOS: 113-EXT-700004_L01
[    9.890070] amdgpu 0000:01:00.0: vgaarb: deactivate vga console
[    9.893944] amdgpu 0000:01:00.0: amdgpu: Trusted Memory Zone (TMZ)
feature not supported
[    9.893950] amdgpu 0000:01:00.0: amdgpu: PCIE atomic ops is not supported
[   10.064640] amdgpu 0000:01:00.0: amdgpu: VRAM: 4096M
0x000000F400000000 - 0x000000F4FFFFFFFF (4096M used)
[   10.064655] amdgpu 0000:01:00.0: amdgpu: GART: 256M
0x000000FF00000000 - 0x000000FF0FFFFFFF
[   10.064725] [drm] amdgpu: 4096M of VRAM memory ready
[   10.064729] [drm] amdgpu: 7998M of GTT memory ready.
[   10.143106] amdgpu: hwmgr_sw_init smu backed is polaris10_smu
[   10.572632] snd_hda_intel 0000:01:00.1: bound 0000:01:00.0 (ops
amdgpu_dm_audio_component_bind_ops [amdgpu])
[   10.754610] kfd kfd: amdgpu: skipped device 1002:699f, PCI rejects
atomics 730<0
[   10.754630] amdgpu 0000:01:00.0: amdgpu: SE 2, SH per SE 1, CU per
SH 5, active_cu_number 8
[   10.758061] amdgpu 0000:01:00.0: amdgpu: Using BACO for runtime pm
[   10.758456] [drm] Initialized amdgpu 3.49.0 20150101 for
0000:01:00.0 on minor 0
[   10.765104] fbcon: amdgpudrmfb (fb0) is primary device
[   10.838142] amdgpu 0000:01:00.0: [drm] fb0: amdgpudrmfb frame buffer device


bash-5.1$ dmesg | grep PCIe
[    0.364217] acpi PNP0A03:00: _OSC: platform does not support
[PCIeHotplug SHPCHotplug PME LTR]
[    0.364477] acpi PNP0A03:00: _OSC: OS now controls [AER PCIeCapability]
[    0.376895] pci 0000:01:00.0: 32.000 Gb/s available PCIe bandwidth,
limited by 5.0 GT/s PCIe x8 link at 0000:00:02.0 (capable of 63.008
Gb/s with 8.0 GT/s PCIe x8 link)

Hm, 32 Gb/s should be enough for many 4k streams?

4k ~= 8Kpix, 8*60 = 480Mpix/sec
4 byte/per pixel (30 bit for 10 bpc colors, 2 padding) still just 2Gb/s!


More information about the Cin mailing list