Rémi Verschelde
b7b3978684
Merge pull request #36556 from RandomShaper/rework_mutex
...
Reimplement `Mutex` with C++'s `<mutex>` (plus more)
2020-02-28 00:26:01 +01:00
Rémi Verschelde
3a7f1300ee
Merge pull request #36186 from Calinou/remove-vulkan-debugging-prints
...
Remove Vulkan debugging prints
2020-02-27 21:11:24 +01:00
Pedro J. Estébanez
18fbdbb456
Reimplement Mutex with C++'s <mutex>
...
Main:
- It's now implemented thanks to `<mutex>`. No more platform-specific implementations.
- `BinaryMutex` (non-recursive) is added, as an alternative for special cases.
- Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
- Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts.
- A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this.
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- Thread-safe utilities are therefore simpler now.
Misc.:
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
- Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
- `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
2020-02-26 20:40:10 +01:00
clayjohn
b0ff427a2a
properly flip sky when rendering reflection probes
2020-02-21 11:42:00 -08:00
Andrii Doroshenko (Xrayez)
fa766265a7
Fix MIMPAMPS typos in constants throughout the engine
2020-02-20 01:31:43 +02:00
Rémi Verschelde
49fec646cb
Fix compilation warnings and re-enable werror=yes on Travis
...
Fix -Wunused-variable, -Wunused-but-set-variable and -Wswitch warnings
raised by GCC 8 and 9.
Fix -Wunused-function, -Wunused-private-field and
-Wtautological-constant-out-of-range-compare raised by Clang.
Fix MSVC 2019 warning C4804 (unsafe use of type 'bool' in comparison
operation).
GCC -Wcpp warnings/Clang -W#warnings (`#warning`) are no longer raising
errors and will thus not abort compilation with `werror=yes`.
Treat glslang headers are system headers to avoid raising warnings.
Re-enables us to build with `werror=yes` on Linux and macOS, thus
catching warnings that would be introduced by new code.
Fixes #36132 .
2020-02-18 20:51:25 +01:00
Juan Linietsky
3205a92ad8
PoolVector is gone, replaced by Vector
...
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
2020-02-18 10:10:36 +01:00
Haoyu Qiu
d9b5cbdffa
Fixes memory leaks in GdNavigationServer and RasterizerSceneHighEndRD
2020-02-15 14:25:32 +08:00
Marcin Zawiejski
2842c6a88c
fix oob write when calling MultiMesh::set_instance_transform
2020-02-14 17:48:48 +01:00
Rémi Verschelde
415a901b68
Merge pull request #36194 from dragmz/dragmz/exit_crash_fix
...
Fix crash when closing project manager
2020-02-14 14:31:54 +01:00
Rémi Verschelde
79d42069a9
Merge pull request #36208 from akien-mga/warnings
...
Fix various GCC compilation warnings after Vulkan merge
2020-02-14 13:49:20 +01:00
Rémi Verschelde
d2537407ef
Fix various GCC compilation warnings after Vulkan merge
...
Part of #36132 .
2020-02-14 10:02:31 +01:00
clayjohn
b878e5bbe8
Fix error flood with sky background
2020-02-13 16:31:21 -08:00
Marcin Zawiejski
17ea60bb92
fix crash when closing project manager
2020-02-13 22:03:46 +01:00
Hugo Locurcio
71b74195de
Remove Vulkan debugging prints
2020-02-13 18:50:07 +01:00
Yuri Roubinsky
4aa31a2851
Merge pull request #36141 from Chaosus/shader_struct_member_arrays
...
Added support for arrays as shader struct members
2020-02-12 20:12:05 +03:00
Yuri Roubinsky
6b99bda1e8
Added support for arrays as shader struct members
2020-02-12 17:10:20 +03:00
Rémi Verschelde
0e3d625737
doc: Sync classref with current source
...
Lots of internal API changes and some docstrings were lost in the conversion.
I manually salvaged many of them but for all the rendering-related ones, an
additional pass is needed.
Added missing enum bindings in BaseMaterial3D and VisualServer.
2020-02-12 12:37:13 +01:00
Yuri Roubinsky
6f162395ff
Implementation of 'struct' for shaders
2020-02-11 20:00:42 +03:00
Rémi Verschelde
db81928e08
Vulkan: Move thirdparty code out of drivers, style fixes
...
- `vk_enum_string_helper.h` is a generated file taken from the SDK
(Vulkan-ValidationLayers).
- `vk_mem_alloc.h` is a library from GPUOpen:
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
2020-02-11 14:08:44 +01:00
Yuri Roubinsky
21e3cc7bb8
[Vulkan] Fix shader crash if using multiple underscores in identifier names
2020-02-11 12:16:22 +01:00
Juan Linietsky
2049dec79e
Added normalmap guided roughness mipmap generator, and a global roughness limiter.
2020-02-11 12:16:01 +01:00
Juan Linietsky
bed8980ca5
Re-implemented screen space ambient occlusion
2020-02-11 12:15:46 +01:00
Juan Linietsky
ee1e89f8c0
Modified rendering to use cluster instead of foward
2020-02-11 12:15:27 +01:00
Juan Linietsky
f8b5c5f063
DOF fully implemented, can be edited on the fly.
2020-02-11 12:15:26 +01:00
Juan Linietsky
c05da81268
Mostly working DOF Bokeh
2020-02-11 12:15:04 +01:00
Juan Linietsky
f14defb6f9
WIP CameraEffects implementation (bokeh not working for now)
2020-02-11 12:15:03 +01:00
Juan Linietsky
bd364d1447
Auto exposure re-implemented in Vulkan
2020-02-11 12:14:23 +01:00
Juan Linietsky
b859e69919
-Refactored post processing, re-added glow and added a mix blend mode.
2020-02-11 12:14:21 +01:00
clayjohn
e530f49be2
Fix Specular Blinn in vulkan
2020-02-11 12:10:36 +01:00
Rémi Verschelde
6310354cde
Vulkan: Fix false positive in ninepatch axis stretch code
...
Adapted from e4907e50fe
,
supersedes and closes #34704 .
2020-02-11 12:09:55 +01:00
Fabian Mathews
ba6d9597cb
Fixed error condition check for multimesh instance colors
2020-02-11 12:07:03 +01:00
Matias Pierdomenico
0e20e349f1
Changed variable name in shader because it was too generic
2020-02-11 12:06:05 +01:00
Rémi Verschelde
fff4240bb4
Fix code formatting issues and VS compilation
...
Also temporarily disable multicheck build so that we get a full build
even when there are style issues on Vulkan.
Fixes #33356 .
2020-02-11 12:05:19 +01:00
Juan Linietsky
b509c814fc
Improved Voxel AO settings.
2020-02-11 12:05:05 +01:00
Juan Linietsky
4949d578f2
Dynamic objects in GIProbes are now affected by propagation parameter.
2020-02-11 12:05:05 +01:00
Juan Linietsky
d6e4b45994
More correctly divide alpha by 8 for mipmaps, fixes voxel overocclusion.
2020-02-11 12:05:04 +01:00
Juan Linietsky
8deb977551
Changed SDF processing to smooth out shadows.
2020-02-11 12:05:03 +01:00
Juan Linietsky
da0457fa29
Several fixes to GIProbes
2020-02-11 12:04:56 +01:00
Juan Linietsky
971ce680f2
Fixes to how anisotropy is handled, makes it work on nvidia.
2020-02-11 12:04:56 +01:00
Juan Linietsky
f4948721e4
Fixed uninitialized memory bug in voxelizer
2020-02-11 12:04:54 +01:00
Juan Linietsky
2af701fa03
Use a different strategy to get textures from GPU (via buffers), for more compatibility.
2020-02-11 12:04:54 +01:00
Juan Linietsky
2c67cc654f
AO support for GIProbe (right on time for Godot Sprint!)
2020-02-11 12:03:55 +01:00
Juan Linietsky
76c6f39d99
GIProbe now generates a distance field on bake using CPU, for better compatibility
2020-02-11 12:03:54 +01:00
Juan Linietsky
561b431d85
Dynamic object support for GI Probes (a bit buggy still)
2020-02-11 12:03:52 +01:00
Juan Linietsky
6ee2f5e6b6
More GIProbe work and fixes
2020-02-11 12:03:49 +01:00
bruvzg
26318f3bd1
Fix Vector3 ambiguities and out of bounds init.
2020-02-11 12:03:39 +01:00
Juan Linietsky
fb739f9da7
Fixed display menu visualizations.
2020-02-11 12:03:24 +01:00
Juan Linietsky
965185c765
Better GIProbe quality settings.
2020-02-11 12:03:23 +01:00
Juan Linietsky
fa548b052e
Missing proper comparison for depth pre-pass.
2020-02-11 12:03:21 +01:00