godotengine / godot

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

A lot of warnings "Property not found:" when trying to rename project #25661

Closed qarmin closed 1 year ago

qarmin commented 5 years ago

Bugsquad note: This issue has been confirmed several times already. No need to confirm it further.


Godot version: 3.1 8698876

OS/device including version: Ubuntu 18.04

Issue description: When I Try to rename project, then this error appears:

WARNING: _get: Property not found: rendering/quality/shadows/filter_mode
   At: core/project_settings.cpp:193.
WARNING: _get: Property not found: rendering/quality/subsurface_scattering/follow_surface
   At: core/project_settings.cpp:193.
WARNING: _get: Property not found: rendering/quality/subsurface_scattering/weight_samples
   At: core/project_settings.cpp:193.
WARNING: _get: Property not found: rendering/quality/subsurface_scattering/quality
   At: core/project_settings.cpp:193.
WARNING: _get: Property not found: rendering/quality/subsurface_scattering/scale
   At: core/project_settings.cpp:193.
WARNING: _get: Property not found: rendering/quality/voxel_cone_tracing/high_quality
   At: core/project_settings.cpp:193.
WARNING: _get: Property not found: rendering/limits/time/time_rollover_secs
ghost commented 5 years ago

Yep, was finally getting around to reporting this.

I'll just tag on that I confirm it in 22ee7ba / 3.1 beta 8 for Win10 64-bit.

image

akien-mga commented 5 years ago

Those are all GLES3-only properties. I guess you're trying to rename a project that you converted from GLES3 to GLES2?

ghost commented 5 years ago

They seem to be in GLES3 as far as I can tell. Haven't done many conversions yet.

image

Anutrix commented 5 years ago

The error message are those because of feature override checks of L202 in https://github.com/godotengine/godot/blob/dfe228a865890931c6da7b98b53b6f0fe2555d15/core/project_settings.cpp#L196-L210

akien-mga commented 4 years ago

Still valid in the current master branch.

KoBeWi commented 3 years ago

Still valid in 3.2.4 beta4

timothyqiu commented 3 years ago

Now in 3.3 rc6, opening the rename dialog for an old project keeps printing physics/common/enable_pause_aware_picking even after I close the dialog.

ProjectSettings is meant to be used as a singleton, but renaming a project creates another instance, overriding the one created in Main::setup():

https://github.com/godotengine/godot/blob/f50c8062dd9389a76986307402bc8c4538d51f1e/core/project_settings.cpp#L1030-L1034

https://github.com/godotengine/godot/blob/f50c8062dd9389a76986307402bc8c4538d51f1e/main/main.cpp#L366

https://github.com/godotengine/godot/blob/f50c8062dd9389a76986307402bc8c4538d51f1e/editor/project_manager.cpp#L459

The defaults for physics/common/enable_pause_aware_picking is also lost because it's set in Main::setup().

https://github.com/godotengine/godot/blob/f50c8062dd9389a76986307402bc8c4538d51f1e/main/main.cpp#L1203

So Godot generates a property missing report each time it tries to access it in SceneTree::iteration():

https://github.com/godotengine/godot/blob/f50c8062dd9389a76986307402bc8c4538d51f1e/scene/main/scene_tree.cpp#L482

Moving the GLOBAL_DEF to the constructor of ProjectSettings could fix the issue. Maybe there should be a clean up for the GLOBAL_DEFs of properties?

ghost commented 3 years ago

I no longer see this in 3.x upstream (currently 3.5). Can anyone else confirm?

KoBeWi commented 2 years ago

I still get this issue in 3.4 and 4.0 2f41af7. It happens in Project Manager.

EDIT: Here's stack trace for 4.0 warning:

godot.windows.tools.64.exe!ProjectSettings::_get(const StringName & p_name, Variant & r_ret) Line 320 (c:\godot_source\core\config\project_settings.cpp:320)
godot.windows.tools.64.exe!ProjectSettings::_getv(const StringName & p_name, Variant & r_ret) Line 40 (c:\godot_source\core\config\project_settings.h:40)
godot.windows.tools.64.exe!Object::get(const StringName & p_name, bool * r_valid) Line 514 (c:\godot_source\core\object\object.cpp:514)
godot.windows.tools.64.exe!RendererCompositorRD::begin_frame(double frame_step) Line 98 (c:\godot_source\servers\rendering\renderer_rd\renderer_compositor_rd.cpp:98)
godot.windows.tools.64.exe!RenderingServerDefault::_draw(bool p_swap_buffers, double frame_step) Line 79 (c:\godot_source\servers\rendering\rendering_server_default.cpp:79)
godot.windows.tools.64.exe!RenderingServerDefault::draw(bool p_swap_buffers, double frame_step) Line 373 (c:\godot_source\servers\rendering\rendering_server_default.cpp:373)
godot.windows.tools.64.exe!Main::iteration() Line 2678 (c:\godot_source\main\main.cpp:2678)
godot.windows.tools.64.exe!OS_Windows::run() Line 653 (c:\godot_source\platform\windows\os_windows.cpp:653)
godot.windows.tools.64.exe!widechar_main(int argc, wchar_t * * argv) Line 163 (c:\godot_source\platform\windows\godot_windows.cpp:163)
godot.windows.tools.64.exe!_main() Line 185 (c:\godot_source\platform\windows\godot_windows.cpp:185)
godot.windows.tools.64.exe!main(int argc, char * * argv) Line 199 (c:\godot_source\platform\windows\godot_windows.cpp:199)
[Inline Frame] godot.windows.tools.64.exe!invoke_main() Line 78 (d:\a01\_work\26\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78)
godot.windows.tools.64.exe!__scrt_common_main_seh() Line 288 (d:\a01\_work\26\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)

image Seems like the warnings are different, but they keep spamming as long as the rename dialog is opened (or forever in case of 3.4).

Florian-Schoenherr commented 2 years ago

on my end, I mostly get this on older projects: image but with 3.4 projects I get mixed warnings: image

MuffinManKen commented 2 years ago

This is still an issue in 3.4.3rc2. I created a brand new, empty project. Went back to the Project list and hit rename. A flood of warnings followed.

WARNING: Property not found: rendering/limits/time/time_rollover_secs
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/shadows/filter_mode
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/follow_surface
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/weight_samples
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/quality
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/scale
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/lightmapping/use_bicubic_sampling
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/voxel_cone_tracing/high_quality
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/limits/time/time_rollover_secs
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/shadows/filter_mode
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/follow_surface
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/weight_samples
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/quality
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/scale
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/lightmapping/use_bicubic_sampling
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/voxel_cone_tracing/high_quality
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/limits/time/time_rollover_secs
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/shadows/filter_mode
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/follow_surface
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/weight_samples
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/quality
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/subsurface_scattering/scale
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/lightmapping/use_bicubic_sampling
     at: _get (core/project_settings.cpp:217)
WARNING: Property not found: rendering/quality/voxel_cone_tracing/high_quality
     at: _get (core/project_settings.cpp:217)
MuffinManKen commented 2 years ago

Also in 3.5 beta 1

BastiaanOlij commented 2 years ago

As @timothyqiu linked my PR to this one.... :)

The cause of this I believe is that we stopped writing all properties into the project.godot file.

When we start Godot, after loading our current project.godot file, we call GODOT_DEF to register all the properties we support ensuring that our project settings object is aware of all property types.

However in the project manager we then start loading the project.godot file from the selected project resulting in us loosing that information. Now we only load what is in project.godot of the project and since we no longer save properties that are set to the default, when we then call GODOT_GET we get the unknown property error.

We thus need to somehow retain this data when loading in a new project file instead of clearing our data and assuming we load everything.