godot/editor/plugins
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
..
tiles Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
abstract_polygon_2d_editor.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
abstract_polygon_2d_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_blend_space_1d_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_blend_space_1d_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_blend_space_2d_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_blend_space_2d_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_blend_tree_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_blend_tree_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_player_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_player_editor_plugin.h Allow to move timeline without moving animation 2021-03-21 00:24:16 +01:00
animation_state_machine_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_state_machine_editor.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
animation_tree_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
animation_tree_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
asset_library_editor_plugin.cpp Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
asset_library_editor_plugin.h Documentation search fixes 2021-06-16 09:43:34 -07:00
audio_stream_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
audio_stream_editor_plugin.h Fix audio player not resetting after wav finishes 2021-03-20 20:16:53 +01:00
camera_3d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
camera_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
canvas_item_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
canvas_item_editor_plugin.h Merge pull request #49310 from foxydevloper/add-drag-threshold-select-mode 2021-06-15 15:34:28 +02:00
collision_polygon_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
collision_polygon_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
collision_polygon_3d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
collision_polygon_3d_editor_plugin.h Deprecate ImmediateGeometry 2021-06-30 14:14:41 -03:00
collision_shape_2d_editor_plugin.cpp Merge pull request #37760 from KoBeWi/rect_edit_level_up 2021-07-23 14:38:04 +02:00
collision_shape_2d_editor_plugin.h Allow for easier editing of rect CollisionShape2D 2021-03-25 23:10:59 +01:00
cpu_particles_2d_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
cpu_particles_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
cpu_particles_3d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
cpu_particles_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
curve_editor_plugin.cpp Add scaling to the curve editor's handles 2021-07-19 20:27:28 -04:00
curve_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
debugger_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
debugger_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
editor_debugger_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
editor_debugger_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
editor_preview_plugins.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
editor_preview_plugins.h Modernize atomics 2021-02-18 17:12:46 +01:00
font_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
font_editor_plugin.h Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
gpu_particles_2d_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
gpu_particles_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gpu_particles_3d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
gpu_particles_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gpu_particles_collision_sdf_editor_plugin.cpp Make various strings translatable 2021-07-19 18:30:52 -04:00
gpu_particles_collision_sdf_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
gradient_editor_plugin.cpp Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
gradient_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
input_event_editor_plugin.cpp Make various strings translatable 2021-07-19 18:30:52 -04:00
input_event_editor_plugin.h Added EditorInspectorPlugin to aid in editing InputEvents in resources and shortcuts 2021-07-06 23:50:33 +10:00
item_list_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
item_list_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
light_occluder_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
light_occluder_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
lightmap_gi_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
lightmap_gi_editor_plugin.h Rename GI Classes 2021-06-05 09:28:56 -03:00
line_2d_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
line_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
material_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
material_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
mesh_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
mesh_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
mesh_instance_3d_editor_plugin.cpp Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
mesh_instance_3d_editor_plugin.h Options to clean/simplify convex hull generated from mesh 2021-07-07 12:14:12 -07:00
mesh_library_editor_plugin.cpp Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
mesh_library_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
multimesh_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
multimesh_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_polygon_editor_plugin.cpp Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
navigation_polygon_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
node_3d_editor_gizmos.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
node_3d_editor_gizmos.h Node3D gizmo improvements 2021-07-23 21:01:10 +02:00
node_3d_editor_plugin.cpp Merge pull request #50791 from foxydevloper/select-mode-tooltip-improvation 2021-07-24 23:45:44 +02:00
node_3d_editor_plugin.h Node3D gizmo improvements 2021-07-23 21:01:10 +02:00
occluder_instance_3d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
occluder_instance_3d_editor_plugin.h Implement occlusion culling 2021-04-23 21:45:23 +02:00
ot_features_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
ot_features_plugin.h Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
packed_scene_translation_parser_plugin.cpp Improve resource load cache 2021-02-11 15:44:28 -03:00
packed_scene_translation_parser_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
path_2d_editor_plugin.cpp Use is_equal_approx in more places 2021-07-21 00:32:37 -04:00
path_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
path_3d_editor_plugin.cpp Node3D gizmo improvements 2021-07-23 21:01:10 +02:00
path_3d_editor_plugin.h Node3D gizmo improvements 2021-07-23 21:01:10 +02:00
physical_bone_3d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
physical_bone_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
polygon_2d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
polygon_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
resource_preloader_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
resource_preloader_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
root_motion_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
root_motion_editor_plugin.h Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
script_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
script_editor_plugin.h Merge pull request #49650 from KoBeWi/FindReplaceCrash 2021-06-24 19:21:01 +02:00
script_text_editor.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
script_text_editor.h Script editor: Rename 'Clone Down' to 'Duplicate Selection' 2021-06-29 12:14:24 +02:00
SCsub Rework the TileSet resource and TileMap nodes: 2021-05-07 18:06:17 +02:00
shader_editor_plugin.cpp Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
shader_editor_plugin.h Script editor: Rename 'Clone Down' to 'Duplicate Selection' 2021-06-29 12:14:24 +02:00
shader_file_editor_plugin.cpp Implement Binary Shader Compilation 2021-07-26 08:40:39 -03:00
shader_file_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
skeleton_2d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
skeleton_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
skeleton_3d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
skeleton_3d_editor_plugin.h Rename EditorPropertyTransform to EditorPropertyTransform3D 2021-06-03 21:58:26 -04:00
skeleton_ik_3d_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
skeleton_ik_3d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
sprite_2d_editor_plugin.cpp Make various strings translatable 2021-07-19 18:30:52 -04:00
sprite_2d_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
sprite_frames_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
sprite_frames_editor_plugin.h Allow selecting frames by holding down the mouse in SpriteFrames editor 2021-06-17 20:11:50 +02:00
style_box_editor_plugin.cpp Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
style_box_editor_plugin.h Use PROPERTY_USAGE_NONE instead of 0 for no property usage 2021-07-01 14:13:27 -04:00
sub_viewport_preview_editor_plugin.cpp Remove unnecessary get_editor_theme() in SubViewportPreview 2021-07-18 14:48:37 -06:00
sub_viewport_preview_editor_plugin.h Add viewport preview plugin 2021-07-12 20:04:46 -06:00
text_editor.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
text_editor.h Script editor: Rename 'Clone Down' to 'Duplicate Selection' 2021-06-29 12:14:24 +02:00
texture_3d_editor_plugin.cpp Merge pull request #50605 from Calinou/tweak-shader-code-style 2021-07-20 10:05:13 +02:00
texture_3d_editor_plugin.h Removed _change_notify 2021-02-10 19:31:24 -03:00
texture_editor_plugin.cpp Don't set metadata_label font if it doesn't exist 2021-07-23 16:29:49 +02:00
texture_editor_plugin.h Don't set metadata_label font if it doesn't exist 2021-07-23 16:29:49 +02:00
texture_layered_editor_plugin.cpp Merge pull request #50605 from Calinou/tweak-shader-code-style 2021-07-20 10:05:13 +02:00
texture_layered_editor_plugin.h Removed _change_notify 2021-02-10 19:31:24 -03:00
texture_region_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
texture_region_editor_plugin.h Removed _change_notify 2021-02-10 19:31:24 -03:00
theme_editor_plugin.cpp Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
theme_editor_plugin.h Improve add item type UI in theme editor 2021-07-20 16:56:52 +08:00
theme_editor_preview.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
theme_editor_preview.h Fix control picker in the Theme editor 2021-07-16 21:32:58 +03:00
version_control_editor_plugin.cpp Make various strings translatable 2021-07-19 18:30:52 -04:00
version_control_editor_plugin.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
visual_shader_editor_plugin.cpp Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
visual_shader_editor_plugin.h Rename Curve3Texture to CurveXYZTexture 2021-07-14 00:30:58 +02:00
voxel_gi_editor_plugin.cpp Optimize StringName usage 2021-07-18 21:20:02 -03:00
voxel_gi_editor_plugin.h Rename GI Classes 2021-06-05 09:28:56 -03:00