Screen resolution reverts to native/desktop

Marco Leise shared this bug 2 months ago
Considered

My desktop/native resolution is 1366x768. When I enable "Virtual Super Resolution" (AMD) and pick 1920x1080 in Space Engineers, everything works as expected. What's not expected is that when restarting the game, the resolution resets to 1366x768 although 1920x1080 is also available.

I tried setting the desktop to 1280x720 and the game to 1366x768 and it did not revert to that desktop resolution, so I figure it is a failsafe feature to avoid black screens when the user sets a resolution outside of what the monitor natively supports - but that's what VSR is all about.

Comments (5)

photo
1

P.S.: Attached the relevant VRageRender-DirectX11.log file showing a "!!! Invalid resolution in settings - resetting to desktop resolution":

Output is attached = True
DesktopBounds = {X:0 Y:0 Width:1366 Height:768}
Display modes = {
   DXGIOutput id = 0
   640x480@60Hz
   640x480@60Hz
   720x480@60Hz
   720x480@60Hz
   720x576@60Hz
   720x576@60Hz
   800x480@60Hz
   800x480@60Hz
   800x600@60Hz
   800x600@60Hz
   1024x600@60Hz
   1024x600@60Hz
   1024x768@60Hz
   1024x768@60Hz
   1280x720@60Hz
   1280x720@60Hz
   1280x768@60Hz
   1280x768@60Hz
   1360x768@60Hz
   1360x768@60Hz
   1366x768@60Hz
   1600x900@60Hz
   1920x1080@60Hz
   2560x1440@60Hz
}
And further below:

MyRenderDeviceSettings = {
   Adapter id = 0
   DXGIAdapter id = 0
   DXGIOutput id = 0
   Resolution = 1920 x 1080
   Window mode = Fullscreen
}
CreateDeviceInternal - CheckSettings()
CreateDeviceInternal - GetAdapter()
CreateDeviceInternal - FixSettings()
!!! Invalid resolution in settings - resetting to desktop resolution
CreateDeviceInternal - Fixing of settings is done
   MyRenderDeviceSettings = {
      Adapter id = 0
      DXGIAdapter id = 0
      DXGIOutput id = 0
      Resolution = 1366 x 768
      Window mode = Fullscreen
   }

photo
1

Further investigation shows that it always reverts to desktop resolution - even when I set it to lower (e.g. 1280x720) ingame. I found that my SpaceEngineers.cfg has

    <item>
      <Key>ScreenWidth</Key>
      <Value xsi:type="xsd:string">1920</Value>
    </item>
    <item>
      <Key>ScreenHeight</Key>
      <Value xsi:type="xsd:string">1080</Value>
    </item>
    <item>
      <Key>RefreshRate</Key>
      <Value xsi:type="xsd:string">60</Value>
    </item>

If I change the above refresh rate to 0, FixSettings() will successfully detect the correct resolution and launch the game in 1080p as expected. So there must be some issue with comparing the 60 Hz from the list of available modes to the 60 Hz from the configuration file. For what it's worth, I use a custom EDID override (required to make the native resolution available over HDMI) and used non-standard values to come out with exactly 60 (non-fractional) Hz:

c0414f6e67ccd15fad523ffa41fee84e

photo
1

Next I tried conformant timings instead of manual, resulting in 60.006 Hz, and the issue persisted, so that was not the problem.

photo
1

Hello, Engineer!


Thank you for your feedback! Your topic has been added between considered issues.

Please keep voting for the issue as it will help us to identify the most serious bugs.


We really appreciate your patience.


Kind Regards

Keen Software House: QA Department

photo
1

Found the bug:

I switched between two displays today and noticed that the refresh rate in SpaceEngineers.cfg was autodetected as 60000! So the engine expects an integral refresh given in milli-Hertz (e.g. 60000), but the Display Settings dialog sets a refresh in Hertz (e.g. 60). You should probably stick to one system internally, either milli-Hertz or numerator-denominator.