summaryrefslogtreecommitdiff
path: root/platform/x11/detect.py
AgeCommit message (Collapse)Author
2019-01-21Rename sanitizer option names.marxin
Make the sanitizer names more explicit (use_ubsan, use_asan, use_lsan). Comment has been adjusted to include GCC as supported compiler for these and exclude -fno-omit-frame-pointer option (should not cause any problems).
2019-01-09Don't use -ffast-math or other unsafe math optimizationsHein-Pieter van Braam
Godot supports many different compilers and for production releases we have to support 3 currently: GCC8, Clang6, and MSVC2017. These compilers all do slightly different things with -ffast-math and it is causing issues now. See #24841, #24540, #10758, #10070. And probably other complaints about physics differences between release and release_debug builds. I've done some performance comparisons on Linux x86_64. All tests are ran 20 times. Bunnymark: (higher is better) (bunnies) min max stdev average fast-math 7332 7597 71 7432 this pr 7379 7779 108 7621 (102%) FPBench (gdscript port http://fpbench.org/) (lower is better) (ms) fast-math 15441 16127 192 15764 this pr 15671 16855 326 16001 (99%) Float_add (adding floats in a tight loop) (lower is better) (sec) fast-math 5.49 5.78 0.07 5.65 this pr 5.65 5.90 0.06 5.76 (98%) Float_div (dividing floats in a tight loop) (lower is better) (sec) fast-math 11.70 12.36 0.18 11.99 this pr 11.92 12.32 0.12 12.12 (99%) Float_mul (multiplying floats in a tight loop) (lower is better) (sec) fast-math 11.72 12.17 0.12 11.93 this pr 12.01 12.62 0.17 12.26 (97%) I have also looked at FPS numbers for tps-demo, 3d platformer, 2d platformer, and sponza and could not find any measurable difference. I believe that given the issues and oft-reported (physics) glitches on release builds I believe that the couple of percent of tight-loop floating point performance regression is well worth it. This fixes #24540 and fixes #24841
2018-12-14Use XInput2 RawMotion to generate MouseMotion eventsCosmic Chip Socket
The current system for capturing the mouse and generating motion events on X11 has issues with inaccurate and lopsided input. This is because both XQueryPointer and XWarpPointer work in terms of integer coordinates when the underlying X11 input driver may be tracking the mouse using subpixel coordinates. When warping the pointer, the fractional part of the pointer position is discarded. To work around this issue, the fix uses raw motion events from XInput 2. These events report relative motion and are not affected by pointer warping. Additionally, this means Godot is able to detect motion at a higher resolution under X11. Because this is raw mouse input, it is not affected by the user's pointer speed and acceleration settings. This is the same system as SDL2 uses for its relative motion. Multitouch input on X requires XInput 2.2. Raw motion events require XInput 2.0. Since 2.0 is old enough, this is now the minimum requirement to use Godot on X.
2018-11-14Fix gcc version check when running scons in python 3.Ibrahn Sahir
2018-11-12Fix compile recent compile issues with gcc 5.5Marcelo Fernandez
2018-11-07Fix binaries incorrectly detected as shared libraries on some linux distrosMarcelo Fernandez
2018-10-01SCons: Remove avoidable defines from main env's CPPPATHRémi Verschelde
Also finally move freetype to its own env and disable warnings for it. Still needs some work to fix the awkward situation of the freetype and svg modules used in scene/ and editor/ respectively.
2018-09-25SCons: Fix checks for clang in env['CXX']Rémi Verschelde
They would match the whole path instead of only the filename.
2018-07-25Merge pull request #20154 from marcelofg55/midi_driverRémi Verschelde
Added a new MIDIDriver class
2018-07-22SCons: Add "execinfo" option to force linking libexecinfoRémi Verschelde
Fixes #20035.
2018-07-21-Fix disable_3d flagJuan Linietsky
-Add extra flag optimize=[size,speed] to be able to prioritize size
2018-07-21Added a new MIDIDriver classMarcelo Fernandez
2018-06-07Tweak some help texts in the build systemHugo Locurcio
This also removes `unix_global_settings_path` from SConstruct since it is no longer used.
2018-06-07SCons: Allow unbundling libwebsockets and miniupnpcRémi Verschelde
2018-05-08Merge pull request #14622 from bruvzg/non-rectangular-windowsHein-Pieter van Braam
Experimental support for windows with per-pixel transparency.
2018-04-07Experimental support for windows with per-pixel transparency (macOS, X11 and ↵bruvzg
Windows).
2018-03-26Added new audio device functions to set/get the audio deviceMarcelo Fernandez
2018-02-16X11: Link libgcc statically with use_static_cpp optionRémi Verschelde
We were already linking libstdc++ statically for official binaries, protecting us against most portability issues. But apparently since we started using GCC 7 for official builds, we also need to link libgcc statically for at least 32-bit builds to be portable. Fixes #16409.
2018-02-14Allow building with system wide mbedtls on X11Fabio Alessandrelli
Using builtin_mbedtls=yes is still the default as many distributions do not ship with mbedtls included.
2018-02-14Deleting OpenSSL module and libraryFabio Alessandrelli
2018-01-26Make separate debug symbols opt-inHein-Pieter van Braam
This adds a separate_debug_symbols option to the x11, windows, and osx targets. This will default to adding normal debugging symbols to the artifacts and only splits them when separate_debug_symbols=yes on the Scons command line.
2018-01-26Bullet: allow unbundling only if > 2.87Rémi Verschelde
Looks like we are using cutting edge methods which are not even if the current stable 2.87.
2018-01-13SCons: Allow unbundling bullet on Linux (only 2.87+)Rémi Verschelde
2018-01-05SCons: Fix usage of LD when we meant LINKRémi Verschelde
Also made LINK and CXXFLAGS configurable as command line options. Note that LINK currently expects the *compiler* that will be used for linking and will call its configured linker behind the scenes (so g++, clang++, etc., not ld.gold). See #15364 for details.
2017-12-24-Removed OpenMP support, replaced by a custom class.Juan Linietsky
-Disabled Opus, implementation is wrong.
2017-12-22Do not require OpenMP for non-tools builds (export templates)Rémi Verschelde
2017-12-14openmp: Simplify linking on X11, fixing clang buildRémi Verschelde
2017-12-14openmp: Don't try to link GCC's implementation on ClangRémi Verschelde
Also disable openmp build on Travis, breaks on Trusty's Clang. Group deps more naturally.
2017-12-14Added indent_style to editorconfig, fixed inconsistent use of tabs and ↵Colin Kinloch
spaces in indentation.
2017-12-14-Add lightmapperJuan Linietsky
-Fixes to unwrapper (remove degenerates), makes Thekla not crash -Added optional cancel button in EditorProgress -Added function to force processing of events (needed for cancel button)
2017-12-06Implement multitouch on X11Pedro J. Estébanez
2017-11-19Cleanup old references to GLES2 rendererRémi Verschelde
There are still some left in the Android Java code, even stuff to swap between GLES1 and GLES2 support from early Godot days... would be good to see some cleanup there too one day. The "graphics/api" option for Android exports is removed, as only GLES 3.0 is supported. It can be readded when GLES 2.0 support comes back. Fixes #13004.
2017-11-02SCons: make use_lto a global option and opt-in for iphoneRémi Verschelde
Supersedes #12553, see discussion in #12552.
2017-10-27Travis: Simplify matrix, disable iphone and add X11 tools=no/clangRémi Verschelde
Travis always has massive backlog of macOS builds, so we can't rely on them too much. The iphone build was mostly useful to spot tools=no or target=release_debug issues, so replacing it by an appropriate X11 build.
2017-10-17Fix BSD compile issuesMarcelo Fernandez
2017-09-26Reduce gcc lto build time by telling the linker toFelix M. Cobos
use the number of jobs indicated by -j
2017-09-25Use BoolVariable in platform-specific options.Elliott Sales de Andrade
2017-09-25Use BoolVariable for third-party options.Elliott Sales de Andrade
2017-09-25Use BoolVariable in target/component/advanced options.Elliott Sales de Andrade
2017-09-25Use EnumVariable for choice-based build options.Elliott Sales de Andrade
2017-09-24Merge pull request #11519 from hpvb/fix-gcc-ltoRémi Verschelde
Fix gcc lto [ci skip]
2017-09-24Merge pull request #11527 from QuLogic/system-zstdRémi Verschelde
Enable building against system zstd.
2017-09-24Add support for OpenSSL 1.1.0.Elliott Sales de Andrade
This release hides many struct members which provides easier forward compatibility but is a break from previous releases. A few small macros provide compatibility between both 1.1.0 and 1.0.x. Fixes #8624.
2017-09-23Enable building against system zstd.Elliott Sales de Andrade
2017-09-23Fix gcc ltoHein-Pieter van Braam
This repairs LTO on X11 and adds it to MingW targets. The difference in linktime is substantial, but runtime performance is quite a bit better.
2017-09-16Create separate debug info files by defaultHein-Pieter van Braam
Now that we have a built-in stacktrace on a segfault it would be useful to have debug information on debug_release builds so that bugreports can include this information. Without this debug info we will still get function names in the backtrace but not file location. This commit will by default build all targets with minimal debug info and then strip the information into separate files. On MacOS this is a .dSYM file, on Linux/MingW this is a .debug file. MacOSX will automatically load a dSYM file if it exists in its debugger. On Linux/MingW we create a 'gnu debuglink' meaning that gdb and friends will automatically find the debug symbols if they exist. Existing workflow for developers does not change at all, except that we now create two instead of one build artifact by default. This commit also adds a 'debug_symbols' option to X11, MacOS, and MingW targets. The default is 'yes' which corresponds to -g1. The alternatives are 'no' (don't generate debug infos at all) or 'full' which runs with -g2. A target=debug build will now build with -g3.
2017-09-13Added a crash handler to dump the backtrace on Windows, Linux and OS XMarcelo Fernandez
2017-08-31Merge pull request #10148 from leezh/pcre2Rémi Verschelde
Replacement of internal RegEx with PCRE2
2017-08-30Disable -ffast-math for etc2compHein-Pieter van Braam
Apparently -ffast-math generates incorrect code with recent versions of GCC and Clang. The manual page for GCC warns about this possibility. In my tests it doesn't actually appear to be measurably slower in this case, and this is used in a batch process so it seems safe to disable this. This fixes #10758 and fixes #10070
2017-08-19Replacement of internal RegEx with PCRE2Zher Huei Lee
The pattern and replacement matching behaviour has been changed purely due to the nature of switching to a standards-compliant library. One mistake in the previous behaviour was that named groups didn't have a number. This has been corrected. As names are actually just an alias of numbered groups, RegExMatch::get_name_dict() is now get_names() and is a dict referring to the group number it represents. Duplicate names are enabled and the with the first matching instance used. Due the lack of a suitable equivalent in PCRE2, RegExMatch::expand() was removed.