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

Poor performance on Raspberry Pi 3+ #314

Open
GeorgeBroughton opened this issue Jan 13, 2025 · 3 comments
Open

Poor performance on Raspberry Pi 3+ #314

GeorgeBroughton opened this issue Jan 13, 2025 · 3 comments

Comments

@GeorgeBroughton
Copy link

Bug Description
I get around 4FPS or worse in the desktop environment on the latest Raspberry Pi OS as of posting this issue only when QPrompt is loaded.

Steps to Reproduce

  1. Install QPrompt 1.1.6 via the ARM deb package via apt
  2. Launch it.

Expected behavior
I expected it to not be unusable

Detailed description of display configuration (if applicable)
A single 1080p screen.

Device information

  • QPrompt Version:1.1.6
  • Operating System:Raspberry Pi OS With Desktop, kernel 6.6 ( image SHA256 EA6E68C48D14C3D78AF5471C0B288BBF6522FDD775241F74D8295D106D344300 )
@Cuperino
Copy link
Owner

Cuperino commented Jan 13, 2025

Hi @GeorgeBroughton,

The Raspberry Pi 3 does not meet the minimum performance requirements to run any teleprompter software with a 1080 display. You will need to lower your speed to 480p to get decent performance with QPrompt (user experience will be sub-optimal at that resolution).

Alternatively, you could use Imaginary Teleprompter, which takes a lower toll on the Raspberry Pi 3. There you can use a 720p display, albeit at a low frame rate.

The minimum Raspberry Pi model recommended for QPrompt is the Raspberry Pi 4b with a single 720p display. For 1080 you must use a Raspberry Pi 5 or a competitor SoC with a better GPU than the MALI chip the Pi 4 brings.

If you have interest in compiling QPrompt in a Raspberry Pi, 8 GBs of RAM is the minimum requirement. If you're just going to run it, 4 GB is recommended as that will enable a Wayland based compositor on the OS which will yield better performance, again at 720p.

No current ARM SoC is able to handle prompting on two displays at the same time. For that use-case external duplicator hardware should be used.

@GeorgeBroughton
Copy link
Author

The Raspberry Pi 3 does not meet the minimum performance requirements to run any teleprompter software with a 1080 display.

Challenge accepted. You can close this.

@GeorgeBroughton GeorgeBroughton closed this as not planned Won't fix, can't repro, duplicate, stale Jan 13, 2025
@Cuperino
Copy link
Owner

Cuperino commented Jan 13, 2025

The Raspberry Pi 3 does not meet the minimum performance requirements to run any teleprompter software with a 1080 display.

Challenge accepted. You can close this.

I mean, there's always a way, but you'll likely have to sacrifice quality of life features like anti-aliased text or development time re-inventing the wheel. You would likely have to forgo the convenience that high level development toolkits such as Qt and GTK, and web engines bring, when it comes to handling rich text.

I would like to avoid having to write a teleprompter engine in Vulkan or OpenGL directly, because, even if that meets the requirements of more constrained systems, it would be much more difficult to maintain and expand upon. People are requesting other features and the program must be able to acomodate them.

If we had infinite time, I'd be writing Teleprompter for Terminals 2 using nocurses for a blitzer and indexed colors to render and smoothly animate large fonts in the shell. If you cache all the glyphs before you start prompting into bitmaps, and implement some form of hardware scrolling, a 286 system running DOS is more than capable to run a teleprompter.

If you'd like to take on the challenge, contributions are welcome. The constraints for this project are that the prompter's viewport must be renderable inside a Qt 6 QQuickItem, with sub-pixel animations, and there must be a way to take those contents and render them on multiple screens at the same time.

@Cuperino Cuperino reopened this Jan 13, 2025
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

No branches or pull requests

2 participants