zed icon indicating copy to clipboard operation
zed copied to clipboard

Font rendering on LoDPI displays

Open rev4324 opened this issue 1 year ago • 117 comments
trafficstars

Description

Text rendered in Zed is noticeably more blurry than other editors when using a LoDPI monitor, e.g. an external 1440p monitor like mine, or a (really) old MacBook. I'm well aware that macOS generally sucks at font rendering on non-retina screens, so to make sure my eyes aren't lying to me, I made a little comparison.

I took screenshots of the same code snippet in Zed, VSCode and Xcode and pasted them into Figma, which doesn't apply a bilinear filter when zooming images, so you can zoom in and see the per-pixel difference. Here's the comparison.

To my eyes VSCode is the sharpest, then there's XCode (which is as sharp as every other AppKit/SwiftUI app), then there's Zed with a weird 1px 50% alpha border around the text that made it really blurry. It seems like some sort of AA that doesn't work particularly well on a LoDPI display.

Environment

Zed: v0.123.2 (Zed Preview) OS: macOS 14.3.1 Memory: 8 GiB Architecture: aarch64

rev4324 avatar Feb 18 '24 21:02 rev4324

I second this. Using Zed with a 1080p LoDPI is very uncomfortable due to the blurriness of the font. This doesn't happen with Sublime, VSCode, or XCode.

rubnogueira avatar Feb 22 '24 09:02 rubnogueira

Seconding this as well. Zed looks great on my MacBook screen, but looks bad when I dock to my 1080p monitor. No other editor has that problem for some reason.

leftbones avatar May 21 '24 20:05 leftbones

Another side-by-side with the same font (Zed on the left, VS Code on the right): image

Open that image at 100% zoom to see the difference.

If that image is too small at 100% zoom on your screen, I'm providing this one which is upscaled 2x.

AlexDaniel avatar Jun 18 '24 21:06 AlexDaniel

Oh wow that 2x side by side makes it very apparent how bad it is.

On Jun 18, 2024, at 4:50 PM, Aleks-Daniel Jakimenko-Aleksejev @.***> wrote:



Another side-by-side with the same font (VS Code on the left, Zed on the right): image.png (view on web)https://github.com/zed-industries/zed/assets/5507503/0c472dea-ec98-4d44-a5f6-ddacc1e182d8

Open that image at 100% zoom to see the difference.

If that image is too small at 100% zoom on your screen, I'm providing this one which is upscaled 2xhttps://github.com/zed-industries/zed/assets/5507503/9883d388-9728-4fc6-ae3d-10181cf3c3b0.

— Reply to this email directly, view it on GitHubhttps://github.com/zed-industries/zed/issues/7992#issuecomment-2177138016, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASMD7PVJ2FOTWW7BUR27QSLZICTTBAVCNFSM6AAAAABDOO5R3WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZXGEZTQMBRGY. You are receiving this because you commented.Message ID: @.***>

leftbones avatar Jun 18 '24 22:06 leftbones

I also came across a significantly worse font display compared to the vscode editor:

Снимок экрана от 2024-07-02 14-56-08

although there are no strong distortions in the enlarged image, visible distortions appear when changing the font size

ogau avatar Jul 02 '24 11:07 ogau

I want to mention this here (because I mentioned it also on the OTB request), but could this difference in rendering be related to scaling of the fonts? For me, Fira Code at size 15 is much smaller in Zed than in Sublime Text. image

JackNWhite avatar Jul 11 '24 13:07 JackNWhite

I am having the same issue on a HighDPI screen (Linux). Please let me know if screenshots are needed

chf0x avatar Jul 12 '24 11:07 chf0x

Same issue as @JackNWhite but in vscode image

Tiedye avatar Jul 15 '24 17:07 Tiedye

I tried few dark and light themes and the issue is much more noticeable on the light themes

jsnjack avatar Jul 17 '24 09:07 jsnjack

Same issue here in LoDPI LCD screen(Laptop). I'm using Fedora 40, and installed Zed from the installation script.

Rid1FZ avatar Jul 25 '24 12:07 Rid1FZ

Is there any quick dirty fix without recompile app from scratch? (tried font weigh more than 500, but still eyecracking)

mentalhub avatar Jul 28 '24 04:07 mentalhub

Is there any quick dirty fix without recompile app from scratch? (tried font weigh more than 500, but still eyecracking)

I don't think there's any fix, period, unless I missed something? It's a shame, I've been following this issue for quite awhile now and it's really the only thing stopping me from using Zed as my main editor. I spend a lot of time with my laptop docked, and my main monitor is only 1080p so Zed looks like garbage compared to VS Code.

leftbones avatar Aug 03 '24 20:08 leftbones

Is there any quick dirty fix without recompile app from scratch? (tried font weigh more than 500, but still eyecracking)

I don't think there's any fix, period, unless I missed something? It's a shame, I've been following this issue for quite awhile now and it's really the only thing stopping me from using Zed as my main editor. I spend a lot of time with my laptop docked, and my main monitor is only 1080p so Zed looks like garbage compared to VS Code.

I switched to Zed even though the text, indeed, looks like garbage. I hope this gets fixed eventually. 🙏🏼

AlexDaniel avatar Aug 03 '24 21:08 AlexDaniel

When Zed was officially released for Linux I showed it to some colleagues of mine. Some tried it out and almost all of those made a statement about the bad font rendering on Linux. They use different Linux Distros, some Wayland, some X, so there is no specific "environment" here that seems to be the problem but rather something in Zed itself?

I experimented with all the different aliasing and hinting settings but no success.

There is no way on Linux to get the same font/same size/same weight/same everything as readable as it would be in other applications like VSCode or my terminal, or basically most other applications.

pauschuu avatar Aug 05 '24 12:08 pauschuu

@pauschuu zed is currently under heavy development. If you look at the release, you'll find that there is a new release almost everyday. The vim mode is not even perfect yet. The plugin system is not great. Currently it only support syntax highlighting for shell scripts. I can make a list of issues. Be patience. Obviously this issue will be fixed soon. But currently there are many major issues on linux like some panics, crashes, etc.

Rid1FZ avatar Aug 06 '24 06:08 Rid1FZ

BUMP

This is by far the worst part about Zed at the moment. Can someone PLEASE look into this?

FYI - I had similar issues trying to get WezTerm to look as good as Alacritty on my Macbook when using an external monitor. It was finally resolved when I changed the "front end" to use WebGpu.

jliverman avatar Aug 30 '24 15:08 jliverman

I would like to second this request. I know not everyone is as optically sensitive as some, but for those who are, it makes such a big difference that we cannot seriously consider doing work in Zed until it is fixed.

JackNWhite avatar Aug 30 '24 15:08 JackNWhite

Switched back to SublimeText due to this issue.

rdanilin avatar Aug 30 '24 16:08 rdanilin

It would be nice if someone working on the project could at least acknowledge that this is a problem, it seems like it's largely being ignored right now. I know they're focusing on macOS right now, but this isn't even a matter of trying to make things work properly on other OSes, I use a Mac but have blurry font rendering because I don't use a high DPI display.

leftbones avatar Sep 11 '24 16:09 leftbones

I tried Zed. It looks very promising, but the fonts on Linux with a LoDPI display are looking very bad.

insilications avatar Sep 11 '24 18:09 insilications

Any update on this? I'm thinking about switching from neovim to zed, but this issue is really making me avoid the change.

crisdegraciadev avatar Sep 19 '24 09:09 crisdegraciadev

Could the solution to this be similar to Neovide's? https://github.com/neovide/neovide/pull/2510

gmr458 avatar Sep 21 '24 23:09 gmr458

macOS with external LoDPI monitor, fonts (I tried many) are blurry especially on dark themes for me. I have to go all up to 16pt. Doesn't happen with VSCode.

louis77 avatar Sep 23 '24 11:09 louis77

Another side-by-side with the same font (Zed on the left, VS Code on the right): image

Open that image at 100% zoom to see the difference.

If that image is too small at 100% zoom on your screen, I'm providing this one which is upscaled 2x.

This particular example looks a lot like vscode is either using an embedded size-specific bitmap version of the font or has antialiasing disabled while zed uses the usual antialiased vector font.

jansol avatar Sep 25 '24 20:09 jansol

Another side-by-side with the same font (Zed on the left, VS Code on the right): image Open that image at 100% zoom to see the difference. If that image is too small at 100% zoom on your screen, I'm providing this one which is upscaled 2x.

This particular example looks a lot like vscode is either using an embedded size-specific bitmap version of the font or has antialiasing disabled while zed uses the usual antialiased vector font.

I'm fairly sure zed doesn't correctly handle embedded bitmaps (Terminus (TTF) has that and it looks unusable in zed). But even fonts that do not use that (Dejavu Mono Sans) don't render the same.

Perhaps zed is ignoring system font hinting and antialising settings that vscode respects? That also seems to be part of it. I use full hinting greyscale AA in my fontconfig settings on Linux and it is pretty obvious that this is getting ignored completely by zed (again making the text unreadable and literally headache inducing for me).

VorpalBlade avatar Sep 25 '24 20:09 VorpalBlade

I use full hinting greyscale AA in my fontconfig settings on Linux and it is pretty obvious that this is getting ignored completely by zed

On Linux Zed uses cosmic-text for text rendering, and it does indeed appear that cosmic-text does not use fontconfig (at all!): pop-os/cosmic-text#282

jansol avatar Sep 25 '24 21:09 jansol

Any update on this? I'm thinking about switching from neovim to zed, but this issue is really making me avoid the change.

Same here buddy. Will do switch from VS Code to Zed once font rendering is fixed. It's just painful to read stuff currently.

matagaralph avatar Sep 29 '24 18:09 matagaralph

When Zed was officially released for Linux I showed it to some colleagues of mine. Some tried it out and almost all of those made a statement about the bad font rendering on Linux. They use different Linux Distros, some Wayland, some X, so there is no specific "environment" here that seems to be the problem but rather something in Zed itself?

Almost all applications on linux use fontconfig and freetype both of which are very old and mature projects. Due to being old, a lot of work has gone into making them look good on the displays of the time which meant low DPI displays. The primary tool to make text look good on such displays is hinting which means slightly distorting the letters so that they fit the pixel grid.

Unfortunately many people working on fonts nowadays no longer care about fonts looking crisp on low DPI displays. As far as I know, cosmic-text doesn't even support horizontal hinting. Until that changes, no application using cosmic-text will ever look crisp on low DPI displays. Realistically, it won't look crisp unless it supports a freetype backend.

mahkoh avatar Oct 04 '24 14:10 mahkoh

Unfortunately many people working on fonts nowadays no longer care about fonts looking crisp on low DPI displays.

Low DPI monitors will be around for many more years. Any project that doesn't realise that and handle it somewhat passible is effectively unusable by a significant number of users.

VorpalBlade avatar Oct 04 '24 15:10 VorpalBlade

@mahkoh I am not too much into font rendering as a subject, but just from their respective README.mds:

  • Cosmic-text claims to support hinting
  • Swash (which is used by Cosmix-text) supports Subpixel-Antialiasing

maxhille avatar Oct 07 '24 13:10 maxhille