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

Fix slow UI when DISPLAY_SLEEP_MINUTES is used #26964

Conversation

dbuezas
Copy link
Contributor

@dbuezas dbuezas commented Apr 13, 2024

Description

My LCD became noticeably slower when I enabled DISPLAY_SLEEP_MINUTES.
This is because refresh_screen_timeout() is called on each encoder action, which results in this chain of calls:

  • wake_display();
  • sleep_display(false);
  • sleep ? u8g.sleepOn() : u8g.sleepOff();
    And either u8g call results in sending extra data to the LCD.

This PR keeps track of the state of the display and omits calls to u8g unless necessary.

Requirements

u8g display.

Benefits

Performant LCD with sleep timeout

Configurations

#define DISPLAY_SLEEP_MINUTES 2

Related Issues

Fixes #26467

@sjasonsmith sjasonsmith merged commit d99e150 into MarlinFirmware:bugfix-2.1.x Apr 13, 2024
61 checks passed
@dbuezas dbuezas deleted the dbuezas/fix-slow-ui-with-display-sleep-minutes branch April 17, 2024 16:23
blu28 added a commit to blu28/Marlin-blu that referenced this pull request Apr 20, 2024
commit 02ba6f9
Author: thinkyhead <thinkyhead@users.noreply.github.com>
Date:   Fri Apr 19 00:21:25 2024 +0000

    [cron] Bump distribution date (2024-04-19)

commit dba0010
Author: Andrew <18502096+classicrocker883@users.noreply.github.com>
Date:   Thu Apr 18 19:04:03 2024 -0400

    🎨 Rename some G-code files (MarlinFirmware#26981)

commit 90667f6
Author: I3DBeeTech <129617321+I3DBeeTech@users.noreply.github.com>
Date:   Fri Apr 19 02:24:17 2024 +0530

    🐛 Fix BLACKBEEZMINI fan, info (MarlinFirmware#26983)

commit d6961b2
Author: thinkyhead <thinkyhead@users.noreply.github.com>
Date:   Wed Apr 17 06:06:51 2024 +0000

    [cron] Bump distribution date (2024-04-17)

commit 07ebb81
Author: Javlon Sodikov <5047093+javlonsodikov@users.noreply.github.com>
Date:   Wed Apr 17 10:25:22 2024 +0500

    🩹Fix ProUI error when !CASELIGHT_USES_BRIGHTNESS (MarlinFirmware#26976)

    * Fix the compile error with the case light menu

    Fix the compile error with the case light menu

    * Add failing test

    ---------

    Co-authored-by: Jason Smith <jason.inet@gmail.com>

commit 245db73
Author: thinkyhead <thinkyhead@users.noreply.github.com>
Date:   Tue Apr 16 18:06:16 2024 +0000

    [cron] Bump distribution date (2024-04-16)

commit 9342dae
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Tue Apr 16 12:17:47 2024 -0500

    📝 Remove dead PDF links

commit 1f84f50
Author: thinkyhead <thinkyhead@users.noreply.github.com>
Date:   Mon Apr 15 02:38:10 2024 +0000

    [cron] Bump distribution date (2024-04-15)

commit 3326c74
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sun Apr 14 16:26:16 2024 -0500

    📝 Minor README changes

commit 0269106
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sun Apr 14 16:24:14 2024 -0500

    🎨 Dagoma D6 followup

commit 95d38a8
Author: Sophist <3001893+Sophist-UK@users.noreply.github.com>
Date:   Sun Apr 14 21:04:52 2024 +0100

    ✨ Add Dagoma D6 as found in DiscoUltimate v2 TMC (MarlinFirmware#26874)

    * Add Dagoma D6 board as used in their DiscoUltimate v2 TMC.

    Taken from the Dagoma fork of Marlin DU_MC branch where it is called FYSETC_DAGOMA_F5 and explicitly confirmed by Dagoma as being the D6:

    "the BOARD_FYSETC_DAGOMA_F5 is effectively the definition for the D6"

    ---------

    Co-authored-by: thisiskeithb <13375512+thisiskeithb@users.noreply.github.com>
    Co-authored-by: Orel <37673727+0r31@users.noreply.github.com>

commit dca6afc
Author: Chris <52449218+shadow578@users.noreply.github.com>
Date:   Sun Apr 14 20:42:57 2024 +0200

    ✨🐛 HC32 - Add SERIAL_DMA, fix SDIO and MEATPACK (MarlinFirmware#26845)

    * fix meatpack on hc32

    * add support for SERIAL_DMA on HC32

    * add additional checks in HC32 HAL

    * migrate HC32 HAL to use app_config.h

    * fix memory leak in HC32 sdio HAL
    MarlinFirmware#26845 (comment)

    * hc32: fail if both EMERGENCY_PARSER and SERIAL_DMA are enabled

commit 19684f2
Author: Jason Smith <jason.inet@gmail.com>
Date:   Sat Apr 13 17:49:08 2024 -0700

    ✅ Add unit tests for macros.h (MarlinFirmware#26968)

commit 52a5613
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Sat Apr 13 17:47:16 2024 -0700

    ⏪️ Revert unintended README changes (MarlinFirmware#26967)

    * Revert all the changes that went in with the unit test framework
    This restored broken links and other changes. Restoring to the prior revision seems the most appropriate action until the intentions of those file changes are known.
    ---------

    Co-authored-by: Jason Smith <jason.inet@gmail.com>

commit 0683e8a
Author: thinkyhead <thinkyhead@users.noreply.github.com>
Date:   Sun Apr 14 00:24:15 2024 +0000

    [cron] Bump distribution date (2024-04-14)

commit 1bb4a04
Author: Jason Smith <jason.inet@gmail.com>
Date:   Sat Apr 13 14:11:51 2024 -0700

    ✅Unit test improvements (MarlinFirmware#26965)

    * Do not warn about display in unit tests

    * Treat warnings as errors in unit tests

    * Report actual filenames with unit tests

commit d10861e
Author: Jason Smith <jason.inet@gmail.com>
Date:   Sat Apr 13 12:06:08 2024 -0700

    ✅ Add unit testing framework (MarlinFirmware#26948)

    - Add a framework to build and execute unit tests for Marlin.
    - Enable unit test execution as part of PR checks.

    ---------

    Co-authored-by: Costas Basdekis <costas.basdekis@gmail.com>
    Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

commit cf7c86d
Author: Andrew <18502096+classicrocker883@users.noreply.github.com>
Date:   Sat Apr 13 14:59:59 2024 -0400

    🔧Fix M936 in features.ini (MarlinFirmware#26957)

commit d99e150
Author: David Buezas <dbuezas@users.noreply.github.com>
Date:   Sat Apr 13 18:54:25 2024 +0200

    ⚡️Reduce DISPLAY_SLEEP_MINUTES overhead (MarlinFirmware#26964)
RPGFabi pushed a commit to RPGFabi/Marlin that referenced this pull request Jun 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] DISPLAY_SLEEP_MINUTES makes the UI sluggish
2 participants