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
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
Juan Linietsky
962382ac5c
Refactored RID/RID_Owner to always use O(1) allocation.
...
* Implements a growing chunked allocator
* Removed redudant methods get and getptr, only getornull is supported now.
2019-12-12 08:55:15 +01:00
Juan Linietsky
b2b7a41318
Added support for push constants
2019-12-12 08:53:55 +01:00
Juan Linietsky
bba5752b4b
Improved validation of attachments
2019-12-12 08:52:35 +01:00
Juan Linietsky
90e61a5632
Added default values where missing.
2019-12-12 08:50:48 +01:00