+17
-4
@@ -512,17 +512,30 @@ fn show_software_emulation_warning_if_needed(
|
||||
cx: &mut Context<Workspace>,
|
||||
) {
|
||||
if specs.is_software_emulated && std::env::var("ZED_ALLOW_EMULATED_GPU").is_err() {
|
||||
let (graphics_api, docs_url, open_url) = if cfg!(target_os = "windows") {
|
||||
(
|
||||
"DirectX",
|
||||
"https://zed.dev/docs/windows",
|
||||
"https://zed.dev/docs/windows",
|
||||
)
|
||||
} else {
|
||||
(
|
||||
"Vulkan",
|
||||
"https://zed.dev/docs/linux",
|
||||
"https://zed.dev/docs/linux#zed-fails-to-open-windows",
|
||||
)
|
||||
};
|
||||
let message = format!(
|
||||
db::indoc! {r#"
|
||||
Zed uses Vulkan for rendering and requires a compatible GPU.
|
||||
Zed uses {} for rendering and requires a compatible GPU.
|
||||
|
||||
Currently you are using a software emulated GPU ({}) which
|
||||
will result in awful performance.
|
||||
|
||||
For troubleshooting see: https://zed.dev/docs/linux
|
||||
For troubleshooting see: {}
|
||||
Set ZED_ALLOW_EMULATED_GPU=1 env var to permanently override.
|
||||
"#},
|
||||
specs.device_name
|
||||
graphics_api, specs.device_name, docs_url
|
||||
);
|
||||
let prompt = window.prompt(
|
||||
PromptLevel::Critical,
|
||||
@@ -534,7 +547,7 @@ fn show_software_emulation_warning_if_needed(
|
||||
cx.spawn(async move |_, cx| {
|
||||
if prompt.await == Ok(1) {
|
||||
cx.update(|cx| {
|
||||
cx.open_url("https://zed.dev/docs/linux#zed-fails-to-open-windows");
|
||||
cx.open_url(open_url);
|
||||
cx.quit();
|
||||
})
|
||||
.ok();
|
||||
|
||||
Reference in New Issue
Block a user