Vladimír Vondruš
a85d24ad17
Audio, GL: (attempt to) fix MinGW GCC warnings on static Windows builds.
...
The CI doesn't have this configuration in the build matrix, so hoping
it's doing what it's supposed to.
7 years ago
Vladimír Vondruš
aa722cd5bd
Platform: Xlib.h is a bad, bad thing.
7 years ago
Vladimír Vondruš
deb25cd28f
singles: update for 2019.10.
7 years ago
Vladimír Vondruš
cdd0147edb
Disable automatic resource initializers when building static.
...
That's done manually, and when such a static lib is linked to a DLL, the
suddenly appearing global constructors are unexpected.
7 years ago
Vladimír Vondruš
909887ad7c
A sad workaround for a sad misery with Python bindings on Windows.
7 years ago
Vladimír Vondruš
de95eddb3f
Use the new Matrix4::normalMatrix() everywhere.
7 years ago
Vladimír Vondruš
de3f8858f0
Math: now that we have a standalone cofactor(), inline its internals.
...
Apparently this gives a nearly three-times speed up compared to before.
Didn't expect that.
Starting Magnum::Math::Test::MatrixBenchmark with 16 test cases...
INFO Benchmarking a debug build.
BENCH [01] 95.33 ± 4.52 ns multiply3()@499x10000 (wall time)
BENCH [02] 183.99 ± 9.29 ns multiply4()@499x10000 (wall time)
BENCH [03] 110.17 ± 8.50 ns comatrix3()@49x10000 (wall time)
BENCH [04] 161.54 ± 10.13 ns invert3()@49x10000 (wall time)
BENCH [05] 471.44 ± 19.40 ns invert3GaussJordan()@49x10000 (wall time)
BENCH [06] 320.65 ± 13.23 ns invert3Rigid()@49x10000 (wall time)
BENCH [07] 206.27 ± 9.80 ns invert3Orthogonal()@49x10000 (wall time)
BENCH [08] 321.25 ± 18.82 ns comatrix4()@49x10000 (wall time)
BENCH [09] 445.50 ± 15.18 ns invert4()@49x10000 (wall time)
BENCH [10] 828.55 ± 16.96 ns invert4GaussJordan()@49x10000 (wall time)
BENCH [11] 533.23 ± 21.75 ns invert4Rigid()@49x10000 (wall time)
BENCH [12] 345.56 ± 10.16 ns invert4Orthogonal()@49x10000 (wall time)
BENCH [13] 63.72 ± 6.85 ns transformVector3()@999x10000 (wall time)
BENCH [14] 62.28 ± 4.43 ns transformPoint3()@999x10000 (wall time)
BENCH [15] 82.05 ± 7.96 ns transformVector4()@999x10000 (wall time)
BENCH [16] 79.32 ± 2.41 ns transformPoint4()@999x10000 (wall time)
Finished Magnum::Math::Test::MatrixBenchmark with 0 errors out of 5500 checks.
7 years ago
Vladimír Vondruš
515637c76a
Math: implement a robust and faster Matrix4::normalMatrix().
...
This change makes the operations split into a bunch of separate
functions, making the parts easier to document, however with a slight
negative effect on debug performance:
Starting Magnum::Math::Test::MatrixBenchmark with 16 test cases...
INFO Benchmarking a debug build.
BENCH [01] 94.54 ± 3.62 ns multiply3()@499x10000 (wall time)
BENCH [02] 183.47 ± 7.50 ns multiply4()@499x10000 (wall time)
BENCH [03] 318.11 ± 11.59 ns comatrix3()@49x10000 (wall time)
BENCH [04] 379.51 ± 12.17 ns invert3()@49x10000 (wall time)
BENCH [05] 448.23 ± 17.61 ns invert3GaussJordan()@49x10000 (wall time)
BENCH [06] 338.96 ± 11.61 ns invert3Rigid()@49x10000 (wall time)
BENCH [07] 206.37 ± 10.59 ns invert3Orthogonal()@49x10000 (wall time)
BENCH [08] 879.40 ± 20.03 ns comatrix4()@49x10000 (wall time)
BENCH [09] 1.16 ± 0.03 µs invert4()@49x10000 (wall time)
BENCH [10] 825.40 ± 17.34 ns invert4GaussJordan()@49x10000 (wall time)
BENCH [11] 534.86 ± 15.73 ns invert4Rigid()@49x10000 (wall time)
BENCH [12] 347.36 ± 11.62 ns invert4Orthogonal()@49x10000 (wall time)
BENCH [13] 65.70 ± 6.73 ns transformVector3()@999x10000 (wall time)
BENCH [14] 62.56 ± 3.09 ns transformPoint3()@999x10000 (wall time)
BENCH [15] 81.25 ± 2.78 ns transformVector4()@999x10000 (wall time)
BENCH [16] 82.14 ± 4.26 ns transformPoint4()@999x10000 (wall time)
Finished Magnum::Math::Test::MatrixBenchmark with 0 errors out of 5500 checks.
7 years ago
Vladimír Vondruš
e3a820f468
Math: benchmark basic Matrix operations.
...
So I'm sure the next additions don't make things worse -- in the debug
build, in particular. Current state:
Starting Magnum::Math::Test::MatrixBenchmark with 14 test cases...
INFO Benchmarking a debug build.
BENCH [01] 102.25 ± 4.58 ns multiply3()@499x10000 (wall time)
BENCH [02] 183.84 ± 7.75 ns multiply4()@499x10000 (wall time)
BENCH [03] 329.84 ± 20.50 ns invert3()@49x10000 (wall time)
BENCH [04] 442.08 ± 13.47 ns invert3GaussJordan()@49x10000 (wall time)
BENCH [05] 331.23 ± 13.85 ns invert3Rigid()@49x10000 (wall time)
BENCH [06] 206.01 ± 11.13 ns invert3Orthogonal()@49x10000 (wall time)
BENCH [07] 1.01 ± 0.03 µs invert4()@49x10000 (wall time)
BENCH [08] 826.77 ± 19.33 ns invert4GaussJordan()@49x10000 (wall time)
BENCH [09] 520.12 ± 21.97 ns invert4Rigid()@49x10000 (wall time)
BENCH [10] 344.20 ± 13.32 ns invert4Orthogonal()@49x10000 (wall time)
BENCH [11] 61.00 ± 2.89 ns transformVector3()@999x10000 (wall time)
BENCH [12] 61.55 ± 3.35 ns transformPoint3()@999x10000 (wall time)
BENCH [13] 80.65 ± 2.99 ns transformVector4()@999x10000 (wall time)
BENCH [14] 80.86 ± 3.32 ns transformPoint4()@999x10000 (wall time)
Finished Magnum::Math::Test::MatrixBenchmark with 0 errors out of 5400 checks.
7 years ago
Vladimír Vondruš
303468f299
Doc++
7 years ago
Vladimír Vondruš
abf9d9aa50
plugins: modify binary output location only if all variables are set.
...
Otherwise it tries to create /magnum and such and fails.
7 years ago
Vladimír Vondruš
5f4e76e646
DebugTools: fix a linker error on Clang.
...
Not sure why it started happening only after I added a deprecated
constructor. Making it the same as is done for Image classes.
7 years ago
Vladimír Vondruš
507c5bf739
GL: remove the nv-egl-forward-compatible-context-unhappy workaround.
...
This was my bug, as requesting a forward-compatible context without
saying *what* version it should be forward compatible to makes no sense.
A followup to 73baab69ce .
7 years ago
Vladimír Vondruš
607b3a15fa
DebugTools: finish ResourceManager singleton deprecation.
7 years ago
Vladimír Vondruš
8c7c2c5745
SceneGraph: clarify transformation calculation.
7 years ago
Vladimír Vondruš
9fad16182e
Platform: implement AndroidApplication::MouseMoveEvent::relativePosition().
7 years ago
Vladimír Vondruš
35bf229ed5
Platform: add Sdl2Application::Configuration::WindowFlag::{OpenGL,Vulkan}.
7 years ago
Vladimír Vondruš
b3759b6a98
GL: ensure gl_PointCoord works correctly also on compatibility profile.
7 years ago
Vladimír Vondruš
b64bb14412
Don't use angle brackets for local includes.
7 years ago
Vladimír Vondruš
108c75efcf
Fix non-deprecated static Windows build.
7 years ago
Vladimír Vondruš
023c3811c8
Primitives: doc++
7 years ago
Vladimír Vondruš
52ff540407
Primitives: fix and make gradient function params consistent.
7 years ago
Vladimír Vondruš
26accc7ec1
GL: AMD on Windows is also useless for framebufer format queries :/
7 years ago
Vladimír Vondruš
3629af231b
GL: new amd-windows-broken-dsa-cubemap-copy workaround.
7 years ago
Vladimír Vondruš
9fa87652e6
GL: new amd-windows-dsa-createquery-except-xfb-overflow workaround.
7 years ago
Vladimír Vondruš
d06914a1bd
doc: hint that Optional is a safer NoCreate.
7 years ago
Vladimír Vondruš
82f53862e1
Platform: Sdl2Application::mainLoopIteration() now returns a bool.
...
To indicate when the app desires to exit.
7 years ago
Vladimír Vondruš
24f7d45364
Implement globals shared across DLLs on Windows.
7 years ago
Vladimír Vondruš
ca326fdb18
GL: pile on more workarounds for CubeMapTexture DSA code paths.
...
Ugh why this has to be SO TERRIBLE. I'm starting to have extremely low
expectations for similar parts of Vulkan drivers by the same vendors.
7 years ago
Vladimír Vondruš
f2ba5602a4
GL: Intel Windows drivers 26 are less shitty w/ double attributes.
7 years ago
Vladimír Vondruš
5c042f62d0
GL: if timer queries are not available, SKIP the benchmarks.
...
Requiring each benchmark to handle this on its own would be silly.
7 years ago
Vladimír Vondruš
60c18f93a1
GL: implement time queries for WebGL 2, and workarounds, and ...
...
There's a new firefox-fake-disjoint-timer-query-webgl2 workaround and a
half-page of text listing various caveats and issues you might run into.
Also exposing them in the OpenGLTester (although quite shitty at this
point).
7 years ago
Vladimír Vondruš
cb5fe2dd49
GL: don't forward-declare what doesn't exist.
7 years ago
Vladimír Vondruš
05b9509dba
Expose UnsignedLong and Long on Emscripten.
...
The "64-bit integers have to be emulated and it's slow" problem doesn't
apply for WebAssembly anymore.
7 years ago
Vladimír Vondruš
0731546bc8
Copy HTML runners for magnum-gl-info and magnum-al-info into the build dir.
...
So I can run those directly from there, without installing stuff.
7 years ago
Marco Melorio
c632099501
Shaders: inflate rendering test thresholds a bit for the iPhone GPU.
7 years ago
Marco Melorio
2379b8cd09
Fixed shaders tests for iOS
7 years ago
Vladimír Vondruš
66ebed23c8
imageconverter: doc++
7 years ago
Vladimír Vondruš
05baf2fa50
imageconverter: apparently I never tested these additions.
...
The --raw is a not-yet-meant-to-be-public thing.
7 years ago
Vladimír Vondruš
3afa29ed5b
DebugTools: XFAIL a screenshot() test if the format is not R8.
...
It gets read as RGBA on Intel Windows.
7 years ago
Vladimír Vondruš
65b589f765
New explicit-uniform-location-is-less-explicit-than-you-hoped workaround.
...
Intel drivers on Windows. Surprisingly unsurprising.
7 years ago
Vladimír Vondruš
dac61f51cc
Trade: implement passing importer/converter options to imageconverter.
7 years ago
Vladimír Vondruš
32175eecaf
Trade: link magnum-imageconverter to pthreads.
...
Sigh.
7 years ago
Vladimír Vondruš
ef1fbd8e4b
CMake: copy SDL / GLFW DLLs to CMAKE_RUNTIME_OUTPUT_DIRECTORY.
...
Shall make Windows users' life a bit less painful.
7 years ago
Vladimír Vondruš
3a243a04b2
CMake: put all binaries into a dedicated location in the build dir.
...
This makes it possible to:
- finally use Magnum as a CMake subproject on Windows and have your
executables not fail to run with a "DLL missing" error (and the
setting is put to cache so superprojects just implicitly make use of
that)
- run tests on Windows without having to install first
- use dynamic plugins from a CMake subproject on any platform without
having to install first or load them by filename --- and the plugin
directory is now easily discovered as relative to
libraryLocation() of the library implementing given plugin interface
7 years ago
Vladimír Vondruš
8f72f383df
external: update Vulkan headers with latest flextgl.
...
Stuff that was accidentally pulled in because of optional extension
interaction is not pulled in anymore.
7 years ago
Vladimír Vondruš
32ce1f1b43
external: include KHR/khrplatform.h absolutely.
...
Otherwise it requires custom buildsystem users to add
MagnumExternal/OpenGL to include paths, causes issues in Vcpkg and so
on.
7 years ago
Vladimír Vondruš
6ba9bf529a
Platform: doc++
7 years ago
Vladimír Vondruš
f7d739058b
Platform: device selection in WindowlessEglApplication.
7 years ago
Vladimír Vondruš
3bfec34cec
Platform: EGL_EXT_anything isn't on WebGL anyway.
7 years ago