Juan Linietsky
871311d337
More GIProbe work and fixes
2019-12-12 17:10:15 +01:00
bruvzg
4a2b97dffa
Fix Vector3 ambiguities and out of bounds init.
2019-12-12 17:10:05 +01:00
Juan Linietsky
3b2f85ccbb
Fixed display menu visualizations.
2019-12-12 17:09:48 +01:00
Juan Linietsky
afb3e744c6
Better GIProbe quality settings.
2019-12-12 17:09:46 +01:00
Juan Linietsky
c530709204
Missing proper comparison for depth pre-pass.
2019-12-12 17:09:45 +01:00
Juan Linietsky
307f84b43a
GIProbes working.
2019-12-12 17:09:36 +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
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
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
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
Juan Linietsky
2e9c7ce62e
2D lighting seems more or less complete.
2019-12-12 11:49:19 +01:00
Juan Linietsky
75701f756f
Normalmapping and Specularmapping working in 2D engine
...
Added support for Sprite, AnimatedSprite and Polygon2D (should add for tileset eventually).
2019-12-12 11:49:14 +01:00
Juan Linietsky
7d87e11e99
Changed allocation strategy of CanvasItem draw commands.
...
They should now allocate memory in blocks and reuse the same
memory every time the item is cleared and redrawn.
This should improve performance considerably.
2019-12-12 11:46:35 +01:00
Juan Linietsky
490fd93995
Fix crash on import.
2019-12-12 11:44:08 +01:00
Juan Linietsky
823feb8310
Added ability to retrieve back textures stored on GPU
2019-12-12 11:44:06 +01:00