Freeze while Start on Second Monitor

Trouble with Synthesia, your keyboard, or adapter? Think you found a bug?
When describing problems, always mention your OS and game version (shown at the bottom of the title screen).
  • If your keyboard has USB or MIDI ports, there is a tremendously high chance (>99%) it will work with Synthesia. See what you'll need on the keyboards page.
  • If you have a Logitech webcam and can't get your keyboard/adapter to work, see this post.
Post Reply
mmicha
Posts: 8

Post by mmicha » 09-15-19 11:05 am

Hi,

I have a two monitor setup :
1 : 3840x1600 ( DVI )
2 : 1440x2560 ( ! YES, I use this Monitor in Portrait-Mode (90deg) ! ) ( HDMI )
System : Windows , Synt V10.5.1

If I startup Synthesia on Screen One all works fine and I can also restart Application again and again.
But in case I move the Application-Window to the second screen the Application works for the moment but never after an "Exit"->"Start Again". Thus I can not restart the application. In this case the Application-Windows will freeze for ever with a "white frozen window".

I searched a while and find out how I can fix the "will never start issue" -> I have to remove a line from settings.xml :

==> <setting key=........

Here are the settings in different situations :

Settings.xml at Monitor One, all fine :
<?xml version="1.0"?>
<Settings version="1">
<setting key="Graphics.MonitorRectangle">0,0,3840,1600</setting>

Settings.xml at Monitor Two after first start :
<?xml version="1.0"?>
<Settings version="1">
<setting key="Graphics.MonitorRectangle">3840,0,5280,2560</setting>


Last lines from log.txt when app freeze :

synthesia-10.5.1-src\src\synthesia\rendererbackendopengl.cpp:108: 1000x710 viewport at 1x dpp and 1x hardware dpp
synthesia-10.5.1-src\src\synthesia\rendererbackendopengl.cpp:117: OpenGL info:
synthesia-10.5.1-src\src\synthesia\rendererbackendopengl.cpp:118: - Vendor: NVIDIA Corporation
synthesia-10.5.1-src\src\synthesia\rendererbackendopengl.cpp:119: - Renderer: GeForce RTX 2080 Ti/PCIe/SSE2
synthesia-10.5.1-src\src\synthesia\rendererbackendopengl.cpp:120: - Version: 4.6.0 NVIDIA 436.30
synthesia-10.5.1-src\src\synthesia\main.cpp:262: Creating startup screen.


How can I use the Application on second screen ?

Regards,
Micha

Nicholas
Posts: 11993

Post by Nicholas » 09-19-19 12:50 am

Thanks for the super detailed bug report! (That's a pretty serious monitor #1!) :D

For me, the most curious part of the problem is that it's a frozen window. That means something is getting stuck in a loop somewhere, and I can't imagine anything involved with monitor/window placement where that could happen. (I would have expected an error message or a crash; not a freeze. How strange.)

As a double-check: the line you have to remove to get things to start again is the "Graphics.MonitorRectangle" line, correct? That should move it back over to the default screen on the next startup and avoid the problem.

If you temporarily remove the 90-degree rotation from monitor #2, does the problem still occur? In theory, the Nvidia driver should be hiding that information from Synthesia so it can be treated as whatever resolution monitor you like, but maybe there is a bug someplace? (Hopefully it's not in that newest WHQL driver you're using. That would be a silly coincidence.)

mmicha
Posts: 8

Post by mmicha » 09-19-19 1:17 pm

Hi Nicholas,

thanks for answer.... and Yeah, the Main-Monitor is nice - for Work and Gameing ;)

I checked the "normal" landscape mode ( thus second monitor is simple in default ) but there is the same issue.

The line within settings.xml is in this case :

<setting key="Graphics.MonitorRectangle">3840,0,6400,1440</setting>

If I remove these line then Synthesia will start fine on monitor one.

I'am not exactly sure what these config-values mean ( which value is which axis/point ), but looks like that the values of monitor-RECTANGLE ( 's ? ) are not correct. Possible issue with monitors with different resolutions ?

I attach a very interessting ( ;) ) screenshot of "what happen" , what I mean with "froozen"..

( note : the words within braces in window-title mean "( not responding )" )

Regards,
Micha
Attachments
Snap 2019-09-19 at 18.51.06.jpg
Snap 2019-09-19 at 18.51.06.jpg (70.52 KiB) Viewed 626 times

Nicholas
Posts: 11993

Post by Nicholas » 09-20-19 2:34 am

The numbers correspond to the [left, top, right, bottom] pixels that Synthesia would like to create its window to fill (relative to the top-left pixel of the primary monitor).

So with a top of 0 and a bottom of 1440, you get a 1440p screen aligned with the top of Monitor #1. And with a left of 3840 and a right of 6400, you get 6400 - 3840 = 2560 pixels wide, positioned just off to the right of your 3840 pixel wide Monitor #1. So everything sounds correct there.

I'm not expecting this to be any different for the latest 10.6 development preview, but it's always nice to see problems reproduced using the newest code.

Otherwise, I'm kind of at a loss. Do you have any other apps running that can "hook" into games? Anything with an "overlay" like Discord or a screen recorder? Those often cause trouble for Synthesia.

mmicha
Posts: 8

Post by mmicha » 09-20-19 12:33 pm

Hi..

tried the 10.6.. same result , but got three WARN lines more in log file (Synt..Dev-folder) :

auto_build\synthesia-r5239-src\src\synthesia\graphicswindow_windows.cpp:650: Updating window to force refresh
auto_build\synthesia-r5239-src\src\synthesia\rendererbackendopengl.cpp:165: Setting up OpenGL renderer backend.
auto_build\synthesia-r5239-src\src\synthesia\rendererbackendopengl.cpp:166: 1000x1030 viewport at 1x dpp and 1x hardware dpp
auto_build\synthesia-r5239-src\src\synthesia\rendererbackendopengl.cpp:167: OpenGL info:
auto_build\synthesia-r5239-src\src\synthesia\rendererbackendopengl.cpp:168: - Vendor: NVIDIA Corporation
auto_build\synthesia-r5239-src\src\synthesia\rendererbackendopengl.cpp:169: - Renderer: GeForce RTX 2080 Ti/PCIe/SSE2
auto_build\synthesia-r5239-src\src\synthesia\rendererbackendopengl.cpp:170: - Version: 4.6.0 NVIDIA 436.30
auto_build\synthesia-r5239-src\src\synthesia\main.cpp:262: Creating startup screen.
auto_build\synthesia-r5239-src\src\synthesia\songscanner.cpp:487: Couldn't scan: C:\Users\micha\Documents\Eigene Bilder
auto_build\synthesia-r5239-src\src\synthesia\songscanner.cpp:487: Couldn't scan: C:\Users\micha\Documents\Eigene Musik
auto_build\synthesia-r5239-src\src\synthesia\songscanner.cpp:487: Couldn't scan: C:\Users\micha\Documents\Eigene Videos

There are no other progs running. Also made a test with virus protection disabled.. Nothing helps...

You know some people which have also a two monitor setup where both monitors have different resolution, for a recheck ?

Regards,
Micha

PS.: thing is, the second monitor is placed behind the keyboard. If I start Synthesia on main screen then I need after a while a doctor for my neck ( locking left ) ;)..

mmicha
Posts: 8

Post by mmicha » 09-20-19 12:56 pm

short add:
in meanwhile I guess it is kind of OpenGL issue. But not sure... Lots of findings in big-google, but nowhere a final answer except that the user should go away from opengl :lol:

mmicha
Posts: 8

Post by mmicha » 09-20-19 1:01 pm

If you possible can add in a Pre-Version a Config-Switch like "Start Allways on First Screen" , then I not need to reset the config value. It works if I start Synth on screen one and move it to screen two.. only the restart on second monitor will cause the freeze.

Nicholas
Posts: 11993

Post by Nicholas » 09-22-19 7:32 pm

Hrm... it'd be nice to avoid the problem in the first place if we could rather than a special setting just to work around the bug.

In the Nvidia driver control panel, have you tried switching from "Single display performance mode" to "Multi-display performance mode"? I haven't seen the list in a while but I know there is something buried in there about running apps on other monitors. Many years ago I remember it made a difference to have it on "multi" instead of "single" or "compatibility".

mmicha
Posts: 8

Post by mmicha » 09-23-19 10:47 am

hmm.. this setting does not exist... thought nvidia removed it for two years... but not sure.

Nicholas
Posts: 11993

Post by Nicholas » 09-24-19 1:10 am

Hmm, I had thought of a way we might be able to override that setting on every startup, but I got the order backwards: there is a way to ensure a setting is always present (by putting it in machine.xml), but it's overwritten by those in settings.xml.

So I'm going to add a third one (override.xml) that is always loaded after settings.xml. That'll be in the next 10.6 dev preview so at least we'll have a workaround for this problem.

mmicha
Posts: 8

Post by mmicha » 09-25-19 11:29 am

okay... I check it if the preview version is ready :)

Nicholas
Posts: 11993

Post by Nicholas » 09-29-19 6:04 am

I skipped the preview step and just released an official Synthesia 10.6 version. It's available from the download page.
  1. Install the 10.6 update.
  2. Hold your Shift key while launching Synthesia to show the configuration window.
  3. Click the "Open Data Folder" button there.
  4. Copy the attached "override.xml" file into the data folder.
That should be it. Once you close the configuration window and start Synthesia normally, the startup monitor should be forced to default every time the app starts.
Attachments
override.xml
(114 Bytes) Downloaded 3 times

mmicha
Posts: 8

Post by mmicha » 09-30-19 10:21 am

Hi Nicholas,

thanks a lot.. it works.

I added additional my prefered windows.size and can noew simple move the window with the "windows-move-key".

Again many thanks :)

Regards,
Micha

Nicholas
Posts: 11993

Post by Nicholas » 09-30-19 5:18 pm

Good to hear! I wish the driver bug didn't exist, but I suppose this works in the meantime.

The thing I like most about this solution is that it can be used to override any setting. That makes it feel less like a one-off code change for a specific bug. :)

Post Reply