[gallium] EGL clients using a gallium driver (radeon, nouveau, freedreno) that saturate the GPU cause the Mir server to slow, freeze and stutter, displaying very few frames
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Won't Fix
|
Medium
|
Daniel van Vugt | ||
mesa (Ubuntu) |
Won't Fix
|
Undecided
|
Unassigned | ||
mir (Ubuntu) |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
GPU-heavy clients on Mesa gallium drivers (e.g. radeon, nouveau and freedreno) cause the Mir server to slow, sometimes to a halt. This is seen as a frozen screen, unable to move surfaces, or unable to switch VTs (for a while).
For example:
mir_
mir_
The -n flag (swapinterval = 0) seems to cause the client to overload the mir server to the point where it cannot render physical frames very often.
$ es2_info
EGL_VERSION = 1.4 (Gallium)
EGL_VENDOR = Mesa Project
EGL_EXTENSIONS = EGL_WL_
EGL_CLIENT_APIS = OpenGL OpenGL_ES OpenGL_ES2 OpenVG
GL_VERSION: OpenGL ES 3.0 Mesa 9.2.0-devel
GL_RENDERER: Gallium 0.4 on AMD CEDAR
...
$ es2_info
EGL_VERSION = 1.4 (Gallium)
EGL_VENDOR = Mesa Project
EGL_EXTENSIONS = EGL_WL_
EGL_CLIENT_APIS = OpenGL OpenGL_ES OpenGL_ES2 OpenVG
GL_VERSION: OpenGL ES 3.0 Mesa 9.2.0-devel
GL_RENDERER: Gallium 0.4 on NVA8
...
Related branches
- Alan Griffiths: Approve
- Mir CI Bot: Approve (continuous-integration)
-
Diff: 254 lines (+110/-3)11 files modifiedsrc/server/compositor/dropping_schedule.cpp (+17/-1)
src/server/compositor/dropping_schedule.h (+2/-0)
src/server/compositor/queueing_schedule.cpp (+7/-0)
src/server/compositor/queueing_schedule.h (+2/-0)
src/server/compositor/schedule.h (+3/-0)
src/server/compositor/stream.cpp (+11/-1)
src/server/compositor/stream.h (+1/-1)
tests/unit-tests/compositor/test_dropping_schedule.cpp (+25/-0)
tests/unit-tests/compositor/test_multi_monitor_arbiter.cpp (+6/-0)
tests/unit-tests/compositor/test_queueing_schedule.cpp (+19/-0)
tests/unit-tests/compositor/test_stream.cpp (+17/-0)
- Mir CI Bot: Needs Fixing (continuous-integration)
- Daniel van Vugt: Disapprove
-
Diff: 82 lines (+18/-1)2 files modifiedsrc/server/compositor/multi_threaded_compositor.cpp (+10/-0)
src/server/compositor/stream.cpp (+8/-1)
summary: |
- Unthrottled EGL clients cause Mir to slow, sometimes to a halt + [radeon] [nouveau] Unthrottled EGL clients cause Mir to slow, sometimes + to a halt |
Changed in mir: | |
importance: | Undecided → High |
Changed in mir: | |
importance: | High → Medium |
tags: | added: performance |
Changed in mir: | |
status: | New → Confirmed |
summary: |
- [radeon] [nouveau] Unthrottled EGL clients cause Mir to slow, sometimes - to a halt + [radeon] [nouveau] Unthrottled EGL clients cause Mir to slow, freeze and + stutter |
summary: |
- [radeon] [nouveau] Unthrottled EGL clients cause Mir to slow, freeze and - stutter + [gallium] EGL clients that saturate the GPU cause the Mir server to + slow, freeze and stutter, showing very few frames |
description: | updated |
summary: |
- [gallium] EGL clients that saturate the GPU cause the Mir server to - slow, freeze and stutter, showing very few frames + [gallium] EGL clients using a gallium driver (radeon, nouveau, + freedreno) that saturate the GPU cause the Mir server to slow, freeze + and stutter, displaying very few frames |
Changed in mir: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
Changed in mir: | |
milestone: | none → 1.0.0 |
status: | Confirmed → In Progress |
Changed in mir: | |
status: | Fix Committed → In Progress |
Changed in mir: | |
status: | In Progress → Triaged |
milestone: | 1.0.0 → none |
Confirmed on nouveau as well as radeon.