godot/editor
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
..
debugger Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
fileserver Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
icons Merge pull request #47538 from LightningAA/inspector-reorder-array-4.0 2021-07-15 14:01:31 +02:00
import Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
plugins Implement Binary Shader Compilation 2021-07-26 08:40:39 -03:00
translations Fix various typos with codespell 2021-07-25 11:21:51 +02:00
action_map_editor.cpp Make "remove action" translatable in Input Map 2021-07-20 14:07:42 -04:00
action_map_editor.h Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
animation_bezier_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_bezier_editor.h
animation_track_editor_plugins.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
animation_track_editor_plugins.h
animation_track_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_track_editor.h Documentation search fixes 2021-06-16 09:43:34 -07:00
array_property_edit.cpp Removed _change_notify 2021-02-10 19:31:24 -03:00
array_property_edit.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
audio_stream_preview.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
audio_stream_preview.h Implement Range Iterators 2021-07-08 23:27:27 -03:00
code_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
code_editor.h Script editor: Rename 'Clone Down' to 'Duplicate Selection' 2021-06-29 12:14:24 +02:00
connections_dialog.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
connections_dialog.h Documentation search fixes 2021-06-16 09:43:34 -07:00
create_dialog.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
create_dialog.h
dependency_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
dependency_editor.h
dictionary_property_edit.cpp Removed _change_notify 2021-02-10 19:31:24 -03:00
dictionary_property_edit.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
doc_tools.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
doc_tools.h
editor_about.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_about.h Make it possible to copy the Godot version identifier by clicking it 2021-04-28 17:35:57 +02:00
editor_asset_installer.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_asset_installer.h Automatically display the installer after downloading an asset 2021-07-12 11:47:43 +02:00
editor_atlas_packer.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
editor_atlas_packer.h
editor_audio_buses.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_audio_buses.h Improve the audio bus editor appearance 2021-05-27 10:00:49 +02:00
editor_autoload_settings.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_autoload_settings.h Documentation search fixes 2021-06-16 09:43:34 -07:00
editor_builders.py Use a DynamicFont for the default project theme 2021-05-17 15:19:13 +02:00
editor_data.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_data.h Fix typos with codespell 2021-05-20 12:38:56 +02:00
editor_dir_dialog.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_dir_dialog.h Core: Move DirAccess and FileAccess to core/io 2021-06-11 14:52:39 +02:00
editor_export.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_export.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
editor_feature_profile.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_feature_profile.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
editor_file_dialog.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_file_dialog.h Documentation search fixes 2021-06-16 09:43:34 -07:00
editor_file_system.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_file_system.h Implement Resource UIDs 2021-07-24 09:16:52 -03:00
editor_folding.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_folding.h
editor_fonts.cpp [Editor Fonts] Add Noto Sans Bold font variant for supported languages. 2021-07-19 23:08:05 +03:00
editor_fonts.h
editor_help_search.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_help_search.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
editor_help.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_help.h Documentation search fixes 2021-06-16 09:43:34 -07:00
editor_inspector.cpp Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
editor_inspector.h Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
editor_layouts_dialog.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_layouts_dialog.h
editor_log.cpp Fix Output panel colors on theme changing 2021-07-21 11:22:33 +03:00
editor_log.h Fix Output panel colors on theme changing 2021-07-21 11:22:33 +03:00
editor_native_shader_source_visualizer.cpp
editor_native_shader_source_visualizer.h
editor_node.cpp Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
editor_node.h Addes ability to load build sources from file. 2021-07-15 10:14:08 -03:00
editor_path.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_path.h Make several actions in the Inspector dock more obvious 2021-06-04 02:05:27 +03:00
editor_paths.cpp Main: Fixup bogus fallback to project manager with more bolognese 2021-06-16 19:11:08 +02:00
editor_paths.h Refactor editor paths validation in EditorPaths and EditorSettings 2021-06-14 19:56:20 +02:00
editor_plugin_settings.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_plugin_settings.h Detect plugins recursively 2021-01-19 18:09:30 +02:00
editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_plugin.h Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
editor_properties_array_dict.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_properties_array_dict.h Add the ability to reorder arrays from the inspector 2021-07-11 16:09:39 -06:00
editor_properties.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_properties.h Add type variations to Theme 2021-07-13 02:26:28 +03:00
editor_resource_picker.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_resource_picker.h Create many types of popups on demand 2021-07-17 10:57:14 -03:00
editor_resource_preview.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_resource_preview.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
editor_run_native.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_run_native.h
editor_run_script.cpp
editor_run_script.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
editor_run.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_run.h
editor_scale.cpp
editor_scale.h
editor_sectioned_inspector.cpp Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
editor_sectioned_inspector.h Reorganize Project Settings 2021-02-18 11:23:34 -03:00
editor_settings.cpp Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
editor_settings.h EditorSettings: Factor code to compute auto display scale 2021-06-16 14:36:09 +02:00
editor_spin_slider.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_spin_slider.h Fix crash in EditorSpinSlider 2021-07-18 01:04:27 +02:00
editor_themes.cpp Merge pull request #50593 from SirQuartz/patch-24 2021-07-20 10:48:11 +02:00
editor_themes.h Fix project icon size in Project Manager 2021-03-20 17:32:38 +08:00
editor_translation_parser.cpp Consistently prefix bound virtual methods with _ 2021-06-12 00:55:52 +02:00
editor_translation_parser.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
editor_vcs_interface.cpp
editor_vcs_interface.h Make EditorVCSInterface proxy functions virtual in C++ 2021-07-06 22:20:03 +03:00
editor_zoom_widget.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_zoom_widget.h Improve 2D editor zoom logic 2021-07-10 17:32:40 +02:00
export_template_manager.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
export_template_manager.h Addes ability to load build sources from file. 2021-07-15 10:14:08 -03:00
filesystem_dock.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
filesystem_dock.h Merge pull request #49295 from foxydevloper/fix-focus-filter 2021-06-29 17:23:45 +02:00
find_in_files.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
find_in_files.h Documentation search fixes 2021-06-16 09:43:34 -07:00
groups_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
groups_editor.h
import_defaults_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
import_defaults_editor.h Fix heap-use-after-free in Import Defaults Editor 2021-02-25 11:50:10 -03:00
import_dock.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
import_dock.h Improved 3D Scene Importer 2021-03-22 12:16:40 -03:00
inspector_dock.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
inspector_dock.h Make several actions in the Inspector dock more obvious 2021-06-04 02:05:27 +03:00
localization_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
localization_editor.h ICU: Update to version 69.1, improve ICU data export process. 2021-04-22 16:56:53 +03:00
multi_node_edit.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
multi_node_edit.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
node_dock.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
node_dock.h
plugin_config_dialog.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
plugin_config_dialog.h Added validation to plugin creation. 2021-07-12 00:18:52 +10:00
pot_generator.cpp Remove uses of auto for better readability and online code reviews 2021-04-26 14:59:28 +02:00
pot_generator.h Core: Move DirAccess and FileAccess to core/io 2021-06-11 14:52:39 +02:00
progress_dialog.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
progress_dialog.h
project_export.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
project_export.h Core: Move DirAccess and FileAccess to core/io 2021-06-11 14:52:39 +02:00
project_manager.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
project_manager.h Make it possible to copy the Godot version identifier by clicking it 2021-04-28 17:35:57 +02:00
project_settings_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
project_settings_editor.h Improve Project Settings Editor 2021-05-14 13:58:43 +03:00
property_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
property_editor.h Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
property_selector.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
property_selector.h
quick_open.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
quick_open.h
register_exporters.h
rename_dialog.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
rename_dialog.h
reparent_dialog.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
reparent_dialog.h
scene_tree_dock.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
scene_tree_dock.h Merge pull request #50319 from nekomatata/optimize-node-path-check 2021-07-22 12:13:10 +02:00
scene_tree_editor.cpp Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
scene_tree_editor.h Revert "Fix duplicate selection in SceneTree" 2021-07-23 17:34:21 +09:00
script_create_dialog.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
script_create_dialog.h Minor cleanup of the "New Script" dialog 2021-07-04 00:06:46 -03:00
SCsub
settings_config_dialog.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
settings_config_dialog.h Added Built-in Action editor to Editor Settings dialog. 2021-02-19 19:36:42 +10:00
shader_globals_editor.cpp Merge pull request #50648 from foxydevloper/remove-weird-prints 2021-07-20 17:23:39 +02:00
shader_globals_editor.h