diff --git a/builtin/mainmenu/settings/dlg_settings.lua b/builtin/mainmenu/settings/dlg_settings.lua index f03596815..ef28398b1 100644 --- a/builtin/mainmenu/settings/dlg_settings.lua +++ b/builtin/mainmenu/settings/dlg_settings.lua @@ -351,7 +351,7 @@ local function check_requirements(name, requires) -- be used, so we show settings for both. touchscreen = touch_support and (touch_controls == "auto" or core.is_yes(touch_controls)), keyboard_mouse = not touch_support or (touch_controls == "auto" or not core.is_yes(touch_controls)), - opengl = video_driver == "opengl", + opengl = (video_driver == "opengl" or video_driver == "opengl3"), gles = video_driver:sub(1, 5) == "ogles", } diff --git a/src/client/shadows/dynamicshadowsrender.cpp b/src/client/shadows/dynamicshadowsrender.cpp index 2bf3adeb3..039ab1a98 100644 --- a/src/client/shadows/dynamicshadowsrender.cpp +++ b/src/client/shadows/dynamicshadowsrender.cpp @@ -694,9 +694,13 @@ std::string ShadowRenderer::readShaderFile(const std::string &path) ShadowRenderer *createShadowRenderer(IrrlichtDevice *device, Client *client) { // disable if unsupported - if (g_settings->getBool("enable_dynamic_shadows") && - device->getVideoDriver()->getDriverType() != video::EDT_OPENGL) { - g_settings->setBool("enable_dynamic_shadows", false); + if (g_settings->getBool("enable_dynamic_shadows")) { + // See also checks in builtin/mainmenu/settings/dlg_settings.lua + const video::E_DRIVER_TYPE type = device->getVideoDriver()->getDriverType(); + if (type != video::EDT_OPENGL && type != video::EDT_OPENGL3) { + warningstream << "Shadows: disabled dynamic shadows due to being unsupported" << std::endl; + g_settings->setBool("enable_dynamic_shadows", false); + } } if (g_settings->getBool("enable_dynamic_shadows")) {