From 50dd38bd0283d341d249d34769f59f7225a4f37c Mon Sep 17 00:00:00 2001 From: Rom Grk Date: Fri, 23 Feb 2024 01:56:18 -0500 Subject: [PATCH] Linux: adjust docs for building (#8246) Improve docs & remove `vulkan-validation-layers` from the dependencies. --- .../src/developing_zed__building_zed_linux.md | 29 +++++++++++++++---- script/linux | 4 --- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/docs/src/developing_zed__building_zed_linux.md b/docs/src/developing_zed__building_zed_linux.md index e1046d7841..ae87c49b44 100644 --- a/docs/src/developing_zed__building_zed_linux.md +++ b/docs/src/developing_zed__building_zed_linux.md @@ -10,7 +10,11 @@ git submodule update --init --recursive ## Dependencies -- Install [Rust](https://www.rust-lang.org/tools/install) +- Install [Rust](https://www.rust-lang.org/tools/install). If it's already installed, make sure it's up-to-date: + + ```bash + rustup update + ``` - Install the Rust wasm toolchain: @@ -24,11 +28,12 @@ git submodule update --init --recursive script/linux ``` - - If you prefer to install the system libraries manually, you can find the list of required packages in the `script/linux` file. + If you prefer to install the system libraries manually, you can find the list of required packages in the `script/linux` file. -## Backend Dependencies +## Backend dependencies -# Note: This section is still in development. The instructions are not yet complete. +> [!WARNING] +> This section is still in development. The instructions are not yet complete. If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's `collab` server: @@ -41,7 +46,7 @@ Alternatively, if you have [Docker](https://www.docker.com/) installed you can b docker compose up -d ``` -## Building Zed from Source +## Building from source Once you have the dependencies installed, you can build Zed using [Cargo](https://doc.rust-lang.org/cargo/). @@ -63,8 +68,22 @@ And to run the tests: cargo test --workspace ``` +## Wayland & X11 + +Zed has basic support for both modes. The mode is selected at runtime. If you're on wayland and want to run in X11 mode, you can set `WAYLAND_DISPLAY='' cargo run` to do so. + ## Troubleshooting +### Can't compile zed + +Before reporting the issue, make sure that you have the latest rustc version with `rustup update`. + ### Cargo errors claiming that a dependency is using unstable features Try `cargo clean` and `cargo build`. + +### Vulkan/GPU issues + +If Zed crashes at runtime due to GPU or vulkan issues, you can try running [vkcube](https://github.com/krh/vkcube) (usually available as part of the `vulkaninfo` package on various distributions) to try to troubleshoot where the issue is coming from. Try running in both X11 and wayland modes (`vkcube -m [x11|wayland]`). + +If you have multiple GPUs, you can also try running Zed on a different one (for example, with [vkdevicechooser](https://github.com/jiriks74/vkdevicechooser)) to figure out where the issue comes from. diff --git a/script/linux b/script/linux index c7fe1c111f..b93136e898 100755 --- a/script/linux +++ b/script/linux @@ -10,7 +10,6 @@ if [[ -n $apt ]]; then deps=( libasound2-dev libfontconfig-dev - vulkan-validationlayers* libwayland-dev libxkbcommon-x11-dev openssl @@ -26,7 +25,6 @@ if [[ -n $dnf ]]; then deps=( alsa-lib-devel fontconfig-devel - vulkan-validation-layers wayland-devel libxkbcommon-x11-devel openssl-devel @@ -42,7 +40,6 @@ if [[ -n $zyp ]]; then deps=( alsa-devel fontconfig-devel - vulkan-validationlayers wayland-devel libxkbcommon-x11-devel openssl-devel @@ -58,7 +55,6 @@ if [[ -n $pacman ]]; then deps=( alsa-lib fontconfig - vulkan-validation-layers wayland libxkbcommon-x11 openssl