Syslog flooded by [drm:radeon_gem_object_create] errors #2
Hi there!
I want to note here that an old bug has "returned". However, at this time, this may be true only for quite old AMD R600 or RV635 GPU AGP(?) based systems. The issues are almost identical to the described problems in this bug 82162 report here: https://bugs.freedesktop.org/show_bug.cgi?id=82162
The tested Linux distro is Kubuntu 18.04 LTS with latest official Kernel and latest official and unofficial MESA drivers. The graphics card is an Radeon HD 3650 AGP.
Note, - every other aspect like 3D acceleration (glxgears and glmark2) works perfectly and better than in Windows 7!
Update 09.01.2020: Here follows a short update. It seems that this is not a general driver issue of the R600 VGA chipset. The H264 UVD hardware acceleration of a normal H264 video file is working fine at an Radeon HD 2400 XT. I have tested this intensively at an Apple iMac with Kubuntu 18.04 LTS (installed in native EFI mode) and normal stock MESA 19.0.8. The CPU-load is during H264 playback below 20%. No vdpau-info error occurs at the terminal. However, - the DVB H264 decoding (through an external TechnoTrend Connect CT2-4650 CI USB tuner) is broken. There are several different artifacts visible.
Update 26.01.2020: Another little update. The VDPAU feature seems to be after all (maybe in different ways?) broken. With Mesa 19.2.1 I can confirm this now for a Radeon HD 2600 at an iMac 8,1 running in native EFI mode. VLC shows several green block artifacts and distorted screen output when H264 videos are played. However, when I enforce in the VLC settings the "VA-API Video decoder" then H264 videos are working correctly. Note, this fix works for the Radeon HD 2600 but not for the originally above mentioned Radeon HD 3650 AGP card.
As already mentioned, in my syslog there a plenty of these nice "drm:radeon_gem_object_create] errors" present:
[ 194.600056] [TTM] Illegal buffer object size
[ 194.600065] [TTM] Illegal buffer object size
[ 194.600139] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (0, 6, 4096, -22)
[ 194.600225] [TTM] Illegal buffer object size
[ 194.600227] [TTM] Illegal buffer object size
[ 194.600255] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (0, 6, 4096, -22)
.
.
.
[ 469.046865] [TTM] Illegal buffer object size
[ 469.046873] [TTM] Illegal buffer object size
[ 469.046972] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (0, 6, 4096, -22)
[ 469.047057] [TTM] Illegal buffer object size
[ 469.047060] [TTM] Illegal buffer object size
[ 469.047090] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (0, 6, 4096, -22)
These errors occur primarily when I want to play (VA-API accelerated) H264 video files or decode H264 DVB streams.
When I enter vdpauinfo I get:
kle@kle-PC:~$ vdpauinfo
display: :0 screen: 0
radeon: Failed to allocate a buffer:
radeon: size : 0 bytes
radeon: alignment : 4096 bytes
radeon: domains : 4
radeon: flags : 20
radeon: Failed to allocate a buffer:
radeon: size : 0 bytes
radeon: alignment : 4096 bytes
radeon: domains : 4
radeon: flags : 20
Error creating VDPAU device: 23
However, vainfo looks fine:
kle@kle-PC:~$ vainfo
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Mesa Gallium driver 20.0.0-devel for AMD RV635 (DRM 2.50.0 / 5.0.0-37-generic, LLVM 9.0.1)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
I have tried a lot of different stuff but I am unable to fix it. What I can say, after hours of research, is that this "R600 H264 UVD driver bug" seems to be quite old. Because of the old hardware this issue doesn't get a lot attention, - I think.
However, the following topic may be also related: https://ubuntuforums.org/showthread.php?t=2412070
The reporting user seems to have fixed a similar error with an update of the "xorg-xf86-video-ati" module. I have also updated that module, but with the official Canonical X Staging PPA. Unfortunately with no success.
My Kubuntu is at the moment at the following level:
kle@kle-PC:~$ glxinfo | grep 'version'
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 3.3
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.0.0-devel (git-680d806 2020-01-05 bionic-oibaf-ppa)
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 20.0.0-devel (git-680d806 2020-01-05 bionic-oibaf-ppa)
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 20.0.0-devel (git-680d806 2020-01-05 bionic-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
The only other syslog message with a similar high presence is:
[ 579.527489] snd_hda_codec_hdmi hdaudioC0D0: HDMI ATI/AMD: no speaker allocation for ELD
However, I think that one is not related to the "drm:radeon_gem_object_create] error".
Here follows some more information regarding the affected system:
[ 1.930119] [drm] radeon kernel modesetting enabled.
[ 1.930248] checking generic (e0000000 5b0000) vs hw (e0000000 10000000)
[ 1.930251] fb0: switching to radeondrmfb from VESA VGA
[ 1.930295] Console: switching to colour dummy device 80x25
[ 1.930820] firewire_ohci 0000:00:0c.2: added OHCI v1.10 device as card 0, 4 IR + 8 IT contexts, quirks 0x2
[ 1.930957] [drm] initializing kernel modesetting (RV635 0x1002:0x9596 0x1043:0x0028 0x00).
[ 1.932464] ATOM BIOS: 9596.10.80.0.1.AS03
[ 1.932488] agpgart-amd64 0000:00:00.0: AGP 3.0 bridge
[ 1.932500] agpgart-amd64 0000:00:00.0: putting AGP V3 device into 4x mode
[ 1.932560] radeon 0000:01:00.0: putting AGP V3 device into 4x mode
[ 1.932566] radeon 0000:01:00.0: GTT: 256M 0xD0000000 - 0xDFFFFFFF
[ 1.932571] radeon 0000:01:00.0: VRAM: 512M 0xB0000000 - 0xCFFFFFFF (512M used)
[ 1.932574] [drm] Detected VRAM RAM=512M, BAR=256M
[ 1.932575] [drm] RAM width 128bits DDR
[ 1.932668] [TTM] Zone kernel: Available graphics memory: 1664404 kiB
[ 1.932669] [TTM] Initializing pool allocator
[ 1.932675] [TTM] Initializing DMA pool allocator
[ 1.932698] [drm] radeon: 512M of VRAM memory ready
[ 1.932699] [drm] radeon: 256M of GTT memory ready.
[ 1.932709] [drm] Loading RV635 Microcode
[ 1.932803] [drm] Internal thermal controller without fan control
[ 1.932845] [drm] radeon: power management initialized
[ 1.932962] [drm] GART: num cpu pages 65536, num gpu pages 65536
[ 1.942020] radeon 0000:01:00.0: WB disabled
[ 1.942025] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x00000000d0000004 and cpu addr 0x(____ptrval____)
[ 1.957882] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x00000000b00521d0 and cpu addr 0x(____ptrval____)
[ 1.957885] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.957886] [drm] Driver supports precise vblank timestamp query.
[ 1.957922] [drm] radeon: irq initialized.
[ 1.989687] [drm] ring test on 0 succeeded in 1 usecs
kle@kle-PC:~$ glmark2
=======================================================
glmark2 2014.03+git20150611.fa71af2d
=======================================================
OpenGL Information
GL_VENDOR: X.Org
GL_RENDERER: AMD RV635 (DRM 2.50.0 / 5.0.0-37-generic, LLVM 9.0.1)
GL_VERSION: 3.0 Mesa 20.0.0-devel (git-1e29ff7 2020-01-09 bionic-oibaf-ppa)
=======================================================
[build] use-vbo=false: FPS: 775 FrameTime: 1.290 ms
[build] use-vbo=true: FPS: 1553 FrameTime: 0.644 ms
[texture] texture-filter=nearest: FPS: 1323 FrameTime: 0.756 ms
[texture] texture-filter=linear: FPS: 1314 FrameTime: 0.761 ms
[texture] texture-filter=mipmap: FPS: 1377 FrameTime: 0.726 ms
[shading] shading=gouraud: FPS: 1292 FrameTime: 0.774 ms
[shading] shading=blinn-phong-inf: FPS: 1286 FrameTime: 0.778 ms
[shading] shading=phong: FPS: 1268 FrameTime: 0.789 ms
[shading] shading=cel: FPS: 1233 FrameTime: 0.811 ms
[bump] bump-render=high-poly: FPS: 1045 FrameTime: 0.957 ms
[bump] bump-render=normals: FPS: 1529 FrameTime: 0.654 ms
[bump] bump-render=height: FPS: 1448 FrameTime: 0.691 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1005 FrameTime: 0.995 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 550 FrameTime: 1.818 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1194 FrameTime: 0.838 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 400 FrameTime: 2.500 ms
[desktop] effect=shadow:windows=4: FPS: 552 FrameTime: 1.812 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 62 FrameTime: 16.129 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 168 FrameTime: 5.952 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 66 FrameTime: 15.152 ms
[ideas] speed=duration: FPS: 684 FrameTime: 1.462 ms
[jellyfish] <default>: FPS: 641 FrameTime: 1.560 ms
[terrain] <default>: FPS: 98 FrameTime: 10.204 ms
[shadow] <default>: FPS: 397 FrameTime: 2.519 ms
[refract] <default>: FPS: 98 FrameTime: 10.204 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1221 FrameTime: 0.819 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1196 FrameTime: 0.836 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1228 FrameTime: 0.814 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1223 FrameTime: 0.818 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1009 FrameTime: 0.991 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1221 FrameTime: 0.819 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1219 FrameTime: 0.820 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 563 FrameTime: 1.776 ms
=======================================================
glmark2 Score: 916
=======================================================
Finally it would be nice if someone can bring clarity to the claim, that the Radeon HD 2400 series is unable to decode H264 because of weak, buggy or non-present UVD or low amount of VRAM. It seems that some early Windows ATI Radeon HD 2400 drivers came with disabled H264 decode capability. However, it was possible to enable it with a hack. The Radeon HD 2400 XT, installed in some older Apple iMac, is definitely able to decode H264.
Kind regards