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
Juan Linietsky
667785e474
Bugfixes and ability to better specify filter and repeat modes everywhere.
...
Removes antialiased flag for draw_* methods.
2019-12-12 11:33:08 +01:00
Juan Linietsky
017bcf9be4
basic 2D engine is more or less working with Vulkan, including editor.
...
Still a lot to do
2019-12-12 11:06:23 +01:00
Juan Linietsky
179145aaf5
Basic 2D engine is more or less working, needs more work for editor to be usable.
2019-12-12 10:57:32 +01:00
Juan Linietsky
e2ffdb2d01
A lot of progress with canvas rendering, still far from working.
2019-12-12 10:50:00 +01:00
Juan Linietsky
d128ef1ecb
Changed my mind on Vulkan image API, images should now include mipmaps
...
This should make it easier to obtain the data directly from an Image
2019-12-12 10:15:57 +01:00
Juan Linietsky
d4d470bc97
Texture refactor
...
-Texture renamed to Texture2D
-TextureLayered as base now inherits 2Darray, cubemap and cubemap array
-Removed all references to flags in textures (they will go in the shader)
-Texture3D gone for now (will come back later done properly)
-Create base rasterizer for RenderDevice, RasterizerRD
2019-12-12 10:05:14 +01:00
Juan Linietsky
ee921965be
Modify RenderingDevice to use RIDs, now that they are O(1)
2019-12-12 09:23:03 +01:00