diff options
Diffstat (limited to 'platform/x11')
-rw-r--r-- | platform/x11/detect.py | 12 | ||||
-rw-r--r-- | platform/x11/os_x11.cpp | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/platform/x11/detect.py b/platform/x11/detect.py index ee59e9b5a1..dc5c22b4b3 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -149,6 +149,18 @@ def configure(env): env.Append(CCFLAGS=['-pipe']) env.Append(LINKFLAGS=['-pipe']) + # Check for gcc version > 4 before adding -no-pie + import re + import subprocess + proc = subprocess.Popen([env['CXX'], '--version'], stdout=subprocess.PIPE) + (stdout, _) = proc.communicate() + match = re.search('[0-9][0-9.]*', stdout) + if match is not None: + version = match.group().split('.') + if (version[0] > '4'): + env.Append(CCFLAGS=['-fpie']) + env.Append(LINKFLAGS=['-no-pie']) + ## Dependencies env.ParseConfig('pkg-config x11 --cflags --libs') diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 8ba5833796..2ab7b835b6 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -267,6 +267,10 @@ Error OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_a // maybe contextgl wants to be in charge of creating the window #if defined(OPENGL_ENABLED) + // Set DRI_PRIME if not set. This means that Godot should default to a higher-power GPU if it exists. + // Note: Due to the final '0' parameter to setenv any existing DRI_PRIME environment variables will not + // be overwritten. + setenv("DRI_PRIME", "1", 0); ContextGL_X11::ContextType opengl_api_type = ContextGL_X11::GLES_3_0_COMPATIBLE; |