Bug 126420 - Svg icons not rendered properly
Summary: Svg icons not rendered properly
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: graphics stack (show other bugs)
Version:
(earliest affected)
6.3.0.1 rc
Hardware: All Windows (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-07-16 05:18 UTC by tomaskeb
Modified: 2019-07-18 07:37 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
svg icons (above) compared to the standard ones; Breeze theme (20.22 KB, image/png)
2019-07-16 05:19 UTC, tomaskeb
Details
rendering of PNG vs SVG icons at scale (239.51 KB, image/png)
2019-07-16 14:22 UTC, V Stuart Foote
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tomaskeb 2019-07-16 05:18:45 UTC
Description:
The svg icons are 'blurred' compared with the non-svg versions. It looks like the rendering of small details like narrow lines does not work properly

Steps to Reproduce:
1. enable svg icons
2.
3.

Actual Results:
they look different to the bitmap versions

Expected Results:
they look the same as the bitmap versions


Reproducible: Always


User Profile Reset: No


OpenGL enabled: Yes

Additional Info:
see att.
Comment 1 tomaskeb 2019-07-16 05:19:19 UTC
Created attachment 152801 [details]
svg icons (above) compared to the standard ones; Breeze theme
Comment 2 V Stuart Foote 2019-07-16 13:28:17 UTC
The SVG icons are not rendered directly to UI, rather they respond to the scale of the os/DE UI and are scaled and written to icon cache as PNG. 

They really do not offer any improvement over the prebuilt PNG until display scaling is over ~175%.

For example when working on a HiDPI 4K display.

So what size and resolution monitor are you using, and what UI scaling have you compared?

Otherwise WFM and => NAB

@Tomaž, would you agree?
Comment 3 tomaskeb 2019-07-16 13:34:21 UTC
The screenshot is taken on 1920*1080 monitor without any scaling. I do not know what the abbreviations mean, but I guess it is up to the developers/you.
Comment 4 V Stuart Foote 2019-07-16 14:22:16 UTC
Created attachment 152813 [details]
rendering of PNG vs SVG icons at scale

In attached clips, on left is Colibre PNG scaled to 250%; on the right is Colibre SVG scaled to 250%. Windows 10 on a 1920 x 1080 px screen.

At 100% scale, the details of the SVG will be "fuzzy" compared to the PNG--but when UI is scaled (by user or in response to HiDPI hardware) the improved clarity and readability fo the SVG icon sets are pretty apparent.
Comment 5 Tomaz Vajngerl 2019-07-17 11:43:09 UTC
Well, it kind of is a bug, but it's known. Our SVG renderer in LO has bugs (and in some cases even bugs in rendering backend), that's why the icons are fuzzy (most likely a wrong pixel position is calculated and we hit somewhere in between pixels, so the result is blur).

Ideally SVG should be the same quality as PNG (as PNG are made from SVG using inkscape), but that's currently not the case so SVG support is considered experimental. Once the SVG renderer will be fixed, we will start thinking to remove PNG icons as SVG icons take less space and can render to different scaling factors.
Comment 6 tomaskeb 2019-07-18 07:37:59 UTC
(In reply to Tomaz Vajngerl from comment #5)
> Well, it kind of is a bug, but it's known. Our SVG renderer in LO has bugs
> (and in some cases even bugs in rendering backend), that's why the icons are
> fuzzy (most likely a wrong pixel position is calculated and we hit somewhere
> in between pixels, so the result is blur).
> 
> Ideally SVG should be the same quality as PNG (as PNG are made from SVG
> using inkscape), but that's currently not the case so SVG support is
> considered experimental. Once the SVG renderer will be fixed, we will start
> thinking to remove PNG icons as SVG icons take less space and can render to
> different scaling factors.

Thank you for the information, I'm glad that the issue is known and I look forward to it being eventually fixed when the time comes.