Commit Graph

116 Commits

Author SHA1 Message Date
Nikita Gubarkov
56ff7b26cd 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-04-03 02:02:53 +02:00
Alexey Ushakov
1be620746d 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-04-03 02:02:52 +02:00
Maxim Kartashev
2967bbbe2b Wayland: fixed build errors on macOS
(cherry picked from commit 82fe989dd7)
2025-04-03 02:02:51 +02:00
Alexey Ushakov
785d4aff4e 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-04-03 02:02:51 +02:00
bourgesl
517f75242a 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-04-03 02:02:51 +02:00
Roman Shevchenko
c461242d2e JBR-7194: extension-based filters in native file dialogs
(cherry picked from commit cf5d136b3e)
2025-04-03 02:02:48 +02:00
Nikita Provotorov
937d4ef55d 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-04-03 02:02:47 +02:00
Dmitrii Morskii
e338924529 JBR-6376: implement detecting of OS theme on linux
(cherry picked from commit d8aaa3da47)
2025-04-03 02:02:47 +02:00
Dmitrii Morskii
1f57906460 Revert "JBR-6372: implement detecting of OS theme on linux"
This reverts commit a657e4e2cbce139f2c5b53c7fb5f30d81f99e311.

(cherry picked from commit c626c9f220)
2025-04-03 02:02:47 +02:00
Dmitrii Morskii
a2d26ccd22 JBR-6372: implement detecting of OS theme on linux
(cherry picked from commit 1d47383016)
2025-04-03 02:02:45 +02:00
Nikita Tsarev
eda4ecf506 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-04-03 02:02:44 +02:00
Dmitrii Morskii
8324e50e20 JBR-5844: fixed other part of issue. Added missing implementation of native methods in fontconfigmanager
(cherry picked from commit dbd70b4401)
2025-04-03 02:02:38 +02:00
Nikita Gubarkov
428a8fd2d7 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-04-03 02:02:36 +02:00
Alexey Ushakov
2aa641bc5c 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-04-03 02:02:31 +02:00
Artem Semenov
bec0bd4d4d JBR-4170 Implement API for announcing
(cherry picked from commit d7f14bf793)
2025-04-03 02:02:25 +02:00
Dmitry Batrak
5ac5bca2ca JRE-11 Support text rendering via DirectWrite API on Windows
(cherry picked from commit 6605d4a525)
2025-04-03 02:01:48 +02:00
Anton Tarasov
e972dcc53d JBR-1278 allow native border and shadow for custom decoration mode
(cherry picked from commit ec106a58a3)
2025-04-03 02:01:45 +02:00
Anton Tarasov
6a15203014 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit 6ea1d45fd1)
(cherry picked from commit 60bb53f919)
2025-04-03 02:01:44 +02:00
Alexey Ushakov
a67f95c53c 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-04-03 02:01:42 +02:00
Matthias Baesken
6bc480358c 8351277: Remove pipewire from AIX build
Reviewed-by: ihse, prr, azvegint
2025-03-25 08:01:15 +00:00
Joachim Kern
d8c2f59a1b 8352064: AIX: now also able to build static-jdk image with a statically linked launcher
Reviewed-by: mdoerr, mbaesken, ihse
2025-03-24 16:15:36 +00:00
Magnus Ihse Bursie
06ba6cf3a1 8329173: LCMS_CFLAGS from configure are lost
Reviewed-by: erikj, azvegint
2025-03-20 22:25:49 +00:00
Harshitha Onkar
6b82b42a21 8348598: Update Libpng to 1.6.47
Reviewed-by: azvegint, prr, erikj
2025-03-17 16:50:33 +00:00
Harald Eilertsen
771e160da4 8351323: Parameterize compiler and linker flags for iconv
Reviewed-by: ihse, erikj
2025-03-13 16:54:54 +00:00
Harald Eilertsen
b957e5ed1a 8351322: Parameterize link option for pthreads
Reviewed-by: erikj, ihse, dholmes
2025-03-11 15:11:10 +00:00
Harshitha Onkar
dbdbbd4730 8348597: Update HarfBuzz to 10.4.0
Reviewed-by: erikj, prr
2025-03-10 17:47:54 +00:00
Jiangli Zhou
18958c6298 8349925: [REDO] Support static JDK in libfontmanager/freetypeScaler.c
Reviewed-by: prr
2025-02-13 15:44:46 +00:00
Matthias Baesken
c2fc947826 8349378: Build splashscreen lib with SIZE optimization
Reviewed-by: erikj, prr, honkar
2025-02-13 14:16:23 +00:00
Vladimir Kozlov
336d0d8592 8349926: [BACKOUT] Support static JDK in libfontmanager/freetypeScaler.c
Reviewed-by: jiangli, shade
2025-02-12 18:26:37 +00:00
Jiangli Zhou
332d87cc7e 8349859: Support static JDK in libfontmanager/freetypeScaler.c
Reviewed-by: prr
2025-02-12 16:29:08 +00:00
Magnus Ihse Bursie
964dd18fd2 8349515: [REDO] Framework for tracing makefile inclusion and parsing
Reviewed-by: erikj
2025-02-11 10:55:47 +00:00
David Holmes
64bd8d2592 8349511: [BACKOUT] Framework for tracing makefile inclusion and parsing
Reviewed-by: darcy, mikael
2025-02-06 02:51:12 +00:00
Magnus Ihse Bursie
61465883b4 8348190: Framework for tracing makefile inclusion and parsing
Reviewed-by: erikj
2025-02-05 11:17:08 +00:00
Matthias Baesken
168a471fd0 8348830: LIBFONTMANAGER optimization is always HIGHEST
Reviewed-by: erikj, prr, serb
2025-01-29 08:22:42 +00:00
Magnus Ihse Bursie
f3e2f8821a 8346394: Bundled freetype library needs to have JNI_OnLoad for static builds
Reviewed-by: erikj, prr
2024-12-17 19:09:29 +00:00
Magnus Ihse Bursie
1ca764454b 8339480: Build static-jdk image with a statically linked launcher
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Co-authored-by: Jiangli Zhou <jiangli@openjdk.org>
Reviewed-by: dholmes, erikj, coleenp
2024-12-02 15:12:24 +00:00
Magnus Ihse Bursie
79345bbbae 8339783: Implement JEP 479: Remove the Windows 32-bit x86 Port
Reviewed-by: kbarrett, kvn, stuefe, shade, erikj
2024-11-13 09:41:57 +00:00
Magnus Ihse Bursie
66945e5010 8339336: Fix build system whitespace to adhere to coding conventions
Reviewed-by: erikj
2024-09-03 15:31:09 +00:00
Matthias Baesken
8ea6adc623 8339364: AIX build fails: various unused variable and function warnings
Reviewed-by: mdoerr, clanger, jwaters
2024-09-03 12:02:49 +00:00
Magnus Ihse Bursie
a528c4b370 8339156: Use more fine-granular clang unused warnings
Reviewed-by: erikj, kbarrett
2024-08-30 16:43:16 +00:00
Magnus Ihse Bursie
2abe2ff69b 8339235: Fix indentation in build system
Reviewed-by: erikj
2024-08-30 08:58:18 +00:00
Magnus Ihse Bursie
362f9ce077 8339120: Use more fine-granular gcc unused warnings
Reviewed-by: jwaters, kbarrett, erikj
2024-08-29 07:29:12 +00:00
Alexander Zvegintsev
12c553f128 8329471: Remove GTK2
Reviewed-by: abhiscxk, prr, ihse
2024-08-08 10:51:58 +00:00
Phil Race
ba5a4670b8 8332854: Unable to build openjdk with --with-harfbuzz=system
Reviewed-by: jwaters, erikj, jdv, ihse
2024-06-17 19:37:32 +00:00
Magnus Ihse Bursie
5841cb3b51 8330107: Separate out "awt" libraries from Awt2dLibraries.gmk
Reviewed-by: erikj
2024-04-17 12:39:36 +00:00
Magnus Ihse Bursie
16061874ff 8326947: Minimize MakeBase.gmk
Reviewed-by: erikj
2024-04-11 14:15:34 +00:00
Magnus Ihse Bursie
f0cd866a37 8329704: Implement framework for proper handling of JDK_LIBS
Reviewed-by: erikj, jwaters
2024-04-11 09:40:12 +00:00
Magnus Ihse Bursie
d292aabf05 8329086: Clean up java.desktop native compilation
Reviewed-by: erikj
2024-03-27 14:44:40 +00:00
Magnus Ihse Bursie
9e98118f28 8328177: Move LDFLAGS_JDK[LIB/EXE] to JdkNativeCompilation.gmk
Reviewed-by: erikj
2024-03-18 14:41:51 +00:00
Magnus Ihse Bursie
bfba4894e1 8328157: Move C[XX]FLAGS_JDK[LIB/EXE] to JdkNativeCompilation.gmk
Reviewed-by: erikj
2024-03-15 14:36:57 +00:00