virtualx-engine/servers
reduz cf3f404d31 Implement Binary Shader Compilation
* Added an extra stage before compiling shader, which is generating a binary blob.
* On Vulkan, this allows caching the SPIRV reflection information, which is expensive to parse.
* On other (future) RenderingDevices, it allows caching converted binary data, such as DXIL or MSL.

This PR makes the shader cache include the reflection information, hence editor startup times are significantly improved.
I tested this well and it appears to work, and I added a lot of consistency checks, but because it includes writing and reading binary information, rare bugs may pop up, so be aware.
There was not much of a choice for storing the reflection information, given shaders can be a lot, take a lot of space and take time to parse.
2021-07-26 08:40:39 -03:00
..
audio Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
camera Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
physics_2d Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
physics_3d Fix various typos with codespell 2021-07-25 11:21:51 +02:00
rendering Implement Binary Shader Compilation 2021-07-26 08:40:39 -03:00
xr Fix various typos with codespell 2021-07-25 11:21:51 +02:00
audio_server.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
audio_server.h Make audio bus channels' peak volume consistent 2021-02-02 11:30:32 +01:00
camera_server.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
camera_server.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
display_server.cpp Move alert function from DisplayServer to OS. 2021-07-22 21:50:35 +03:00
display_server.h Move alert function from DisplayServer to OS. 2021-07-22 21:50:35 +03:00
display_server_headless.h Move alert function from DisplayServer to OS. 2021-07-22 21:50:35 +03:00
navigation_server_2d.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
navigation_server_2d.h Allow Navigation to be more flexible 2021-03-15 15:58:59 +01:00
navigation_server_3d.cpp Allow Navigation to be more flexible 2021-03-15 15:58:59 +01:00
navigation_server_3d.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
physics_server_2d.cpp Fixing 2D moving platform logic 2021-07-15 11:54:43 +02:00
physics_server_2d.h Fixing 2D moving platform logic 2021-07-15 11:54:43 +02:00
physics_server_3d.cpp Add a method to set the number of physics solver iterations in 3D 2021-07-10 16:28:34 +02:00
physics_server_3d.h Add a method to set the number of physics solver iterations in 3D 2021-07-10 16:28:34 +02:00
register_server_types.cpp Implement Binary Shader Compilation 2021-07-26 08:40:39 -03:00
register_server_types.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
rendering_server.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
rendering_server.h Implement more rendering options as specialization constants 2021-07-19 21:51:29 -03:00
SCsub
server_wrap_mt_common.h Make Servers truly Thread Safe 2021-02-10 13:21:46 -03:00
text_server.cpp Separate underscore from grapheme punctuation to enable doubleclick and caret jump over snakecase variables in editor 2021-07-13 10:03:26 -03:00
text_server.h Separate underscore from grapheme punctuation to enable doubleclick and caret jump over snakecase variables in editor 2021-07-13 10:03:26 -03:00
xr_server.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
xr_server.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00