Commit Graph

2963 Commits

Author SHA1 Message Date
Juan Linietsky
feef500b39 properly send mouse released event when grabbing modal focus, fixes #14854 2017-12-20 18:03:48 -03:00
Hein-Pieter van Braam
0db5123548 Prevent false sharing in lightbaker RNG state
The previous commit corrected the RNG behavior for the lightbaker but
also made it significantly slower on high core count systems. Due to the
vector of states being physically close together in RAM we force a cache
synchronization across all cores whenever we call for the next random
number to be generated.

This will create a temporary local copy of the RNG state before entering
the loop and then saving it back to the global state when done. This
will preserve the per-thread RNG state (and random number quality) while
significantly improving performance.

On my 16 thread box it saves 3 minutes baking the Sponza scene, bringing
performance back in line to before the various RNG fixes were
introduced, being slightly faster than the first implementation.
2017-12-20 14:37:00 +01:00
Hein-Pieter van Braam
ccbb5923ac Fix lightmapper rng
In our previous attempts to fix the lightmapper we may have
inadvertently introduced the same issue we were trying to fix. It
appears that rand() will on some platforms introduce a mutex making it
slower and on others may have a per-thread state that would need to be
initialized with srand() on each thread. This slows down the lightbaking
further.

This sets up a separate rng state for each OpenMP thread by calling
rand() only in the single-threaded part of the code. We then keep a
vector of states.

I believe this solves our problems.
2017-12-20 12:09:09 +01:00
Juan Linietsky
b08735f209 Make dynamic font oversampling fully dynamic. 2017-12-19 21:58:32 -03:00
Hein-Pieter van Braam
7a10d3ab78 Correct license headers in main.cpp and voxel_light_baker.cpp
Sorry for the churn
2017-12-20 01:04:30 +01:00
Hein-Pieter van Braam
9fa5a588f0 Fix lightbaker clang-format issue and add license headers 2017-12-20 01:02:03 +01:00
Hein-Pieter van Braam
ff04c07912 Lightbaker: include stdlib.h to fix CI builds 2017-12-20 00:29:27 +01:00
Juan Linietsky
808a3b9c71 Fix randomness in voxel light baker, closes #14841 2017-12-19 19:51:40 -03:00
Juan Linietsky
fc103566e6 Added font oversampling support 2017-12-19 18:48:30 -03:00
Juan Linietsky
06dd10b390 Fix raytrace lightmap bake bias 2017-12-19 17:09:05 -03:00
Juan Linietsky
5544b89750 properly plot normal when baking 2017-12-19 15:04:52 -03:00
Juan Linietsky
a714e1a4c7 Fixed bug where all file dialogs requested thumbnails even if hidden. 2017-12-19 12:57:46 -03:00
Juan Linietsky
1eb1837d0c Should no longer crash after rebaking, may be a solution to #14795
Not sure if this is the same problem, as reported, please test.
2017-12-19 09:58:02 -03:00
Ibrahn Sahir
8981924fbe fix for BitmapFont::create_from_fnt to allow loading from file in
project root directory.
2017-12-19 11:02:25 +00:00
Rémi Verschelde
abf20709af doc: Sync classref with current source 2017-12-18 08:13:58 +01:00
Juan Linietsky
e96c40f94a Added baked light support for gridmaps. 2017-12-18 00:35:20 -03:00
Rémi Verschelde
e83c502939
Merge pull request #14754 from willnationsdev/dictionary-copy
Added 'duplicate' function for Dictionary in C++ and API.
2017-12-17 23:58:59 +01:00
Will Nations
f19fc83546 Dictionary::copy -> ::duplicate 2017-12-17 16:07:15 -06:00
Rémi Verschelde
27642868f1
Merge pull request #14786 from djrm/pr_fixes
Expose Range, ScrollBar and Slider as virtual.
2017-12-17 22:21:06 +01:00
Daniel J. Ramirez
5e2c8593f7 Expose Range, ScrollBar and Slider as virtual. 2017-12-17 15:16:20 -06:00
Stefano Bonicatti
a15721e5c9 Fix Sprite3D alpha_cut member not being initialized 2017-12-17 22:07:43 +01:00
Rémi Verschelde
1ef123c57d
Merge pull request #14748 from YeldhamDev/popupmenu_circleback
Made highlighted item in PopupMenu circle back to the beginning/end when using the keyboard
2017-12-17 20:22:50 +01:00
Rémi Verschelde
90d95c7ee1
Merge pull request #14757 from YeldhamDev/submenu_keyboard
More changes to PopupMenu's submenu keyboard handling
2017-12-17 20:22:20 +01:00
Rémi Verschelde
89a32b4977
Merge pull request #14775 from hpvb/limit-lightmapper-subdiv
Limit the lightmapper subdivide to 1024
2017-12-17 19:59:59 +01:00
Rémi Verschelde
fd022cb156
Merge pull request #14778 from YeldhamDev/lineedit_deselect_expose
Exposed LineEdit's "selection_clear" and renamed it to "deselect"
2017-12-17 19:29:59 +01:00
Rémi Verschelde
9b86703fd9
Merge pull request #14772 from poke1024/fix14539
Fix cut-copy-line breaking paste (issue 14539)
2017-12-17 19:28:16 +01:00
Michael Alexsander Silva Dias
95f93e038a Exposed LineEdit's "selection_clear" and renamed it to "deselect". 2017-12-17 15:40:44 -02:00
Hein-Pieter van Braam
c4c7fa3f5e Limit the lightmapper subdivide to 1024
Due to memory contraints in other places in Godot it is unlikely that
anything higher than 1024 will actually work. When/if we improve memory
management for vectors we can increase  this limit again
2017-12-17 18:00:00 +01:00
Bernhard Liebl
abfcce0067 Fix cut-copy-line breaking paste (issue 14539) 2017-12-17 16:24:23 +01:00
Juan Linietsky
fa8a1fc420 Fixes how transform is applied to geometry in UV unwrap 2017-12-17 12:04:54 -03:00
Rémi Verschelde
cacab4ba62
Merge pull request #14769 from akien-mga/if-0-cleanup
Cleanup some #if 0'd code
2017-12-17 15:43:11 +01:00
Rémi Verschelde
8f25a2dc11 Cleanup some #if 0'd code 2017-12-17 15:40:24 +01:00
Rémi Verschelde
8821f9b750
Merge pull request #14767 from volzhs/save-clip-contents
Fix Clip Content property is not saved
2017-12-17 15:18:30 +01:00
volzhs
ef32018d1f Fix Clip Content property is not saved 2017-12-17 23:10:59 +09:00
Rémi Verschelde
ad3393743c
Merge pull request #14760 from hpvb/add-several-unlikely-macros
Add several unlikely() macros
2017-12-17 14:28:15 +01:00
Rémi Verschelde
539fd14cf5
Merge pull request #14758 from hpvb/optimize-lightbaker-rng
Use a more naive RNG for the lightmapper
2017-12-17 14:27:51 +01:00
Hein-Pieter van Braam
9ba134b463 Add several unlikely() macros
Based off of perf-based prediction misses these seem to be the
lowest-hanging fruit for quick (albeit small) improvements. These are
based on:

* baking a complex lightmap
* running platformer 3d
* running goltorus
2017-12-17 13:10:30 +01:00
Rémi Verschelde
32bc42690c
Merge pull request #14761 from fire/gdnative-lightmapper
Fix gdnative generation for lightmapper.
2017-12-17 11:12:21 +01:00
Hein-Pieter van Braam
a402efeb72 Tweak OpenMP parameters for lightbaker
On higher threadcount systems this allows for better utilization. On my
16 thread box CPU use goes from 10 - 11 threads to a steady 15 threads
on the Sponza scene.

Baking time goes from ~10:00 to ~07:30 for me. On lower threadcount
systems I expect some improvement also but likely a little less.
2017-12-17 03:09:38 +01:00
K. S. Ernest (iFire) Lee
9948da70a0 Fix gdnative generation for lightmapper. 2017-12-16 16:56:54 -08:00
Hein-Pieter van Braam
be4448bd1f Use a more naive RNG for the lightmapper
This speeds up the lightmapper by about 10% with no visible impact. A
comparison is up here:

https://tmm.cx/nextcloud/s/Log1eAXen1dJzBz

AMD Ryzen 7 1700 Eight-Core Processor
Sponza scene

pcg32
256/256/high   00:10:13
256/256/medium 00:02:50
256/256/low    00:01:11

xorshift
256/256/high   00:09:32
256/256/medium 00:02:34
256/256/low    00:01:05
2017-12-17 00:12:45 +01:00
Michael Alexsander Silva Dias
7e38db631f More changes to PopupMenu's submenu keyboard handling. 2017-12-16 20:57:26 -02:00
Juan Linietsky
1b944cb663
Revert "Fix mouse button release not sent to gui_input if it's different from the button that gave focus" 2017-12-16 19:50:32 -03:00
Rémi Verschelde
d03f35f1bc Bind TextEdit.deselect and update documentation 2017-12-16 21:08:31 +01:00
Juan Linietsky
cf84ee22a9 Added custom editor splash (including sponsor logo). 2017-12-16 16:11:13 -03:00
Juan Linietsky
c93cb30cbb restored binary compatibility, which was broken in #14406 2017-12-16 15:48:16 -03:00
Matthias Hoelzl
ced1ff63a8 Improve duplication and saving of instanced scenes 2017-12-16 17:58:17 +01:00
Michael Alexsander Silva Dias
c19cc581ec Made highlighted item in PopupMenu circle back to the beginning/end when using the keyboard. 2017-12-16 13:54:43 -02:00
Rémi Verschelde
caf3a405ab
Merge pull request #13991 from CyanBlob/master
TileMap: Add update_bitmask_region(2), expose update_bitmask_area(1) …
2017-12-16 16:38:59 +01:00
Andrew Thomas
d8c4324cfb TileMap: Add update_bitmask_region(2), expose update_bitmask_area(1) and update_bitmask_region(2) to GDscript 2017-12-16 08:18:54 -06:00