System compositor not aware of VT
Bug #1102758 reported by
Robert Ancell
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alexandros Frantzis |
Bug Description
System compositor not aware of VT. It should correctly handle being switched away from and only take input when active.
Related branches
lp:~afrantzis/mir/vt-switching-1
- PS Jenkins bot (community): Approve (continuous-integration)
- Daniel van Vugt: Abstain
- Robert Carr (community): Approve
- Kevin DuBois (community): Approve
- Robert Ancell: Pending requested
-
Diff: 1824 lines (+935/-65)33 files modifiedinclude/server/mir/graphics/display.h (+11/-0)
include/test/mir_test_doubles/mock_display.h (+5/-0)
include/test/mir_test_doubles/null_display.h (+7/-0)
include/test/mir_test_doubles/null_virtual_terminal.h (+47/-0)
src/server/display_server.cpp (+12/-0)
src/server/graphics/android/android_display.cpp (+15/-0)
src/server/graphics/android/android_display.h (+8/-0)
src/server/graphics/gbm/CMakeLists.txt (+1/-0)
src/server/graphics/gbm/gbm_display.cpp (+31/-3)
src/server/graphics/gbm/gbm_display.h (+12/-2)
src/server/graphics/gbm/gbm_display_buffer.cpp (+17/-2)
src/server/graphics/gbm/gbm_display_buffer.h (+4/-0)
src/server/graphics/gbm/gbm_display_helpers.cpp (+40/-0)
src/server/graphics/gbm/gbm_display_helpers.h (+3/-0)
src/server/graphics/gbm/gbm_platform.cpp (+9/-4)
src/server/graphics/gbm/gbm_platform.h (+7/-2)
src/server/graphics/gbm/linux_virtual_terminal.cpp (+180/-0)
src/server/graphics/gbm/linux_virtual_terminal.h (+67/-0)
src/server/graphics/gbm/virtual_terminal.h (+55/-0)
tests/behavior-tests/session_management_context.cpp (+9/-0)
tests/integration-tests/test_display_server_main_loop_events.cpp (+178/-0)
tests/integration-tests/test_surfaceloop.cpp (+7/-0)
tests/mir_test_framework/testing_server_options.cpp (+7/-0)
tests/unit-tests/compositor/test_multi_threaded_compositor.cpp (+7/-0)
tests/unit-tests/graphics/gbm/mock_drm.cpp (+10/-0)
tests/unit-tests/graphics/gbm/mock_drm.h (+3/-0)
tests/unit-tests/graphics/gbm/test_gbm_buffer.cpp (+4/-1)
tests/unit-tests/graphics/gbm/test_gbm_buffer_allocator.cpp (+3/-1)
tests/unit-tests/graphics/gbm/test_gbm_display.cpp (+117/-31)
tests/unit-tests/graphics/gbm/test_gbm_display_configuration.cpp (+13/-6)
tests/unit-tests/graphics/gbm/test_gbm_display_multi_monitor.cpp (+12/-5)
tests/unit-tests/graphics/gbm/test_gbm_platform.cpp (+18/-5)
tests/unit-tests/graphics/test_graphics_platform.cpp (+16/-3)
lp:~afrantzis/mir/vt-switching
Superseded
for merging
into
lp:~mir-team/mir/trunk
- Daniel van Vugt: Needs Fixing
- Robert Ancell: Approve
- Robert Carr (community): Needs Information
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 2053 lines (+1049/-51)44 files modifiedinclude/server/mir/graphics/display.h (+3/-0)
include/server/mir/graphics/platform.h (+12/-1)
include/server/mir/server_configuration.h (+2/-0)
include/test/mir_test_doubles/mock_display.h (+2/-0)
include/test/mir_test_doubles/null_display.h (+2/-0)
include/test/mir_test_doubles/null_virtual_terminal.h (+47/-0)
src/server/display_server.cpp (+18/-1)
src/server/graphics/android/android_display.cpp (+8/-0)
src/server/graphics/android/android_display.h (+3/-0)
src/server/graphics/android/android_platform.cpp (+15/-0)
src/server/graphics/android/android_platform.h (+6/-0)
src/server/graphics/gbm/CMakeLists.txt (+1/-0)
src/server/graphics/gbm/gbm_display.cpp (+17/-3)
src/server/graphics/gbm/gbm_display.h (+7/-2)
src/server/graphics/gbm/gbm_display_buffer.cpp (+17/-2)
src/server/graphics/gbm/gbm_display_buffer.h (+4/-0)
src/server/graphics/gbm/gbm_display_helpers.cpp (+41/-0)
src/server/graphics/gbm/gbm_display_helpers.h (+3/-0)
src/server/graphics/gbm/gbm_platform.cpp (+27/-3)
src/server/graphics/gbm/gbm_platform.h (+12/-2)
src/server/graphics/gbm/linux_virtual_terminal.cpp (+180/-0)
src/server/graphics/gbm/linux_virtual_terminal.h (+67/-0)
src/server/graphics/gbm/virtual_terminal.h (+55/-0)
tests/behavior-tests/session_management_context.cpp (+3/-0)
tests/integration-tests/cucumber/test_session_management_context.cpp (+1/-0)
tests/integration-tests/graphics/gbm/test_buffer_integration.cpp (+9/-0)
tests/integration-tests/test_display_info.cpp (+8/-0)
tests/integration-tests/test_display_server_main_loop_events.cpp (+233/-0)
tests/integration-tests/test_drm_auth_magic.cpp (+9/-0)
tests/integration-tests/test_surfaceloop.cpp (+20/-0)
tests/mir_test_framework/testing_server_options.cpp (+12/-0)
tests/unit-tests/compositor/test_multi_threaded_compositor.cpp (+3/-0)
tests/unit-tests/frontend/test_session_mediator.cpp (+9/-0)
tests/unit-tests/frontend/test_session_mediator_android.cpp (+9/-0)
tests/unit-tests/frontend/test_session_mediator_gbm.cpp (+9/-0)
tests/unit-tests/graphics/gbm/mock_drm.cpp (+10/-0)
tests/unit-tests/graphics/gbm/mock_drm.h (+3/-0)
tests/unit-tests/graphics/gbm/test_gbm_buffer.cpp (+4/-1)
tests/unit-tests/graphics/gbm/test_gbm_buffer_allocator.cpp (+3/-1)
tests/unit-tests/graphics/gbm/test_gbm_display.cpp (+24/-16)
tests/unit-tests/graphics/gbm/test_gbm_display_configuration.cpp (+13/-6)
tests/unit-tests/graphics/gbm/test_gbm_display_multi_monitor.cpp (+12/-5)
tests/unit-tests/graphics/gbm/test_gbm_platform.cpp (+90/-5)
tests/unit-tests/graphics/test_graphics_platform.cpp (+16/-3)
tags: | added: vt |
Changed in mir: | |
assignee: | nobody → Robert Ancell (robert-ancell) |
status: | Triaged → In Progress |
information type: | Proprietary → Public |
Changed in mir: | |
milestone: | none → 0.0.3 |
Changed in mir: | |
assignee: | Robert Ancell (robert-ancell) → Alexandros Frantzis (afrantzis) |
Changed in mir: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Even worse... if mir loses the VT then it also loses vsync and pins a CPU at 100% CPU. Because it has no "idle mode" and currently busy waits, slowed only by vsync.