Skip to content

Commit 6da65e3

Browse files
committed
docs: update release notes for 3.3.0
1 parent 960462c commit 6da65e3

File tree

4 files changed

+291
-97
lines changed

4 files changed

+291
-97
lines changed

doc/notes/3.3.0.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### 3.3.0
22

3-
_Not Released Yet_
3+
_Released 2021 Nov 15_
44

55
This build includes the following changes:
66

@@ -135,6 +135,11 @@ This build includes the following changes:
135135

136136
#### Breaking Changes
137137

138+
```
139+
(B): binary incompatible change
140+
(S): source incompatible change
141+
```
142+
138143
- Linux: Shared libraries are now built on Ubuntu 18.04 (up from Ubuntu 16.04) (B)
139144
* GLIBC versions older than 2.14 are no longer supported. Some, but not all, LWJGL natives may require up to GLIBC 2.27.
140145
* Applications deployed on older systems must now build & bundle custom LWJGL natives. Contact LWJGL developers if you need assistance.
@@ -144,8 +149,3 @@ This build includes the following changes:
144149
* The bindings still require CUDA 3.2 as the minimum version. There are runtime checks for functions introduced after 3.2.
145150
- Shaderc: The shaderc_spvc library has been removed since Shaderc 2020.4. Users may migrate to the new SPIRV-Cross bindings. (S)
146151
- Vulkan: All header boilerplate constants have been moved to `VK10`. (S)
147-
148-
```
149-
(B): binary incompatible change
150-
(S): source incompatible change
151-
```

doc/notes/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
### Version History
66

7-
* YYYY-MM-DD [3.3.0](3.3.0.md) (work in progress)
8-
* 2019-09-01 [3.2.3](3.2.3.md) (latest)
7+
* 2021-11-15 [3.3.0](3.3.0.md) (latest)
8+
* 2019-09-01 [3.2.3](3.2.3.md)
99
* 2019-05-05 [3.2.2](3.2.2.md)
1010
* 2018-12-08 [3.2.1](3.2.1.md)
1111
* 2018-07-30 [3.2.0](3.2.0.md)

doc/notes/full.md

Lines changed: 152 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,155 @@
1+
### 3.3.0
2+
3+
_Released 2021 Nov 15_
4+
5+
This build includes the following changes:
6+
7+
#### Bindings
8+
9+
- Added [libffi](https://sourceware.org/libffi/) bindings.
10+
* Bundled with the LWJGL core, under the `org.lwjgl.system` package.
11+
- Added [meshoptimizer](https://github.com/zeux/meshoptimizer) bindings.
12+
- Added [SPIRV-Cross](https://github.com/KhronosGroup/SPIRV-Cross) bindings.
13+
- Assimp: Updated to 5.1.0 (up from 5.0.0.rc2)
14+
- bgfx: Updated to API version 115 (up from 100)
15+
- CUDA: Updated to 11.5.0 (up from 10.1.0)
16+
* Now includes full API documentation.
17+
- glfw: Updated to latest 3.3.4 (up from 3.3.1):
18+
* Added `GLFW_WIN32_KEYBOARD_MENU`.
19+
* Added `GLFW_CURSOR_UNAVAILABLE`.
20+
* Added `GLFW_FEATURE_UNAVAILABLE`.
21+
* Added `GLFW_FEATURE_UNIMPLEMENTED`.
22+
* Added `GLFW_MOUSE_PASSTHROUGH`.
23+
* Added `GLFW_ANGLE_PLATFORM_TYPE`.
24+
* Added `GLFW_CONTEXT_DEBUG`.
25+
* Added `GLFW_X11_XCB_VULKAN_SURFACE`.
26+
* Added `GLFW_PLATFORM`, `GLFW_PLATFORM_UNAVAILABLE`.
27+
* Added `GLFW_ANY_PLATFORM`, `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`, `GLFW_PLATFORM_WAYLAND`, `GLFW_PLATFORM_X11`, `GLFW_PLATFORM_NULL`.
28+
* Added `glfwInitAllocator`.
29+
* Added `glfwGetPlatform`.
30+
* Added `glfwPlatformSupported`.
31+
* Added `glfwInitVulkanLoader`.
32+
* Added standard cursors for diagonal and omnidirectional resize/move and operation-not-allowed.
33+
* Added OSMesa native access functions.
34+
- LibOVR: Updated to 1.64.0 (up from 1.39.0)
35+
- libdivide: Updated to 5.0 (up from 2.0)
36+
* Added support for 16-bit divisions.
37+
- LLVM/Clang: Updated to 13.0.1 (up from 8.0)
38+
- lmdb: Updated to 0.9.28 (up from 0.9.24)
39+
- lz4: Updated to 1.9.3 (up from 1.9.2)
40+
- NativeFileDialog: Updated to 1.2.0 (up from 1.1.6)
41+
- Nuklear: Updated to 4.09.0 (up from 4.01.0)
42+
- OpenAL Soft: Updated to 1.21.1 (up from 1.19.1)
43+
* Added `AL_SOFT_bformat_ex` extension.
44+
* Added `AL_SOFT_buffer_samples` extension.
45+
* Added `AL_SOFT_buffer_sub_data` extension.
46+
* Added `AL_SOFT_direct_channels_remix` extension.
47+
- OpenCL: Added support for OpenCL 3.0.
48+
- OpenVR: Updated to 1.16.8 (up from 1.6.10)
49+
- Opus: Added Opusfile & Libopusenc bindings (#634)
50+
- par: Added [par_octasphere](https://prideout.net/blog/octasphere/) bindings.
51+
- rpmalloc: Updated to 1.4.3 (up from 1.4.0)
52+
- Shaderc: Updated to 2021.3 (up from 2019.1)
53+
- stb
54+
* Updated `stb_dxt` to 1.12 (up from 1.08)
55+
* Updated `stb_easy_font` to 1.1 (up from 1.0)
56+
* Updated `stb_image` to 2.27 (up from 2.23)
57+
* Updated `stb_image_resize` to 0.97 (up from 0.96)
58+
* Updated `stb_image_write` to 1.16 (up from 1.13)
59+
* Updated `stb_perlin` to 0.5 (up from 0.4)
60+
* Updated `stb_rect_pack` to 1.01 (up from 1.00)
61+
* Updated `stb_truetype` to 1.26 (up from 1.22)
62+
* Updated `stb_vorbis` to 1.22 (up from 1.17)
63+
- tinyexr: Updated to 1.0.1 (up from 1.0.0 pre-release)
64+
- tinyfiledialogs: Updated to 3.8.8 (up from 3.3.9)
65+
- vma: Updated to 3.3.0-development (up from 2.2.0)
66+
- Vulkan: Updated to 1.2.198 (up from 1.1.121)
67+
* Includes Vulkan Video
68+
* Includes MoltenVK 1.1.5 (up from 1.0.36)
69+
- xxhash: Updated to 0.8.0 (up from 0.7.1)
70+
- Yoga: Updated to 1.19.0 (up from 1.14.0)
71+
- Zstd: Updated to 1.5.0 (up from 1.4.3)
72+
73+
#### Improvements
74+
75+
- macOS/Windows: Added support for ARM builds. (#601)
76+
* Maven classifier for macOS: `natives-macos-arm64`
77+
* Maven classifier for Windows: `natives-windows-arm64`
78+
- Linux: Shared libraries are now built with GCC 7.5 (up from GCC 4.8)
79+
- Generator: Struct member javadoc moved to the corresponding getter method.
80+
* There are links to the getter method in the class javadoc (`Layout` section) and in the javadoc of the corresponding setter and `.Buffer` accessors.
81+
* Makes it easier to navigate to the documentation of a particular member.
82+
- Generator: simplified stack allocation methods in `Struct` classes.
83+
* 4 new methods added, named `malloc` and `calloc`, without a "Stack" suffix.
84+
* 8 old methods with the "Stack" suffix are now deprecated, to be removed in LWJGL `3.4.0`.
85+
- Core: Replaced internal usages of dyncall with libffi.
86+
* This resolves a range of long-standing issues, mainly with upcalls (callbacks).
87+
* Single native callback handler used for all upcalls, regardless of signature. Arguments and return values handled Java-side (per callback type).
88+
* Improved upcall performance (before: JNI downcall per argument, after: simple memory accesses)
89+
* Support for structs returned by-value. (#283)
90+
- Core: Implemented overflow protection in text encoding methods.
91+
- Core: When LWJGL fails to resolve native libraries, it will now attempt to report native JAR files in the classpath with mismatching platform/architecture. (#587)
92+
- Core: The `SharedLibraryLoader` now prefers to extract natives to the working directory, over the user's home directory.
93+
- Core: Added version information to module descriptors. (#685)
94+
* The LWJGL version/build used will now be included in stacktraces of modular applications.
95+
- docs: The javadoc of callback classes/interfaces now includes a link to the corresponding `invoke` method, for better IDE navigation.
96+
- macOS: Shared libraries are now built with Xcode 11.3 (up from 10.0)
97+
- GLFW: Added overrides for internally loaded shared libraries.
98+
* Useful when there's a mismatch with the library loaded by LWJGL.
99+
* `GLFWNativeEGL.setEGLPath` & `GLFWNativeEGL.setGLESPath`
100+
* `GLFWNativeGLX.setPath`
101+
* `GLFWNativeNSGL.setFramework`
102+
* `GLFWNativeWGL.setPath`
103+
* `GLFWVulkan.setPath`
104+
- GLFW: There is now a single Linux native that supports both X11 and Wayland.
105+
* Use `glfwPlatformSupported(GLFW_PLATFORM_WAYLAND)` to test if Wayland is available.
106+
* Use `glfwInitHint(GLFW_PLATFORM, GLFW_PLATFORM_WAYLAND)` to enable the Wayland backend.
107+
- GL: Added support for OSMesa contexts. (#595)
108+
- GL/GLES/AL: Added `createCapabilities` overloads that accept an `IntFunction<PointerBuffer>`. Enables explicit management of the off-heap memory used by the capabilities instances.
109+
- GL/GLES/AL: When capabilities creation fails, the current thread/process capabilities state is no longer reset to null.
110+
- GL/GLES/AL/CL/EGL: Added `Configuration` options to forcibly disable specific extensions for debugging purposes. (#683)
111+
- OpenAL: Introduced `ALC::setCapabilities`. Rarely useful when opening multiple devices with different ALC capabilities. (#582)
112+
- Vulkan: Struct classes now include an additional `sType` setter that writes the appropriate struct type value. (#537)
113+
- Vulkan: Struct classes now include type-safe `pNext` setters, one for each struct type that is known to extend them.
114+
* These setters **prepend** the struct to the `pNext` chain, enabling cleaner code when chaining multiple structs.
115+
* Order does not matter, but do note that structs will be chained in the reverse order of the `pNext` calls.
116+
* Also be careful when the base struct is `malloc`ed, make sure to call `.pNext(NULL)` first, otherwise the last struct in the chain will point to invalid memory.
117+
118+
#### Fixes
119+
120+
- Generator: Native libraries are now initialized before constants. (#630)
121+
- Core: Fixed unsafe field reads in `MemoryUtil` setup code. (#632)
122+
- Core: The `SharedLibraryLoader` now prepends a `.` to `SHARED_LIBRARY_EXTRACT_DIRECTORY` when the target directory is not temporary.
123+
- Core: The `SharedLibraryLoader` will now load libraries in the correct `ClassLoader` when testing for [JDK-8195129](https://bugs.openjdk.java.net/browse/JDK-8195129). (#648)
124+
- Core: Changed the encoding of `dlopen` paths to UTF-8. (#691)
125+
- CUDA: Implemented missing `cuIpcOpenEventHandle`/`cuIpcOpenMemHandle` using libFFI.
126+
- EGL: Fixed nullability of `eglInitialize` arguments.
127+
- GLFW: Fixed main thread check. Setting `GLFW_CHECK_THREAD0` to `false` is now required for offscreen interop. (#538)
128+
- OpenCL: Added missing `errcode_ret` parameter to `clLinkProgram`. (#560)
129+
- OpenGL: Restored `GL_TEXTURE` in the core profile. (#573)
130+
- OpenGL: Added buffer object offset overloads to `GetQueryObject*` functions.
131+
- stb: Removed redundant `stb_image_resize` overloads. (#605)
132+
- Vulkan: Fixed GLFW configuration for MoltenVK. (#502)
133+
- Vulkan: Fixed `vkGetInstanceProcAddr` to work with `null` instance arguments.
134+
- Vulkan: Fixed unsigned arithmetic in `VK_VERSION_MAJOR` and `VK_VERSION_MINOR` macros.
135+
136+
#### Breaking Changes
137+
138+
```
139+
(B): binary incompatible change
140+
(S): source incompatible change
141+
```
142+
143+
- Linux: Shared libraries are now built on Ubuntu 18.04 (up from Ubuntu 16.04) (B)
144+
* GLIBC versions older than 2.14 are no longer supported. Some, but not all, LWJGL natives may require up to GLIBC 2.27.
145+
* Applications deployed on older systems must now build & bundle custom LWJGL natives. Contact LWJGL developers if you need assistance.
146+
- Removed deprecated methods that were marked for removal in LWJGL 3.3. (S)
147+
- Core: Users of the dyncall bindings must migrate to libffi. (S)
148+
- CUDA: Merged versioned classes into a single class that contains the entire functionality. (S)
149+
* The bindings still require CUDA 3.2 as the minimum version. There are runtime checks for functions introduced after 3.2.
150+
- Shaderc: The shaderc_spvc library has been removed since Shaderc 2020.4. Users may migrate to the new SPIRV-Cross bindings. (S)
151+
- Vulkan: All header boilerplate constants have been moved to `VK10`. (S)
152+
1153
### 3.2.3
2154

3155
_Released 2019 Sep 01_
@@ -86,11 +238,6 @@ This build includes the following changes:
86238

87239
#### Breaking Changes
88240

89-
```
90-
(B): binary incompatible change
91-
(S): source incompatible change
92-
```
93-
94241
- Core: The `Library.loadSystem` & `Library.loadNative` methods now require a module name parameter. **(S)**
95242
- Core: Removed `Consumer<T>` overloads from read-only structs with nested struct members. **(S)**
96243
- Core: `MemoryUtil.memFree(PointerBuffer)` changed to `memFree(CustomBuffer)`. **(B)**

0 commit comments

Comments
 (0)