Skip to content

Remove invisible Gaussian blur filters from SVG icons - #3028

Open
vogella wants to merge 2 commits into
eclipse-platform:masterfrom
vogella:svg-remove-blur-filters
Open

vogella wants to merge 2 commits into
eclipse-platform:masterfrom
vogella:svg-remove-blur-filters

Conversation

@vogella

@vogella vogella commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

SWT rasterizes SVG icons with JSVG on the UI thread, and every feGaussianBlur is convolved again on each rasterization. This removes the blur filter from 56 icons where it has no visible effect: rendered at 100% and 200% zoom, no pixel changes by more than 20 of 255. Most of them are frequently shown icons such as the Debug view thread, target and stack frame icons and the lock and clear actions of the Console, Terminal and JUnit views. Measured with JSVG 2.2.0, the median rasterization time per icon drops from 411 to 345 µs at 100% and from 464 to 372 µs at 200%, and rendering all 56 icons once drops from 30.6 to 24.5 ms at 100% and from 31.3 to 23.8 ms at 200% (largest single saving: debugts_obj, 3.4 to 2.4 ms). The 60 icons where the blur is visible, mostly wizard banners and a few glowing 16px icons, are left unchanged.

SWT rasterizes SVG icons with JSVG on the UI thread, and every
feGaussianBlur is convolved again on each rasterization. In these 56
icons the blur changes no pixel by more than 20 of 255 at 100% and 200%
zoom, so the filter costs time without any visible effect.

Measured with JSVG 2.2.0 (median of 101 load and render runs), the
median rasterization time per icon drops from 411 to 345 us at 100% and
from 464 to 372 us at 200%, and rendering all 56 icons once drops from
30.6 to 24.5 ms at 100% and from 31.3 to 23.8 ms at 200%. The largest
saving is debugts_obj, from 3.4 to 2.4 ms at 100%.

Assisted-by: multiple AI agents and layers of automated tooling 🤖
@vogella

vogella commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author
sheet_removed

@eclipse-platform-bot

Copy link
Copy Markdown
Contributor

This pull request changes some projects for the first time in this development cycle.
Therefore the following files need a version increment:

debug/org.eclipse.debug.ui.launchview/META-INF/MANIFEST.MF
ua/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF
ua/org.eclipse.ui.intro/META-INF/MANIFEST.MF

An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch.

Git patch
From e4da6fb26c8c0eb85eae4a9ccb0eae5232b9887a Mon Sep 17 00:00:00 2001
From: Eclipse Platform Bot <platform-bot@eclipse.org>
Date: Fri, 16 Oct 2026 11:55:03 +0000
Subject: [PATCH] Version bump(s) for 4.42 stream


diff --git a/debug/org.eclipse.debug.ui.launchview/META-INF/MANIFEST.MF b/debug/org.eclipse.debug.ui.launchview/META-INF/MANIFEST.MF
index fe41eaac2a..6c345874d6 100644
--- a/debug/org.eclipse.debug.ui.launchview/META-INF/MANIFEST.MF
+++ b/debug/org.eclipse.debug.ui.launchview/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.debug.ui.launchview;singleton:=true
-Bundle-Version: 1.2.200.qualifier
+Bundle-Version: 1.2.300.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.ui;bundle-version="3.208.0",
diff --git a/ua/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF b/ua/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF
index 42df623af6..4ffa3b507c 100644
--- a/ua/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.ui.intro.universal/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %plugin_name
 Bundle-SymbolicName: org.eclipse.ui.intro.universal;singleton:=true
-Bundle-Version: 3.6.200.qualifier
+Bundle-Version: 3.6.300.qualifier
 Bundle-Vendor: %provider_name
 Bundle-Localization: plugin
 Export-Package: org.eclipse.ui.internal.intro.universal;x-friends:="org.eclipse.ua.tests",
diff --git a/ua/org.eclipse.ui.intro/META-INF/MANIFEST.MF b/ua/org.eclipse.ui.intro/META-INF/MANIFEST.MF
index 2e5e5eb27f..2da832d326 100644
--- a/ua/org.eclipse.ui.intro/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.ui.intro/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %plugin_name
 Bundle-SymbolicName: org.eclipse.ui.intro; singleton:=true
-Bundle-Version: 3.8.200.qualifier
+Bundle-Version: 3.8.300.qualifier
 Bundle-Activator: org.eclipse.ui.internal.intro.impl.IntroPlugin
 Bundle-Vendor: %provider_name
 Bundle-Localization: plugin
-- 
2.55.0

Further information are available in Common Build Issues - Missing version increments.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

    54 files  ±0      54 suites  ±0   41m 29s ⏱️ +41s
 4 863 tests ±0   4 841 ✅ ±0   22 💤 ±0  0 ❌ ±0 
12 480 runs  ±0  12 326 ✅ ±0  154 💤 ±0  0 ❌ ±0 

Results for commit 231c37e. ± Comparison against base commit 0abc02b.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants