diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 22125dbe1e..a5c37c425c 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -8,7 +8,7 @@ body: description: Please select the LWJGL version(s) on which the bug is reproducible. multiple: true options: - - 3.3.4 (snapshot) + - 3.3.4 - 3.3.3 - 3.3.2 - 3.3.1 @@ -49,7 +49,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 17.0.8 + placeholder: e.g. Zulu OpenJDK 21.0.4 validations: required: true - type: input diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88909da94f..d497a8f5f3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,7 @@ env: JAVA_HOME: jdk8 ANT_OPTS: -Xmx1G LWJGL_BUILD_TYPE: nightly + ZULU_BUILD: 80.0.17-ca-jdk8.0.422 jobs: cache-kotlinc: @@ -25,7 +26,7 @@ jobs: - name: Download JDK run: | mkdir jdk8 - curl https://cdn.azul.com/zulu/bin/zulu8.78.0.19-ca-jdk8.0.412-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 + curl https://cdn.azul.com/zulu/bin/zulu8.${ZULU_BUILD}-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 - name: Compile templates run: | git clone https://github.com/LWJGL-CI/OculusSDK.git ../OculusSDK @@ -89,7 +90,7 @@ jobs: run: | yum -y install libX11-devel libXt-devel gtk3-devel libdbus-1-dev mkdir jdk8 - curl -L https://cdn.azul.com/zulu/bin/zulu8.78.0.19-ca-jdk8.0.412-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 + curl -L https://cdn.azul.com/zulu/bin/zulu8.${ZULU_BUILD}-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 - name: Restore kotlinc output uses: actions/cache/restore@v3 with: @@ -180,7 +181,7 @@ jobs: DEBIAN_FRONTEND=noninteractive sudo apt-get -yq update DEBIAN_FRONTEND=noninteractive sudo apt-get -yq install ant awscli curl zstd gcc-${{matrix.TRIPLET}} g++-${{matrix.TRIPLET}} libc6-dev-${{matrix.CROSS_ARCH}}-cross make mkdir jdk8 - curl -L https://cdn.azul.com/zulu/bin/zulu8.78.0.19-ca-jdk8.0.412-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 + curl -L https://cdn.azul.com/zulu/bin/zulu8.${ZULU_BUILD}-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 - name: Prepare cross-compilation for ${{matrix.CROSS_ARCH}} run: | sudo sed -i 's/deb mirror/deb [arch=amd64,i386] mirror/' /etc/apt/sources.list @@ -223,7 +224,7 @@ jobs: - name: Install dependencies run: | mkdir jdk8 - curl -L https://cdn.azul.com/zulu/bin/zulu8.78.0.19-ca-jdk8.0.412-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 + curl -L https://cdn.azul.com/zulu/bin/zulu8.${ZULU_BUILD}-linux_x64.tar.gz | tar xz -C jdk8 --strip-components 1 - name: Restore kotlinc output uses: actions/cache/restore@v3 with: @@ -275,7 +276,7 @@ jobs: - name: Install dependencies run: | mkdir jdk8 - curl -L https://cdn.azul.com/zulu/bin/zulu8.78.0.19-ca-jdk8.0.412-macosx_${{matrix.JDK}}.tar.gz | tar xz -C jdk8 --strip-components 1 + curl -L https://cdn.azul.com/zulu/bin/zulu8.${ZULU_BUILD}-macosx_${{matrix.JDK}}.tar.gz | tar xz -C jdk8 --strip-components 1 - name: Restore kotlinc output uses: actions/cache/restore@v3 with: @@ -348,9 +349,9 @@ jobs: if: contains(matrix.ARCH, 'arm') != true - name: Install dependencies run: | - Invoke-WebRequest https://cdn.azul.com/zulu/bin/zulu8.78.0.19-ca-jdk8.0.412-win_x64.zip -OutFile jdk.zip + Invoke-WebRequest https://cdn.azul.com/zulu/bin/zulu8.$Env:ZULU_BUILD-win_x64.zip -OutFile jdk.zip Expand-Archive -Path jdk.zip -DestinationPath .\ - Rename-Item zulu8.78.0.19-ca-jdk8.0.412-win_x64 jdk8 + Rename-Item zulu8.$Env:ZULU_BUILD-win_x64 jdk8 shell: pwsh - name: Restore kotlinc output uses: actions/cache/restore@v3 @@ -368,9 +369,9 @@ jobs: - name: Switch to x86 JDK run: | Remove-Item -Recurse jdk8 - Invoke-WebRequest https://cdn.azul.com/zulu/bin/zulu8.78.0.19-ca-jdk8.0.412-win_i686.zip -OutFile jdk.zip + Invoke-WebRequest https://cdn.azul.com/zulu/bin/zulu8.$Env:ZULU_BUILD-win_i686.zip -OutFile jdk.zip Expand-Archive -Path jdk.zip -DestinationPath .\ - Rename-Item zulu8.78.0.19-ca-jdk8.0.412-win_i686 jdk8 + Rename-Item zulu8.$Env:ZULU_BUILD-win_i686 jdk8 shell: pwsh if: matrix.ARCH == 'x86' - name: Build native # TODO: remove old LLVM workaround, see https://github.com/actions/runner-images/issues/10001 diff --git a/doc/notes/3.3.4.md b/doc/notes/3.3.4.md index d00a8b14a8..19496a652a 100644 --- a/doc/notes/3.3.4.md +++ b/doc/notes/3.3.4.md @@ -1,6 +1,6 @@ ### 3.3.4 -_Not Released Yet_ +_Release 2024 Jul 17_ This build includes the following changes: diff --git a/doc/notes/README.md b/doc/notes/README.md index 119cb0f3bf..cde4062ca0 100644 --- a/doc/notes/README.md +++ b/doc/notes/README.md @@ -4,8 +4,8 @@ ### Version History -* YYYY-MM-DD [3.3.4](3.3.4.md) (work in progress) -* 2023-09-16 [3.3.3](3.3.3.md) (latest) +* 2024-07-17 [3.3.4](3.3.4.md) (latest) +* 2023-09-16 [3.3.3](3.3.3.md) * 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) diff --git a/doc/notes/full.md b/doc/notes/full.md index 52ddee33be..bccfe5e3e5 100644 --- a/doc/notes/full.md +++ b/doc/notes/full.md @@ -1,3 +1,84 @@ +### 3.3.4 + +_Release 2024 Jul 17_ + +This build includes the following changes: + +#### Bindings + +- Added [msdfgen](https://github.com/Chlumsky/msdfgen) bindings. +- Assimp: Updated to 5.4.2 (up from 5.2.5) +- bgfx: Updated to API version 128 (up from 122) + * Windows: support for the Direct3D 9 backend has been dropped. +- CUDA: Updated to 12.5.1 (up from 12.1.0) +- FMOD: Updated to 2.02.21 (up from 2.02.16) +- glfw: Updated to 3.4 (up from 3.3.8) + * Added `GLFW_UNLIMITED_MOUSE_BUTTONS`, `GLFW_SCALE_FRAMEBUFFER`, `GLFW_WIN32_SHOWDEFAULT`. + * Added `glfwGetWindowTitle`, `glfwGetCocoaView`. +- glfw: Added experimental support for IME. (#946) + * Added `GLFW_SOFT_FULLSCREEN`, `GLFW_IME`, `GLFW_MANAGE_PREEDIT_CANDIDATE` and `GLFW_X11_ONTHESPOT`. + * Added `glfwGetPreeditCursorRectangle`, `glfwSetPreeditCursorRectangle`, `glfwResetPreeditText`, `glfwGetPreeditCandidate`. + * Added `glfwSetPreeditCallback`, `glfwSetIMEStatusCallback`, `glfwSetPreeditCandidateCallback`. +- harfbuzz: Updated to 9.0.0 (up from 8.2.0) +- hwloc: Updated to 2.11.1 (up from 2.9.3) +- KTX: Updated to 4.3.2 (up from 4.3.0-alpha3) +- libffi: Updated to 3.4.6 (up from 3.4.4) +- liburing: Updated to 2.6 (up from 2.4) +- lmdb: Updated to 0.9.32 (up from 0.9.31) +- LLVM/Clang: Updated to 18.1.7 (up from 16.0.0) +- meshoptimizer: Updated to 0.21 (up from 0.19) +- NativeFileDialog: Update to 1.2.0 (up from 1.1.0) +- Nuklear: Updated to 4.12.1 (up from 4.10.6) +- OpenVR: Updated to 2.5.1 (up from 1.26.7) + * Added support for Linux ARM64 +- OpenXR: Updated to 1.1.38 (up from 1.0.29) +- Opus: Updated to 1.5.2 (up from 1.4.0) +- rpmalloc: Updated to 1.4.5 (up from 1.4.4) +- Shaderc: Updated to 2024.2 (up from 2023.6) +- SPIRV-Cross: Updated to 0.61.0 (up from 0.57.0) +- stb + * Updated `stb_image` to 2.30 (up from 2.28) + * Updated `stb_image_resize` to 2.09 (up from 0.97) +- tinyexr: Updated to 1.0.8 (up from 1.0.7) +- tinyfiledialogs: Updated to 3.18.1 (up from 3.13.3) +- vma: Updated to 3.1.0 (up from 3.0.1) +- Vulkan: Updated to 1.3.289 (up from 1.3.264) + * Includes MoltenVK 1.2.10 (up from 1.2.5) +- Yoga: Updated to 3.1.0 (up from 2.0.0) +- Zstd: Updated to 1.5.6 (up from 1.5.5) + +#### Improvements + +- FreeBSD: Added support for the FreeBSD operating system, x64 architecture. (#421) + * Maven classifier: `freebsd` +- Linux: Added support for the PowerPC 64 LE architecture. (#495) + * Maven classifier: `linux-ppc64le` +- Linux: Added support for the RISC-V 64 architecture. (#890) + * Maven classifier: `linux-riscv64` +- Linux: ARM/PowerPC/RISC-V shared libraries are now built with GCC 11 (up from GCC 7). +- Windows: Shared libraries are now built with Clang/LLVM (clang-cl toolset) when possible. +- Vulkan: Made `VkMemoryRequirements` mutable for the `vmaAllocateMemory(Pages)` functions. (#937) + +#### Fixes + +- Core: Fixed callback wrapper memory leak with the CHM closure registry. (#927) +- Core: The `SharedLibraryLoader` will now always test if `System::load` works before choosing the extract path. (#987) +- bgfx: Fixed `bgfx_is_frame_buffer_valid` to accept `BGFXAttachment.Buffer`. (#993) +- JAWT: Fixed `JAWT_MACOSX_USE_CALAYER` value. +- LLVM: Fixed `LLVMGetBufferStart` to return `ByteBuffer` instead of `String`. (#934) +- LLVM: Fixed `LookupIntrinsicID` to return `unsigned` instead of `void`. (#950) +- Nuklear: Fixed auto-sizing of `nk_stroke_polyline`, `nk_stroke_polygon`, `nk_fill_polygon` buffers. (#978) +- tinyfd: The `aDefaultPath` parameter of `tinyfd_selectFolderDialog` is now nullable. (#922) + +#### Breaking Changes + +- Linux: ARM/PowerPC/RISC-V shared libraries now require GLIBC version 2.35 (up from 2.27) +- macOS: LWJGL now requires macOS 10.11/El Capitan or later (up from 10.9/Mavericks) +- meshoptimizer: Fixed autosizing issues. (#981) + * For consistency across the API, auto-sizing of some parameters was removed and the corresponding count parameters were made explicit. + * Auto-sizing is now always based on input parameters, the destination buffers are only checked for enough capacity. +- stb: `stb_image_resize2.h` replaced `stb_image_resize.h` with a new API. + ### 3.3.3 _Released 2023 Sep 16_ diff --git a/doc/notes/latest.md b/doc/notes/latest.md index 08dab7953d..19496a652a 100644 --- a/doc/notes/latest.md +++ b/doc/notes/latest.md @@ -1,61 +1,80 @@ -### 3.3.3 +### 3.3.4 -_Released 2023 Sep 16_ +_Release 2024 Jul 17_ 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) +- Added [msdfgen](https://github.com/Chlumsky/msdfgen) bindings. +- Assimp: Updated to 5.4.2 (up from 5.2.5) +- bgfx: Updated to API version 128 (up from 122) + * Windows: support for the Direct3D 9 backend has been dropped. +- CUDA: Updated to 12.5.1 (up from 12.1.0) +- FMOD: Updated to 2.02.21 (up from 2.02.16) +- glfw: Updated to 3.4 (up from 3.3.8) + * Added `GLFW_UNLIMITED_MOUSE_BUTTONS`, `GLFW_SCALE_FRAMEBUFFER`, `GLFW_WIN32_SHOWDEFAULT`. + * Added `glfwGetWindowTitle`, `glfwGetCocoaView`. +- glfw: Added experimental support for IME. (#946) + * Added `GLFW_SOFT_FULLSCREEN`, `GLFW_IME`, `GLFW_MANAGE_PREEDIT_CANDIDATE` and `GLFW_X11_ONTHESPOT`. + * Added `glfwGetPreeditCursorRectangle`, `glfwSetPreeditCursorRectangle`, `glfwResetPreeditText`, `glfwGetPreeditCandidate`. + * Added `glfwSetPreeditCallback`, `glfwSetIMEStatusCallback`, `glfwSetPreeditCandidateCallback`. +- harfbuzz: Updated to 9.0.0 (up from 8.2.0) +- hwloc: Updated to 2.11.1 (up from 2.9.3) +- KTX: Updated to 4.3.2 (up from 4.3.0-alpha3) +- libffi: Updated to 3.4.6 (up from 3.4.4) +- liburing: Updated to 2.6 (up from 2.4) +- lmdb: Updated to 0.9.32 (up from 0.9.31) +- LLVM/Clang: Updated to 18.1.7 (up from 16.0.0) +- meshoptimizer: Updated to 0.21 (up from 0.19) +- NativeFileDialog: Update to 1.2.0 (up from 1.1.0) +- Nuklear: Updated to 4.12.1 (up from 4.10.6) +- OpenVR: Updated to 2.5.1 (up from 1.26.7) + * Added support for Linux ARM64 +- OpenXR: Updated to 1.1.38 (up from 1.0.29) +- Opus: Updated to 1.5.2 (up from 1.4.0) +- rpmalloc: Updated to 1.4.5 (up from 1.4.4) +- Shaderc: Updated to 2024.2 (up from 2023.6) +- SPIRV-Cross: Updated to 0.61.0 (up from 0.57.0) +- stb + * Updated `stb_image` to 2.30 (up from 2.28) + * Updated `stb_image_resize` to 2.09 (up from 0.97) +- tinyexr: Updated to 1.0.8 (up from 1.0.7) +- tinyfiledialogs: Updated to 3.18.1 (up from 3.13.3) +- vma: Updated to 3.1.0 (up from 3.0.1) +- Vulkan: Updated to 1.3.289 (up from 1.3.264) + * Includes MoltenVK 1.2.10 (up from 1.2.5) +- Yoga: Updated to 3.1.0 (up from 2.0.0) +- Zstd: Updated to 1.5.6 (up from 1.5.5) #### Improvements -- Core: LWJGL is now compatible with GraalVM Native Image. (#875) +- FreeBSD: Added support for the FreeBSD operating system, x64 architecture. (#421) + * Maven classifier: `freebsd` +- Linux: Added support for the PowerPC 64 LE architecture. (#495) + * Maven classifier: `linux-ppc64le` +- Linux: Added support for the RISC-V 64 architecture. (#890) + * Maven classifier: `linux-riscv64` +- Linux: ARM/PowerPC/RISC-V shared libraries are now built with GCC 11 (up from GCC 7). +- Windows: Shared libraries are now built with Clang/LLVM (clang-cl toolset) when possible. +- Vulkan: Made `VkMemoryRequirements` mutable for the `vmaAllocateMemory(Pages)` functions. (#937) #### 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. +- Core: Fixed callback wrapper memory leak with the CHM closure registry. (#927) +- Core: The `SharedLibraryLoader` will now always test if `System::load` works before choosing the extract path. (#987) +- bgfx: Fixed `bgfx_is_frame_buffer_valid` to accept `BGFXAttachment.Buffer`. (#993) +- JAWT: Fixed `JAWT_MACOSX_USE_CALAYER` value. +- LLVM: Fixed `LLVMGetBufferStart` to return `ByteBuffer` instead of `String`. (#934) +- LLVM: Fixed `LookupIntrinsicID` to return `unsigned` instead of `void`. (#950) +- Nuklear: Fixed auto-sizing of `nk_stroke_polyline`, `nk_stroke_polygon`, `nk_fill_polygon` buffers. (#978) +- tinyfd: The `aDefaultPath` parameter of `tinyfd_selectFolderDialog` is now nullable. (#922) + +#### Breaking Changes + +- Linux: ARM/PowerPC/RISC-V shared libraries now require GLIBC version 2.35 (up from 2.27) +- macOS: LWJGL now requires macOS 10.11/El Capitan or later (up from 10.9/Mavericks) +- meshoptimizer: Fixed autosizing issues. (#981) + * For consistency across the API, auto-sizing of some parameters was removed and the corresponding count parameters were made explicit. + * Auto-sizing is now always based on input parameters, the destination buffers are only checked for enough capacity. +- stb: `stb_image_resize2.h` replaced `stb_image_resize.h` with a new API. \ No newline at end of file