Skip to content

Commit

Permalink
docs: update release notes for 3.3.3
Browse files Browse the repository at this point in the history
  • Loading branch information
Spasi committed Sep 16, 2023
1 parent afc44e1 commit f0ec143
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 123 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ body:
description: Please select the LWJGL version(s) on which the bug is reproducible.
multiple: true
options:
- 3.3.3 (snapshot)
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
Expand Down Expand Up @@ -48,7 +48,7 @@ body:
attributes:
label: JDK
description: Please type the name and version of the Java Runtime(s) on which the bug is reproducible.
placeholder: e.g. Zulu OpenJDK 16.0.2
placeholder: e.g. Zulu OpenJDK 17.0.8
validations:
required: true
- type: input
Expand Down
2 changes: 1 addition & 1 deletion doc/notes/3.3.3.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
### 3.3.3

_Not Released Yet_
_Released 2023 Sep 16_

This build includes the following changes:

Expand Down
4 changes: 2 additions & 2 deletions doc/notes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

### Version History

* YYYY-MM-DD [3.3.3](3.3.3.md) (work in progress)
* 2023-04-01 [3.3.2](3.3.2.md) (latest)
* 2023-09-16 [3.3.3](3.3.3.md) (latest)
* 2023-04-01 [3.3.2](3.3.2.md)
* 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)
Expand Down
62 changes: 62 additions & 0 deletions doc/notes/full.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,65 @@
### 3.3.3

_Released 2023 Sep 16_

This build includes the following changes:

#### Bindings

- bgfx: Updated to API version 122 (up from 118)
* macOS: support for the OpenGL backend has been dropped.
- EGL: Added latest extensions.
* `EGL_EXT_gl_colorspace_bt2020_hlg`
- FMOD: Updated to 2.02.16 (up from 2.02.13)
- freetype: Updated to 2.13.2 (up from 2.13.0)
- harfbuzz: Updated to 8.2.0 (up from 7.1.0)
- hwloc: Updated to 2.9.3 (up from 2.9.0)
- KTX: Updated to 4.3.0-alpha3 (up from 4.1.0-rc3)
- liburing: Updated to 2.4 (up from 2.4-dev)
- lmdb: Updated to 0.9.31 (up from 0.9.30)
- meshoptimizer: Updated to 0.19 (up from 0.18)
- NativeFileDialog: Update to 1.1.0 (up from 1.0.2)
* Added `Configuration.NFD_LINUX_PORTAL` which enables the XDG Desktop Portal backend on Linux. (#893)
- Nuklear: Updated to 4.10.6 (up from 4.10.5)
- OpenAL Soft: Updated to 1.23.1 (up from 1.23.0)
* Added `AL_SOFT_buffer_length_query` extension.
* Added `AL_SOFT_source_start_delay` extension.
* Added `AL_SOFT_UHJ_ex` extension.
- OpenCL: Added latest extensions.
* `cl_ext_image_from_buffer`
* `cl_ext_image_requirements_info`
* `cl_intel_bfloat16_conversions`
* `cl_intel_split_work_group_barrier`
* `cl_intel_subgroup_matrix_multiply_accumulate`
* `cl_intel_subgroup_split_matrix_multiply_accumulate`
- OpenGL: Added latest extensions.
* `GL_NV_uniform_buffer_std430_layout`
- OpenVR: Updated to 1.26.7 (up from 1.23.7)
- OpenXR: Updated to 1.0.29 (up from 1.0.27)
- Opus: Updated to 1.4.0 (up from 1.3.1)
- Shaderc: Updated to 2023.6 (up from 2023.3)
- SPIRV-Cross: Updated to 0.57.0 (up from 0.51.0)
- tinyexr: Updated to 1.0.7 (up from 1.0.2)
- tinyfiledialogs: Updated to 3.13.3 (up from 3.9.0)
- Vulkan: Updated to 1.3.264 (up from 1.3.246)
* Includes MoltenVK 1.2.5 (up from 1.2.3)
- xxhash: Updated to 0.8.2 (up from 0.8.1)
- Yoga: Updated to 2.0.0 (up from 1.19.0)
- Zstd: Updated to 1.5.5 (up from 1.5.4)

#### Improvements

- Core: LWJGL is now compatible with GraalVM Native Image. (#875)

#### Fixes

- Core: Java `memset`/`memcpy` implementations no longer touch memory outside the target range. (#892)
- CUDA: Fixed library name on Linux. (#884)
- Nuklear: Fixed the result auto-sizing of `nk_font_atlas_bake`. (#903)
- OpenGL: Added support for [libglvnd](https://github.com/NVIDIA/libglvnd). (#880)
* LWJGL will now try to load `libGLX.so.0` before `libGL.so.1` on Linux, matching GLFW.
* Use `Configuration.OPENGL_LIBRARY_NAME` and `GLFWNativeGLX::setPath` to override this behavior.

### 3.3.2

_Released 2023 Apr 01_
Expand Down
167 changes: 49 additions & 118 deletions doc/notes/latest.md
Original file line number Diff line number Diff line change
@@ -1,130 +1,61 @@
### 3.3.2
### 3.3.3

_Released 2023 Apr 01_
_Released 2023 Sep 16_

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)
- bgfx: Updated to API version 122 (up from 118)
* macOS: support for the OpenGL backend has been dropped.
- EGL: Added latest extensions.
* `EGL_EXT_gl_colorspace_bt2020_hlg`
- FMOD: Updated to 2.02.16 (up from 2.02.13)
- freetype: Updated to 2.13.2 (up from 2.13.0)
- harfbuzz: Updated to 8.2.0 (up from 7.1.0)
- hwloc: Updated to 2.9.3 (up from 2.9.0)
- KTX: Updated to 4.3.0-alpha3 (up from 4.1.0-rc3)
- liburing: Updated to 2.4 (up from 2.4-dev)
- lmdb: Updated to 0.9.31 (up from 0.9.30)
- meshoptimizer: Updated to 0.19 (up from 0.18)
- NativeFileDialog: Update to 1.1.0 (up from 1.0.2)
* Added `Configuration.NFD_LINUX_PORTAL` which enables the XDG Desktop Portal backend on Linux. (#893)
- Nuklear: Updated to 4.10.6 (up from 4.10.5)
- OpenAL Soft: Updated to 1.23.1 (up from 1.23.0)
* Added `AL_SOFT_buffer_length_query` extension.
* Added `AL_SOFT_source_start_delay` extension.
* Added `AL_SOFT_UHJ_ex` extension.
- OpenCL: Added latest extensions.
* `cl_ext_image_from_buffer`
* `cl_ext_image_requirements_info`
* `cl_intel_bfloat16_conversions`
* `cl_intel_split_work_group_barrier`
* `cl_intel_subgroup_matrix_multiply_accumulate`
* `cl_intel_subgroup_split_matrix_multiply_accumulate`
- OpenGL: Added latest extensions.
* `GL_NV_uniform_buffer_std430_layout`
- OpenVR: Updated to 1.26.7 (up from 1.23.7)
- OpenXR: Updated to 1.0.29 (up from 1.0.27)
- Opus: Updated to 1.4.0 (up from 1.3.1)
- Shaderc: Updated to 2023.6 (up from 2023.3)
- SPIRV-Cross: Updated to 0.57.0 (up from 0.51.0)
- tinyexr: Updated to 1.0.7 (up from 1.0.2)
- tinyfiledialogs: Updated to 3.13.3 (up from 3.9.0)
- Vulkan: Updated to 1.3.264 (up from 1.3.246)
* Includes MoltenVK 1.2.5 (up from 1.2.3)
- xxhash: Updated to 0.8.2 (up from 0.8.1)
- Yoga: Updated to 2.0.0 (up from 1.19.0)
- Zstd: Updated to 1.5.5 (up from 1.5.4)

#### 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_<trimmed_user_name>`.
* The default `Configuration.SHARED_LIBRARY_EXTRACT_PATH` now includes the CPU architecture. (`<temp_root>/<extract_dir>/<version>/<arch>/`)
* 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/`).
- Core: LWJGL is now compatible with GraalVM Native Image. (#875)

#### 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)

```
(B): binary incompatible change
(S): source incompatible change
```

#### Known Issues

- glfw: GLFW added support for libglvnd (https://github.com/NVIDIA/libglvnd) and prioritizes loading `libGLX.so.0` when available over `libGL.so.1`. This may cause failures:
* On context creation (`glfwCreateWindow`) if the host system is misconfigured. Workaround: Call `GLFWNativeGLX.setPath(GL.getFunctionProvider())` before `glfwInit` to force GLFW to load `libGL.so.1` instead.
* On GL bindings initialization (`GL.createCapabilities`) because of incompatibility with `libGL.so.1`, which is the library that LWJGL loads. Workaround: Set `Configuration.OPENGL_LIBRARY_NAME` to `libGLX.so.0` to force LWJGL to load `libGLX.so.0` instead.
- Core: Java `memset`/`memcpy` implementations no longer touch memory outside the target range. (#892)
- CUDA: Fixed library name on Linux. (#884)
- Nuklear: Fixed the result auto-sizing of `nk_font_atlas_bake`. (#903)
- OpenGL: Added support for [libglvnd](https://github.com/NVIDIA/libglvnd). (#880)
* LWJGL will now try to load `libGLX.so.0` before `libGL.so.1` on Linux, matching GLFW.
* Use `Configuration.OPENGL_LIBRARY_NAME` and `GLFWNativeGLX::setPath` to override this behavior.

0 comments on commit f0ec143

Please sign in to comment.