Commit graph

25121 commits

Author SHA1 Message Date
Rémi Verschelde
453f0bfac1 glslang: Disable warnings and allow unbundling 2019-12-12 17:09:14 +01:00
Rémi Verschelde
7d7b486e7d basis_universal: Fix py3 build and document license and provenance
Also drop unneeded files.

Fix build with MinGW. Closes #32384.
2019-12-12 17:09:11 +01:00
Juan Linietsky
514236a97c Rewritten StreamTexture for better code reuse, added basis universal support 2019-12-12 17:09:05 +01:00
Juan Linietsky
a345f50c8b Untested support for compute shaders 2019-12-12 17:09:04 +01:00
Rémi Verschelde
bda57a38bd Merge pull request #32298 from Chaosus/vk_fix_typo
[Vulkan] Fix typo in shading modes
2019-12-12 17:08:53 +01:00
Yuri Roubinsky
783e33cc01 [Vulkan] Fix typo in shading modes 2019-12-12 17:08:51 +01:00
Juan Linietsky
cd72b19320 Skeletons are now working. 2019-12-12 17:08:50 +01:00
Rémi Verschelde
aeb155ce99 Merge pull request #32281 from Chaosus/vk_shader_array_varying2
[Vulkan] Implement shader array support for varyings
2019-12-12 17:08:39 +01:00
Yuri Roubinsky
e3938a09dd [Vulkan] Implement shader array support for varyings
Remake of #32175
2019-12-12 17:08:38 +01:00
Rémi Verschelde
efa8d6b1d0 Merge pull request #32280 from Chaosus/vk_shader_switch2
[Vulkan] Implements switch flow control operator in shaders
2019-12-12 17:08:37 +01:00
Yuri Roubinsky
4d8411acc6 [Vulkan] Implements switch flow control operator in shaders 2019-12-12 17:08:26 +01:00
Juan Linietsky
ccaf7d5c35 Properly working instancing, and compatibility fixing for old meshes 2019-12-12 17:08:06 +01:00
Juan Linietsky
a0a7732aec Visual GPU profiler and related profiling support in Vulkan. 2019-12-12 17:08:05 +01:00
Juan Linietsky
3f6b9c8611 Proper texture reloading (was broken). 2019-12-12 17:08:03 +01:00
Juan Linietsky
8501b37b8f Modernized default 3D material, fixes material bugs. 2019-12-12 17:08:02 +01:00
Juan Linietsky
7919ef863b Several fixes to 3D rendering, and multimesh implementation. 2019-12-12 17:08:00 +01:00
Juan Linietsky
bae6f608d2 Reflection probes working 2019-12-12 17:08:00 +01:00
Juan Linietsky
6651336a8a Directional light cleanup. 2019-12-12 17:07:49 +01:00
Juan Linietsky
dd875c2c3c Directional lights and shadow mapping are functional. 2019-12-12 17:07:49 +01:00
Juan Linietsky
5f6ed2349c Rewrote large part of rendering, omni and spot shadows now work. 2019-12-12 17:07:48 +01:00
Juan Linietsky
8f5dc4f06c Tonemapping ported (not all parameters supported yet, only enough to get correct color) 2019-12-12 17:07:48 +01:00
Juan Linietsky
7db3532b2e Environment sky more or less working. 2019-12-12 17:07:47 +01:00
Rémi Verschelde
aaeac6633d Merge pull request #31527 from Chaosus/vk_shader_array_support2
[Vulkan] Implemented local shader arrays
2019-12-12 17:07:33 +01:00
Yuri Roubinski
b994cdbdc6 [Vulkan] Implemented local shader arrays 2019-12-12 17:07:32 +01:00
Rémi Verschelde
8fc7efb3d7 Merge pull request #31526 from Chaosus/shader_bug_vk2
[Vulkan] Fix ternary operator shader compiler expression
2019-12-12 17:07:29 +01:00
Yuri Roubinski
f7812b3ee6 [Vulkan] Fix ternary operator shader compiler expression 2019-12-12 17:07:29 +01:00
Rémi Verschelde
90eb4b1034 Merge pull request #31525 from Chaosus/vk_shaders_do2
[Vulkan] Implemented do/while loops for shaders
2019-12-12 17:07:23 +01:00
Yuri Roubinski
d49b6a72de [Vulkan] Implemented do/while loops for shaders 2019-12-12 17:07:19 +01:00
Juan Linietsky
bb712cca18 Yay very basic 3D (only white) finally shows. 2019-12-12 17:06:46 +01:00
Juan Linietsky
75299f4a63 Base 3D engine done, still untested, though. 2019-12-12 17:06:38 +01:00
Rémi Verschelde
994e8c5779 Merge pull request #31105 from akien-mga/vulkan
RID_Alloc: Fix locking in getornull and free early returns
2019-12-12 17:06:29 +01:00
Rémi Verschelde
7ca6cbd8d6 RID_Alloc: Fix locking in getornull and free early returns
Those missing unlocks were preventing the editor from starting.
2019-12-12 17:06:29 +01:00
Rémi Verschelde
c39834b4a7 Merge pull request #31102 from akien-mga/vulkan
SCons: Streamline Vulkan buildsystem + fixups
2019-12-12 17:06:28 +01:00
Rémi Verschelde
9ad3f02db1 SCons: Streamline Vulkan buildsystem + fixups
- Renamed option to `builtin_vulkan`, since that's the name of the
  library and if we were to add new components, we'd likely use that
  same option.
- Merge `vulkan_loader/SCsub` in `vulkan/SCsub`.
- Accordingly, don't use built-in Vulkan headers when not building
  against the built-in loader library.
- Drop Vulkan registry which we don't appear to need currently.
- Style and permission fixes.
2019-12-12 17:06:27 +01:00
Rémi Verschelde
822094e548 Merge pull request #31100 from akien-mga/vulkan
VulkanLoader: Make Windows includes lowercase for MinGW
2019-12-12 17:06:20 +01:00
Rémi Verschelde
778ed91a33 VulkanLoader: Make Windows includes lowercase for MinGW
MinGW-w64 ships all Windows SDK headers as lowercase, which prevents
cross-compiling this code from Linux.

Windows filesystems are case insensitive so it should work fine with
lowercase includes.

PR'ed upstream: https://github.com/KhronosGroup/Vulkan-Loader/pull/212
2019-12-12 17:06:10 +01:00
Juan Linietsky
112c4c546c Vulkan/RD rasterizer now does clean exit. 2019-12-12 17:05:11 +01:00
Juan Linietsky
9b71f07c64 Fix comment 2019-12-12 17:05:07 +01:00
Rémi Verschelde
9b2dc59003 Merge pull request #29993 from bruvzg/vulkan
Initial Vulkan support for macOS (MoltenVK) and Windows
2019-12-12 17:04:53 +01:00
bruvzg
397545e97f Add runtime GLES2 / Vulkan context selection. 2019-12-12 13:48:47 +01:00
bruvzg
142188639c Add static Vulkan loader.
Initial Vulkan support for Windows.
Initial Vulkan support for macOS.
2019-12-12 13:19:45 +01:00
Juan Linietsky
d71ae5c152 Add a system to properly update materials if the uniform set is gone (likely deleted texture) 2019-12-12 13:08:26 +01:00
Juan Linietsky
9ae5001b0e Added a spinlock template as well as a thread work pool class.
Also, optimized shader compilation to happen on threads.
2019-12-12 13:05:27 +01:00
Juan Linietsky
e7c33ca141 Moved the shader source compilation code outside RenderingDevice and Vulkan 2019-12-12 13:05:25 +01:00
Juan Linietsky
f5f3d820e0 Replaced GLSLang reflection by SPIRV-Reflect, eventually allowing to move GLSLang out. 2019-12-12 13:01:23 +01:00
Juan Linietsky
ffbc9823d9 Custom material support seems complete. 2019-12-12 12:54:09 +01:00
Juan Linietsky
55426a3ab4 Completed material/2D shader support (missing SCREEN_TEXTURE) 2019-12-12 12:21:24 +01:00
Juan Linietsky
1dd402d083 Changes to material required to add custom shaders in RD renderer 2019-12-12 12:01:50 +01:00
Juan Linietsky
7c2bb1ceff Modified light rendering to make it more compatible.
Modified polygon management to make it more compatible with MoltenVK
2019-12-12 12:01:48 +01:00
Juan Linietsky
36b8c9c1bc Use a special sampler for 2D shadows, so they are softer 2019-12-12 11:49:31 +01:00