Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JBR-6144 enable building JBR with Vulkan #473

Open
wants to merge 1,295 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1295 commits
Select commit Hold shift + click to select a range
28c7c06
JBR-7194: extension-based filters in native file dialogs
trespasserw May 30, 2024
28d5a48
JBR-6357 JBR API v3
YaaZ May 30, 2024
e10a718
JBR-5615 add `sun.java2d.logDisplays` VM option
YaaZ May 28, 2024
c522d10
JBR-7170: implement FPS counters for metal using callbacks from MTLLa…
bourgesl May 24, 2024
0c6f40b
JBR-7170: added explicit @available for addPresentedHandler()
bourgesl Jun 1, 2024
86821bc
JBR-5761 Make error printing more robust during early stages of VM in…
mkartashev Jun 21, 2023
5f88060
Update README.md
vprovodin Jun 4, 2024
6f21e9a
update exclude lists removing lines related to fixed issues
vprovodin Jun 5, 2024
28e8bfd
JBR-7133: JBR API for IME replacement range on macOS
tsarn Jun 5, 2024
3aa4af5
Set jbr-api version to 1.0.0
sshelomentsev Jun 5, 2024
5f3adc0
JBR-7170: fixed NPE if peer is null
bourgesl Jun 7, 2024
5e41284
fixup! JBR-7263 introduce /othervm for the tests specifying -Djetbrai…
vprovodin Jun 7, 2024
d31f94e
update exclude list on results of 21.0.3_b479 test runs
vprovodin Jun 7, 2024
787003b
JBR-5405: implementation of direct raster loading for VolatileImage
artemm-bochkarev Oct 4, 2023
66ab8e1
Update README.md
vprovodin Jun 11, 2024
5dca5f2
JBR-6764: Work around IMEs breaking on macOS due to macOS JavaRuntime…
tsarn Jun 11, 2024
4851099
JBR-7157: Alt+Shift+Enter sends KEY_TYPED Event.
NikitkoCent Jun 10, 2024
e2ac617
JBR-4912 test moved from JBR repository
sshelomentsev Jun 12, 2024
74d1ac1
JBR-6764: Add null check on hostAdapterLocator
tsarn Jun 12, 2024
37bbc37
JBR-5063 macOS: SIGILL at [libsystem_kernel] __kill in java.lang.Ille…
avu Jun 11, 2024
5985ce3
JBR-6696: added MTLContext CVDisplayLink checks, improved MTLLayer dr…
bourgesl May 15, 2024
58ad1b6
Update README.md
vprovodin Jun 18, 2024
6e592d0
Update README.md
vprovodin Jun 18, 2024
ee18dc0
JBR-6696: fix drawableId usage + revert PrinterJob changes (non-appki…
vprovodin Jun 17, 2024
6fba60f
Update README.md
vprovodin Jun 24, 2024
81ccf42
JBR-4530: make opengl & metal handle colorMatching on non-SRGB profil…
bourgesl Jun 14, 2024
b20fc41
Update README.md
vprovodin Jun 26, 2024
9e83489
update exclude list on results of 21.0.3_b517.1 test runs
vprovodin Jul 2, 2024
3983303
JBR-4430 Fixed execution permissions on Linux
artemm-bochkarev Feb 29, 2024
77cfaa6
JBR-3323 Exclude parts of VM code from sanitizer checks
mkartashev Apr 16, 2021
23b58d6
JBR-6830 Poor performance with KDE Plasma 6 X11
mkartashev Jun 27, 2024
533016f
JBR-5405: supported BufImgSurfaceData
artemm-bochkarev Jul 9, 2024
1cf81db
JBR-6545 java/awt/Mixing/AWT_Mixing/JProgressPaneOverlapping.java fai…
avu Jul 16, 2024
559ca1c
JBR-7438 tune updateCursorImmediately method
dmitriimorskii Jun 5, 2024
bee8b1b
JBR-7449: Fix press-and-hold cancel keys not being swallowed by JBR
tsarn Jul 29, 2024
c43a75f
JBR-6588: JBR API for inspecting certain properties of KeyEvents
tsarn Jun 5, 2024
b6305b0
Fix rendering of HTML list dots + better vertical align for them.
yeswolf Sep 8, 2017
9d8776d
Update jbr-api version to 1.0.2
sshelomentsev Aug 2, 2024
5d39634
JBR-5956 Provide more details on assertion failure
mkartashev Aug 6, 2024
315ec26
JBR-6772 handled case with adding new timers after VM was suspended
dmitriimorskii Aug 7, 2024
f6d90ba
JBR-7460: fixed (macos) MTLTexturePool GC implementation to release t…
bourgesl Aug 9, 2024
694f73c
JBR-7426: Fix cancelling press-and-hold causing some future key event…
tsarn Aug 9, 2024
e267c17
JBR-7460: fixed (macos) MTLTexturePool GC implementation: minor synta…
bourgesl Aug 13, 2024
c0370e5
Update README.md
vprovodin Aug 14, 2024
ab3a5c0
JBR-5318 add Github workflow usage for pull requests pre-commit testing
sshelomentsev Feb 28, 2023
edf3afd
JBR-7517 build JBR artefacts with CDS archives
vprovodin Aug 19, 2024
8b3c474
JBR-7529: Explicitly check for press-and-hold in performKeyEquivalent
tsarn Aug 22, 2024
7bf99e6
JBR-7456 add regression test checking if implementations of all avail…
vprovodin Aug 23, 2024
1c0c39d
JBR-7532 upgrade alpine up to 3.14, specify versions of installing pa…
vprovodin Aug 23, 2024
1287bde
Update README.md
vprovodin Aug 26, 2024
0c73447
Initial version of WLToolkit and Vulkan support
avu Aug 20, 2021
4da23a3
Wayland: fixed build errors with older versions of Wayland
mkartashev Apr 18, 2023
bfc4b4f
Wayland: fixed build errors on macOS
mkartashev Apr 18, 2023
ea73900
Wayland: fix AWT initialization on macOS
mkartashev Apr 21, 2023
08fe074
JBR-5655 java/awt/Toolkit/Wayland/WaylandToolkit.java: WLToolkit not …
mkartashev May 19, 2023
3940125
JBR-5657 Wayland: sometimes there's a deadlock at the start
mkartashev May 20, 2023
deb2950
JBR-5658 Wayland: incorrect scaling of window content
mkartashev May 24, 2023
d3965bb
JBR-5666 Wayland: WLToolkit doesn't work with weston
mkartashev May 31, 2023
f2c9a5d
JBR-5661 Wayland: implement heavy-weight popup windows
mkartashev May 30, 2023
c2f0e62
JBR-5645 Provide basic classes for Vulkan rendering pipeline
avu Nov 11, 2022
c0d5bc8
JBR-5861 Wayland: minimum necessary stubs to run IDEA
mkartashev Jul 21, 2023
8cdee39
JBR-5896: Fix WLToolkit being instantiated twice
tsarn Aug 10, 2023
2e77081
JBR-5900: Fix deadlock when enabling the Wakefield extension
tsarn Aug 10, 2023
1b0628f
JBR-5676: Support emulating input events in Wakefield
tsarn Aug 15, 2023
e1b5017
Regenerate wakefield-client-protocol using an older wayland-scanner t…
tsarn Aug 17, 2023
31a44a1
JBR-5962 Wayland: fix the main event loop to allow for secondary queues
mkartashev Aug 21, 2023
41368ba
JBR-5963: Fix RobotKeyboard test and implement getLockingKeyState
tsarn Aug 24, 2023
935da40
JBR-5968 Wayland: support PERPIXEL_TRANSLUCENT
mkartashev Sep 2, 2023
c812ea5
JBR-6032 WLToolkit: Uninitialized WLComponentPeer sends paint requests
avu Sep 5, 2023
d042297
JBR-6032 WLToolkit: Uninitialized WLComponentPeer sends paint requests
avu Sep 6, 2023
39cf390
JBR-5973 Implement rendering of no-AA shapes with Vulkan pipeline
YaaZ Aug 8, 2023
1660fd0
JBR-6036 Wayland: Cannot invoke "java.awt.Component.getWidth()" becau…
mkartashev Sep 6, 2023
d2c26e8
JBR-6045 WLToolkit(Vulkan): Add options to select physical device
avu Sep 7, 2023
12c67ba
JBR-6045 WLToolkit(Vulkan): Add options to select physical device
avu Sep 8, 2023
ca16beb
JBR-6025 Wayland: miscellaneous small improvements
mkartashev Sep 4, 2023
3213338
JBR-5989 Wayland: jdk_awt_wayland test group
mkartashev Sep 6, 2023
a32146f
JBR-6071 Alpine Linux compilation: error: implicit declaration of fun…
mkartashev Sep 15, 2023
584de2e
JBR-5961 Wayland: can't switch between projects using menu
JB-Dmitry Sep 8, 2023
8dbc72b
JBR-5961 Wayland: can't switch between projects using menu
JB-Dmitry Sep 15, 2023
947c287
JBR-5961 Wayland: can't switch between projects using menu
JB-Dmitry Sep 25, 2023
7ec3543
JBR-6117 Wayland: JVM shutdown hang
mkartashev Sep 27, 2023
87fa066
JBR-6138 Wayland: utilize gtk_shell1 protocol to mark dialogs as modal
mkartashev Sep 28, 2023
e9a9108
JBR-6145 [Wayland toolkit] Popup windows aren't focusable
JB-Dmitry Sep 29, 2023
65d4aa1
JBR-5857 Wayland: implement clipboard support
mkartashev Jul 20, 2023
917b81b
JBR-6158 Cannot build jbr21 with wayland toolkit on wsl2
avu Oct 2, 2023
d1e3520
JBR-6144 Build JBR with Vulkan support
YaaZ Sep 29, 2023
2577e3d
JBR-6183 Wayland: clipboard-related exception in headless environment
mkartashev Oct 10, 2023
938107e
JBR-6207 Wayland: many popup windows positioned incorrectly
mkartashev Oct 17, 2023
1f5e2ac
JBR-5977 Wayland: make undecorated windows natively resizeable
mkartashev Oct 17, 2023
81ac257
JBR-6209 Wayland: popup windows cannot be moved
mkartashev Oct 18, 2023
e9e5379
JBR-6212 Wayland: app does not terminate upon Wayland protocol error
mkartashev Oct 31, 2023
d2e74e4
JBR-6253 Wayland: can't run in weston because of xdg_wm_base version 3
mkartashev Nov 1, 2023
c18e386
JBR-5965 Wayland: implement SplashScreen
dmitriimorskii Aug 9, 2023
49d4804
JBR-5678: Refactor Wayland keyboard support
tsarn Nov 10, 2023
6596df7
JBR-6276 Wayland: WLToolkit logs too much
mkartashev Nov 10, 2023
7c6b166
JBR-6313 Wayland: pasting from clipboard doesn't always work
mkartashev Nov 20, 2023
e174116
JBR-6321 Wayland: popup windows do not respect screen bounds
mkartashev Nov 20, 2023
7c4bf73
JBR-6316 Wayland: WLSMSurfaceData.getReplacement() throws UOE
mkartashev Nov 21, 2023
4c569d0
JBR-6276 Wayland: WLToolkit logs too much
mkartashev Nov 24, 2023
fa4b335
JBR-6213 Wayland: removed blurring on cursor on multiple monitors wit…
dmitriimorskii Nov 8, 2023
9dd8c2e
JBR-6391 Wayland: memory indicator tooltip flickers
mkartashev Dec 5, 2023
666e3b2
JBR-6416 Wayland: IDEA maximize button out of sync sometimes
mkartashev Dec 12, 2023
221361a
JBR-5961 Wayland: can't switch between projects using menu
JB-Dmitry Dec 15, 2023
33d7155
JBR-6445 Prepare RepaintManager code for displaySync=false
avu Dec 19, 2023
861c6de
JBR-6372 Wayland:
dmitriimorskii Nov 22, 2023
e349eaf
JBR-6452 Wayland: measure and improve surface buffer management
mkartashev Dec 21, 2023
67c9004
JBR-6452 Wayland: avoid copying entire surface buffers
mkartashev Jan 3, 2024
e175c44
JBR-6559 Wayland: popups may stop working after a while
mkartashev Jan 22, 2024
e617180
JBR-6547 WLToolkit: no app icon in GNOME
mkartashev Jan 23, 2024
530fdd3
JBR-6467 Wayland: java/awt/GraphicsConfiguration/NormalizingTransform…
mkartashev Feb 8, 2024
4d31fba
JBR-6469 Wayland: java/awt/image/ColorModel/DrawCustomColorModel.java…
mkartashev Feb 7, 2024
5e412cc
JBR-6598 Wayland: window gets un-maximized after switching
mkartashev Jan 31, 2024
c9b36ef
JBR-6617 Wayland: java/awt/Frame/HugeFrame/HugeFrame.java crashes JVM
mkartashev Feb 1, 2024
c9766f6
JBR-6722 OutOfMemoryError: Failed to allocate Wayland surface buffer
mkartashev Feb 21, 2024
7cac176
JBR-6736 libwakefield crashes weston
mkartashev Feb 21, 2024
7cdab6a
JBR-6519 Linux: SIGSEGV at [libwayland] wl_proxy_get_version
mkartashev Feb 19, 2024
76cb8f3
JBR-6504 Wayland: optional Robot capability to peek at current window…
mkartashev Feb 28, 2024
07b5900
JBR-6783 MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMous…
mkartashev Mar 5, 2024
561ab40
JBR-6787 WLToolkit/wsl: crash in WLComponentPeer.setCursor
avu Mar 6, 2024
180cf9e
JBR-6814 Wayland: support sun.java2d.uiScale property
mkartashev Mar 7, 2024
e13792b
JBR-6448 Wayland: IDEA window looks pixelated after monitors scale wa…
mkartashev Mar 18, 2024
239822c
JBR-6884 SIGSEGV in Java_sun_java2d_wl_WLSMSurfaceData_pixelsAt
mkartashev Mar 25, 2024
f8bfbc6
JBR-6895 Wayland: cursor changes to resize at edges even when window …
mkartashev Mar 26, 2024
b85264c
JBR-6920 Wayland: some IDEA popups positioned incorrectly
mkartashev Apr 2, 2024
86f4b03
JBR-6926 Wayland: fonts are aliased/grainy on first start
mkartashev Apr 5, 2024
56c65bf
JBR-7010 Wayland: Swing window resizing is not smooth enough
mkartashev Apr 16, 2024
70b8fde
JBR-7044: Reset clickCount on mouse moves [WLToolkit]
tsarn Apr 23, 2024
235a005
JBR-6434: Fix pointer leave also resetting the keyboard modifiers [WL…
tsarn Apr 24, 2024
de3119a
JBR-6848: Support extra mouse buttons for navigation [WLToolkit]
tsarn Apr 24, 2024
084128c
JBR-7063: Make .getKeyChar() report chars in KEY_PRESSED/KEY_RELEASED…
tsarn Apr 26, 2024
d31c475
JBR-7058 Wayland: IDE hang on the popup appearance
mkartashev May 2, 2024
89ee736
JBR-6576 Wayland: exception when double-clicking dialog title bar
mkartashev May 6, 2024
e22fab4
JBR-7047 Deadlock on git fetch on Wayland
mkartashev May 3, 2024
78c9f07
JBR-7028 Implement FPS counter on Linux
mkartashev Apr 25, 2024
ceb9ab9
JBR-7158 Wayland: scale with wp_viewport instead of buffer scale
mkartashev May 8, 2024
b35f381
JBR-7198 Wayland: jvm crashes under KDE
mkartashev May 23, 2024
ce75fce
JBR-7201 Wayland: update copyright in files generated by wayland-scanner
mkartashev May 24, 2024
8dddfc3
JBR-7209 Wayland: modernize window decorations
mkartashev May 25, 2024
9930167
JBR-6543 Vulkan: migrate current code to pure c (#267)
avu May 29, 2024
2ba60ee
JBR-7206 Wayland: Stylepad demo flickers when resizing on KDE
mkartashev May 24, 2024
73eaa96
JBR-7202 wayland: memory leak when resizing windows
mkartashev May 30, 2024
2320466
JBR-7237 Separate display connect from WLToolkit initialization
mkartashev Jun 3, 2024
84e5fac
JBR-7256 Vulkan: Implement FILL_PARALLELOGRAM primitive for flat colo…
avu Jun 4, 2024
2af555f
JBR-7072 Wayland: clicks on items of floating context menus are ignor…
mkartashev Jun 14, 2024
7bbf771
JBR-7237 Fix cyclic dependency of Wayland and Vulkan initialization (…
YaaZ Jun 14, 2024
2436138
JBR-7307 Add stub for VKInstance.initNative with disabled Vulkan.
YaaZ Jun 14, 2024
58d4e2d
JBR-7305 Vulkan: Implement FILL_SPANS primitive for flat color rendering
avu Jun 13, 2024
ba0aba9
JBR-7308 Vulkan: Build failure in vulkan enabled builds
avu Jun 14, 2024
9a9daf9
JBR-7290 Wayland: window permanently looses focus after invoking Go T…
mkartashev Jun 14, 2024
3cbfecb
JBR-7254 Impossible to copy/paste files in Project tree
mkartashev Jun 18, 2024
e90c220
JBR-7259 Find Usages popup can't be resized under Wayland
mkartashev Jun 21, 2024
e2fb6aa
JBR-7390 Wayland: need better headless exception message
mkartashev Jul 11, 2024
887a94e
JBR-7419 Refactor Vulkan code
YaaZ Jul 19, 2024
7433384
JBR-7420 Vulkan: Implement DRAW_PARALLELOGRAM primitive for flat colo…
avu Jul 29, 2024
2aaad89
JBR-7452 Vulkan: Reuse VkRenderPass for multiple renderers (#428)
avu Aug 1, 2024
4b91d50
JBR-7397 CLion 2024.2-EAP/Wayland crashes on startup with Miriway
mkartashev Jul 12, 2024
4bd75aa
JBR-7397 Wayland: make certain interfaces optional
mkartashev Aug 7, 2024
ae5d7b4
JBR-7313 Wayland: error: xdg_surface buffer does not match the config…
mkartashev Aug 12, 2024
4458347
JBR-7461: Implement VKTexturePool for the linux vulkan pipeline:
bourgesl Jul 26, 2024
e226a9f
JBR-7478: Fix wrong timestamps on KEY_TYPED events [WLToolkit]
tsarn Aug 13, 2024
f3560c3
JBR-7501 Wayland: SurfaceData.flush() method is mis-used
mkartashev Aug 15, 2024
695796d
JBR-7516 Wayland: DamageList_AddList: Assertion `list != add' failed
mkartashev Aug 20, 2024
3445e16
JBR-7493 Wayland: can't start in maximized state on WSL
mkartashev Aug 21, 2024
731eda2
JBR-7016 IDEA 2024.2 Wayland: UI Crash when selecting Code and pressi…
mkartashev Aug 21, 2024
23ca170
JBR-7126 add more possible names for cursor arrow icon
dmitriimorskii Aug 22, 2024
7e9dd6f
JBR-7569 Removed VMA-Hpp (#450)
YaaZ Aug 28, 2024
a32a97d
JBR-7568 Vulkan: Refactor VKLogicalDevice into VKDevice (#449)
YaaZ Aug 28, 2024
b0086a1
JBR-7570 Implemented ring buffer. Added lazy implicit initialization …
YaaZ Aug 28, 2024
6830d66
Fix WindowMoveService on Wayland
YaaZ Jun 6, 2024
fd12d0c
Added proper copyright headers
mkartashev May 23, 2024
d172bec
JBR-6468 Wayland: java/awt/datatransfer/MimeFormatsTest.java fails by…
mkartashev Feb 5, 2024
60e1420
JBR-6763 Wayland: application crashes when popup closed
xdom Mar 18, 2024
8f63aca
JBR-5615 added missing part for WLToolkit
mkartashev Aug 28, 2024
c0317ff
Wayland: Fixed build errors after rebasing on JDK24
mkartashev Aug 28, 2024
25f4b6a
JBR-5973 Vulkan: Fix validation errors (#452)
YaaZ Aug 29, 2024
2045428
JBR-7588 Metal: Reuse MTLContext for all GCs of the same GPU
avu Aug 30, 2024
53ae4ca
Update README.md
vprovodin Sep 3, 2024
93390f5
JBR-7481 Work around mouse entered/exited bug
Aug 12, 2024
1a2233a
JBR-7484 Update the cursor on mouse entered/exited
Sep 3, 2024
a164f39
JBR-7594 Check for LWCToolkit in JBR TextInput API
tsarn Sep 5, 2024
6c12df4
JBR-7586 Fix title click ungrab when an active user component is clicked
Sep 2, 2024
2784db7
Update README.md
vprovodin Sep 10, 2024
9ae2746
JBR-7459: Wayland: touchpad scrolling is too sensitive.
NikitkoCent Aug 2, 2024
9e7957d
JBR-5673: Wayland: support touch scrolling.
NikitkoCent Aug 4, 2024
f711a4d
JBR-7600 Provide ability to add messages to fatal error log
mkartashev Sep 9, 2024
7ce77f8
JBR-7616: improved MTLRenderQueue exception handling
bourgesl Sep 11, 2024
a9f46dd
JBR-7556 Check negative glyphID in HBShaper
YaaZ Sep 16, 2024
ebfd581
Update README.md
vprovodin Sep 18, 2024
19a25d6
JBR-7572 Vulkan: Implement vertex buffer pool
YaaZ Sep 4, 2024
4003dd0
JBR-7644 Vulkan: Move barrier state tracking from surface into image
YaaZ Sep 5, 2024
ea1f3c3
JBR-7572 Bring back VKBuffer functions
YaaZ Sep 19, 2024
3015516
Update README.md
vprovodin Sep 23, 2024
3fe1725
Update README.md
vprovodin Sep 23, 2024
68cd266
JBR-7616: added ThreadUtilities.lwc_plog(env, formatMsg, ...) to use …
bourgesl Sep 11, 2024
6541b25
JBR-7567 apply standard measurement scripts to Dacapo
vprovodin Aug 28, 2024
cb59100
JBR-7566 apply standard measurement scripts to Render
vprovodin Sep 6, 2024
b91e961
JBR-7675: Respect disabling key repeat [WLToolkit]
tsarn Sep 26, 2024
d96e4c5
JBR-7616: fixed type (str)
bourgesl Sep 27, 2024
e842d8f
JBR-7511 migrate build platforms to OL8
vprovodin Sep 3, 2024
afcfce2
JBR-7662: Fix key repeat manager sometimes not cancelling properly [W…
tsarn Sep 30, 2024
cf830cf
JBR-7672: Only abort key repeat when the key that is being repeated i…
tsarn Sep 30, 2024
a2c03ad
Update README.md
vprovodin Sep 30, 2024
17ad6d9
JBR-1061 .attach_pid files in the working dir - flag to put .attach f…
gorrus Apr 5, 2019
e944eb3
JBR-1354 com/sun/tools/attach/PermissionTest.java: access denied ("ja…
gorrus Apr 9, 2019
47c81b5
JBR-7677 Vulkan: Implement Graphics.drawImage()
avu Aug 1, 2024
1a7149f
JBR-7504 WLToolkit - Middle click paste doesn't work properly when pa…
mkartashev Sep 17, 2024
fb0eb63
JBR-7504 Use accurate event serial number with the clipboard
mkartashev Sep 19, 2024
cf7f1dc
JBR-7524: Workaround for showing window tiling actions when hovering …
tsarn Oct 1, 2024
5f5c0a2
JBR-7574 Vulkan: Implement memory allocator
YaaZ Sep 3, 2024
880ab58
Update README.md
vprovodin Oct 6, 2024
d5f7670
JBR-7575 Vulkan: Implement composites (blending and XOR mode)
YaaZ Sep 3, 2024
59cf005
JBR-7564 Vulkan: Fix HIDPI and multi-monitor scenarios
YaaZ Aug 26, 2024
f37fe3d
JBR-7563 Vulkan: Implement MASK_FILL
YaaZ Aug 27, 2024
5264221
JBR-7645 Vulkan: Implement hash table for pipeline sets
YaaZ Sep 5, 2024
e1ba35f
JBR-7565 Vulkan: Implement clip
YaaZ Sep 6, 2024
ac04b83
Update README.md
vprovodin Oct 8, 2024
7a58be6
JBR-7724 Add vulkan support to the performance scripts
avu Oct 8, 2024
50aead4
JBR-7579 Fix SurfaceManager.cacheMap retaining strong references.
YaaZ Oct 9, 2024
d450022
JBR-5448: Return all shortcuts from readSystemHotkeys
tsarn Oct 9, 2024
a1ccb55
JBR-7673 Cleanup docker scripts
YaaZ Sep 26, 2024
606753d
JBR-7653 Prepare Docker images for Vulkan builds
YaaZ Sep 26, 2024
f260efb
JBR-5726: Report 'Move focus to the previous window in application' s…
tsarn Oct 10, 2024
97e7a8c
JBR-5690: Reload next window shortcut when it changes
tsarn Oct 10, 2024
4ec0cf2
JBR-6324: JBR API for System Shortcuts (macOS)
tsarn Oct 10, 2024
d58e053
JBR-7721 Copying from IntelliJ in pure Wayland on ChromeOS confuses U…
mkartashev Oct 14, 2024
26d14c3
Update README.md
vprovodin Oct 15, 2024
fed2f8e
JBR-7748 java/awt/font/JNICheck/FreeTypeScalerJNICheck.java: JNI call…
mkartashev Oct 15, 2024
f60a7ad
Update README.md
vprovodin Oct 16, 2024
0fdce37
JBR-7544 Wayland: Cannot resize window to more that 3500px vertically
mkartashev Oct 14, 2024
b1cbc00
JBR-4725 File dialog modality
YaaZ Oct 17, 2024
af541b8
JBR-7749 Settings popup invoked from the main toolbar appears misalig…
mkartashev Oct 15, 2024
aeb66cf
JBR-7764: Disable window decorations in test/jb/java/awt/Window/Resto…
tsarn Oct 18, 2024
9385c41
JBR-7766 Fix VKTexturePool OOM.
YaaZ Oct 18, 2024
f5bc9f3
JBR-7302 added additional emptiness check in getGlyphOutlineBounds
dmitriimorskii Oct 23, 2024
28837a7
JBR-7726 X11 toolkit: Dialog buttons rendering black rectangle after …
mkartashev Oct 23, 2024
69432a0
JBR-7663 Wayland: add wayland-protocols to the docker files
mkartashev Oct 11, 2024
8b4b922
JBR-7663 Wayland: generate proxy code with wayland-scanner on the fly
mkartashev Oct 9, 2024
1b85052
JBR-7663 Wayland: make gtk-shell1 protocol support optional
mkartashev Oct 11, 2024
d7d4b2b
JBR-6691 test/jdk/jdk/internal/misc/VM/RuntimeArguments.java fails on…
mkartashev Oct 25, 2024
2567f6b
JBR-7797 build fastdebug without jcef
vprovodin Oct 23, 2024
b1594b2
Update README.md
vprovodin Oct 29, 2024
3b9a313
JBR-7392: Use NIO FS in ZipFile
knisht Jul 8, 2024
3152227
JBR-7466 Exception on VM startup with `-Djava.util.zip.use.nio.for.zi…
knisht Aug 5, 2024
6f16bf2
JBR-7700 Route java.io file system operations via java.nio.file
mkartashev Sep 26, 2024
61dca36
JBR-7734 add zip distribution for Windows
sshelomentsev Oct 30, 2024
52edd8f
JBR-7811 Wayland: IDE dialogs and popups flash black before opening
mkartashev Oct 25, 2024
ee8353a
JBR-7833 Wayland: typeahead problem in a popup
JB-Dmitry Oct 31, 2024
08fee07
JBR-7835 macOS: raised NOFILE ulimit breaks interaction with gdb
mkartashev Nov 1, 2024
548e5e8
JBR-6144 enable building JBR with Vulkan
vprovodin Nov 1, 2024
d63ae3c
Fix Vulkan 1.2 build
YaaZ Nov 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
226 changes: 226 additions & 0 deletions .github/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
[![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)

# Welcome to JetBrains Runtime!

JetBrains Runtime is a fork of [OpenJDK](https://github.com/openjdk/jdk) available for Windows, Mac OS X, and Linux.
It supports enhanced class redefinition ([DCEVM](https://ssw.jku.at/dcevm/)),
features optional [JCEF](https://github.com/JetBrains/jcef), a framework for embedding Chromium-based browsers,
includes a number of improvements in font rendering, keyboards support,
windowing/focus subsystems, HiDPI, accessibility, and performance, provides better desktop integration
and bugfixes not yet present in OpenJDK.

> **_NOTE_**: This is a **development** branch that is periodically synchronized with
> the [OpenJDK master](https://github.com/openjdk/jdk/tree/master) branch.
>
Release builds are based on these branches:
* [jbr11](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr11) (JDK 11)
* [jbr17](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr17) (JDK 17)
* [jbr21](https://github.com/JetBrains/JetBrainsRuntime/tree/jbr21) (JDK 21)

Download the latest releases of JetBrains Runtime to use with JetBrains IDEs. The full list
can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntime/releases).

## Releases based on JDK 21

| IDE Version | Latest JBR | Date Released |
|-------------|---------------------------------------------------------------------------------------------------------|---------------|
| 2024.3 | [21.0.4-b631.8](https://github.com/JetBrains/JetBrainsRuntime/releases/edit/jbr-release-21.0.5b631.8) | 29-Oct-2024 |
| 2024.2 | [21.0.4-b509.26](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.4b509.26) | 08-Oct-2024 |
| 2024.1 | [21.0.2-b346.3](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-21.0.2b346.3) | 30-Jan-2024 |

## Releases based on JDK 17

| IDE Version | Latest JBR | Date Released |
|-------------|--------------------------------------------------------------------------------------------------------|---------------|
| 2024.2 | [17.0.11-b1312.2](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.11b1312.2) | 18-Jun-2024|
| 2024.1 | [17.0.12-b1207.37](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.12b1207.37) | 15-Oct-2024|
| 2023.3 | [17.0.12-b1087.25](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.12b1087.25) | 02-Sep-2024|
| 2023.2 | [17.0.12-b1000.54](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.12b1000.54) | 02-Sep-2024|
| 2023.1 | [17.0.10-b829.27](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.10b829.27) | 21-Mar-2024 |
| 2022.3 | [17.0.6-b653.34](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b653.34) | 28-Feb-2023 |
| 2022.2 | [17.0.6-b469.82](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b469.82) | 06-Mar-2023 |

## Releases based on JDK 11

| IDE Version | Latest JBR | Date Released |
|-------------|-------------------------------------------------------------------------------------------------------|---------------|
| 2022.1 | [11_0_16-b2043.64](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr11_0_16b2043.64) | 10-Nov-2022 |
| 2021.3 | [11_0_14_1-b1751.46](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr11_0_14_1b1751.46) | 21-Feb-2022 |
| 2021.2 | [11_0_13-b1504.49](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jb11_0_13-b1504.49) | 15-Nov-2021 |
| 2021.1 | [11.0.11+9-b1341.60](https://github.com/JetBrains/JetBrainsRuntime/issues/171#issuecomment-1248891540)| 15-Jun-2021 |
| 2020.3 | [11_0_10-b1145.115](https://github.com/JetBrains/JetBrainsRuntime/issues/171#issuecomment-1249243977) | 21-Jun-2021 |

## Contents
- [Welcome to JetBrains Runtime](#welcome-to-jetbrains-runtime)
- [Why Use JetBrains Runtime?](#why-use-jetbrains-runtime)
- [Products Built on JetBrains Runtime](#products-built-on-jetbrains-runtime)
- [Getting Sources](#getting-sources)
- [macOS, Linux](#macos-linux)
- [Windows](#sources-windows)
- [Configuring the Build Environment](#configuring-the-build-environment)
- [Linux (Docker)](#linux-docker)
- [Ubuntu Linux](#ubuntu-linux)
- [Windows](#build-windows)
- [macOS](#macos)
- [Developing](#developing)
- [Contributing](#contributing)
- [Resources](#resources)

## Why Use JetBrains Runtime?
* **Embedded browser**: JetBrains Runtime includes the Java Chromium Embedded Framework ([JCEF](https://github.com/JetBrains/jcef)), which
enables you to embed a Chromium-based browsers in your JVM-based application.
To use it, [download a build with JCEF](https://github.com/JetBrains/JetBrainsRuntime/releases).
* **Enhanced class re-definition** with the [DCEVM](https://ssw.jku.at/dcevm/) technology that makes it easier to reload
changed code without restarting JVM; this feature needs to be explicitly enabled with `-XX:+AllowEnhancedClassRedefinition`.
* **Better FPS performance** for graphics-intensive applications.
* **Improved font rendering**, **keyboard input** (such as shortcuts and multinational keyboards),
**HiDPI** and **accessibility** support.
* **Robust desktop experience**: GUI-related fixes often reach JetBrains Runtime much earlier than the corresponding version of OpenJDK.

## Products Built on JetBrains Runtime
* [Android Studio](https://developer.android.com/studio). The official IDE for Google's Android operating system.
* [CLion](https://www.jetbrains.com/clion/). A cross-platform IDE for C and C++ from JetBrains.
* [DataGrip](https://www.jetbrains.com/datagrip/). The IDE for Databases and SQL from JetBrains.
* [GoLand](https://www.jetbrains.com/go/). The cross-platform Go IDE from JetBrains.
* [IntelliJ IDEA](https://www.jetbrains.com/idea/). The IDE for JVM from JetBrains.
* [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html). The Java profiler.
* [PhpStorm](https://www.jetbrains.com/phpstorm/). The PHP IDE from JetBrains.
* [PyCharm](https://www.jetbrains.com/pycharm/). The Python IDE from JetBrains.
* [Rider](https://www.jetbrains.com/rider/). The cross-platform .NET IDE from JetBrains.
* [RubyMine](https://www.jetbrains.com/ruby/). The Ruby and Rails IDE from JetBrains.
* [Toolbox App](https://www.jetbrains.com/toolbox-app/). JetBrains IDE manager.
* [WebStorm](https://www.jetbrains.com/webstorm/). The JavaScript IDE from JetBrains.
* [YourKit](https://www.yourkit.com/). Java and .NET profilers.

## Getting Sources
### macOS, Linux
```
git config --global core.autocrlf input
git clone [email protected]:JetBrains/JetBrainsRuntime.git
```

### Windows
<a name="sources-windows"></a>
```
git config --global core.autocrlf false
git clone [email protected]:JetBrains/JetBrainsRuntime.git
```

## Configuring the Build Environment
Here are quick per-platform instructions for those who can't wait to get started.
Please refer to [OpenJDK build docs](https://openjdk.java.net/groups/build/doc/building.html) for in-depth
coverage of all the details.

> **_TIP:_** To get a preliminary report of what's missing, run `./configure` and check its output.
> It would usually have meaningful advice on how to solve the problem.

### Linux (Docker)
Create a container (use the `mkdocker...` variant for your architecture):
```
$ cd jb/project/docker
$ ./mkdocker_x86_64.sh
...
Successfully built 942ea9900054
```
Run these commands in the new container:
```
$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
# cd /JetBrainsRuntime
# sh ./configure
# make images
```

### Ubuntu Linux
Install the necessary tools, libraries, and headers with:
```
$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev \
libxtst-dev libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev libwayland-dev \
wayland-protocols libxkbcommon-x11-0
```
Get Java 23 (for instance, [Azul Zulu Builds of OpenJDK 23](https://www.azul.com/downloads/?version=java-23&os=linux&package=jdk#zulu)).

Then run the following:
```
$ cd JetBrainsRuntime
$ git checkout main
$ sh ./configure
$ make images
```
This will build the release configuration under `./build/linux-x86_64-server-release/`.

### Windows
<a name="build-windows"></a>
Install the following:
* [Cygwin x64](http://www.cygwin.com/).
Required packages: `autoconf`, `binutils`, `cpio`, `diffutils`, `file`, `gawk`, `gcc-core`, `make`, `m4`, `unzip`, `zip`.
Install those together with Cygwin.
* [Visual Studio compiler toolset](https://visualstudio.microsoft.com/downloads/).
Install with the desktop development kit, which includes Windows SDK and compilers.
Visual Studio 2019 is supported by default.
* Java 21 (for instance, [Azul Zulu Builds of OpenJDK 21](https://www.azul.com/downloads/?version=java-21-lts&os=windows&package=jdk#zulu)).
If you have problems while configuring, read [Java tips on Cygwin](http://horstmann.com/articles/cygwin-tips.html).

From the command line:
```
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l
```
The first command sets up environment variables, the second starts a Cygwin shell with the proper environment.

In the Cygwin shell:
```
$ cd JetBrainsRuntime
$ git checkout main
$ bash configure --with-toolchain-version=2019
$ make images
```
This will build the release configuration under `./build/windows-x86_64-server-release/`.

### macOS
Install the following:
* Xcode command line developer tools and `autoconf` via [Homebrew](https://brew.sh/).
* Java 21 (for instance, [Azul Zulu Builds of OpenJDK 21](https://www.azul.com/downloads/?version=java-21-lts&os=macos&package=jdk#zulu)).

From the command line:
```
$ cd JetBrainsRuntime
$ git checkout main
$ sh ./configure
$ make images
```
This will build the release configuration under `./build/macosx-x86_64-server-release/`.

## Developing
You can use [CLion](https://www.jetbrains.com/clion/) to develop native parts of the JetBrains Runtime and
[IntelliJ IDEA](https://www.jetbrains.com/idea/) for the parts written in Java.
Both require projects to be created.

### CLion
Run
```
$ make compile-commands
```
in the git root and open the resulting `build/.../compile_commands.json` file as a project.
Then use `Tools | Compilation Database | Change Project Root` to point to git root of this repository.

See also this detailed step-by-step tutorial for all platforms:
[How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).

### IDEA
Run
```
$ sh ./bin/idea.sh
```
in the git root to generate project files (add `--help` for options). If you have multiple
configurations (for example, `release` and `fastdebug`), supply the `--conf <conf_name>` argument.
Then open the git root directory as a project in IDEA.

## Contributing
We are happy to receive your pull requests!
Before you submit one, please sign our [Contributor License Agreement (CLA)](https://www.jetbrains.com/agreements/cla/).

## Resources
* [JetBrains Runtime on GitHub](https://github.com/JetBrains/JetBrainsRuntime).
* [OpenJDK build instructions](https://openjdk.java.net/groups/build/doc/building.html).
* [OpenJDK test instructions](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk/master/doc/building.html#running-tests).
* [How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
4 changes: 3 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ on:
- master
- pr/*
- jdk*
- main
workflow_dispatch:
inputs:
platforms:
Expand Down Expand Up @@ -63,7 +64,8 @@ jobs:
outputs:
linux-x64: ${{ steps.include.outputs.linux-x64 }}
linux-x86-hs: ${{ steps.include.outputs.linux-x86-hs }}
linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
# additional build options for linux-x64 are disabled
# linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
alpine-linux-x64: ${{ steps.include.outputs.alpine-linux-x64 }}
macos-x64: ${{ steps.include.outputs.macos-x64 }}
Expand Down
Loading