Skip to content

Android (PowerVR DXT) via Zink: Failed to convert between dmabuf and EGLImage #4191

Description

@E-Leask

Ill be transparent I'm definitely in over my head, was using an LLM to troubleshoot, here's a summary of the issue. Curious if you had an insight

Description
The compositor fails to render frames when
running in a Debian (trixie) terminal
environment on Android. The logs
report frame rendering errors:
niri::backend::tty: error rendering frame: Error
on the target device: Failed to convert between
dmabuf and EGLImage. Additionally, Mesa reports
a driver conflict with zink: MESA: error: zink:
display server doesn't support DRI3 modifiers
and driver can't handle INVALID<->LINEAR!.

Hardware acceleration is being attempted using
the zink OpenGL-on-Vulkan driver on a PowerVR
DXT GPU.

Config 1 // This config is in the KDL format: https://kdl.dev 2 // "/-" comments out the following node. 3 // Check the wiki for a full description of the configuration: 4 // https://github.com/YaLTeR/niri/wiki/Configu ration:-Introduction 5 config-notification { 6 disable-failed 7 } 8 9 gestures { 10 hot-corners { 11 off 12 } 13 } 14 15 // Input device configuration. 16 input { 17 keyboard { 18 xkb { 19 } 20 numlock 21 } 22 23 touchpad { 24 tap 25 natural-scroll 26 } 27 28 mouse { 29 } 30 31 trackpoint { 32 } 33 } 34 35 output "Virtual-1" { 36 mode "1280x720@60" 37 } 38 39 layout { 40 background-color "transparent" 41 center-focused-column "never" 42 preset-column-widths { 43 proportion 0.33333 44 proportion 0.5 45 proportion 0.66667 46 } 47 default-column-width { proportion 0.5; } 48 border { 49 off 50 } 51 shadow { 52 off 53 } 54 struts { 55 } 56 } 57 58 layer-rule { 59 match namespace="^quickshell$" 60 place-within-backdrop true 61 } 62 63 overview { 64 workspace-shadow { 65 off 66 } 67 } 68 69 environment { 70 XDG_CURRENT_DESKTOP "niri" 71 } 72 73 hotkey-overlay { 74 skip-at-startup 75 } 76 77 prefer-no-csd 78 screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" 79 80 animations { 81 workspace-switch { 82 spring damping-ratio=0.80 stiffness=523 epsilon=0.0001 83 } 84 window-open { 85 duration-ms 150 86 curve "ease-out-expo" 87 } 88 window-close { 89 duration-ms 150 90 curve "ease-out-quad" 91 } 92 horizontal-view-movement { 93 spring damping-ratio=0.85 stiffness=423 epsilon=0.0001 94 } 95 window-movement { 96 spring damping-ratio=0.75 stiffness=323 epsilon=0.0001 97 } 98 window-resize { 99 spring damping-ratio=0.85 stiffness=423 epsilon=0.0001 100 } 101 config-notification-open-close { 102 spring damping-ratio=0.65 stiffness=923 epsilon=0.001 103 } 104 screenshot-ui-open { 105 duration-ms 200 106 curve "ease-out-quad" 107 } 108 overview-open-close { 109 spring damping-ratio=0.85 stiffness=800 epsilon=0.0001 110 } 111 } 112 113 window-rule { 114 match app-id=r#"^org\.wezfurlong\.wezterm$"# 115 default-column-width {} 116 } 117 window-rule { 118 match app-id=r#"^org\.gnome\."# 119 draw-border-with-background false 120 geometry-corner-radius 12 121 clip-to-geometry true 122 } 123 window-rule { 124 match app-id=r#"^gnome-control-center$"# 125 match app-id=r#"^pavucontrol$"# 126 match app-id=r#"^nm-connection-editor$"# 127 default-column-width { proportion 0.5; } 128 open-floating false 129 } 130 window-rule { 131 match app-id=r#"^org\.gnome\.Calculator$"# 132 match app-id=r#"^gnome-calculator$"# 133 match app-id=r#"^galculator$"# 134 match app-id=r#"^blueman-manager$"# 135 match app-id=r#"^org\.gnome\.Nautilus$"# 136 match app-id=r#"^xdg-desktop-portal$"# 137 open-floating true 138 } 139 window-rule { 140 match app-id=r#"^steam$"# title=r#"^notificationtoasts_\d+_desktop$"# 141 default-floating-position x=10 y=10 relative-to="bottom-right" 142 open-focused false 143 } 144 window-rule { 145 match app-id=r#"^org\.wezfurlong\.wezterm$"# 146 match app-id="Alacritty" 147 match app-id="zen" 148 match app-id="com.mitchellh.ghostty" 149 match app-id="kitty" 150 draw-border-with-background false 151 } 152 window-rule { 153 match app-id=r#"firefox$"# title="^Picture-in-Picture$" 154 match app-id="zoom" 155 open-floating true 156 } 157 window-rule { 158 match app-id=r#"org.quickshell$"# 159 match app-id=r#"com.danklinux.dms$"# 160 open-floating true 161 } 162 163 debug { 164 honor-xdg-activation-with-invalid-serial 165 } 166 167 recent-windows { 168 binds { 169 Alt+Tab { next-window scope="output"; } 170 Alt+Shift+Tab { previous-window scope="output"; } 171 Alt+grave { next-window filter="app-id"; } 172 Alt+Shift+grave { previous-window filter="app-id"; } 173 } 174 } 175 176 include "dms/colors.kdl" 177 include "dms/layout.kdl" 178 include "dms/alttab.kdl" 179 include "dms/binds.kdl" 180 include "dms/outputs.kdl" 181 include "dms/cursor.kdl"

System Information

  • niri version: niri 26.04 (unknown commit)
  • Distro: Debian GNU/Linux 13 (trixie) (Android
    Terminal Environment)
  • GPU: PowerVR D-Series DXT-48-1536 MC1 (via
    Zink/Vulkan)
  • CPU: ARM Cortex-X4 / Cortex-A725 (Snapdragon
    8 Gen 3)

Additional Context

  • Backend: TTY (using systemd-run on tty1).
  • Logs:

1 MESA: error: zink: display server doesn't
support DRI3 modifiers and driver can't
handle INVALID<->LINEAR!
2 WARN niri::backend::tty: error rendering
frame: Error on the target device: Failed to
convert between dmabuf and EGLImage

  • Drivers: Using
    MESA_LOADER_DRIVER_OVERRIDE=zink.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions