godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
89.46k stars 20.25k forks source link

Fullscreen Now Has a 1-Pixel-Wide Grey Border #97435

Closed Pixelmusement closed 1 hour ago

Pixelmusement commented 2 hours ago

Tested versions

System information

Windows 10, GeForce GTX 1070 GPU

Issue description

Since updating from Godot 4.2 to 4.3, there is now a one-pixel-wide border present in any project I run using standard Fullscreen. This border is normally grey but sometimes changing the default clear colour will change the border colour to match, but this doesn't happen in EVERY project, only some projects, and I don't have a clue why.

The problem is present regardless of using either Vulkan or D3D12, but ONLY shows up in standard Fullscreen. Windowed modes and Exclusive Fullscreen do not exhibit this problem. This weird border also shows up during the default Godot splash screen as a program is starting. Changing the various border and window project settings has no effect on this. This happens regardless of a project being presented in 2D or 3D.

Steps to reproduce

  1. Run ANY project from the editor with the window mode set to "Fullscreen".

Minimal reproduction project (MRP)

  1. Create a new project.
  2. Make a 2D scene root.
  3. Open Project Settings and set the Default Clear Colour to black and the window mode to Fullscreen.
  4. Run the project. There should be a grey border around the edge of your screen.
bruvzg commented 1 hour ago

See https://github.com/godotengine/godot/issues/63500

TLDR:

Pixelmusement commented 1 hour ago

OK, I see now from reading the documentation that this is intentional, but prior to v4.2 it's pointed out that MODE_FULLSCREEN is effectively the equivalent to a borderless fullscreen window, which a lot of games implement for compatibility reasons, thus making me slightly confused why this mode has now become specifically for multi-window support and that the border has been made a non-negotiable feature of it. I guess my choices now are to either offer a borderless fullscreen option in my Godot-made projects and get complaints of a border around the screen, or not offer the option and get complaints as to why the only fullscreen option is exclusive fullscreen. This addition/change to the Godot engine really doesn't feel like it was handled appropriately and I hope this new border becomes an optional aspect of the non-exclusive fullscreen mode in the near future.

bruvzg commented 8 minutes ago

but prior to v4.2 it's pointed out that MODE_FULLSCREEN is effectively the equivalent to a borderless fullscreen window

It never reliably worked as borderless fullscreen.

3.x was single windowed and had only one fullscreen mode (equivalent to current MODE_EXCLUSIVE_FULLSCREEN, this mode is simply removing window border and window size to the screen size).

4.0 added support for multiple windows and start having issues with multi-window editor in fullscreen, so it was spirit into two modes. Naming of the new modes clearly was a mistake (should be MULTIWINDOW_FULLSCREEN/FULLSCREEN not FULLSCREEN/EXCLUSIVE_FULLSCREEN). The primary goal was always to make the editor (multi-window) to work in fullscreen. Initially it was done by changing window style flags, but turned out that some GPU drivers (NVIDIA in particular) still switch to exclusive mode (it seems to only care about client area size), so the border was added to guarantee in is not. Now it is confusing mess, but we can't just rename it since it's going to break compatibility.