Update the DisplayServer video driver error message

to be more accurate and friendly
This commit is contained in:
clayjohn 2022-10-17 10:47:32 -07:00
parent 3a59c833f1
commit c4ba1565d0
3 changed files with 50 additions and 8 deletions

View File

@ -4435,10 +4435,21 @@ Vector<String> DisplayServerX11::get_rendering_drivers_func() {
DisplayServer *DisplayServerX11::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {
DisplayServer *ds = memnew(DisplayServerX11(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_resolution, r_error));
if (r_error != OK) {
OS::get_singleton()->alert("Your video card driver does not support any of the supported Vulkan or OpenGL versions.\n"
"Please update your drivers or if you have a very old or integrated GPU, upgrade it.\n"
"If you have updated your graphics drivers recently, try rebooting.",
"Unable to initialize Video driver");
if (p_rendering_driver == "vulkan") {
String executable_name = OS::get_singleton()->get_executable_path().get_file();
OS::get_singleton()->alert("Your video card driver does not support the selected Vulkan version.\n"
"Please try updating your GPU driver or try using the OpenGL 3 driver.\n"
"You can enable the OpenGL 3 driver by starting the engine from the\n"
"command line with the command:\n'./" +
executable_name + " --rendering-driver opengl3'.\n "
"If you have updated your graphics drivers recently, try rebooting.",
"Unable to initialize Video driver");
} else {
OS::get_singleton()->alert("Your video card driver does not support the selected OpenGL version.\n"
"Please try updating your GPU driver.\n"
"If you have updated your graphics drivers recently, try rebooting.",
"Unable to initialize Video driver");
}
}
return ds;
}

View File

@ -3408,7 +3408,26 @@ void DisplayServerMacOS::set_icon(const Ref<Image> &p_icon) {
DisplayServer *DisplayServerMacOS::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {
DisplayServer *ds = memnew(DisplayServerMacOS(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_resolution, r_error));
if (r_error != OK) {
OS::get_singleton()->alert("Your video card driver does not support any of the supported Vulkan or OpenGL versions.", "Unable to initialize Video driver");
if (p_rendering_driver == "vulkan") {
String executable_command;
if (OS::get_singleton()->get_bundle_resource_dir() == OS::get_singleton()->get_executable_path().get_base_dir()) {
executable_command = vformat("%s --rendering-driver opengl3", OS::get_singleton()->get_executable_path());
} else {
executable_command = vformat("open %s --args --rendering-driver opengl3", OS::get_singleton()->get_bundle_resource_dir().path_join("../..").simplify_path());
}
OS::get_singleton()->alert("Your video card driver does not support the selected Vulkan version.\n"
"Please try updating your GPU driver or try using the OpenGL 3 driver.\n"
"You can enable the OpenGL 3 driver by starting the engine from the\n"
"command line with the command: '" +
executable_command + "'.\n"
"If you have updated your graphics drivers recently, try rebooting.",
"Unable to initialize Video driver");
} else {
OS::get_singleton()->alert("Your video card driver does not support the selected OpenGL version.\n"
"Please try updating your GPU driver.\n"
"If you have updated your graphics drivers recently, try rebooting.",
"Unable to initialize Video driver");
}
}
return ds;
}

View File

@ -3921,9 +3921,21 @@ Vector<String> DisplayServerWindows::get_rendering_drivers_func() {
DisplayServer *DisplayServerWindows::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {
DisplayServer *ds = memnew(DisplayServerWindows(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_resolution, r_error));
if (r_error != OK) {
OS::get_singleton()->alert("Your video card driver does not support any of the supported Vulkan or OpenGL versions.\n"
"Please update your drivers or if you have a very old or integrated GPU upgrade it.",
"Unable to initialize Video driver");
if (p_rendering_driver == "vulkan") {
String executable_name = OS::get_singleton()->get_executable_path().get_file();
OS::get_singleton()->alert("Your video card driver does not support the selected Vulkan version.\n"
"Please try updating your GPU driver or try using the OpenGL 3 driver.\n"
"You can enable the OpenGL 3 driver by starting the engine from the\n"
"command line with the command:\n'./" +
executable_name + " --rendering-driver opengl3'.\n "
"If you have updated your graphics drivers recently, try rebooting.",
"Unable to initialize Video driver");
} else {
OS::get_singleton()->alert("Your video card driver does not support the selected OpenGL version.\n"
"Please try updating your GPU driver.\n"
"If you have updated your graphics drivers recently, try rebooting.",
"Unable to initialize Video driver");
}
}
return ds;
}