godotengine / godot

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

Editor freezes after 30-60 seconds. Can't do anything. #95673

Closed Zaanzabar closed 2 months ago

Zaanzabar commented 3 months ago

Tested versions

Has only been happening today, since 4.3 was rolled out.

System information

Windows 10, Godot 4.3

Issue description

I open Godot 4.3, select my project and load in. I notice hesitation of about 2-3 seconds when showing tool tips, then they seem to recover. Also happens with the drop down menus. After 30-60 seconds each and every time, the entire editor freezes. The little spinning circle in the upper right stops too. If you click a couple times, the window turns white, and the "Close Window" dialog from windows pops up. I am not able to do anything meaningful if I have to restart every 60 seconds.

I used Steam to validate the files, no errors. I rebooted, but no fix I tried running from a command prompt, but no errors were reported. However, the CMD window didn't return to the command prompt.

image

Steps to reproduce

Start session, load project, do something to interact with the UI. Click dropdown menus, hover over things that generate tooltips, or mess with the new window arrangement settings. Any of those will trigger it. If you leave the editor alone, it doesn't freeze, but do anything, and bam

Minimal reproduction project (MRP)

Started new project, happened before I could do Anything. I recorded a video, it was 16 seconds long. but that was too big to upload

Zaanzabar commented 3 months ago

image

Just to be complete, I have also had similar issues in 4.2. If I mess with editor colors, or editor settings, after a few changes it would freeze in the same way

Zaanzabar commented 3 months ago

Here is the command prompt messages with --verbose

L:\SteamLibrary\steamapps\common\Godot Engine>godot.windows.opt.tools.64.exe --verbose

L:\SteamLibrary\steamapps\common\Godot Engine>Loaded SteamAPI library
Setting breakpad minidump AppID = 404790
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561198011974541 [API loaded no]
Godot Engine v4.3.stable.steam.77dcf97d8 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Native OpenGL API detected: 3.3: NVIDIA - NVIDIA GeForce GTX 1080
NVAPI: Init OK!
NVAPI: Profile not found, creating...
NVAPI: Application not found in profile, creating...
NVAPI: Error creating application: NVAPI_EXECUTABLE_ALREADY_IN_USE(code -167)
Using "winink" pen tablet driver...
Shader 'CanvasSdfShaderGLES3' SHA256: 2741b138081facefbf368043f1dce3e84e56683ebff096ef0faf3ee5ecef166e
Shader 'SkeletonShaderGLES3' SHA256: e8a021e4d808feffc794f86d74669732eb009f5cd428a7ab48e83dd4a1216748
Shader 'ParticlesShaderGLES3' SHA256: da16d2b21527112d7d62423b4e96ceede5d4882b5428aaa117a01a2738f84211
Shader 'ParticlesCopyShaderGLES3' SHA256: eca02bd3d2f9a7d744189f800e0c31929ec7bfeed382a91249ffe0afdf4f9086
Shader 'CopyShaderGLES3' SHA256: 805d7b9c61431d86fc19df3a80fcd383bf427d86b1e611ac571f61caab955b24
Shader 'CubemapFilterShaderGLES3' SHA256: 805aca0d8b9a80f64159d184b30cb4ede036b9beeac00df1ee8fe1ac14b7fff8
Shader 'GlowShaderGLES3' SHA256: 4eea20a1d6d7e4dc63bbb99cc1a08c6df3d79a5f30c958147c4e18a9003b0318
Shader 'PostShaderGLES3' SHA256: c81886df948d57f2545cc6bd0623feabcfa63ded4343fa45277e6ce524f74b4e
Shader 'CanvasShaderGLES3' SHA256: 1b21c03cf938e94690574f81ba5e2bace3d1dcecaede7f25c21c580d07cc1f52
Shader 'CanvasOcclusionShaderGLES3' SHA256: bfaff21f696d67b63ae474008e0ba6fc4b90c0285714a9ed5642647e40d29f0a
Shader 'SceneShaderGLES3' SHA256: fc56593e63895794bd38355380c875c5c1a8059b6a8363bae10a6f929bc16117
Shader 'SkyShaderGLES3' SHA256: 65273d95dc917afba79561157600ad453fc1cc33c4c978d7d3369bb8f436d2e0
OpenGL API 3.3.0 NVIDIA 556.12 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce GTX 1080
WASAPI: Activated output_device using IAudioClient3 interface
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: mix_rate = 48000
WASAPI: fundamental_period_frames = 480
WASAPI: min_period_frames = 480
WASAPI: max_period_frames = 480
WASAPI: selected a period frame size of 480
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 480 calculated latency: 10ms

TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 966092234
EDITOR API HASH: 444927587
WARNING: EditorSettings::_get - Property not found: global_plugins/paths
     at: _get (editor/editor_settings.cpp:224)
EditorSettings: Load OK!
EditorTheme: Generating new theme for the config '2931428551'.
EditorTheme: Generating new icons.
EditorTheme: Generating new fonts.
EditorTheme: Generating new styles.
Scanning for projects in "G:/GODOT/Gadot 4.0 projects".
Found 5 project(s).
Loaded system CA certificates
EditorSettings: Save OK!
Editing project: G:/GODOT/Gadot 4.0 projects/newGameProject
EditorSettings: Save OK!
Loaded SteamAPI library
XR: Clearing primary interface
XR: Removed interface "Native mobile"
XR: Removed interface "OpenXR"
Setting breakpad minidump AppID = 404790
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561198011974541 [API loaded no]
Godot Engine v4.3.stable.steam.77dcf97d8 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
WARNING: GENERAL - Message Id Number: 0 | Message Id Name: Loader Message
        loader_add_layer_properties: 'layers' tag not supported until file version 1.0.1, but C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_5714f0dca6485379\nv-vk64.json is reporting version 1
        Objects - 1
                Object[0] - VK_OBJECT_TYPE_INSTANCE, Handle 2162015179104
     at: _debug_messenger_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:305)
WARNING: GENERAL - Message Id Number: 0 | Message Id Name: Loader Message
        Layer name GalaxyOverlayVkLayer does not conform to naming standard (Policy #LLP_LAYER_3)
        Objects - 1
                Object[0] - VK_OBJECT_TYPE_INSTANCE, Handle 2162015179104
     at: _debug_messenger_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:305)
WARNING: GENERAL - Message Id Number: 0 | Message Id Name: Loader Message
        Layer name GalaxyOverlayVkLayer_VERBOSE does not conform to naming standard (Policy #LLP_LAYER_3)
        Objects - 1
                Object[0] - VK_OBJECT_TYPE_INSTANCE, Handle 2162015179104
     at: _debug_messenger_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:305)
WARNING: GENERAL - Message Id Number: 0 | Message Id Name: Loader Message
        Layer name GalaxyOverlayVkLayer_DEBUG does not conform to naming standard (Policy #LLP_LAYER_3)
        Objects - 1
                Object[0] - VK_OBJECT_TYPE_INSTANCE, Handle 2162015179104
     at: _debug_messenger_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:305)
WARNING: GENERAL - Message Id Number: 0 | Message Id Name: Loader Message
        windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
        Objects - 1
                Object[0] - VK_OBJECT_TYPE_INSTANCE, Handle 2162015179104
     at: _debug_messenger_callback (drivers/vulkan/rendering_context_driver_vulkan.cpp:305)
Fossilize ERROR: Failed to parse ApplicationInfoFilter, letting recording go through.
Devices:
  #0: NVIDIA NVIDIA GeForce GTX 1080 - Supported, Discrete
  #1: NVIDIA NVIDIA GeForce GTX 1080 - Unsupported, Discrete
Optional extension VK_KHR_fragment_shading_rate not found
- Vulkan Variable Rate Shading not supported
- Vulkan multiview supported:
  max view count: 32
  max instances: 134217727
- Vulkan subgroup:
  size: 32
  min size: 32
  max size: 32
  stages: STAGE_VERTEX, STAGE_TESSELLATION_CONTROL, STAGE_TESSELLATION_EVALUATION, STAGE_GEOMETRY, STAGE_FRAGMENT, STAGE_COMPUTE, STAGE_RAYGEN_KHR, STAGE_ANY_HIT_KHR, STAGE_CLOSEST_HIT_KHR, STAGE_MISS_KHR, STAGE_INTERSECTION_KHR, STAGE_CALLABLE_KHR
  supported ops: FEATURE_BASIC, FEATURE_VOTE, FEATURE_ARITHMETIC, FEATURE_BALLOT, FEATURE_SHUFFLE, FEATURE_SHUFFLE_RELATIVE, FEATURE_CLUSTERED, FEATURE_QUAD, FEATURE_PARTITIONED_NV
  quad operations in all stages
Fossilize INFO: Overriding serialization path: "L:\SteamLibrary\steamapps\shadercache\404790\fozpipelinesv6\steamapprun_pipeline_cache".
Vulkan 1.3.278 - Forward+ - Using Device #0: NVIDIA - NVIDIA GeForce GTX 1080
Startup PSO cache (3.0 MiB)
Using "winink" pen tablet driver...
Creating VMA small objects pool for memory type index 7
Shader 'CanvasSdfShaderRD' (group 0) SHA256: f65579ae334cdfb6901aee2527afd18ed626d1067a35c91f12fb632b45ce7f21
Shader 'SkeletonShaderRD' (group 0) SHA256: 4964fd59acf4406110ae7bca4b716f23ae52cc19864e21a8a35aee53e141e17e
Shader 'SortShaderRD' (group 0) SHA256: 0b1e36114ab5330dc340cc740b0b946ed2dbf43098119b8d29cfa0222da18b7a
Shader 'ParticlesShaderRD' (group 0) SHA256: 47fcf57848349fdf54197e5c1f64750a69c8d54787d3509ade4781c9faa31654
Shader 'ParticlesCopyShaderRD' (group 0) SHA256: 69566a7b0235d75ec40f504cd5555856aace22b5273899269166fde57287d26e
Shader 'CanvasShaderRD' (group 0) SHA256: 165f6964cfc63fea91c4221f04e7b8a54b5dc39d76b5a57aed5f99b20050b148
Shader 'CanvasOcclusionShaderRD' (group 0) SHA256: 42f2245b35206bcace1cda9e39e9282519e9967978ba6d5956472809525b1150
Shader 'ClusterRenderShaderRD' (group 0) SHA256: e138dfa55627ca222eda3daa0739d50014770edfb2a8fbab0fa51e2130af04e8
Shader 'ClusterStoreShaderRD' (group 0) SHA256: 44efe54fdfa0811178ad2a7a0207ebc98532c6ae316489503cdc7c5c843a564e
Shader 'ClusterDebugShaderRD' (group 0) SHA256: 2546937b6acfcec18164bde1022dd572463c5dc6a8dfb2db860e93b1f8cb6cf1
Shader 'SceneForwardClusteredShaderRD' (group 0) SHA256: 29edc2f36233c2e08b9662507bec9ae15ecd3ff18670dd6a9d9e3c22bb80d2b9
Shader 'SceneForwardClusteredShaderRD' (group 1) SHA256: ff6c4ae20e3f8b8dd34fcdb417869f52a4530caf5116e770d0297554ac18fc6f
Shader 'SceneForwardClusteredShaderRD' (group 2) SHA256: 6598af838acb7313ff626d40126e27c0f884aa1a40a7cf5a1dd2311b2b83f39f
Shader 'SceneForwardClusteredShaderRD' (group 3) SHA256: 8d5d67c6d3310219a88106e8336290f6e7be7d1cc12a536cef74b57ba697d3dd
Shader 'BestFitNormalShaderRD' (group 0) SHA256: da50b1ee325fa09e8a9d2278e44bfbc4e716c11aa4475ca5323315d9d3e84d70
Shader 'ResolveShaderRD' (group 0) SHA256: 4eed9a584e94b3db5e08b3dd178112267127e5cb55e97790e3791fff9eb617f7
Shader 'TaaResolveShaderRD' (group 0) SHA256: 66482a84ae3398a2cbd07e92185df239a902d24d388424e0dff9fe998af3c0b4
Shader 'Fsr2DepthClipPassShaderRD' (group 0) SHA256: bad00f87c27e21b6183fabd34e9c8825739c35938b45a4f9d443ac9c3d9d1934
Shader 'Fsr2ReconstructPreviousDepthPassShaderRD' (group 0) SHA256: 3b0b081a9ca81540521a9ae6109559c351e1d4f69fb46bb8d99d893d726b70e9
Shader 'Fsr2LockPassShaderRD' (group 0) SHA256: f23f7a44816f0b10f5a4f5a20b9c34b1315932fa6c9fd8e71d27e339e75ebd03
Shader 'Fsr2AccumulatePassShaderRD' (group 0) SHA256: 160fedb5d3ef5cf63f06d76d8bf08e8739978139204922b5f9e4d50a873eef55
Shader 'Fsr2RcasPassShaderRD' (group 0) SHA256: 1c81d789b4d2bd0f51f75c03bdd7834fc8ce0050500ea90e2fb5b4973a5c507e
Shader 'Fsr2ComputeLuminancePyramidPassShaderRD' (group 0) SHA256: 91b43885fedcca5ed604c06712cb9ebd6b2e3d2df8e9185e01069bdabda408ab
Shader 'Fsr2AutogenReactivePassShaderRD' (group 0) SHA256: cef74df5346f01cbad280cb0de65abe9f09bf4f5edd726a2d2c6306e8be1fa0a
Shader 'Fsr2TcrAutogenPassShaderRD' (group 0) SHA256: 19f1a6f3007db0a6a9d1f2a7cc5edfa47cb4632eebc980efa3ca9a89ae73550b
Shader 'SsEffectsDownsampleShaderRD' (group 0) SHA256: d85ba7758123b2364d96690db4594bb43feabce176805e46abc91aa54c5874d4
Shader 'SsilShaderRD' (group 0) SHA256: 20c3a95a7a0528ebb5844939feeb8fe446ac0dcde9d011e24c2fc54af67e6c6d
Shader 'SsilImportanceMapShaderRD' (group 0) SHA256: abbec59f40ae844d9bbca6d058972ef757a0baf48cdf91ef5836a8960f11569e
Shader 'SsilBlurShaderRD' (group 0) SHA256: dc4c027d65e080b2b5b1af257e3733c6bc35899ce02c3f333249db264836bd41
Shader 'SsilInterleaveShaderRD' (group 0) SHA256: 76868dec9e116ecbddcf9a480d808d2509e42cf65d5f7182e4f4cad2e24c9c70
Shader 'SsaoShaderRD' (group 0) SHA256: 10348af53d51e568e9a1574f4be3c4bc66eb9b2b464c8e4f061d051e1a6c4de9
Shader 'SsaoImportanceMapShaderRD' (group 0) SHA256: 6d680b1500cda48a2de67225a98a208373d657c0f128c9e34a1528b50b3c2c5b
Shader 'SsaoBlurShaderRD' (group 0) SHA256: 32baf23e3ccb90d5c6840258a705d953d950a779d125df3b5bb979bd1309f4d4
Shader 'SsaoInterleaveShaderRD' (group 0) SHA256: d3d5b300acaef6d08dcd3d033f393c424ad653c5ab554883703c29ee6eedf528
Shader 'ScreenSpaceReflectionScaleShaderRD' (group 0) SHA256: e5b92b2248f95dfc9534e9d5ec71a9d1fedfe58dd8fbbb2e903d8606c1ed8e0c
Shader 'ScreenSpaceReflectionShaderRD' (group 0) SHA256: 722d4571bebbe24c59b13360d89825ac27099da739a27f42e20a004e5e92da73
Shader 'ScreenSpaceReflectionFilterShaderRD' (group 0) SHA256: dbd56507c7ba6e4548ad94d4267e97184ea703036185204db88001c82b622120
Shader 'SubsurfaceScatteringShaderRD' (group 0) SHA256: 43df2517be4d76d26d345b88762bb6d272983e54f79d503331a085ec082a97da
Shader 'SkyShaderRD' (group 0) SHA256: 4bc541bfde1c30032df77bb4c98974909ad0368d22557f44e6cf095b26c0490a
Shader 'VoxelGiShaderRD' (group 0) SHA256: 8bfb40cf41510d02f432927249e4d6d6708843a0953b4faf61a2f2e3786d4fd0
Shader 'VoxelGiDebugShaderRD' (group 0) SHA256: 83ec08f78c119345f086a6cbcb0da5d67f664d19fd7ba3259c4948638b76fb8c
Shader 'SdfgiPreprocessShaderRD' (group 0) SHA256: 42b3acb8f8f580e0ad8624239eada43680eb33d7a90e0279cf34b99bad80ffc9
Shader 'SdfgiDirectLightShaderRD' (group 0) SHA256: 803c48e266e0d9c1590d25424071a668b88abc76bcda6fdde74b8524f298683c
Shader 'SdfgiIntegrateShaderRD' (group 0) SHA256: 4647045d5ae8023ab209178c191d003ce94a58384c2bf158dfd5d1b256a1feb2
Shader 'GiShaderRD' (group 0) SHA256: badc3f70e0e5ea75c754c10b4d2123646727f4f10221ef32e80f48427fc34da5
Shader 'SdfgiDebugShaderRD' (group 0) SHA256: 372719c6eef32a8635d4db9b69f2f8b01b907642dbac0cc26f37ea2a76eeb95d
Shader 'SdfgiDebugProbesShaderRD' (group 0) SHA256: 41af92f24cfffd1d870ed50e96e7ae1bfd6c2cc11f728d520ef0a827972a1438
Shader 'VolumetricFogShaderRD' (group 0) SHA256: 22de546a38a6b3caaa1d02360e0e62d85133e560e5667f2f3f5e34e3145679af
Shader 'VolumetricFogProcessShaderRD' (group 0) SHA256: 2c2d7b3b51e66f06069290afb842fc1ee9ee4f60f06a5168b0cee5bd380366bc
Shader 'BokehDofShaderRD' (group 0) SHA256: 39f32133b5111c9c24ab7cd9b202ca96bb3aeb73e0c73ebd7b7a5dae08cb759f
Shader 'CopyShaderRD' (group 0) SHA256: 4a43f34799f84bc5a387aff816d36330149d91299172af9be2d3ab05cc0c4e9d
Shader 'CopyToFbShaderRD' (group 0) SHA256: 8668028c5ceed89276611359329de4a0f5d40702546caecc31456f63f6f9ffe8
Shader 'CubeToDpShaderRD' (group 0) SHA256: e3db5adc31b15e80112f4d7497dc8563c39b7d64675a53dcce7f9511c5ca9f80
Shader 'CubemapDownsamplerShaderRD' (group 0) SHA256: 6376d8aae8d25aa5fed14d9e78a76a69c5566f021773d2b38defa77a573b20f1
Shader 'CubemapFilterShaderRD' (group 0) SHA256: 96fd6d20ed52761601cf4665fa909c5a27f13aeaa25940cf720f4e331158ef8e
Shader 'CubemapRoughnessShaderRD' (group 0) SHA256: 1d72ea29a087908b2262137858ecb047ac60acf75d2e625661f01be4ce0d3ce2
Shader 'SpecularMergeShaderRD' (group 0) SHA256: a119881bb41d0ec2f36a7f060866ec38b88afa6d0e484a431c65b35b5a2e820b
Shader 'ShadowFrustumShaderRD' (group 0) SHA256: c9c1b6421f8f6625effc9ddfa4bb2c09cafda0942b62fb8e1414e90820e18fa0
Shader 'MotionVectorsShaderRD' (group 0) SHA256: cbf3cbdcba0d0a2026c9fbf248556f1acd11beacc38a2e8c5ce7009ee49a1560
Shader 'LuminanceReduceShaderRD' (group 0) SHA256: 2687da76c0ac04fe197e7093fd065958200b5a2e8e378e0f61c445212a1a0ac4
Shader 'TonemapShaderRD' (group 0) SHA256: 1c4748b3de350503048a1f9eca4f1dc2b308086460692ea0a81bababfd80542a
Shader 'FsrUpscaleShaderRD' (group 0) SHA256: b0494c0a2252ba01d39128acc2329e61ea008defa8fca6605cf8d9f25c1575e9
Shader 'BlitShaderRD' (group 0) SHA256: 09b63e5347ccb6779fd79e54b093cfc915ec80510efa1f613c9ada9ff2e0f70d
WASAPI: Activated output_device using IAudioClient3 interface
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: mix_rate = 48000
WASAPI: fundamental_period_frames = 480
WASAPI: min_period_frames = 480
WASAPI: max_period_frames = 480
WASAPI: selected a period frame size of 480
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 480 calculated latency: 10ms

Using present mode: Enabled
TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 966092234
EDITOR API HASH: 444927587
WARNING: EditorSettings::_get - Property not found: global_plugins/paths
     at: _get (editor/editor_settings.cpp:224)
EditorSettings: Load OK!
EditorTheme: Generating new theme for the config '2931428551'.
EditorTheme: Generating new icons.
EditorTheme: Generating new fonts.
EditorTheme: Generating new styles.
Loaded system CA certificates
EditorSettings: Save OK!
Using present mode: Enabled
Using present mode: Enabled

And then it just stops.

Zireael07 commented 3 months ago

Have you tried deleting/moving away your editor settings?

Zaanzabar commented 3 months ago

no, how and where would i find this?

Zireael07 commented 3 months ago

See Editor data paths here https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html

Zaanzabar commented 3 months ago

All right, I found the editor settings folder. I renamed the folder, and ran Godot. A new folder was generated as expected. Issue persists

Zireael07 commented 3 months ago

Huh. That rules out something in editor settings being the cause (which was my suspicion as you mentioned the issue only happens after messing with settings)

Zaanzabar commented 3 months ago

I'm currently performing a complete backup, uninstall, delete folders, restart, reinstall.

and it's not just settings, any popups. Currently on empty project, I am using the drop down menus on the top left (Scene, project, etc)

Zaanzabar commented 3 months ago

Full reinstall, multiple times, deleting all folders. no luck, still does it

Zaanzabar commented 3 months ago

changed back to 4.2.2 and everything works great. even restored my project and settings folders

guoj1200 commented 2 months ago

I also have the same symptom and problem. The console keeps saying generating new theme and at the same time the editor freezes. image

4ntim4tter commented 2 months ago

I am getting the same problem, keeps regenerating new fonts and styles, freezes up while doing so.

image

guoj1200 commented 2 months ago

This seems to be already fixed here, #95575 . How do I apply the fix?

Calinou commented 2 months ago

Thanks for the report! Consolidating in https://github.com/godotengine/godot/issues/95575.

How do I apply the fix?

You can upgrade to 4.4.dev1 right now if you're OK with using a development build, or wait for 4.3.1 to be released.

If you can compile from source, you could also apply the pull request that fixed the issue directly to the 4.3 source code. Run this in a Bash command prompt (e.g. Git Bash on Windows):

git clone https://github.com/godotengine/godot.git --branch=4.3
curl -L https://github.com/godotengine/godot/pull/95849.patch | git apply

Then compile using SCons as usual.