# \[official\] Linux port via Blade \(\#7343\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/5ded86543b3de9cbb5373d8b304b10d8c9670767)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 5ded86543b3de9cbb5373d8b304b10d8c9670767

Requested commit: 5ded86543b3de9cbb5373d8b304b10d8c9670767

Commit: 5ded86543b3de9cbb5373d8b304b10d8c9670767

Tree: 79b85ffa88b4b4d0bde09a9ee68fca0c297698d4

Author: Mikayla Maki

Committer: GitHub

## Message

```
[official] Linux port via Blade (#7343)

## Motivation

I :heart: Zed! It's lightning fast and has great UX. I want it to run as
well on all major platforms. I'm currently using Linux most actively.
[Blade](https://github.com/kvark/blade) is a good candidate for
providing GPU access: it supports Vulkan, Metal, and GLES/WebGL. Its
abstraction is extremely thin, while having one of the nicest GPU APIs.
Codebase is also tiny. Checkout [the meetup
recording](https://www.youtube.com/watch?v=63dnzjw4azI&t=623s) from a
year ago.
I believe these projects make a good match :rocket: !

### Why this is a bad idea

If Zed team wants to use off-the-shelf components from Rust ecosystem,
then Blade is certainly at disadvantage here, since it's not widely
used. It would rely on Zed team adding necessary features in a branch,
then maybe upstreaming some of them. That is to say, it's unclear if
this can be avoided with more popular alternatives - being flexible with
any local changes is a good ability.

### Why it's not too bad

Blade uses [WGSL](https://www.w3.org/TR/WGSL) shaders, similar to `wgpu`
and `arcana`, but without the binding decorations. So this aspect of the
product is nicely portable.

## Progress

- [ ] Platforms
  - [x] X11 (via xcb)
    - [ ] input handling
    - [ ] get proper content size
  - [ ] Windows
  - [ ] Replace the existing Metal backend
- [ ] Text System
  - [ ] shaping
  - [ ] glyph rasterization
- [x] Texture atlas
- [ ] Rendering
  - [x] basic primitives
  - [x] path rendering
  - [x] sprite rendering
- [ ] media surfaces
- [ ] CI

## Current status
Zed starts up but crashes on text-system related checks.

![zed-linux-1](https://github.com/zed-industries/zed/assets/107301/ba536218-4d2c-43c9-ae6c-bef69b54bd0c)
```

## Parents

- [6edeea7c8a3bdbcaaafa38e4740de0ac6927d6fb](https://git.cafe/gitcafe/zed/commit/6edeea7c8a3bdbcaaafa38e4740de0ac6927d6fb?format=markdown)

- [3a53db650221e4e62a46755a33dfd9bb3111cec0](https://git.cafe/gitcafe/zed/commit/3a53db650221e4e62a46755a33dfd9bb3111cec0?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/5ded86543b3de9cbb5373d8b304b10d8c9670767?format=markdown)
