bruvzg
f9de050216
Improve HiDPI handling, fix incorrect window viewport clipping.
2019-12-12 17:10:27 +01:00
Juan Linietsky
7cfa9396d4
Dynamic object support for GI Probes (a bit buggy still)
2019-12-12 17:10:16 +01:00
Juan Linietsky
871311d337
More GIProbe work and fixes
2019-12-12 17:10:15 +01:00
Juan Linietsky
afb3e744c6
Better GIProbe quality settings.
2019-12-12 17:09:46 +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
a0a7732aec
Visual GPU profiler and related profiling support in Vulkan.
2019-12-12 17:08:05 +01:00
Juan Linietsky
7919ef863b
Several fixes to 3D rendering, and multimesh implementation.
2019-12-12 17:08:00 +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
7db3532b2e
Environment sky more or less working.
2019-12-12 17:07:47 +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
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
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
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
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
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
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
c5e77a1b2f
Initial work on Vulkan:
...
-Added VulkanContext
-Added an X11 implementation
-Added a rendering device abstraction
-added a Vulkan rendering device abstraction
-Engine does not work, only shows Godot logo (run it from bin/)
2019-12-12 08:50:47 +01:00
Rémi Verschelde
371de5132c
Merge pull request #34251 from bojidar-bg/32993-lightoccluder-flip
...
Flip cull mode when rendering flipped Light2D and LightOccluder2D
2019-12-12 07:33:19 +01:00
Rémi Verschelde
f676d7509e
Merge pull request #34262 from clayjohn/default_point_size
...
Add a default POINT_SIZE
2019-12-12 06:45:31 +01:00
Bojidar Marinov
eec7702711
Flip cull mode when rendering flipped Light2D and LightOccluder2D
...
Fixes #32993
2019-12-11 23:28:35 +02:00
Rémi Verschelde
c320a82213
SCons: Add 'split_libmodules' option to workaround linker issue
...
The new 'split_libmodules=yes' option is useful to work around linker
command line size limitations when linking a huge number of objects.
We're currently over 64k chars when linking libmodules.a on Windows
with MinGW, which triggers issues as seen in #30892 .
Even on Linux, we can also reach linker command line size limitations
by adding more custom modules.
We force this option to True for MinGW on Windows, which fixes #30892 .
Additional changes to lib splitting:
- Fix linking of the split module libs with interdependent symbols,
hacking our way into LINKCOM and SHLINKCOM to set the `--start-group`
and `--end-group` flags.
- Fix Python 3 compatibility in `methods.split_lib()`.
- Drop seemingly obsolete condition for 'msys' on 'posix'.
- Drop the unnecessary 'split_drivers' as the drivers lib is no longer
too big since we moved all thirdparty builds to modules.
Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2019-12-11 15:40:28 +01:00
clayjohn
676f647c74
Add a default POINT_SIZE
2019-12-10 23:08:20 -08:00
Rémi Verschelde
435cced7d8
Merge pull request #34238 from clayjohn/GLES2-use-renderbuffer-post-process
...
Use renderbuffer depth for post-process buffers when appropriate
2019-12-10 17:16:40 +01:00
clayjohn
fd31cebcbe
Use renderbuffer depth for post-process buffers when appropriate
2019-12-09 22:19:11 -08:00
clayjohn
e8d652f160
Force 32 bit depth buffer for WebGL
2019-12-09 22:14:12 -08:00
Rémi Verschelde
cd07a34598
GLES3: Properly unbind buffers after draw commands
...
Patch provided by @oeleo1.
Fixes #34120 .
2019-12-09 09:25:20 +01:00
Rémi Verschelde
fbfd56c247
GLES2: Fix uninitialized members in ShaderGLES2::Version
...
Fixes #34109 .
2019-12-05 09:15:31 +01:00
Rémi Verschelde
745a8915fc
Properly orphan polygon index buffer after binding (take 2)
...
Follow-up to #34088 , patch by @oeleo1 from
https://github.com/godotengine/godot/issues/34065#issuecomment-561530896
2019-12-04 12:16:50 +01:00
clayjohn
b2dfbd77ec
properly orphan polygon index buffer after binding
2019-12-03 07:54:25 -08:00
Rémi Verschelde
10bae7c05b
Merge pull request #33857 from nekomatata/polygon-2d-antialiasing
...
Fixed antialiased option for Polygon2D
2019-12-03 07:51:16 +01:00
Rémi Verschelde
65e6efaa3b
Merge pull request #33836 from clayjohn/blinn-fix
...
Fix Specular Blinn function
2019-12-03 07:50:37 +01:00