⇠ More posts

Defold release 1.6.3

By Mathias Westerdahl on Jan 11, 2024

Tagged as: Release notes


Defold 1.6.3

Summary

  • NEW: (#8225) Detect renderable float and half float texture formats on OpenGL ES 2.0 / WebGL 1.0 devices
  • NEW: (#8227) Exclude headless dmengine from bob.jar
  • NEW: (#8267) Fix small memory leak in json.decode()
  • NEW: (#8289) Print generic error when OpenGL shader compilation or program linking fails
  • NEW: (#8270) Improve memory usage in large projects
  • FIX: (#8247) Wrap glfw calls in dmPlatform library
  • FIX: (#8244) Add support for luminance_alpha in image.load
  • FIX: (#8242) Use the WebGL 1.0 specific constant for the half float format.
  • FIX: (#8260) Set HTML5 AudioContext sample rate to 44100
  • FIX: (#8295) Fix rare multipage atlas issue with compressed textures (HTML5).
  • FIX: (#8299) Fixed triggers and back button for controllers on macOS
  • FIX: (#8283) Fix “Optimization pass failed” issue
  • FIX: (#8283) Fix issue when usage of semicolons in Lua may break compilation.
  • FIX: (#8345) Model multi material doesn’t respect the sampler names

Engine

NEW: (#8225) Detect renderable float and half float texture formats on OpenGL ES 2.0 / WebGL 1.0 devices Adds the ability to render to 16-bit and 32-bit floating-point color buffers on OpenGL ES 2.0 and WebGL 1.0 if the device supports them. The support depends on the extensions EXT_color_buffer_half_float and WEBGL_color_buffer_float.

Closes https://github.com/defold/defold/issues/8172

NEW: (#8227) Exclude headless dmengine from bob.jar Now “vanilla” dmengine_headless (headless dmengine binary without native extensions) will be downloaded from the server if needed. It’s rarely used, but was shipped with each bob.jar for all the platforms.

NEW: (#8267) Fix small memory leak in json.decode() Each json.decode() call allocates 1kb of memory, which should be freed after.

NEW: (#8289) Print generic error when OpenGL shader compilation or program linking fails Adds generic error message when OpenGL shader compilation or program linking fails. Previously, the shader error message was only printed if the GPU driver provided it. Depending on the implementation, the driver may not do this and so the developer would not get any message and could not understand why the game crashed. Also for OpenGL program linking the warning is replaced by an error, because after this failure the game cannot continue to work.

Closes #8287

FIX: (#8247) Wrap glfw calls in dmPlatform library We have added a new engine platform library, which is the first step into upgrading and simplifying our GLFW library.

Migration plan:

  • fix console to support the new changes
  • remove building glfw in the engine
  • migrate desktop platforms to use vanilla glfw3
  • move our web and mobile code from glfw into their own implementations within the engine
  • remove the custom glfw 2.7 implementation from the engine

FIX: (#8244) Add support for luminance_alpha in image.load Moved internal dmImage functionality into the dmsdk for loading images from binary data. The API looks like this:

namespace dmImage
{
  Result Load(const void* buffer, uint32_t buffer_size, bool premult, HImage image);
  void Free(HImage image);
  Type GetType(HImage image);
  uint32_t GetWidth(HImage image);
  uint32_t GetHeight(HImage image);
  const void* GetData(HImage image);
}

NOTE: that this also changes the API for the script image.load function since we now will return image.TYPE_LUMINANCE_ALPHA for PNGs with both grayscale and alpha channels. This is considered a bugfix so please be aware of this if you are using that function!

FIX: (#8242) Use the WebGL 1.0 specific constant for the half float format. WebGL 1.0 supports loading half float textures. But it requires the use of HALF_FLOAT_OES constant, which has a different value from the HALF_FLOAT constant from WebGL 2.0 / OpenGL ES 3.0. This fix enables to use half float texture format on WebGL 1.0 devices.

FIX: (#8260) Set HTML5 AudioContext sample rate to 44100 HTML5 AudioContext sample rate wasn’t specified and varied depending on the output device and it could be default 44100, or it could be 8000, 16000, 22050, 32000, 48000 etc. If the sample rate of the device was less than the sample rate of your sounds, they would not be played at all. So the AudioContext is now created with sampleRate = 44100.

FIX: (#8295) Fix rare multipage atlas issue with compressed textures (HTML5). Some old devices don’t work with multipage atlases if texture transcoded to ASTC format. For such devices, ASTC will be marked as non-supported format and the next best fits will be used (most of the time it will be ETC2).

FIX: (#8299) Fixed triggers and back button for controllers on macOS Fixed an issue when triggers and back button on macOS weren’t caught by the gamepads input system.

FIX: (#8299) Fix issue when usage of semicolons in Lua may break compilation Fixed an issue when our Lua parser removes semicolons which shouldn’t be removed, which breaks Lua compilation.

FIX: (#8345) Fix issue when usage of semicolons in Lua may break compilation In some cases, a model with multiple textures would get them assigned to incorrect texture units.

Editor

NEW: (#8270) Improve memory usage in large projects

  • Improved memory usage in large projects.
  • We now report resources that fail to build due to an out-of-memory error to the Build Errors tab.

FIX: (#8283) Fix “Optimization pass failed” issue Make sure pipeline tools use DLLs from jdk/bin folder to prevent Optimization pass failed: error on windows.