Giter Club home page Giter Club logo

mir's Introduction

Mir - Wayland compositor

Mir is set of libraries for building Wayland based shells. Mir simplifies the complexity that shell authors need to deal with: it provides a stable, well tested and performant platform with touch, mouse and tablet input, multi-display capability and secure client-server communications.

Mir deals with the bringup and configuration of a broad array of graphics and input hardware, abstracts hardware differences away from shell authors (transparently dealing with hardware quirks) and integrates with system components such as greeters.

Window management is integrated into Mir with useful default behaviour and is extremely customisable by shell authors using a simple high-level API.

License (server)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

License (client)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2 or 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Website

Mir's website is hosted on https://mir-server.io/.

\copyright Copyright © 2012-2018 Canonical Ltd. \author Alan Griffiths [email protected]

mir's People

Contributors

afrantzis avatar alangriffiths avatar albaguirre avatar alfonsosanchezbeato avatar apokorny avatar bors[bot] avatar brandonschaefer avatar bregma avatar bryceharrington avatar cjwatson avatar dandrader avatar didrocks avatar flohack74 avatar hikiko avatar josharenson avatar kdub avatar kgunn avatar kgunnfront avatar mariogrip avatar mikix avatar nickdedekind avatar pajn avatar peat-psuwit avatar racarr-ubuntu avatar raof avatar robert-ancell avatar saviq avatar vanvugt avatar wmww avatar z3ntu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mir's Issues

Primary display orientation not correct on Tab S7 Plus

I'm porting ubuntu touch to Samsung Galaxy Tab S7 Plus through ubports gsi. It went to the stage of displaying but the touch input is shifted. From what I remember, the situation is the width is recognised as height and vice versa. When I do LineageOS porting, there is a property ro.surface_flinger.primary_display_orientation=ORIENTATION_270 which swapped width and height, also xDpi and yDpi to solve the issue. I don't think I can find an option here so I want to ask if we can bypass this.

blank screen

i got blank screen after update

unity-system-compositor no error log
unity8.log show this
[2021-03-28 08:24:07.517102] < - ERROR - > AndroidWindow: Caught exception at Mir/EGL driver boundary (in dequeueBuffer): /build/mir-1.2.1ubports1/src/client/no_tls_future-inl.h(76): Throw in function void mir::client::PromiseStateBase::break_promise() [with T = std::shared_ptrmir::client::MirBuffer]
Dynamic exception type: boost::exception_detail::error_info_injectorstd::runtime_error
std::exception::what: broken_promise

[2021-03-28 08:24:07.524740] < - ERROR - > AndroidWindow: Caught exception at Mir/EGL driver boundary (in dequeueBuffer): /build/mir-1.2.1ubports1/src/client/no_tls_future-inl.h(76): Throw in function void mir::client::PromiseStateBase::break_promise() [with T = std::shared_ptrmir::client::MirBuffer]
Dynamic exception type: boost::exception_detail::error_info_injectorstd::runtime_error
std::exception::what: broken_promise

[2021-03-28:08:24:07.771] [PERFORMANCE]: Last frame took 834703 ms to render.

(process:4916): GLib-GIO-CRITICAL **: Error while sending AddMatch() message: The connection is closed

(process:4916): GLib-GIO-CRITICAL **: Error while sending AddMatch() message: The connection is closed

(process:4916): GLib-GIO-CRITICAL **: Error while sending AddMatch() message: The connection is closed

(process:4916): GLib-GIO-CRITICAL **: Error while sending AddMatch() message: The connection is closed

(process:4916): GLib-GIO-CRITICAL **: Error while sending AddMatch() message: The connection is closed

Race around console service on 3.10 kernels with vts shows up in usc

There seems to be an intermittent problem about opening up input device / getting the mirserver console services implementation into a working state.

The issues shows itself like this:

cat lightdm/unity-system-compositor.log.1.gz | gunzip -
... 
[2018-09-03 22:52:23.073575] <DEBUG> mirserver: Not using Linux VT subsystem for session management: /home/phablet/mir32/mir/src/server/console/linux_virtual_terminal.cpp(571): Throw in function int mir::LinuxVirtualTerminal::open_vt(int)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >
std::exception::what: Failed to open current VT
5, "Input/output error"[boost::errinfo_file_name_*] = /dev/tty1

and then eventually:

ERROR: /home/phablet/mir32/mir/src/server/input/input_probe.cpp(103): Throw in function mir::UniqueModulePtr<mir::input::Platform> mir::input::probe_input_platforms(const mir::options::Option&, const std::shared_ptr<mir::EmergencyCleanupRegistry>&, const std::shared_ptr<mir::input::InputDeviceRegistry>&, const std::shared_ptr<mir::ConsoleServices>&, const std::shared_ptr<mir::input::InputReport>&, mir::SharedLibraryProberReport&)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >
std::exception::what: No appropriate input platform module found



While sometimes the same binary just works:
[2018-09-04 13:08:48.393811] mirserver: Starting
[2018-09-04 13:08:48.394259] mircommon: Loading modules from: /usr/lib/arm-linux-gnueabihf/mir/server-platform
[2018-09-04 13:08:48.394362] mircommon: Loading module: /usr/lib/arm-linux-gnueabihf/mir/server-platform/graphics-android.so.15
[2018-09-04 13:08:48.394406] mircommon: Loading module: /usr/lib/arm-linux-gnueabihf/mir/server-platform/graphics-android-caf.so.15
[2018-09-04 13:08:48.394435] mircommon: Loading module: /usr/lib/arm-linux-gnueabihf/mir/server-platform/input-evdev.so.7
[2018-09-04 13:08:48.397206] <DEBUG> mirserver: Using Linux VT subsystem for session management
[2018-09-04 13:08:48.500788] mirplatform: Found graphics driver: mir:android (version 0.32.0)
[2018-09-04 13:08:48.501148] mirplatform: Found graphics driver: mir:android-caf (version 0.32.0)
[2018-09-04 13:08:48.501584] mirserver: Selected driver: mir:android-caf (version 0.32.0)
[2018-09-04 13:08:48.501771] <DEBUG> mirserver: Using Linux VT subsystem for session management
[2018-09-04 13:08:48.772392] android/server: Found 1 matching egl configs
[2018-09-04 13:08:48.772579] android/server: Android visual ID for selected display format : 1
[2018-09-04 13:08:48.772620] android/server: Selected Mir display format : 1
[2018-09-04 13:08:48.804965] mirserver: Using software cursor
[2018-09-04 13:08:48.824759] <DEBUG> mirserver: Using Linux VT subsystem for session management
[2018-09-04 13:08:48.825136] <DEBUG> mirserver: Using Linux VT subsystem for session management
[2018-09-04 13:08:48.825197] mircommon: Loading modules from: /usr/lib/arm-linux-gnueabihf/mir/server-platform
[2018-09-04 13:08:48.825321] mircommon: Loading module: /usr/lib/arm-linux-gnueabihf/mir/server-platform/graphics-android.so.15
[2018-09-04 13:08:48.825410] mircommon: Loading module: /usr/lib/arm-linux-gnueabihf/mir/server-platform/graphics-android-caf.so.15
[2018-09-04 13:08:48.825475] mircommon: Loading module: /usr/lib/arm-linux-gnueabihf/mir/server-platform/input-evdev.so.7
[2018-09-04 13:08:48.833658] mirserver: Selected input driver: mir:evdev-input (version: 0.32.1)
error: XDG_RUNTIME_DIR not set in the environment
GL_VENDOR = Qualcomm
GL_RENDERER = Adreno (TM) 430
GL_VERSION = OpenGL ES 2.0 (OpenGL ES 3.2 [email protected] (GIT@I750f7f2fa6))
dm_connection_start
[2018-09-04 13:08:48.880130] GLRenderer: EGL vendor: Android
[2018-09-04 13:08:48.880220] GLRenderer: EGL version: 1.4 Android META-EGL
[2018-09-04 13:08:48.880250] GLRenderer: EGL client APIs: OpenGL_ES
[2018-09-04 13:08:48.880280] GLRenderer: GL vendor: Qualcomm
[2018-09-04 13:08:48.880304] GLRenderer: GL renderer: Adreno (TM) 430
[2018-09-04 13:08:48.880329] GLRenderer: GL version: OpenGL ES 2.0 (OpenGL ES 3.2 [email protected] (GIT@I750f7f2fa6))
[2018-09-04 13:08:48.880351] GLRenderer: GLSL version: OpenGL ES GLSL ES 3.20
[2018-09-04 13:08:48.880393] GLRenderer: GL max texture size = 16384
[2018-09-04 13:08:48.880424] GLRenderer: GL framebuffer bits: RGBA=8888, depth=0, stencil=0
[2018-09-04 13:08:48.894634] mirserver: Mir version 0.32.1
[2018-09-04 13:08:48.904653] mirserver: Initial display configuration:
[2018-09-04 13:08:48.904774] mirserver: * Output 1: LVDS connected, used
[2018-09-04 13:08:48.904818] mirserver: . |_ Physical size 5.1" 64x114mm
[2018-09-04 13:08:48.904846] mirserver: . |_ Power is on
[2018-09-04 13:08:48.904881] mirserver: . |_ Current mode 1080x1920 60.00Hz
[2018-09-04 13:08:48.904911] mirserver: . |_ Preferred mode 1080x1920 60.00Hz
[2018-09-04 13:08:48.904938] mirserver: . |_ Orientation normal
[2018-09-04 13:08:48.904978] mirserver: . |_ Logical size 1080x1920
[2018-09-04 13:08:48.905006] mirserver: . |_ Logical position +0+0
[2018-09-04 13:08:48.905034] mirserver: . |_ Scaling factor: 1.00
[2018-09-04 13:08:48.905062] mirserver: * Output 2: DisplayPort disconnected
[2018-09-04 13:08:48.905088] mirserver: * Output 3: unknown disconnected
[2018-09-04 13:08:48.905115] mirserver: * Output 4: Virtual disconnected
set_active_session 'session-0'
Opening session eglspinner
library "libgui.so" wasn't loaded and RTLD_NOLOAD prevented it
Server supports 4 of 10 surface pixel formats. Using format: 1
Active output [1] at (0, 0) is 1080x1920
Spinner using pixels per grid unit: 13
Spinner using native orientation: ''
Opening session session-0
[2018-09-04 13:08:51.092962] mirserver: Session session-0 applied display configuration
[2018-09-04 13:08:51.093077] mirserver: * Output 1: LVDS connected, used
[2018-09-04 13:08:51.093116] mirserver: . |_ Physical size 5.1" 64x114mm
[2018-09-04 13:08:51.093144] mirserver: . |_ Power is on
[2018-09-04 13:08:51.093178] mirserver: . |_ Current mode 1080x1920 60.00Hz
[2018-09-04 13:08:51.093208] mirserver: . |_ Preferred mode 1080x1920 60.00Hz
[2018-09-04 13:08:51.093234] mirserver: . |_ Orientation normal
[2018-09-04 13:08:51.093261] mirserver: . |_ Logical size 1080x1920
[2018-09-04 13:08:51.093287] mirserver: . |_ Logical position +0+0
[2018-09-04 13:08:51.093314] mirserver: . |_ Scaling factor: 1.00
[2018-09-04 13:08:51.093341] mirserver: * Output 2: DisplayPort disconnected
[2018-09-04 13:08:51.093367] mirserver: * Output 3: unknown disconnected
[2018-09-04 13:08:51.093393] mirserver: * Output 4: Virtual disconnected
[2018-09-04 13:08:53.399408] evdev-input: Added /dev/input/event5
[2018-09-04 13:08:53.414856] evdev-input: Added /dev/input/event4
[2018-09-04 13:08:53.430952] evdev-input: Added /dev/input/event0
[2018-09-04 13:08:53.449114] evdev-input: Added /dev/input/event2
[2018-09-04 13:08:53.466015] evdev-input: Added /dev/input/event3
[2018-09-04 13:08:56.348748] mirserver: New display configuration:
[2018-09-04 13:08:56.348978] mirserver: * Output 1: LVDS connected, used
[2018-09-04 13:08:56.349099] mirserver: . |_ Physical size 5.1" 64x114mm
[2018-09-04 13:08:56.349203] mirserver: . |_ Power is on
[2018-09-04 13:08:56.349321] mirserver: . |_ Current mode 1080x1920 60.00Hz
[2018-09-04 13:08:56.349435] mirserver: . |_ Preferred mode 1080x1920 60.00Hz
[2018-09-04 13:08:56.349536] mirserver: . |_ Orientation normal
[2018-09-04 13:08:56.349638] mirserver: . |_ Logical size 1080x1920
[2018-09-04 13:08:56.349739] mirserver: . |_ Logical position +0+0
[2018-09-04 13:08:56.349842] mirserver: . |_ Scaling factor: 1.00
[2018-09-04 13:08:56.349942] mirserver: * Output 2: DisplayPort disconnected
[2018-09-04 13:08:56.350042] mirserver: * Output 3: unknown disconnected
[2018-09-04 13:08:56.350142] mirserver: * Output 4: Virtual disconnected
Closing session eglspinner
Signal 15 received. Good night.
....

Support for drag and drop

Hi,

Is there any plan to have drag and drop support within a single component ( e.g HTML drag and drop in a WebView ) ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.