JDK 17 development

Related tags

Profilers jdk17
Overview
Comments
  • 8269865: Async UL needs to handle ERANGE on exceeding SEM_VALUE_MAX

    8269865: Async UL needs to handle ERANGE on exceeding SEM_VALUE_MAX

    This patch solved the sempahore overflow issue with errno ERANGE or EOVERFLOW. Previously, we have asymmetric p/v operations for semaphore _sem. Each iteration only decrements _sem 1 but dequeues N messages. If logging threads keep preempting async logging thread, it may cause the value of _sem accumulates until overflow!

    We decide to ditch counting semaphore. os::PlatformMonitor can be used as low-level combination of Mutex/CondVar. It may work if we simply ignore Semaphore::signal failure due to value overflow, but we have to pollute Semaphore interface. Also it seems that MacOS semaphore which is non-posix doesn't fail in this case.


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269865: Async UL needs to handle ERANGE on exceeding SEM_VALUE_MAX

    Reviewers

    • David Holmes (@dholmes-ora - Reviewer) ⚠️ Review applies to 0816eb2dd2aef357b33aa4e7eb8038acf1147a8f
    • Patricio Chilano Mateo (@pchilano - Committer) ⚠️ Review applies to 0816eb2dd2aef357b33aa4e7eb8038acf1147a8f

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/216/head:pull/216
    $ git checkout pull/216

    Update a local copy of the PR:
    $ git checkout pull/216
    $ git pull https://git.openjdk.java.net/jdk17 pull/216/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 216

    View PR using the GUI difftool:
    $ git pr show -t 216

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/216.diff

    integrated hotspot-runtime 
    opened by navyxliu 48
  • 8269568: JVM crashes when running VectorMask query tests

    8269568: JVM crashes when running VectorMask query tests

    This is a follow-up patch for [1]. When we are trying to add the VectorMask query implementation for Arm NEON, we found the jtreg tests for VectorMask.trueCount/firstTrue/lastTrue is not effective. The tests failure cannot be reported as expected. The main reason is that the Vector API methods are not hot enough to be compiled by C2 compiler. Wrap the main test codes inside a loop can make the tests effective.

    With the tests taking effect, we can see a JVM crash due to the following assertion:

      vector/src/hotspot/share/opto/vectornode.hpp:879), pid=168241, tid=168257
      # Error: assert(mask->Opcode() == Op_VectorStoreMask) failed
    

    The mask input might be other vector nodes like "LoadVectorNode", since there is an optimization for "VectorStoreMask":

      VectorStoreMask (VectorLoadMask value) ==> value
    

    Changing the code to check whether its element basic type is "T_BOOLEAN" is more reasonable.

    [1] https://bugs.openjdk.java.net/browse/JDK-8256973


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269568: JVM crashes when running VectorMask query tests

    Reviewers

    • Paul Sandoz (@PaulSandoz - Reviewer) ⚠️ Review applies to 8e3fcfaef51b2f555fec4bbe7eb53412696f8555
    • Jie Fu (@DamonFool - Reviewer) ⚠️ Review applies to 8e3fcfaef51b2f555fec4bbe7eb53412696f8555
    • Jatin Bhateja (@jatin-bhateja - Committer)
    • Sandhya Viswanathan (@sviswa7 - Reviewer)

    Contributors

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/168/head:pull/168
    $ git checkout pull/168

    Update a local copy of the PR:
    $ git checkout pull/168
    $ git pull https://git.openjdk.java.net/jdk17 pull/168/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 168

    View PR using the GUI difftool:
    $ git pr show -t 168

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/168.diff

    integrated hotspot-compiler 
    opened by XiaohongGong 40
  • 8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998

    8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998

    See the bug report for more details.

    I believe the JDK-8191998 change introduced a slight regression, where the speculative type join may empty the type. It would then crash on assert in fastdebug builds, or miscompile the null-check to true in release bits. New test captures both failure modes.

    This is not a recent regression, but a regression nevertheless, so I would like to have that fix in JDK 17. Please review carefully, or speak up if you want to move it to JDK 18+ and then backport later.

    Additional testing:

    • [x] New test fails without the patch, passes with it
    • [x] Linux x86_64 fastdebug tier1

    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998

    Reviewers

    • Vladimir Kozlov (@vnkozlov - Reviewer)
    • Igor Veresov (@veresov - Reviewer) ⚠️ Review applies to 86b6f2cfa19356ffb505296531749171833d10aa
    • Vladimir Ivanov (@iwanowww - Reviewer) ⚠️ Review applies to 02e01bbd93717110f39ef4c57b6ea7deeeb82171

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/169/head:pull/169
    $ git checkout pull/169

    Update a local copy of the PR:
    $ git checkout pull/169
    $ git pull https://git.openjdk.java.net/jdk17 pull/169/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 169

    View PR using the GUI difftool:
    $ git pr show -t 169

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/169.diff

    integrated hotspot-compiler 
    opened by shipilev 31
  • 8266313: (JEP-356) - RandomGenerator spec implementation requirements tightly coupled to JDK internal classes

    8266313: (JEP-356) - RandomGenerator spec implementation requirements tightly coupled to JDK internal classes

    The wording of the @implSpec referred to internal methods in the description. The patch rewords the @implSpec to be more descriptive of the algorithm than the methods used.


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8266313: (JEP-356) - RandomGenerator spec implementation requirements tightly coupled to JDK internal classes

    Reviewers

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/151/head:pull/151
    $ git checkout pull/151

    Update a local copy of the PR:
    $ git checkout pull/151
    $ git pull https://git.openjdk.java.net/jdk17 pull/151/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 151

    View PR using the GUI difftool:
    $ git pr show -t 151

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/151.diff

    integrated core-libs 
    opened by JimLaskey 29
  • 8269335: Unable to load svml library

    8269335: Unable to load svml library

    The OpenJDK 17 early access build from jdk.java.net fails to load svml library. We need to give full svml library path to dll_load call for the load to succeed.,


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    Reviewers

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/143/head:pull/143
    $ git checkout pull/143

    Update a local copy of the PR:
    $ git checkout pull/143
    $ git pull https://git.openjdk.java.net/jdk17 pull/143/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 143

    View PR using the GUI difftool:
    $ git pr show -t 143

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/143.diff

    integrated hotspot-runtime hotspot-compiler 
    opened by sviswa7 25
  • 8270085: Suspend during block transition may deadlock if lock held

    8270085: Suspend during block transition may deadlock if lock held

    Hi all,

    The following patch fixes deadlocks issues that could occur when checking for suspension while holding VM locks. See the bug description for a concrete case. The solution is to avoid checking for suspend requests when using the TBIVM wrapper. The original patch was actually written by @robehn(now on vacations) and I only made small changes.

    Tested in mach5 tiers1-7. I also verified that the new added test SuspendBlocked.java deadlocks with the current bits and passes with this patch.

    Thanks, 
Patricio


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8270085: Suspend during block transition may deadlock if lock held

    Reviewers

    Contributors

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/257/head:pull/257
    $ git checkout pull/257

    Update a local copy of the PR:
    $ git checkout pull/257
    $ git pull https://git.openjdk.java.net/jdk17 pull/257/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 257

    View PR using the GUI difftool:
    $ git pr show -t 257

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/257.diff

    integrated hotspot-runtime 
    opened by pchilano 21
  • 8269697: JNI_GetPrimitiveArrayCritical() should not accept object array

    8269697: JNI_GetPrimitiveArrayCritical() should not accept object array

    GetPrimitiveArrayCritical() is supposed to only be used with primitive array types, but nothing prevents current implementation from accepting object arrays (please see attached test case in bug).

    My purposed fix is not very friendly, it crashes JVM if a none primitive array is passed in, but I am sure what to expect in this scenario.

    Specification people, please comment. Thanks!


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269697: JNI_GetPrimitiveArrayCritical() should not accept object array

    Reviewers

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/185/head:pull/185
    $ git checkout pull/185

    Update a local copy of the PR:
    $ git checkout pull/185
    $ git pull https://git.openjdk.java.net/jdk17 pull/185/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 185

    View PR using the GUI difftool:
    $ git pr show -t 185

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/185.diff

    ready rfr hotspot 
    opened by zhengyu123 21
  • 8269825: [TESTBUG] Missing testing for x86 KNL platforms

    8269825: [TESTBUG] Missing testing for x86 KNL platforms

    Knights family of X86 Intel CPU (KNL) does not support some of avx512 features (AVX512VL/BW) and have other restrictions. We may not have such kind of machines in our testing environment and may miss bugs as JBS history shows (look recent fixes for KNL). On other hand we have some Windows VM instances which seem emulate KNL configuration and limit avx512 instructions on CPU which supports full set. Recent bug JDK-8269775 shows such example. I suggest to add -XX:+UseKNLSetting x86 diagnostic flag to emulate KNL settings in HotSpot VM to test such configuration.


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269825: [TESTBUG] Missing testing for x86 KNL platforms

    Reviewers

    • Dean Long (@dean-long - Reviewer) ⚠️ Review applies to 9466fb97c61dccd49212119ad9d87c6b32939c7c
    • jbhateja - Committer ⚠️ Added manually

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/205/head:pull/205
    $ git checkout pull/205

    Update a local copy of the PR:
    $ git checkout pull/205
    $ git pull https://git.openjdk.java.net/jdk17 pull/205/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 205

    View PR using the GUI difftool:
    $ git pr show -t 205

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/205.diff

    integrated hotspot hotspot-compiler 
    opened by vnkozlov 20
  • JDK-8269150 UnicodeReader not translating \u005c\\u005d to \\]

    JDK-8269150 UnicodeReader not translating \u005c\\u005d to \\]

    This issue relates to Unicode escapes, described in section 3.3 of the JLS. javac interprets Unicode escapes during the reading of ASCII characters from source. Later on, javac interprets escape sequences, described in section 3.7 of the JLS, during the tokenization of character literals, string literals, and text blocks. Escape sequences are only indirectly affected by this bug.

    During reading, a normal backslash (that is, the ASCII \ character, not the corresponding Unicode escape \u005c) followed by another normal backslash is treated collectively as a pair of backslash characters. No further interpretation is done. This means that if a normal backslash immediately precedes the sequence \ u A B C D which would "normally" be interpreted as an Unicode escape, then the interpretation of that sequence as a Unicode escape is suppressed.

    For example, the sequence \u2022 would be interpreted as the character, whereas \\u2022 would be interpreted as the seven characters \ \ u 2 0 2 2.

    An issue arises when Java developers choose to use a Unicode escape backslash \u005c in their source code, instead of a normal backslash. Prior to JDK 16, if the Unicode escape backslash was followed by a second Unicode escape, then the second Unicode escape was always interpreted. The normal backslash at the beginning of the second Unicode escape (immediately followed by u) was not paired with the preceding Unicode escape backslash. Elsewise, any following normal backslash will be paired with the \u005c.

    For example, the sequence \u005c\u2022 would be interpreted as \ and , whereas \u005c\tXYZ would be interpreted as \ \ t X Y Z.

    The bug in JDK 16 ignored \u005c as having any effect on Unicode interpretation. Using the example from compiler-dev discussions, \u005c\\u005d :

    • Prior to JDK 16, it was interpreted as \ \ ]
    • JDK 16 interpreted it as \ \ \ u 0 0 5 d which would produce a syntax error downstream in the lexer because the escape sequence \u is invalid.

    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269150: UnicodeReader not translating \u005c\u005d to \]

    Reviewers

    • Jonathan Gibbons (@jonathan-gibbons - Reviewer) ⚠️ Review applies to 67efad992c03de1b7d3556e6b4df53f0ce2662b1
    • Jan Lahoda (@lahodaj - Reviewer) ⚠️ Review applies to 67efad992c03de1b7d3556e6b4df53f0ce2662b1
    • Joe Darcy (@jddarcy - Reviewer)

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/126/head:pull/126
    $ git checkout pull/126

    Update a local copy of the PR:
    $ git checkout pull/126
    $ git pull https://git.openjdk.java.net/jdk17 pull/126/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 126

    View PR using the GUI difftool:
    $ git pr show -t 126

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/126.diff

    integrated compiler 
    opened by JimLaskey 20
  • 8269230: C2: main loop in micro benchmark never executed

    8269230: C2: main loop in micro benchmark never executed

    The benchmark loop is roughly:

    for (int i = 0; i < limit; i++) { if (!(i < max_jint && i > min_jint)) { uncommon_trap(); } }

    which IfNode::fold_compares() tranforms to:

    for (int i = 0; i < limit; i++) { if (!(i - min_jint - 1 <u -2)) { uncommon_trap(); } }

    Range elimination then adjusts loop limits so the unsigned comparison can be removed. The new limit is:

    min(limit, max(-2 + min_jint + 1, min_jint)) = min(limit, min_jint) = min_jint

    and the main loop is never executed.

    The logic that protects against overflows during range check elimination is what causes the main loop to never be executed. As a fix, I propose delaying IfNode::fold_compares() if the resulting test compares with a potential negative number which could then cause RC overflow code to trigger. I think that would preserve the most interesting cases for IfNode::fold_compares() when it comes to range check elimination:

    i >= 0 && i < array.length


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269230: C2: main loop in micro benchmark never executed

    Reviewers

    Contributors

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/156/head:pull/156
    $ git checkout pull/156

    Update a local copy of the PR:
    $ git checkout pull/156
    $ git pull https://git.openjdk.java.net/jdk17 pull/156/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 156

    View PR using the GUI difftool:
    $ git pr show -t 156

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/156.diff

    integrated hotspot-compiler 
    opened by rwestrel 19
  • 8269240: java/foreign/stackwalk/TestAsyncStackWalk.java test failed with concurrent GC

    8269240: java/foreign/stackwalk/TestAsyncStackWalk.java test failed with concurrent GC

    This patch rewrites the prologue and epilogue of panama upcalls, in order to fix the test failure from the title.

    Previously, we did a call to potentially attach the current thread to the VM, and then afterwards did the same suspend and stack reguard checks that we do on the back-edge of a native downcall. Then, on the back edge of the upcall we did another conditional call to detach the thread.

    The suspend and reguard checks on the front-edge are incorrect, so I've changed the 2 calls to mimic what is done by JavaCallWrapper instead (with attach and detach included), and removed the old suspend and stack reguard checks.

    FWIW, this removes the JavaFrameAnchor save/restore MacroAssembler code. This is now written in C++. Also, MacroAssembler code was added to save/restore the result of the upcall around the call on the back-edge, which was previously missing. Since the new code allocates a handle block as well, I've added handling for those oops to frame & OptimizedUpcallBlob.

    Testing: local running of jdk_foreign on Windows and Linux (WSL). Tier 1-3


    Progress

    • [x] Change must not contain extraneous whitespace
    • [x] Commit message must refer to an issue
    • [x] Change must be properly reviewed

    Issue

    • JDK-8269240: java/foreign/stackwalk/TestAsyncStackWalk.java test failed with concurrent GC

    Reviewers

    • Vladimir Ivanov (@iwanowww - Reviewer) ⚠️ Review applies to c90416f52042813ef2c1a1c35d308fc631f77b2f
    • David Holmes (@dholmes-ora - Reviewer)

    Reviewing

    Using git

    Checkout this PR locally:
    $ git fetch https://git.openjdk.java.net/jdk17 pull/149/head:pull/149
    $ git checkout pull/149

    Update a local copy of the PR:
    $ git checkout pull/149
    $ git pull https://git.openjdk.java.net/jdk17 pull/149/head

    Using Skara CLI tools

    Checkout this PR locally:
    $ git pr checkout 149

    View PR using the GUI difftool:
    $ git pr show -t 149

    Using diff file

    Download this PR as a diff file:
    https://git.openjdk.java.net/jdk17/pull/149.diff

    integrated hotspot-runtime hotspot-gc core-libs 
    opened by JornVernee 19
Owner
OpenJDK
OpenJDK
One file java script for visualizing JDK flight recorder execution logs as flamegraphs without any dependencies except Java and a browser.

Flamegraph from JFR logs Simple one file Java script to generate flamegraphs from Java flight recordings without installing Perl and the Brendan Gregg

Billy Sjöberg 17 Oct 2, 2022
Fork of tagtraum industries' GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Sun's / Oracle's java 1.6+ garbage collector logs (including G1 collector)

GCViewer 1.36 GCViewer is a little tool that visualizes verbose GC output generated by Sun / Oracle, IBM, HP and BEA Java Virtual Machines. It is free

null 4.1k Jan 4, 2023
JDK 17 development

Welcome to the JDK! For build instructions please see the online documentation, or either of these files: doc/building.html (html version) doc/buildin

OpenJDK 135 Dec 8, 2022
JDK main-line development

Welcome to the JDK! For build instructions please see the online documentation, or either of these files: doc/building.html (html version) doc/buildin

OpenJDK 14.8k Dec 29, 2022
Provides additional date-time classes that complement those in JDK 8

ThreeTen-Extra ThreeTen-Extra provides additional date-time classes that complement those in JDK 8. Not every piece of date/time logic is destined for

ThreeTen 361 Jan 8, 2023
JCTools - Concurrency tools currently missing from the JDK.

JCTools Java Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK: SPSC/MPSC/SPMC/

null 3.1k Dec 28, 2022
Alibaba Dragonwell8 JDK

Alibaba Dragonwell8 User Guide Alibaba Dragonwell8 Release Notes Introduction Over the years, Java has proliferated in Alibaba. Many applications are

Alibaba 3.8k Dec 30, 2022
Automon combines the power of AOP (AspectJ) with monitoring or logging tools you already use to declaratively monitor your Java code, the JDK, and 3rd party libraries.

Automon Automon combines the power of AOP (AspectJ) with monitoring tools or logging tools that you already use to declaratively monitor the following

Steve Souza 561 Nov 27, 2022
One file java script for visualizing JDK flight recorder execution logs as flamegraphs without any dependencies except Java and a browser.

Flamegraph from JFR logs Simple one file Java script to generate flamegraphs from Java flight recordings without installing Perl and the Brendan Gregg

Billy Sjöberg 17 Oct 2, 2022
JDKMon - A little tool written in JavaFX that monitors your installed JDK's and inform you about updates

JDKMon JDKMon Home JDKMon is a little tool written in JavaFX that tries to detect all JDK's installed on your machine and will inform you about new up

Gerrit Grunwald 246 Jan 3, 2023
Log4Shell RCE exploit using a gadget class. Not dependent on an old JDK version to work.

Log4Shell RCE exploit using a gadget class. Not dependent on an old JDK version to work.

null 8 Jan 4, 2022
An exploration for running analytics on JDK Flight Recorder recordings

JFR Analytics An exploration for running analytics on JDK Flight Recorder recordings. There's two areas of interest: Pull-based SQL queries on JFR rec

ModiTect 53 Jan 3, 2023
JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.

Greetings, Java Hipster! Full documentation and information is available on our website at https://www.jhipster.tech/ Please read our guidelines befor

JHipster 20.2k Jan 5, 2023
uniVocity-parsers is a suite of extremely fast and reliable parsers for Java. It provides a consistent interface for handling different file formats, and a solid framework for the development of new parsers.

Welcome to univocity-parsers univocity-parsers is a collection of extremely fast and reliable parsers for Java. It provides a consistent interface for

univocity 874 Dec 15, 2022
Desktop/Android/HTML5/iOS Java game development framework

Cross-platform Game Development Framework libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux

libgdx 20.9k Jan 1, 2023
A complete 3D game development suite written purely in Java.

jMonkeyEngine jMonkeyEngine is a 3-D game engine for adventurous Java developers. It’s open-source, cross-platform, and cutting-edge. 3.2.4 is the lat

jMonkeyEngine 3.3k Dec 31, 2022
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.

LWJGL - Lightweight Java Game Library 3 LWJGL (https://www.lwjgl.org) is a Java library that enables cross-platform access to popular native APIs usef

Lightweight Java Game Library 4k Dec 29, 2022