On 2023/08/12 22:28:53 -0400, Thomas Frohwein <tfrohw...@fastmail.com> wrote:
> Discussed off-list with op@ already; sharing here also for documentation
> of the issue: Godot 3.5 introduced stricter checks on shader syntax [1]
> which was classified as a breaking change. This was discussed [2]
> upstream and they conceded that starting with a warning would have been
> better, but didn't make any fixes. For us, as we use built rather than
> bundled Godot binary, this means that games distributed with use of the
> outlawed syntax don't work anymore... or rather they run, but they
> don't process the shaders that throw a (non-breaking) error here. The
> result for example with Haiki [3] is that the program runs, but
> everything except for a few animations is white on white.
> 
> The diff below changes the errors to a WARN_PRINT_ONCE message for
> godot,-main which is the 'export template' that is used to run the
> games without the editor. The upstream behavior with more disruptive
> shader errors is still preserved for the godot,-tools build that is for
> the editor itself (which has TOOLS_ENABLED defined).
> 
> ok?

ok op@, thanks!

Just to be clear for the list: the main issue is that godot started to
be more strict than (some) GPU.  While before those syntax for numbers
were passed as-is to the GPU, now Godot rejects them as error since
they're not standard conforming.

However, this means that a lot of games that would actually run are
unplayable since godot 3.5.

Linux/windows/mac are not affected since games are distributed with a
bundled copy of the engine, but for us is annoying since to run Godot
games you need the port version.

So, the idea here is to leave the error as-is in the tools build
(i.e. the editor), but relax to a warning when using the non-tools
build that's only used with "precompiled" games.

Reply via email to