Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial work to support per-application framebuffer #320

Closed
wants to merge 232 commits into from
Closed

Conversation

Eeems
Copy link
Collaborator

@Eeems Eeems commented Jul 4, 2023

  • Implement basic QPA that Qt applications can use to directly target using the new GUI API
  • Implement pen hover support
  • Switch all the tarnish screen interactions over to using window based screen access
    • Application splash screens
    • Notifications
    • Suspend image
    • Quitting screens
  • Allow applications to get direct FB access with OXIDE_PRELOAD_EXPOSE_FB=1
  • Allow applications to get direct input access with OXIDE_PRELOAD_EXPOSE_INPUT=1
  • Replace current gesture handling with QTouchEvent based one
  • Upgrade sentry-native to 0.6.5
  • Remove application chroot capabilities
  • Add power sysfs handling to preload
  • Fix issue where quitting a preload can throw free(): invalid pointer and keep the application from stopping in the qpa
  • Fix issue where input freezes things running in the preload. This is most noticeable with rmfm and nao as sometimes simple will freeze when you tap a button
  • Fix issue where raise/lower doesn't always result in a z sort change
  • Fix issue where ctrl-c causes a segfault in the qpa
  • Fix issue where sometimes input just stops working (Could be the freezing)
  • Fix memory leak due to windows not being deleted after they have been closed
  • Fix issue where windows can stick around even if the process that created it is no longer running, and the process
    group is empty
  • Fix issue where sometimes windows don't display properly and stay blank
  • Update task switcher to use new window mechanism instead of awkward screen copy dance
  • Fix splashscreens being hidden before the application window displays
  • Fix tablet events not being sent to resized windows
  • Fix x/y location of pen events in preload now that the coordinate origin is top left
  • Fix x/y location of pen events in qpa now that the coordinate origin is top left
  • Resolve performance issue introduced by properly rotating tablet location
  • Fix touch events in QPA not working when on a resized window
  • Fix QImage::pixelColor: coordinate (1861,0) out of range error on tarnish startup
  • Fix issue where things freeze on startup while starting the first application
  • Fix issue on first boot where things don't display properly until you restart tarnish
  • Fix ctrl-c sometimes resulting in tarnish being killed after stopping the first running application
  • Fix tablet events only partially working on resized windows
    image
  • Flush out liboxide documentation
  • Fix issue where preload sometimes freezes while sending input events
  • Fix issue where screen flashes when sitting on the lockscreen for a while
  • Implement on-screen keyboard for things like ReTerm
  • Update notifications to stay on screen for longer and allow clicking them to actually work
  • Add power menu application that shows when the power button is held down
  • Implement MXCFB_SET_AUTO_UPDATE_MODE handling
  • Implement different MXCFB_SET_UPDATE_SCHEME mechanisms
  • Update task-switcher to allow switching between windows
  • Implement LD_PRELOAD library to automatically wrap applications
    • Get libremarkable based applications working
      • DOOMarkable
      • Plato
      • Chessmarkable
      • whiteboard-hypercard
        • Nothing is drawn to the framebuffer on startup, Several calls to MXCFB_SEND_UPDATE, so there should be stuff drawn, but there is nowhere near enough calls for the animation that plays out.
        • High CPU usage that is only present when using the preload
        • Drawing on the screen works
        • With RUST_LOG=debug set it appears that the qrcode thread doesn't start
        • OXIDE_PRELOAD_EXPOSE_INPUT=1 doesn't help
        • OXIDE_PRELOAD_EXPOSE_FB=1 allows the animation to load, but breaks input
        • There is one 1x1 repaint sent after the [paint mouldings] drawingUI... log line, and then no more, so something is freezing up in here: https://github.com/fenollp/reMarkable-tools/blob/7fcad46dc11bc18ab25b2fbaa2403de07365c23a/marauder/src/bin/whiteboard.rs#L689
    • Get LD_PRELOAD library for qt applications to inject QPA
      • Get xochitl working - preload.qt
        • Pen input not working to draw
        • If just using base preload, no input works, and will only load without OXIDE_PRELOAD_NO_QAPP
        • Lots of errors related to attempts to create children for a parent on a different thread, where the parent is QTcpSocket
      • Get calculator working - preload.qt
      • Get wikipedia working - preload.qt
      • Get recrossable working - OXIDE_PRELOAD_NO_QAPP=1
    • Get KOReader working - KO_DONT_SET_DEPTH=1
    • Get script based applications (things using simple for example working)
    • Get yaft working Unfinished TODO can cause Bus error timower/rM2-stuff#17
      • Pen input not being handled
    • Get tilem working Unfinished TODO can cause Bus error timower/rM2-stuff#17
    • Get rmkit based applications working
    • Get netsurf working
    • Get ReTerm working
      • Crashes with access denied to /dev/fb0. This appears to be a pwrite on /dev/fb0. Potentially trying to write outside of the sealed area?
        image
      • It might be better to just write a driver
  • Get folly working
  • Get sill working
    • Same issues as folly

@Eeems Eeems added the enhancement New feature or request label Jul 4, 2023
@Eeems Eeems added this to the Next milestone Jul 4, 2023
@Eeems Eeems force-pushed the issue/107 branch 2 times, most recently from 70a105d to c1048c7 Compare July 4, 2023 06:32
@Eeems Eeems linked an issue Dec 21, 2023 that may be closed by this pull request
@Eeems Eeems mentioned this pull request Feb 1, 2024
63 tasks
@Eeems
Copy link
Collaborator Author

Eeems commented Feb 1, 2024

Will be closed in favour of #348

@Eeems Eeems closed this Feb 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
1 participant