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.