Cuperino / QPrompt-Teleprompter

Teleprompter software for all video creators. Built with ease of use, productivity, control accuracy, and smooth performance in mind.
https://qprompt.app
GNU General Public License v3.0
354 stars 22 forks source link

Unable to project to one of three monitors on Windows #249

Open FlippingBinary opened 3 months ago

FlippingBinary commented 3 months ago

Bug Description I can use the projection feature on only two of the three displays connected to my computer. They appear in the "SCREENS" list as follows:

\\.\DISPLAY1 \\.\DISPLAY2 \\.\DISPLAY5

When the main window is on my primary screen, the display 1 option is grayed out. When it's on my Wacom display, the display 5 option is grayed out. And when it is on my teleprompter display, the display 2 option is grayed out.

Unfortunately, it's the teleprompter display that I can't project onto. When I try projecting to display 2, it has the same effect as projecting to display 1. That's a bit annoying when the application window is on display 1 because the projection screen overlaps the application, and I can't just select "off" in the sequence of modes. I have to cycle through them.

Steps to Reproduce

  1. Open application
  2. Enable projection under the Screens display
  3. Restart application
  4. Select the teleprompter's display

Expected behavior Projection on the teleprompter's display

Detailed description of display configuration (if applicable) The display I'm using in the teleprompter is a generic display off of Amazon connected over HDMI, and it works fine as an extended display. I can drag applications to that display, same as I can on my secondary display.

Screenshots (optional) Feel free to request specific screenshots, but I don't know of any that would be helpful.

Device information

Additional context

Please note: Although two are connected through a Gigabyte GeForce RTX 4060 Ti graphics card and one is connected through the integrated HDMI port on the motherboard, I swapped the secondary display with the teleprompter just to rule out problems with projecting over a different graphics card than the one the main window is on.

Cuperino commented 3 months ago

Thank you for taking your time to report this bug.

Projecting across multiple GPUs is not supported due to the textures in one GPU being inaccessible from other GPUs. Having said that, I don't think your issue is because of this. If it were, the app probably would've crashed.

The graying out of screens is done exclusively on Windows to prevent Windows specific crashes. Linux is unaffected, MacOS on Apple Silicon can only project up to two screens at once.

Your issue seems like a bug in the logic for graying out the display the main window is currently at. Unfortunately, I don't have the time to replicate your issue. Instead I'm writing a new implementation of this feature, because the current implementation is incompatible with more current versions of an underlying framework that we must update to keep things future proof.

I will keep this issue open, but it will likely not be addressed until the new implementation is completed. There's no timeline for this and progress has come about slowly. Consider using any of the Linux versions of QPrompt if you need this issue resolved today.

FlippingBinary commented 3 months ago

No worries. Hopefully the new implementation resolves the problem naturally.

But just to clarify: the graying seems to work as expected. The problem is that the projection sent to the teleprompter's display appears on the primary display instead - even when the app's main window is also on the primary display and when both displays are connected to the same GPU. The app does not crash even when projecting on the secondary display that is connected to the other GPU. Unfortunately, I'm not sure how someone could reproduce this issue because I'm not sure what makes it different from any other multi-monitor setup. Maybe someone else will see this issue and happen to run into the same problem.

Cuperino commented 2 months ago

Thanks for the clarification. That gives me a good idea of where to look.