Totem playback blank screen

My Totem is playing back a blank screen regardless of video format (.mkv, .avi, .webm, etc.)

I’ve compiled mesa myself & appended the PKGBUILD below.
I do not suspect driver issue, though, because Pantheon Videos & VLC work properly.

I’ve emptied out ~/{.config,.cache,.local/share}/totem & reinstalled it, but no luck.

I have the following codecs installed

❯ pacman -Q | grep -E "gst-plugin"
gst-plugin-gtk 1.20.5-1
gst-plugin-pipewire 1:0.3.63-1
gst-plugins-bad 1.20.5-1
gst-plugins-bad-libs 1.20.5-1
gst-plugins-base 1.20.5-1
gst-plugins-base-libs 1.20.5-1
gst-plugins-good 1.20.5-1

Any clues as to what the issue might be?

# Maintainer: Laurent Carlier <>
# Maintainer: Felix Yan <>
# Contributor: Jan de Groot <>
# Contributor: Andreas Radke <>

pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
pkgdesc="An open-source implementation of the OpenGL specification"
makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
             'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'zstd' 'elfutils' 'llvm'
             'libomxil-bellagio' 'libclc' 'clang' 'libglvnd' 'libunwind' 'lm_sensors' 'libxrandr'
             'systemd' 'valgrind' 'glslang' 'vulkan-icd-loader' 'directx-headers' 'cmake' 'meson')
makedepends+=('rust' 'rust-bindgen' 'spirv-tools' 'spirv-llvm-translator') # rusticl dependencies
options=('!debug' '!lto')
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D'  # Emil Velikov <>
              '946D09B5E4C9845E63075FF1D961C596A7203456'  # Andres Gomez <>
              'E3E8F480C52ADD73B278EE78E1ECBE07D7D70895'  # Juan Antonio Suárez Romero (Igalia, S.L.) <>
              'A5CC9FEC93F2F837CB044912336909B6B25FADFA'  # Juan A. Suarez Romero <>
              '71C4B75620BC75708B4BDB254C95FAAB3EB073EC'  # Dylan Baker <>
              '57551DE15B968F6341C248F68D8E31AFC32428A6') # Eric Engestrom <>

prepare() {
  cd mesa-$pkgver

  patch -Np1 -i ../0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch

build() {
  # Build only minimal debug info to reduce size
  CFLAGS+=' -g1'
  CXXFLAGS+=' -g1'

  arch-meson mesa-$pkgver build \
    -D b_ndebug=false \
    -D b_lto=false \
    -D platforms=x11,wayland \
    -D gallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,i915,iris,crocus,zink,d3d12 \
    -D vulkan-drivers=amd,intel,intel_hasvk,swrast \
    -D vulkan-layers=device-select,intel-nullhw,overlay \
    -D dri3=enabled \
    -D egl=enabled \
    -D gallium-extra-hud=true \
    -D gallium-nine=true \
    -D gallium-omx=bellagio \
    -D gallium-opencl=icd \
    -D gallium-va=enabled \
    -D gallium-vdpau=enabled \
    -D gallium-xa=enabled \
    -D gallium-rusticl=true \
    -D rust_std=2021 \
    -D gbm=enabled \
    -D gles1=disabled \
    -D gles2=enabled \
    -D glvnd=true \
    -D glx=dri \
    -D libunwind=enabled \
    -D llvm=enabled \
    -D lmsensors=enabled \
    -D osmesa=true \
    -D shared-glapi=enabled \
    -D microsoft-clc=disabled \
    -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \
    -D valgrind=enabled

  # Print config
  meson configure build

  ninja -C build
  meson compile -C build

  # fake installation to be seperated into packages
  # outside of fakeroot but mesa doesn't need to chown/mod
  DESTDIR="${srcdir}/fakeinstall" meson install -C build

_install() {
  local src f dir
  for src; do
    install -m755 -d "${dir}"
    mv -v "${src}" "${dir}/"

package_vulkan-mesa-layers() {
  pkgdesc="Mesa's Vulkan layers"
  depends=('libdrm' 'libxcb' 'wayland' 'python')

  _install fakeinstall/usr/share/vulkan/explicit_layer.d
  _install fakeinstall/usr/share/vulkan/implicit_layer.d
  _install fakeinstall/usr/lib/libVkLayer_*.so
  _install fakeinstall/usr/bin/

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE

package_opencl-mesa() {
  pkgdesc="OpenCL support with clover and rusticl for mesa drivers"
  depends=('libdrm' 'libclc' 'clang' 'expat')
  optdepends=('opencl-headers: headers necessary for OpenCL development')

  _install fakeinstall/etc/OpenCL
  _install fakeinstall/usr/lib/lib*OpenCL*
  _install fakeinstall/usr/lib/gallium-pipe

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE

package_vulkan-intel() {
  pkgdesc="Intel's Vulkan mesa driver"
  depends=('wayland' 'libx11' 'libxshmfence' 'libdrm' 'zstd' 'systemd-libs')
  optdepends=('vulkan-mesa-layers: additional vulkan layers')

  _install fakeinstall/usr/share/vulkan/icd.d/intel_*.json
  _install fakeinstall/usr/lib/libvulkan_intel*.so

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE

package_vulkan-radeon() {
  pkgdesc="Radeon's Vulkan mesa driver"
  depends=('wayland' 'libx11' 'libxshmfence' 'libelf' 'libdrm' 'llvm-libs' 'systemd-libs')
  optdepends=('vulkan-mesa-layers: additional vulkan layers')

  _install fakeinstall/usr/share/drirc.d/00-radv-defaults.conf
  _install fakeinstall/usr/share/vulkan/icd.d/radeon_icd*.json
  _install fakeinstall/usr/lib/

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE

package_vulkan-swrast() {
  pkgdesc="Vulkan software rasteriser driver"
  depends=('wayland' 'libx11' 'libxshmfence' 'libdrm' 'zstd' 'llvm-libs' 'systemd-libs' 'libunwind')
  optdepends=('vulkan-mesa-layers: additional vulkan layers')

  _install fakeinstall/usr/share/vulkan/icd.d/lvp_icd*.json
  _install fakeinstall/usr/lib/

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE

package_libva-mesa-driver() {
  pkgdesc="VA-API implementation for gallium"
  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')

  _install fakeinstall/usr/lib/dri/*

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE

package_mesa-vdpau() {
  pkgdesc="Mesa VDPAU drivers"
  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')

  _install fakeinstall/usr/lib/vdpau

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE

package_mesa() {
  depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf'
           'libomxil-bellagio' 'libunwind' 'llvm-libs' 'lm_sensors' 'libglvnd'
           'zstd' 'vulkan-icd-loader')
  depends+=('' '' '')
  optdepends=('opengl-man-pages: for the OpenGL API man pages'
              'mesa-vdpau: for accelerated video playback'
              'libva-mesa-driver: for accelerated video playback')
  provides=('mesa-libgl' 'opengl-driver')

  _install fakeinstall/usr/share/drirc.d/00-mesa-defaults.conf
  _install fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json

  # ati-dri, nouveau-dri, intel-dri, svga-dri, swrast, swr
  _install fakeinstall/usr/lib/dri/*

  _install fakeinstall/usr/lib/bellagio
  _install fakeinstall/usr/lib/d3d
  _install fakeinstall/usr/lib/lib{gbm,glapi}.so*
  _install fakeinstall/usr/lib/*
  _install fakeinstall/usr/lib/*

  _install fakeinstall/usr/include
  _install fakeinstall/usr/lib/pkgconfig

  # libglvnd support
  _install fakeinstall/usr/lib/*
  _install fakeinstall/usr/lib/*

  # indirect rendering
  ln -s /usr/lib/ "${pkgdir}/usr/lib/"

  # make sure there are no files left to install
  find fakeinstall -depth -print0 | xargs -0 rmdir

  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
❯ inxi -Fazy
  Kernel: 6.1.1-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/vmlinuz-6.1-x86_64
    root=UUID=f36cf003-435c-47d3-b53a-7c1f3c0bb874 rw rootflags=subvol=@ quiet
    splash apparmor=1 security=apparmor fbcon=nodefer udev.log_priority=3
    root=/dev/mapper/cr_root resume=/dev/mapper/cr_swap
  Desktop: GNOME v: 43.2 tk: GTK v: 3.24.36 wm: gnome-shell dm: GDM v: 43.0
    Distro: Manjaro Linux base: Arch Linux
  Type: Laptop System: ASUSTeK product: ZenBook UX325SA_UM325SA v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: UX325SA v: 1.0 serial: <superuser required>
    UEFI: American Megatrends LLC. v: UX325SA.302 date: 11/09/2021
  ID-1: BATT charge: 33.9 Wh (53.0%) condition: 64.0/67.1 Wh (95.4%)
    volts: 15.9 min: 15.9 model: ASUSTeK UX325 type: Li-ion serial: <filter>
    status: discharging cycles: 310
  Info: model: AMD Ryzen 7 5800U with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3 gen: 4 level: v3 note: check built: 2021-22
    process: TSMC n7 (7nm) family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA50000C
  Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB L3: 16 MiB
    desc: 1x16 MiB
  Speed (MHz): avg: 1511 high: 1900 min/max: 1600/4505 boost: enabled
    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 1397 2: 1600
    3: 1397 4: 1347 5: 1600 6: 1900 7: 1330 8: 1600 9: 1377 10: 1600 11: 1600
    12: 1460 13: 1600 14: 1600 15: 1383 16: 1397 bogomips: 60704
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
  Device-1: AMD Cezanne [Radeon Vega Series / Radeon Mobile Series]
    vendor: ASUSTeK driver: amdgpu v: kernel arch: GCN-5.1 code: Vega-2
    process: TSMC n7 (7nm) built: 2018-21 pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s ports: active: eDP-1
    empty: DP-1,DP-2,HDMI-A-1 bus-ID: 04:00.0 chip-ID: 1002:1638 class-ID: 0300
    temp: 39.0 C
  Device-2: IMC Networks USB2.0 HD UVC WebCam type: USB driver: uvcvideo
    bus-ID: 1-3:2 chip-ID: 13d3:56eb class-ID: fe01 serial: <filter>
  Display: wayland server: v: with: Xwayland v: 22.1.7
    compositor: gnome-shell driver: gpu: amdgpu display-ID: 0
  Monitor-1: eDP-1 model: Samsung 0x4158 built: 2020 res: 1920x1080 dpi: 166
    gamma: 1.2 size: 294x165mm (11.57x6.5") diag: 337mm (13.3") ratio: 16:9
    modes: max: 1920x1080 min: 640x480
  API: OpenGL v: 4.6 Mesa 22.3.1 renderer: AMD Radeon Graphics (renoir LLVM
    14.0.6 DRM 3.49 6.1.1-1-MANJARO) direct render: Yes
  Device-1: AMD Renoir Radeon High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s bus-ID: 04:00.1 chip-ID: 1002:1637
    class-ID: 0403
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: ASUSTeK
    driver: snd_rn_pci_acp3x v: kernel
    alternate: snd_pci_acp3x,snd_pci_acp5x,snd_pci_acp6x,snd_acp_pci,snd_rpl_pci_acp6x,snd_pci_ps,snd_sof_amd_renoir,snd_sof_amd_rembrandt
    pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s
    bus-ID: 04:00.5 chip-ID: 1022:15e2 class-ID: 0480
  Device-3: AMD Family 17h/19h HD Audio vendor: ASUSTeK driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 04:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Sound API: ALSA v: k6.1.1-1-MANJARO running: yes
  Sound Server-1: JACK v: 1.9.21 running: no
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.63 running: yes
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 8086:2723 class-ID: 0280
  IF: wlp1s0 state: up mac: <filter>
  IF-ID-1: docker0 state: down mac: <filter>
  IF-ID-2: surfshark_ipv6 state: unknown speed: N/A duplex: N/A mac: <filter>
  IF-ID-3: vboxnet0 state: down mac: <filter>
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 1-4:3
    chip-ID: 8087:0029 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
  Local Storage: total: 1.16 TiB used: 285.66 GiB (24.0%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: HFM001TD3JX013N
    size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: 41000C20 temp: 32.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 type: USB model: AMicro AM8180 NVME
    size: 238.47 GiB block-size: physical: 512 B logical: 512 B type: SSD
    serial: <filter> rev: 1.00 scheme: GPT
  ID-1: / raw-size: 89.41 GiB size: 89.41 GiB (100.00%) used: 42.94 GiB (48.0%)
    fs: btrfs dev: /dev/dm-0 maj-min: 254:0 mapped: cr_root
  ID-2: /boot raw-size: 954 MiB size: 921.8 MiB (96.63%)
    used: 263.8 MiB (28.6%) fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-3: /boot/efi raw-size: 244 MiB size: 240.2 MiB (98.46%)
    used: 29 MiB (12.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-4: /home raw-size: 788.77 GiB size: 788.77 GiB (100.00%)
    used: 221.85 GiB (28.1%) fs: f2fs dev: /dev/dm-2 maj-min: 254:2
    mapped: cr_home
  ID-5: /var/log raw-size: 89.41 GiB size: 89.41 GiB (100.00%)
    used: 42.94 GiB (48.0%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: cr_root
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 14.89 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/dm-1 maj-min: 254:1 mapped: cr_swap
  System Temperatures: cpu: 44.5 C mobo: N/A gpu: amdgpu temp: 40.0 C
  Fan Speeds (RPM): N/A
  Processes: 481 Uptime: 1d 15h 42m wakeups: 8229 Memory: 15.01 GiB
  used: 7.39 GiB (49.3%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 clang: 14.0.6 Packages: pm: pacman
  pkgs: 1241 libs: 368 tools: gnome-software,pamac,yay pm: flatpak pkgs: 0
  Shell: Zsh v: 5.9 running-in: gnome-terminal inxi: 3.3.24

Me neither, but to rule that out and thus then know is simple - install the original mesa and see whether this makes a difference.

There are none in what you posted - nothing I could see anyway.

Did you try starting the player from a terminal? Perhaps the output there will give you hints.

I figured since the other two players are working properly it’s enough justification to rule out drivers.

But, as per your advice I ran sudo mhwd -f -i pci video-linux & rebooted my laptop.

Then (upon reboot) I ran totem some_video_file.mkv & again there was no video output. There is sound output, however.

There were no messages on the console until I closed totem. The message was

(totem:3673): Grilo-CRITICAL **: 19:41:44.843: grl_log_valist: assertion 'domain' failed

Again, this did not show until I hit the X button to close totem GUI.

You tried to reset and start fresh by deleting these.

The message is not what I see when Istart the program -


does not sound like a good thing.

There is one more directory which you didn’t “reset”:

Try that?
(it will be recreated, just like the other ones)

Apart from that: I have no idea. :man_shrugging:

That is not what I meant.
What I meant is this:

and I assume you also installed it and use it now.
Try the original repo package.

I acknowledge that you figured that.
But if you want to know instead, you should rule that out.
You have access to both packages - it’s easy to switch and then be sure.

That’s what mhwd does. I passed it the -f flag to overwrite the existing mesa packages & install the repo packages.

I emptied out ~/.local/share/grilo-plugins as well, no luck. Video is still blank in Totem.

Well - if you are sure about that …
I would not think so.

mhwd will use drivers from the mesa package that you have installed
and will reinstall them when you pass the -f flag

It will not install or reinstall mesa - where these drivers come from.

I’m sure.

It just calls pacman which will look for the pkg.tar.zst in /var/cache/pacman/pkg & download them if they aren’t there.

My compiled packages are somewhere else where pacman doesn’t check.

I promise I’ll say nothing else after this! :zipper_mouth_face:
I only have Manjaro in a virtual machine, the driver that is used is

mesa is present in the cache.
I remove it.

I then do:
sudo mhwd -f -i pci video-virtualmachine
mesa will not be pulled in

If I do (even though I do not need it):
sudo mhwd -f -i pci video-linux
and force install that driver
mesa will, again, not be pulled in.

It’s still not in the cache afterwards.

The driver video-linux, that you use, does not depend on mesa - so it will not be pulled in.

look at:

so - there :man_shrugging:

Oops. No, you’re right. My bad. I’ll do that again.

So I reinstalled these packages from the repos

amdvlk 2022.Q4.4-1
lib32-amdvlk 2022.Q4.4-1
lib32-libva-mesa-driver 22.3.1-1
lib32-mesa 22.3.1-1
lib32-mesa-vdpau 22.3.1-1
libva-mesa-driver 22.3.1-1
mesa 22.3.1-1
mesa-utils 8.5.0-2
mesa-vdpau 22.3.1-1
opencl-mesa 22.3.1-1
vulkan-mesa-layers 22.3.1-1
xf86-video-amdgpu 22.0.0-1

…still blank!

Updating to say that the blank video output issue is occuring on Xorg as well as Wayland.

last thing I can think of:

Gnome can run under wayland (which I believe is the default)
or it can run under xorg

can be changed on the login screen - but the option is only presented once you chose a username, but before you enter the password

kind of strange, but this is the way I observed it to behave

Yeah, I did that. that’s how I know it’s on both.

another uncalled for opinion :sunglasses::
I’d just not use it.
I always use mpv - I hate having to use the mouse to move inside video or to do any action
to me, the keyboard is so much easier

I’ll always prefer what works in favor of what doesn’t. …

I’m officially out of here and will be just watching to perhaps learn something.