Commit Graph

3727 Commits

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

(cherry picked from commit 85e44bf973)
2026-01-06 01:03:19 +01:00
Dmitrii Morskii
ce289b7bdf JBR-5965 Wayland: implement SplashScreen
(cherry picked from commit c0247eae4f)
2026-01-06 01:03:15 +01:00
Nikita Gubarkov
a69ee77d2a 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)
2026-01-06 01:03:14 +01:00
Alexey Ushakov
00fa8a8d12 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)
2026-01-06 01:03:14 +01:00
Nikita Gubarkov
debed58f92 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)
2026-01-06 01:03:13 +01:00
Nikita Gubarkov
8d73d854df 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)
2026-01-06 01:03:12 +01:00
Maxim Kartashev
cccd8f5c21 Wayland: fixed build errors on macOS
(cherry picked from commit 82fe989dd7)
2026-01-06 01:03:11 +01:00
Alexey Ushakov
0a0b9b0a9c 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)
2026-01-06 01:03:11 +01:00
bourgesl
04fcac7bdb 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)
2026-01-06 01:03:11 +01:00
Maxim Kartashёv
0d9af9641c 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)
2026-01-06 01:03:10 +01:00
bourgesl
612303284f 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)
2026-01-06 01:03:09 +01:00
Nikita Gubarkov
cbbff8c768 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)
2026-01-06 01:03:07 +01:00
Roman Shevchenko
47858135c8 JBR-7194: extension-based filters in native file dialogs
(cherry picked from commit cf5d136b3e)
2026-01-06 01:03:07 +01:00
Nikita Provotorov
937fed3d85 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)
2026-01-06 01:03:06 +01:00
Dmitrii Morskii
f8cf1a8940 JBR-6376: implement detecting of OS theme on linux
(cherry picked from commit d8aaa3da47)
2026-01-06 01:03:06 +01:00
Dmitrii Morskii
b1ffdfe19f Revert "JBR-6372: implement detecting of OS theme on linux"
This reverts commit a657e4e2cbce139f2c5b53c7fb5f30d81f99e311.

(cherry picked from commit c626c9f220)
2026-01-06 01:03:06 +01:00
Dmitrii Morskii
7f6b96848e JBR-6372: implement detecting of OS theme on linux
(cherry picked from commit 1d47383016)
2026-01-06 01:03:04 +01:00
Nikita Tsarev
ba56711ccb 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)
2026-01-06 01:03:03 +01:00
Dmitry Batrak
9378fa4b32 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)
2026-01-06 01:02:53 +01:00
Nikita Gubarkov
dec3375a27 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)
2026-01-06 01:02:53 +01:00
Alexey Ushakov
a2c09794ca 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)
2026-01-06 01:02:47 +01:00
Maxim Kartashev
181354e9d4 JBR-5445 JBRApiTest test fails on development builds
(cherry picked from commit d9d941f9c5)
2026-01-06 01:02:44 +01:00
Artem Semenov
27d17d563c JBR-4170 Implement API for announcing
(cherry picked from commit d7f14bf793)
2026-01-06 01:02:40 +01:00
Nikita Gubarkov
1a7bf7a853 8289189: Fix ./configure on WSL1
(cherry picked from commit 617ed45c5c)
2026-01-06 01:02:31 +01:00
Alexey Ushakov
ddcc4a65d2 Added support for otf into the build scripts. Updated prebuild maps.
Applied code from jbr-dev

(cherry picked from commit 9c23814897)
2026-01-06 01:02:19 +01:00
Nikita Gubarkov
7b119a84ec Added JBR API
with fix for JBR-5300 Change source code and test files to use GPL license

(cherry picked from commit 2ce0a876c5)
2026-01-06 01:02:15 +01:00
Elena Sayapina
0f82ff2778 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)
2026-01-06 01:02:08 +01:00
Denis Konoplev
024497405c XI2 headers in xlib wrapper generator
(cherry picked from commit ef108067a1)
(cherry picked from commit 1397389026)
2026-01-06 01:02:06 +01:00
Alexey Ushakov
9970b21f77 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)
2026-01-06 01:01:55 +01:00
Dmitry Batrak
296fb1b07a JRE-11 Support text rendering via DirectWrite API on Windows
(cherry picked from commit 6605d4a525)
2026-01-06 01:01:55 +01:00
Alexey Ushakov
8ed6c8a7c0 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)
2026-01-06 01:01:53 +01:00
Anton Tarasov
da31a39c59 JBR-1278 allow native border and shadow for custom decoration mode
(cherry picked from commit ec106a58a3)
2026-01-06 01:01:51 +01:00
Anton Tarasov
76178cef22 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit 6ea1d45fd1)
(cherry picked from commit 60bb53f919)
2026-01-06 01:01:50 +01:00
Alexey Ushakov
87060243a9 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)
2026-01-06 01:01:48 +01:00
Alex Menkov
fa8ea6b32d 8374168: Resolve disabled warnings in JDWP agent
Reviewed-by: cjplummer, sspitsyn, erikj
2026-01-05 19:55:54 +00:00
Sergey Bylokhov
534c33d0ef 8374323: Update copyright year to 2025 for the build system in files where it was missed
Reviewed-by: erikj
2025-12-25 07:25:40 +00:00
Wang Haomin
4a0f7e4294 8374321: Fix undefined reference to 'png_init_filter_functions_lsx' after 8371914
Reviewed-by: jiefu, jdv
2025-12-24 09:06:39 +00:00
Christoph Langer
b5ac8f8368 8373246: JDK-8351842 broke native debugging on Linux
Reviewed-by: erikj, stuefe
2025-12-19 13:34:31 +00:00
Dan Smith
f88cbfb8c6 8374044: Docs build fails: Cannot determine current path
Reviewed-by: dholmes
2025-12-18 21:40:06 +00:00
Dan Smith
0b2712400b 8373909: JSpec and ToolGuide taglets use incorrect relative path
Reviewed-by: liach, hannesw
2025-12-18 17:21:41 +00:00
Matthias Baesken
4e9525ef36 8373388: Reenable LTO for libsplashscreen
Reviewed-by: erikj, dholmes, serb, prr
2025-12-12 18:57:25 +00:00
Matthias Baesken
b0bd0c398e 8372759: Test build/AbsPathsInImage.java fails after JDK-8370438
Reviewed-by: erikj
2025-12-11 14:13:32 +00:00
Erik Joelsson
831fe94c75 8373255: Unexpected iobj and ipdb files after JDK-8370438
Reviewed-by: serb
2025-12-09 17:01:08 +00:00
Phil Race
b1c9550182 8372554: Test windows-x64-cmp-baseline failed due to differences with splashscreen object file
Reviewed-by: dholmes
2025-12-09 01:00:52 +00:00
Alexandre Iline
b118caf677 8373285: Update JCov for class file version 71
Reviewed-by: erikj
2025-12-08 22:16:28 +00:00
Erik Joelsson
c09167df60 8373113: Fix whitespace in RunTests.gmk
Reviewed-by: tbell
2025-12-05 14:01:36 +00:00
Nizar Benalla
c55287d197 8370890: Start of release updates for JDK 27
8370893: Add SourceVersion.RELEASE_27
8370894: Add source 27 and target 27 to javac

Reviewed-by: darcy, iris, liach, erikj, dholmes
2025-12-04 17:01:41 +00:00
Kurt Miller
45dcc0e7e2 8371914: PNG defines in CFLAGS can cause compilation errors with external libpng
Reviewed-by: erikj, jdv
2025-12-04 16:59:03 +00:00
Christoph Langer
33dda887d9 8351842: Windows specific issues in combination of JEP 493 and --with-external-symbols-in-bundles=public
Reviewed-by: erikj, mbaesken
2025-12-04 15:03:33 +00:00
Matthias Baesken
317daa3c00 8372643: Warning message on macos when building the JDK - (arm64) /tmp/lto.o unable to open object file: No such file or directory
Reviewed-by: erikj
2025-12-04 08:36:00 +00:00