diff --git a/doc/notes/3.3.2.md b/doc/notes/3.3.2.md index 0ec1f137c0..08f5811e25 100644 --- a/doc/notes/3.3.2.md +++ b/doc/notes/3.3.2.md @@ -1,6 +1,6 @@ ### 3.3.2 -_Not Released Yet_ +_Released 2023 Apr 01_ This build includes the following changes: diff --git a/doc/notes/README.md b/doc/notes/README.md index ad1428a828..e857b1e06b 100644 --- a/doc/notes/README.md +++ b/doc/notes/README.md @@ -4,8 +4,8 @@ ### Version History -* YYYY-MM-DD [3.3.2](3.3.2.md) (work in progress) -* 2022-02-21 [3.3.1](3.3.1.md) (latest) +* 2023-04-01 [3.3.2](3.3.2.md) (latest) +* 2022-02-21 [3.3.1](3.3.1.md) * 2021-11-15 [3.3.0](3.3.0.md) * 2019-09-01 [3.2.3](3.2.3.md) * 2019-05-05 [3.2.2](3.2.2.md) diff --git a/doc/notes/full.md b/doc/notes/full.md index 63389d11ae..50ee25d8a2 100644 --- a/doc/notes/full.md +++ b/doc/notes/full.md @@ -1,3 +1,123 @@ +### 3.3.2 + +_Released 2023 Apr 01_ + +This build includes the following changes: + +#### Bindings + +- Added [FMOD](https://www.fmod.com) bindings. (#295) + * Native binaries are not included, because the license does not permit redistribution. They must be downloaded and deployed separately from LWJGL. +- Added [FreeType](https://freetype.org/) bindings. (#611) + * The default build includes HarfBuzz and exports its full API. +- Added [HarfBuzz](https://harfbuzz.github.io/) bindings. (#611) + * The default build works standalone. + * FreeType interop can be enabled by making HarfBuzz use FreeType's shared library (see `Configuration.HARFBUZZ_LIBRARY_NAME`). +- Added [hwloc](https://www.open-mpi.org/projects/hwloc/) bindings. (#98) +- Added [KTX (Khronos Texture)](https://www.khronos.org/ktx/) bindings. (#660) +- Windows: Added bindings to `dpapi.h`. (#851) +- Assimp: Updated to 5.2.5 (up from 5.2.2) + * `KHR_draco_mesh_compression` is now supported via the bundled [Draco](https://github.com/google/draco) library. (#773) +- bgfx: Updated to API version 118 (up from 115) +- CUDA: Updated to 12.1.0 (up from 11.5.0) +- glfw: Updated to latest 3.3.8 (up from 3.3.6) + * Added `GLFW_WAYLAND_LIBDECOR`, `GLFW_WAYLAND_PREFER_LIBDECOR` and `GLFW_WAYLAND_DISABLE_LIBDECOR`. + * Added `GLFW_CURSOR_CAPTURED`. + * Added `GLFW_WAYLAND_APP_ID`. + * Added `GLFW_POSITION_X`, `GLFW_POSITION_Y` and `GLFW_ANY_POSITION`. +- jemalloc: Updated to 5.3.0 (up from 5.2.1) +- libffi: Updated to 3.4.4 (up from 3.4.2) +- liburing: Updated to 2.4-dev (up from 2.1) +- lmdb: Updated to 0.9.30 (up from 0.9.28) +- lz4: Updated to 1.9.4 (up from 1.9.3) +- LLVM/Clang: Updated to 16.0.0 (up from 13.0.1) +- meshoptimizer: Updated to 0.18 (up from 0.17) +- NativeFileDialog: Switched to [Native File Dialog Extended](https://github.com/btzy/nativefiledialog-extended) (#823) + * This is a fork of the original library with new features and breaking API changes. +- Nuklear: Updated to 4.10.5 (up from 4.9.6) + * Added the font baking API. +- OpenAL Soft: Updated to 1.23.0 (up from 1.21.1) + * Added `ALC_SOFT_loopback_bformat` extension. + * Added `ALC_SOFT_output_mode` extension. + * Added `ALC_SOFT_reopen_device` extension. + * Added `AL_SOFT_callback_buffer` extension. + * Added `AL_SOFT_effect_target` extension. + * Added `AL_SOFT_events` extension. (#854) + * Added `AL_SOFT_UHJ` extension. + * Added `AL_SOFTX_hold_on_disconnect` extension. (#795) +- OpenGL(ES): Added latest extensions. + * `GL_EXT_framebuffer_blit_layers` + * `GL_EXT_fragment_shading_rate` + * `GL_EXT_fragment_shading_rate_attachment` + * `GL_EXT_fragment_shading_rate_primitive` + * `GL_EXT_separate_depth_stencil` + * `GL_EXT_shader_samples_identical` +- OpenVR: Updated to 1.23.7 (up from 1.16.8) +- OpenXR: Updated to 1.0.27 (up from 1.0.22) +- Remotery: Updated to 1.2.1 (up from 1.0.0) +- rpmalloc: Updated to 1.4.4 (up from 1.4.3) +- Shaderc: Updated to 2023.3 (up from 2022.1) +- SPIRV-Cross: Updated to 0.51.0 (up from 0.48.0) +- stb + * Updated `stb_image` to 2.28 (up from 2.27) +- tinyexr: Updated to 1.0.2 (up from 1.0.1) +- tinyfiledialogs: Updated to 3.9.0 (up from 3.8.8) +- vma: Updated to 3.0.1 (up from 3.0.0-development) +- Vulkan: Updated to 1.3.246 (up from 1.3.206) + * Includes MoltenVK 1.2.3 (up from 1.1.7) +- Zstd: Updated to 1.5.4 (up from 1.5.2) + +#### Improvements + +- Linux: x64 shared libraries are now built with GCC 11.2 (up from GCC 7.5) + * The minimum GLIBC version is now 2.17. (down from 2.27) (#842) +- Windows: Shared libraries are now built with Visual Studio 2022 (up from 2019) +- Core: Added support for JDK 19 (#799) +- Core: Added `MemoryUtil::memByteBuffer(Struct)`. It creates a `ByteBuffer` view of a struct value. +- Core: More `SharedLibraryLoader` improvements. (#790) + * The default `Configuration.SHARED_LIBRARY_EXTRACT_DIRECTORY` is now `lwjgl_`. + * The default `Configuration.SHARED_LIBRARY_EXTRACT_PATH` now includes the CPU architecture. (`////`) + * Added `Configuration.SHARED_LIBRARY_EXTRACT_FORCE`. +- Core: The string returned by `Version::getVersion()` now follows the Java version format (`M.m.r+B` or `M.m.r-snapshot+B`). +- Core: Added `Configuration.DEBUG_MEMORY_ALLOCATOR_FAST`, a dynamic option that dramatically reduces the performance overhead of memory leak detection. +- Core: Reduced the performance overhead of `Configuration.DEBUG_STACK`. +- docs: The LWJGL javadoc is now generated with JDK 19 (up from JDK 10) for improved search functionality. +- The `.sha1` and `.git` files, used for validating LWJGL artifacts, are now stored under the `META-INF` folder. +- glfw: It will now always be patched with the latest [SDL_GameControllerDB](https://github.com/gabomdq/SDL_GameControllerDB) version. + * Reminder: `glfwUpdateGamepadMappings` can be used to update the mappings at runtime. +- Nuklear: `NK_BUTTON_TRIGGER_ON_RELEASE` is now also defined on Linux & macOS, not only Windows, for consistency. +- OpenXR: Added extension class javadoc. + * Currently, only the overview section is included. + * Also added a link that opens the OpenXR specification at the corresponding section for the extension. +- Remotery: Made it easier to get started with Remotery profiling: (#784) + * Users can now identify the commit used to build the Remotery bindings in the `Remotery` class javadoc. + * A script that quickly clones the Remotery repository at that commit is also included. + The viewer application at `vis/index.html` is guaranteed to be compatible with the LWJGL bindings. + * Ported two simple Remotery samples (`modules/samples/src/test/java/org/lwjgl/demo/util/remotery/`). + +#### Fixes + +- Core: Fixed Java/native library incompatibility detection. (#737) +- Core: Fixed `dlerror` decoding to use UTF-8. (#738) +- Core: Fixed `Version::getVersion()` when LWJGL is in the module path. (#770) +- Core: Fixed handling of unsigned 8/16-bit integer parameters in JNI code. (#858) +- Core: Many debug messages can no longer tear under concurrency. (#825) +- Build: Fixed offline mode with multiple local architectures. (#740) +- NanoSVG: Fixed auto-sizing of `NSVGPath::pts` buffer. +- OpenCL: Fixed initialization on macOS 13. (#861) +- Opus: Fixed `pcm` parameter type of `opus_decode_float` function. (#785) +- Remotery: Fixed `rmtSettings::free` callback signature. +- stb: Fixed `stb_image_resize` flag values. (#857) +- Vulkan: Fixed definition of the `VK_API_VERSION_PATCH` macro. (#743) +- Vulkan: Fixed `EXT_debug_utils` function dispatch. (#755) + +#### Breaking Changes + +- Core: Introduced additional mangling of `org.lwjgl.system.JNI` method names for 8/16-bit integer parameters. (#858) (S) +- NanoVG: The `freeData` parameters of `nvgCreateFontMem*` functions are now mapped to Java `boolean`. (S) +- NativeFileDialog: Now uses the [btzy/nativefiledialog-extended](https://github.com/btzy/nativefiledialog-extended) API. (S) +- Nuklear: Renamed `NkConvertConfig::null_texture` to `tex_null` to match the change in the native API. (S) + ### 3.3.1 _Released 2022 Feb 21_ @@ -178,11 +298,6 @@ This build includes the following changes: #### Breaking Changes -``` -(B): binary incompatible change -(S): source incompatible change -``` - - Linux: Shared libraries are now built on Ubuntu 18.04 (up from Ubuntu 16.04) (B) * GLIBC versions older than 2.14 are no longer supported. Some, but not all, LWJGL natives may require up to GLIBC 2.27. * Applications deployed on older systems must now build & bundle custom LWJGL natives. Contact LWJGL developers if you need assistance. diff --git a/doc/notes/latest.md b/doc/notes/latest.md index 327c2d063b..08f5811e25 100644 --- a/doc/notes/latest.md +++ b/doc/notes/latest.md @@ -1,48 +1,123 @@ -### 3.3.1 +### 3.3.2 -_Released 2022 Feb 21_ +_Released 2023 Apr 01_ This build includes the following changes: #### Bindings -- Added [liburing](https://github.com/axboe/liburing) bindings. - * Can be found in the LWJGL core module (package `org.lwjgl.system.linux.liburing`). -- Added [OpenXR](https://www.khronos.org/openxr/) bindings. (#569) -- Assimp: Updated to 5.2.2 (up from 5.1.0) -- glfw: Updated to latest 3.3.6 (up from 3.3.5) - * Added `glfwGetGLXFBConfig`. - * Added `glfwGetEGLConfig`. -- meshoptimizer: Updated to 0.17 (up from 0.16) -- Nuklear: Updated to 4.9.6 (up from 4.09.0) -- Shaderc: Updated to 2022.1 (up from 2021.3) -- vma: Updated to latest 3.3.0-development - * Added virtual allocator API. - * Added `VMA_MEMORY_USAGE_AUTO`. -- Vulkan: Updated to 1.3.206 (up from 1.2.198) - * Includes MoltenVK 1.1.7 (up from 1.1.5) -- xxhash: Updated to 0.8.1 (up from 0.8.0) -- Zstd: Updated to 1.5.2 (up from 1.5.0) - * Also, the LWJGL memory allocator is now used for internal allocations. +- Added [FMOD](https://www.fmod.com) bindings. (#295) + * Native binaries are not included, because the license does not permit redistribution. They must be downloaded and deployed separately from LWJGL. +- Added [FreeType](https://freetype.org/) bindings. (#611) + * The default build includes HarfBuzz and exports its full API. +- Added [HarfBuzz](https://harfbuzz.github.io/) bindings. (#611) + * The default build works standalone. + * FreeType interop can be enabled by making HarfBuzz use FreeType's shared library (see `Configuration.HARFBUZZ_LIBRARY_NAME`). +- Added [hwloc](https://www.open-mpi.org/projects/hwloc/) bindings. (#98) +- Added [KTX (Khronos Texture)](https://www.khronos.org/ktx/) bindings. (#660) +- Windows: Added bindings to `dpapi.h`. (#851) +- Assimp: Updated to 5.2.5 (up from 5.2.2) + * `KHR_draco_mesh_compression` is now supported via the bundled [Draco](https://github.com/google/draco) library. (#773) +- bgfx: Updated to API version 118 (up from 115) +- CUDA: Updated to 12.1.0 (up from 11.5.0) +- glfw: Updated to latest 3.3.8 (up from 3.3.6) + * Added `GLFW_WAYLAND_LIBDECOR`, `GLFW_WAYLAND_PREFER_LIBDECOR` and `GLFW_WAYLAND_DISABLE_LIBDECOR`. + * Added `GLFW_CURSOR_CAPTURED`. + * Added `GLFW_WAYLAND_APP_ID`. + * Added `GLFW_POSITION_X`, `GLFW_POSITION_Y` and `GLFW_ANY_POSITION`. +- jemalloc: Updated to 5.3.0 (up from 5.2.1) +- libffi: Updated to 3.4.4 (up from 3.4.2) +- liburing: Updated to 2.4-dev (up from 2.1) +- lmdb: Updated to 0.9.30 (up from 0.9.28) +- lz4: Updated to 1.9.4 (up from 1.9.3) +- LLVM/Clang: Updated to 16.0.0 (up from 13.0.1) +- meshoptimizer: Updated to 0.18 (up from 0.17) +- NativeFileDialog: Switched to [Native File Dialog Extended](https://github.com/btzy/nativefiledialog-extended) (#823) + * This is a fork of the original library with new features and breaking API changes. +- Nuklear: Updated to 4.10.5 (up from 4.9.6) + * Added the font baking API. +- OpenAL Soft: Updated to 1.23.0 (up from 1.21.1) + * Added `ALC_SOFT_loopback_bformat` extension. + * Added `ALC_SOFT_output_mode` extension. + * Added `ALC_SOFT_reopen_device` extension. + * Added `AL_SOFT_callback_buffer` extension. + * Added `AL_SOFT_effect_target` extension. + * Added `AL_SOFT_events` extension. (#854) + * Added `AL_SOFT_UHJ` extension. + * Added `AL_SOFTX_hold_on_disconnect` extension. (#795) +- OpenGL(ES): Added latest extensions. + * `GL_EXT_framebuffer_blit_layers` + * `GL_EXT_fragment_shading_rate` + * `GL_EXT_fragment_shading_rate_attachment` + * `GL_EXT_fragment_shading_rate_primitive` + * `GL_EXT_separate_depth_stencil` + * `GL_EXT_shader_samples_identical` +- OpenVR: Updated to 1.23.7 (up from 1.16.8) +- OpenXR: Updated to 1.0.27 (up from 1.0.22) +- Remotery: Updated to 1.2.1 (up from 1.0.0) +- rpmalloc: Updated to 1.4.4 (up from 1.4.3) +- Shaderc: Updated to 2023.3 (up from 2022.1) +- SPIRV-Cross: Updated to 0.51.0 (up from 0.48.0) +- stb + * Updated `stb_image` to 2.28 (up from 2.27) +- tinyexr: Updated to 1.0.2 (up from 1.0.1) +- tinyfiledialogs: Updated to 3.9.0 (up from 3.8.8) +- vma: Updated to 3.0.1 (up from 3.0.0-development) +- Vulkan: Updated to 1.3.246 (up from 1.3.206) + * Includes MoltenVK 1.2.3 (up from 1.1.7) +- Zstd: Updated to 1.5.4 (up from 1.5.2) #### Improvements -- GLFW: An alternative macOS build now supports Cocoa calls on any thread. - * A different window toolkit (AWT, JavaFX, etc.) may now run at the same time as GLFW. It must be initialized before `glfwInit` is called. - * Enabled with `Configuration.GLFW_LIBRARY_NAME.set("glfw_async");`. +- Linux: x64 shared libraries are now built with GCC 11.2 (up from GCC 7.5) + * The minimum GLIBC version is now 2.17. (down from 2.27) (#842) +- Windows: Shared libraries are now built with Visual Studio 2022 (up from 2019) +- Core: Added support for JDK 19 (#799) +- Core: Added `MemoryUtil::memByteBuffer(Struct)`. It creates a `ByteBuffer` view of a struct value. +- Core: More `SharedLibraryLoader` improvements. (#790) + * The default `Configuration.SHARED_LIBRARY_EXTRACT_DIRECTORY` is now `lwjgl_`. + * The default `Configuration.SHARED_LIBRARY_EXTRACT_PATH` now includes the CPU architecture. (`////`) + * Added `Configuration.SHARED_LIBRARY_EXTRACT_FORCE`. +- Core: The string returned by `Version::getVersion()` now follows the Java version format (`M.m.r+B` or `M.m.r-snapshot+B`). +- Core: Added `Configuration.DEBUG_MEMORY_ALLOCATOR_FAST`, a dynamic option that dramatically reduces the performance overhead of memory leak detection. +- Core: Reduced the performance overhead of `Configuration.DEBUG_STACK`. +- docs: The LWJGL javadoc is now generated with JDK 19 (up from JDK 10) for improved search functionality. +- The `.sha1` and `.git` files, used for validating LWJGL artifacts, are now stored under the `META-INF` folder. +- glfw: It will now always be patched with the latest [SDL_GameControllerDB](https://github.com/gabomdq/SDL_GameControllerDB) version. + * Reminder: `glfwUpdateGamepadMappings` can be used to update the mappings at runtime. +- Nuklear: `NK_BUTTON_TRIGGER_ON_RELEASE` is now also defined on Linux & macOS, not only Windows, for consistency. +- OpenXR: Added extension class javadoc. + * Currently, only the overview section is included. + * Also added a link that opens the OpenXR specification at the corresponding section for the extension. +- Remotery: Made it easier to get started with Remotery profiling: (#784) + * Users can now identify the commit used to build the Remotery bindings in the `Remotery` class javadoc. + * A script that quickly clones the Remotery repository at that commit is also included. + The viewer application at `vis/index.html` is guaranteed to be compatible with the LWJGL bindings. + * Ported two simple Remotery samples (`modules/samples/src/test/java/org/lwjgl/demo/util/remotery/`). #### Fixes -- Core: Fixed extra `NUL` in string returned from `SharedLibrary::getPath()` on Linux & macOS. (#713) -- Core: Fixed integer overflow when casting pointers on 32-bit architectures. (#720) -- Core: Fixed rare `NPE` with `Configuration.DEBUG_STACK` enabled. (#721) -- OpenCL: Fixed values of the `KERNEL_ARG_ADDRESS_*` constants. (#733) -- OpenCL: Fixed value of `KERNEL_ARG_TYPE_QUALIFIER` constant. (#735) -- vma: Fixed nullability of `VmaVirtualAllocationCreateInfo::pUserData` member. -- Vulkan: All `noautovalidity` parameters/members are now regarded as nullable. (#702) +- Core: Fixed Java/native library incompatibility detection. (#737) +- Core: Fixed `dlerror` decoding to use UTF-8. (#738) +- Core: Fixed `Version::getVersion()` when LWJGL is in the module path. (#770) +- Core: Fixed handling of unsigned 8/16-bit integer parameters in JNI code. (#858) +- Core: Many debug messages can no longer tear under concurrency. (#825) +- Build: Fixed offline mode with multiple local architectures. (#740) +- NanoSVG: Fixed auto-sizing of `NSVGPath::pts` buffer. +- OpenCL: Fixed initialization on macOS 13. (#861) +- Opus: Fixed `pcm` parameter type of `opus_decode_float` function. (#785) +- Remotery: Fixed `rmtSettings::free` callback signature. +- stb: Fixed `stb_image_resize` flag values. (#857) +- Vulkan: Fixed definition of the `VK_API_VERSION_PATCH` macro. (#743) +- Vulkan: Fixed `EXT_debug_utils` function dispatch. (#755) #### Breaking Changes +- Core: Introduced additional mangling of `org.lwjgl.system.JNI` method names for 8/16-bit integer parameters. (#858) (S) +- NanoVG: The `freeData` parameters of `nvgCreateFontMem*` functions are now mapped to Java `boolean`. (S) +- NativeFileDialog: Now uses the [btzy/nativefiledialog-extended](https://github.com/btzy/nativefiledialog-extended) API. (S) +- Nuklear: Renamed `NkConvertConfig::null_texture` to `tex_null` to match the change in the native API. (S) + ``` (B): binary incompatible change (S): source incompatible change