Commit Graph

3600 Commits

Author SHA1 Message Date
Nikita Gubarkov
79f9230645 JBR-6543 Vulkan: migrate current code to pure c (#267)
Replaced C++ vulkan rendering with C one

(cherry picked from commit 85e44bf973)
2025-08-23 11:52:03 +04:00
Dmitrii Morskii
4a3f3fc9b4 JBR-5965 Wayland: implement SplashScreen
(cherry picked from commit c0247eae4f)
2025-08-23 11:51:50 +04:00
Nikita Gubarkov
829d16b53b JBR-6144 Build JBR with Vulkan support
1. Update dockerfile to checkout Vulkan headers
2. Fix --with-vulkan-include configure option

(cherry picked from commit 67c8c4dc1a)
2025-08-23 11:51:48 +04:00
Alexey Ushakov
da4fa55530 JBR-6158 Cannot build jbr21 with wayland toolkit on wsl2
Added --with-wayland-lib option to provide custom library path

(cherry picked from commit cdc2b1b7a0)
2025-08-23 11:51:47 +04:00
Nikita Gubarkov
9ab59b4079 JBR-5973 Implement rendering of no-AA shapes with Vulkan pipeline
Get rid of maxTextureSize in Vulkan code. This concept was introduced to fix macOS-specific bugs and don't map well to Vulkan implementation, as this value is tied to specific device and texture format, so get rid of it for now and see whether we need it at all.

Refactored native surface data hierarchy. There was a C-style "inheritance" model with VKSDOps having an SurfaceDataOps as its first member and conversions back and forth between them. And then also privOps - pointer to the platform-specific part (WLVK). This was refactored into plain inheritance: SurfaceDataOps -> VKSurfaceData -> VKSwapchainSurfaceData -> WLVKSurfaceData

State management, synchronization & layout transition. Now using dynamic rendering and synchronization2 extensions.
Each device has a single timeline semaphore (basically 64-bit counter), monotonically increasing as device executes our commands, allowing us to track the state of the submitted batches and reuse resources which are no longer in use.

Split command recording into primary and secondary command buffers.
This allows us to record commands "in the past", before current render pass started, which gives possibility for some heavy optimizations:
1. When we suddenly need some texture in the middle of the render pass - no need to stop render pass in order to insert necessary synchronization - we can do it as if we knew it beforehand.
2. When we draw something and then clear the surface - just erase all commands inside current render pass we recorded earlier, so the actual drawing will never happen.

Shaders are compiled with glslc or glslangValidator and bytecode is inlined directly into libawt_wlawt

Memory management via VMA, vertex buffer pool, shader push constants.

Other refactoring.

(cherry picked from commit 9ceaebbb60)
2025-08-23 11:51:43 +04:00
Nikita Gubarkov
daf90e2b8d JBR-5645 Provide basic classes for Vulkan rendering pipeline
Implemented shared classes for cross-platform vulkan implementation and some support for wayland toolkit

(cherry picked from commit 9ea3d2d0b1)
2025-08-23 11:51:39 +04:00
Maxim Kartashev
724cd34db8 Wayland: fixed build errors on macOS
(cherry picked from commit 82fe989dd7)
2025-08-23 11:51:37 +04:00
Alexey Ushakov
1e23642435 Initial version of WLToolkit and Vulkan support
Co-authored-by: Dmitry Batrak <Dmitry.Batrak@jetbrains.com>
Co-authored-by: Nikita Gubarkov <nikita.gubarkov@jetbrains.com>
Co-authored-by: Maxim Kartashev <maxim.kartashev@jetbrains.com>
(cherry picked from commit 2e26de3c45)
2025-08-23 11:51:37 +04:00
bourgesl
2e49284af8 JBR-7460: fixed (macos) MTLTexturePool GC implementation to release texture memory more promptly (regular young GC freeing not reused textures since 15s) + unified API with new generic AccelTexturePool (C) to be shared with the coming vulkan pipeline (linux)
(cherry picked from commit ea12ccdf5e)
2025-08-23 11:51:34 +04:00
Maxim Kartashёv
80716605a0 JBR-5956 Provide more details on assertion failure
Use JNU_RUNTIME_ASSERT(env, cond, msg) defined in jni_util.h
to crash JVM when 'cond' is not true with the given message
and source location information in the fatal error log.

(cherry picked from commit fd9bf2c37a)
2025-08-23 11:51:34 +04:00
bourgesl
823b7de9ab JBR-6696: added MTLContext CVDisplayLink checks, improved MTLLayer drawable lifecycle, hardened appkit main thread usage with ThreadUtilities instrumentation to monitor all performOnMainThread usages and report high latency tasks in LWCToolkit platform logger (use system property 'sun.awt.mac.mainThreadLatency=xx' in milliseconds), fixed few MainThread violations (PrinterView init)
(cherry picked from commit 975b4b8cc9)
2025-08-23 11:51:29 +04:00
Nikita Gubarkov
35fd82c6d6 JBR-6357 JBR API v3
JBR API frontend is moved into a separate repository.
Rewritten proxy generation, bridges removed, invokedynamic is used instead.
Mapping is now specified using annotations.
Support for extension methods.
Support for arrays and generics.
Added JBR API implementation version.

JBR-7232 Refactor deriveFontWithFeatures & JBRFileDialog JBR API

(cherry picked from commit a4804efa96)
2025-08-23 11:51:22 +04:00
Roman Shevchenko
77560f6c89 JBR-7194: extension-based filters in native file dialogs
(cherry picked from commit cf5d136b3e)
2025-08-23 11:51:22 +04:00
Nikita Provotorov
1322e1d8ec JBR-6456 Sudden keyboard death on Linux using iBus.
Add a workaround for the iBus's bug which leads to the issue.

(cherry picked from commit b8e9dbf8c9)
(cherry picked from commit 7355948065)
2025-08-23 11:51:18 +04:00
Dmitrii Morskii
12068ce1ef JBR-6376: implement detecting of OS theme on linux
(cherry picked from commit d8aaa3da47)
2025-08-23 11:51:17 +04:00
Dmitrii Morskii
d377dc4278 Revert "JBR-6372: implement detecting of OS theme on linux"
This reverts commit a657e4e2cbce139f2c5b53c7fb5f30d81f99e311.

(cherry picked from commit c626c9f220)
2025-08-23 11:51:17 +04:00
Dmitrii Morskii
ab72b459f6 JBR-6372: implement detecting of OS theme on linux
(cherry picked from commit 1d47383016)
2025-08-23 11:51:11 +04:00
Nikita Tsarev
a0fe6aacda JBR-5254: Fix Caps Lock not working properly on certain Chinese IMs
with fix for JBR-5300 Change source code and test files to use GPL license

(cherry picked from commit be64a4f3d0)
2025-08-23 11:51:06 +04:00
Dmitrii Morskii
cd2aff8ea5 JBR-5844: fixed other part of issue. Added missing implementation of native methods in fontconfigmanager
(cherry picked from commit dbd70b4401)
2025-08-23 11:49:31 +04:00
Dmitry Batrak
247ccaa5ea JBR-5300 Change source code and test files to use GPL license
fix copyright profile in generated IDE project

(cherry picked from commit 43ebbe3cd1)
(cherry picked from commit 39d49c5abe)
2025-08-23 11:49:22 +04:00
Nikita Gubarkov
01b049099f JBR-5124 Rewrite custom decorations support
JBR API v0.0.8
Added new WindowDecorations API, deprecated old CustomWindowDecoration.

JBR-4641 JBR-4630 Fix client area calculation with custom decorations on Windows.

- Window insets are rounded up, which causes visible & unusable border in fullscreen on some scales, round down instead.

- Clipping in Swing components sometimes cuts what it shouldn't, fixed.

(cherry picked from commit 03d850e722)
2025-08-23 11:49:22 +04:00
Alexey Ushakov
43dab4e9d4 JBR-5693 Debug build failure in main branch
Corrected printf format and muted unused-function option for keycode_cache.c

(cherry picked from commit 87a01c930d)
2025-08-23 11:49:02 +04:00
Maxim Kartashev
0a2675b4e4 JBR-5445 JBRApiTest test fails on development builds
(cherry picked from commit d9d941f9c5)
2025-08-23 11:48:51 +04:00
Artem Semenov
4f2cd79df2 JBR-4170 Implement API for announcing
(cherry picked from commit d7f14bf793)
2025-08-23 11:48:37 +04:00
Nikita Gubarkov
855f6e1cdb 8289189: Fix ./configure on WSL1
(cherry picked from commit 617ed45c5c)
2025-08-23 09:51:04 +04:00
Alexey Ushakov
79da2605f4 Added support for otf into the build scripts. Updated prebuild maps.
Applied code from jbr-dev

(cherry picked from commit 9c23814897)
2025-08-23 09:50:18 +04:00
Nikita Gubarkov
3443922e24 Added JBR API
with fix for JBR-5300 Change source code and test files to use GPL license

(cherry picked from commit 2ce0a876c5)
2025-08-23 09:50:05 +04:00
Elena Sayapina
a1d2210963 JBR-2041 [TEST] Added new regression test (Touchscreen devices support)
(cherry picked from commit 2d587b3728)
(cherry picked from commit 92606f2c7f)
(cherry picked from commit 05af375909)
(cherry picked from commit 0f895bf1b2)
(cherry picked from commit 08aa0852b7)

with fix for JBR-5300 Change source code and test files to use GPL license

(cherry picked from commit 9bd62fade9)
2025-08-23 09:49:39 +04:00
Denis Konoplev
cbc77e62cc XI2 headers in xlib wrapper generator
(cherry picked from commit ef108067a1)
(cherry picked from commit 1397389026)
2025-08-23 09:49:32 +04:00
Alexey Ushakov
b7489ff9c9 JRE-205 Font is wrong and without anti aliasing in 2017.1 EAP
Added property to disable bundled font config:
  java2d.font.loadFontConf=false
Do not load custom font.conf by default

Moved hints adjusting logic from code to bundled font.conf file
Applied correction only for regular fonts with platform sizes less than 12
Some fonts are not corrected at all: Consolas, Noto Sans Mono
Used family name instead of physical one in requests to Fontconfig
Removed redundant call to FcConfigBuildFonts
Added privileged access to the properties (JRE-235,JRE-235)

(cherry picked from commit 4d4c915047077ebd966b0e3be056566d56ba11a4)
(cherry picked from commit 9d6f325f72482405264852f3ee2636f5fedaeaf0)
(cherry picked from commit e7e3372bf8db539c0f6bc85db9f1093f8fa4c380)
(cherry picked from commit 3e724caed2f199be50d25d1ecb20b7819c86be2e)
(cherry picked from commit d372b35963c096a32331b05b257e26841ace5d94)
(cherry picked from commit 18a5f5de03eb107f89dca138a44b9aab2151235c)
(cherry picked from commit 9ba320efef0539f75aa93fd1b5dd80266c954d0a)
(cherry picked from commit b8c38f419972af61291953f7f452c1698f7a1624)
(cherry picked from commit debba0128e200be60adc9a339d5985590ef4e230)
(cherry picked from commit 2fa17b1bd7d6524e4b5fa4d0b3ce2bf02a8fcc78)
(cherry picked from commit 09b4f61db0d4f5beea0e16ce9136c99e2185c10b)
(cherry picked from commit 3b6782dd742f9c74a9535145db2f9f7ffaccf7c8)
(cherry picked from commit f1b68149528c13a22fa64468c130b1405bf3d081)
(cherry picked from commit db5cf5a2b9cb454630fb86783c2d58cd5446cba6)
(cherry picked from commit 32140948578bc3c2a0c5f8adb537660421efe5e7)
(cherry picked from commit b978e3d0b131ed642774c5a14a649e13f764c20b)

(cherry picked from commit c75c1ef8b2)

(cherry picked from commit a29f19e6a2)
(cherry picked from commit c38c46744f)
2025-08-23 02:12:03 +04:00
Dmitry Batrak
1e8a5cf4f8 JRE-11 Support text rendering via DirectWrite API on Windows
(cherry picked from commit 6605d4a525)
2025-08-23 02:12:02 +04:00
Alexey Ushakov
520b8634d5 JRE-43 Font.getFamily() does not work in headless mode
Bundled Droid fonts to fallback in headless mode

(cherry picked from commit 5b523f049e)
(cherry picked from commit b65e0d7cb7)
2025-08-23 02:11:55 +04:00
Anton Tarasov
937b436acf JBR-1278 allow native border and shadow for custom decoration mode
(cherry picked from commit ec106a58a3)
2025-08-23 02:06:26 +04:00
Anton Tarasov
818618f483 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit 6ea1d45fd1)
(cherry picked from commit 60bb53f919)
2025-08-23 02:06:16 +04:00
Alexey Ushakov
ad6eca8737 IDEA-57233, IDEA-152816, IDEA-152454 Editor font antialising/appearance problems on Linux
Used desktop DPI instead of hard-coded 72
Compensated increased glyph bitmap size by adjusting font size
Added LCD filter for sub-pixel rendering
Use fontconfig library to provide right rendering options for fonts
Corrected sizes passed to fontconfig library and hinting disabling policy
Added logging and versioned fontconfig lib loading
Resolved font rendering problem in lenses
fix text rendering issues (text cutoff and incorrect rendering in editor fragment components)
FcMatchFont-type pattern substitutions shouldn't be invoked before specific font is selected - it can apply unrelated rules
port commit e21cd635 from JBR 9
partially rollback JBR-363 fix, to apply corresponding change from OpenJDK 12

(cherry picked from commit 5d704a963b)
(cherry picked from commit 3d7ac30072)
(cherry picked from commit 0456745afb)
(cherry picked from commit 3d7ac30072)
(cherry picked from commit 4c8351fecf)
(cherry picked from commit 5faebc73d5)
(cherry picked from commit d1ed8ab118)
(cherry picked from commit 20487c7515)
2025-08-23 02:05:00 +04:00
Jesper Wilhelmsson
73c28c2e3d 8364038: Remove EA from the JDK 25 version string with first RC promotion
Reviewed-by: mikael, erikj, iris, cstein
2025-08-05 23:17:32 +00:00
SendaoYan
3877746eb9 8359181: Error messages generated by configure --help after 8301197
Reviewed-by: ihse
Backport-of: 7b7136b4ec
2025-06-15 12:25:17 +00:00
Magnus Ihse Bursie
a44a470052 8358515: make cmp-baseline is broken after JDK-8349665
Reviewed-by: erikj
2025-06-03 19:23:29 +00:00
Magnus Ihse Bursie
a7671e7360 8358337: JDK-8357991 was committed with incorrect indentation
Reviewed-by: shade
2025-06-02 17:06:45 +00:00
Magnus Ihse Bursie
ab5de45636 8357991: make bootcycle-images is broken after JDK-8349665
Reviewed-by: erikj
2025-06-02 16:50:10 +00:00
Shaojin Wen
727412d1b5 8357690: Add @Stable and final to java.lang.CharacterDataLatin1 and other CharacterData classes
Reviewed-by: naoto
2025-05-29 20:09:58 +00:00
Ioi Lam
dede3532f7 8355798: Implement JEP 514: Ahead-of-Time Command Line Ergonomics
Reviewed-by: erikj, kvn, asmehra
2025-05-28 22:12:14 +00:00
Igor Veresov
e3f85c961b 8355003: Implement JEP 515: Ahead-of-Time Method Profiling
Co-authored-by: John R Rose <jrose@openjdk.org>
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Co-authored-by: Ioi Lam <iklam@openjdk.org>
Co-authored-by: Vladimir Kozlov <kvn@openjdk.org>
Co-authored-by: Aleksey Shipilev <shade@openjdk.org>
Reviewed-by: kvn, ihse, cjplummer, iklam
2025-05-28 15:15:03 +00:00
Magnus Ihse Bursie
63d0e7ff11 8355725: SPEC_FILTER stopped working
Reviewed-by: erikj
2025-05-28 14:42:35 +00:00
Magnus Ihse Bursie
a4f870df55 8357510: [REDO] RunTest variables should always be assigned
Reviewed-by: erikj
2025-05-28 14:42:21 +00:00
Hannes Wallnöfer
39714b6030 8357869: Remove PreviewNote taglet in its current form
Reviewed-by: erikj
2025-05-28 09:46:49 +00:00
Magnus Ihse Bursie
f25f4a3eb2 8349665: Make clean removes module-deps.gmk
Reviewed-by: erikj
2025-05-27 22:41:39 +00:00
Magnus Ihse Bursie
72a3022dc6 8357842: PandocFilter misses copyright header
Reviewed-by: syan, erikj
2025-05-27 12:35:31 +00:00
Suchismith Roy
5cdeef81dd 8331859: [PPC64] Remove support for Power7 and older
Reviewed-by: mdoerr
2025-05-26 08:25:46 +00:00
Magnus Ihse Bursie
3dbd2d3d2d 8347570: Configure fails on macOS if directory name do not have correct case
Reviewed-by: erikj
2025-05-26 07:40:51 +00:00