Defold 1.3.4 BETA

Defold 1.3.4 BETA

The latest beta is now released, and we invite those interested in beta testing the new features in the editor and engine to join now.

The beta period will be 2 weeks and the next planned stable release is two weeks from now.

Please report any engine issues in this thread or in issues using Help → Report Issue

Disclaimer

This is a BETA release, and it might have issues that could potentially be disruptive for you and your teams workflow. Use with caution. Use of source control for your projects is strongly recommended.

Access to the beta

Download the editor or bob.jar from Releases · defold/defold · GitHub

Set your build server to https://build-stage.defold.com

Release notes

Engine

NEW: (#6394) Profiler remotery

Details

The custom profiler used in Defold has been replaced with the Remotery profiler. The new profiler will stream profiler data instead of sampling only 20 frames.


FIX: (#6706) Skip node rendering if alpha is equal 0

Details

Skip render step for nodes with alpha == 0. That should reduce fill rate in cases when UI elements are hidden by changing alpha but still enabled. It also helps with producing longer batches because such a node doesn’t break batching anymore.


FIX: (#6642) Only copy Android native libs for the bundled architectures

Details

The Android bundler always copies native libraries from dependencies for all supported architectures (32 and 64b bit) even if the bundle is created for a single architecture. To reduce the size of the generated APK the Android bundler will now only copy library files for the architecture(s) for which the bundle is created.


FIX: (#6647) Speed up Lua script file processing

Details

This fix will speed up the processing time of Lua files significantly. The primary improvement is achieved by changing the way Lua comments are removed from the source code and by caching results between build steps.


FIX: (#6549) Early out of render script if window is minimized

Details

The frustum calculation in the default render script does not take into account situations when the window width or height is 0. This can for instance happen on the frame when the window is minimized on Windows. In such situations the frustum calculation resulted in an invalid frustum and the subsequent draw command generated a Lua error. The default render script will now detect this and early-out of the update() function.


FIX: (#6563) Improved progress bar when streaming the wasm file on engine startup

Details

This improves the accuracy of the HTML5 progress bar when streaming the .wasm file on engine startup (using the Wasm Streaming option in game.project).


FIX: (#6602) Fix for looping out of bounds when generating render batches

Details

Fixes a crash when generating render batches.


Editor

FIX: (#6401) [DEFEDIT-6401] Faster resource-sync after external changes

Details

User-facing changes

  • Reloading large collections or game objects that have been modified externally is now a lot faster.
  • The editor will now skip reloading externally touched files if they already match the in-memory state.

Technical changes

  • Added metrics for time spent in project loading, resource-sync, and graph transactions during development. To enable, add the metrics profile to the Leiningen command line, or start java with -Ddefold.metrics=true when running the editor.
  • Optimized graph traversal when applying overrides.
  • We now calculate the hash of externally touched files and compare them to our in-memory state to check if they have meaningful changes. If they do not, we skip reload and keep the existing nodes in the graph.
  • The g/override function now takes a :traverse-fn instead of a :traverse? predicate in the opts map. You can create a traverse-fn from a traverse? predicate using (g/make-override-traverse-fn traverse?). Like before, the traverse? function takes a Basis and an Arc, and is expected to return true if the Arc should be followed.
  • Added g/node-instance-of-any? for when you want to efficiently determine if the type of a Node adheres to any of several node types.
  • We now use Arcs and pair in some hot-spots where we used to use multi-element Clojure vectors.

FIX: (#6558) Don’t scroll to selection unless it changed

Details

We scroll on every selection sync. This was initially implemented to scroll to item in the outline when selection in the scene is changed. Current behavior has a downside: when a property of a selected item is changed, it forces the scroll to happen, which is very annoying. This changeset skips tree view scrolling if the selection didn’t change.


15 Likes

:partying_face:Thank you devs, this is indeed a tad annoying.

3 Likes

My Witchcrafter project immediately crashes (and crashes every time I try, also after restart) in Editor after update to 1.3.4 beta (from 1.3.3. beta) :frowning:

Logs:
editor2.2022-06-20.zip (2.1 KB)

Crash:
_crash.zip (1.0 KB)

Inside it a call stack:
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x67fdf5]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x14420) [0x7fecef603420]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb) [0x7fecef0ec00b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b) [0x7fecef0cb859]
/lib/x86_64-linux-gnu/libc.so.6(+0x22729) [0x7fecef0cb729]
/lib/x86_64-linux-gnu/libc.so.6(+0x33fd6) [0x7fecef0dcfd6]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x67038b]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x45ad90]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x669558]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x458c93]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x42ea6f]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x452e16]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x42ea6f]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x414891]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x414ec5]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x41148f]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x4113f5]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fecef0cd083]
/home/pjarosz4/Desktop/witchcrafter/build/x86_64-linux/dmengine() [0x41123e]

Ubuntu 20.04

Do you have some debug symbols as well?

I shared everything with you @britzl, here’s the link too: Defold_134beta_crash – Google Drive

I don’t see any debug symbols in the zip file you shared. I assume that you are using native extensions? In that case I also need to debug symbols for the build. You should have an unstripped version of the engine in .internal/x86_64-linux/build.zip (dmengine_unstripped) .

1 Like

Yes, I’m using DefOS. I removed the extension from the project, but the crash happens regardless.

One additional thing I noticed is that it might be related to GUI, the game itself starts (some script’s init functions are performed and it stops in gui init):

dmengine: …/src/gui.cpp:172: dmGui::InternalNode *dmGui::GetNode(dmGui::HScene, dmGui::HNode): Assertion `n->m_Version == version’ failed.
INFO:CRASH: Successfully wrote Crashdump to file: /home/pjarosz4/.Defold/_crash
ERROR:CRASH: CALL STACK:

I can’t find the directory .internal/x86_64-linux/build.zip, where could it be? :frowning:
Neither find, gio nor tree doesn’t list such category anywhere too, was searching in ~/.Defold too, even from /. The dmengine was compiled with some debug symbols though, I think:

I will do tests on Windows today too.

EDIT:
Tested on Windows - it crashes too :confused: I added Defold_Windows.zip with contents of AppData/Local/Defold to the drive shared above

It’s in “./.internal/cache/x86_64-osx/build.zip”. I think just searching for “build.zip” will allow you to find it.

Did you include the “.dmp” (for windows) file in the crash report too?

I included everything that is in folder showing after I click “Show Logs” in Editor (C:\Users\Jarosz\AppData\Local\Defold) - is this where .dmp files should be? I can’t find it :confused:

Other projects are working so far. I checked out the new profiler and it looks like it has no information being there previously (those about assets loaded, collections, etc) - is it intended?

Also, with ~1Hz it shows data for Thread: liveupdate - is it also intended?

It is all new, so I want to get familiar with it :smiley:

3 Likes

Not sure about the assets loaded. I can look into it. If it’s a regular counter property, it should show.

As for the flickering, it’s not something I’ve noticed before. I can lock it down to always show the Main thread (since it’s the most commonly used one.)

Remember, that the best UI for the profiler is always going to be through the HTML page: “Debug → Open Web Profiler”

2 Likes

The .dmp file ends up next to the “_crash” file.

There it is! Working smoothly :smiling_face_with_three_hearts:

3 Likes

Ahh… Ok, there is no crash logged on Windows unfortunately, there is only a pop-up, saying that the dmengine.exe stopped working, (Correct work/processing of the program was stopped because of a problem. Close the program):
image
Nothing prints out when I run it from git bash console nor command prompt:/

Perhaps you can supply us with a small repro case project?

1 Like

It’s hard to get what exact part is causing the crash for me :confused: I will send you a DM with the whole zip :slight_smile:

We have the same issue. Have attached a repro project.
134_gui_test.zip (2.1 KB)

1 Like