Browse Source

Renderer: Fix missing shader_name; use forward declarations

* Moving over to RenderingShaderContainer, missed setting shader_name
* Use forward declaration reduces compile time when modifying
  rendering_shader_container.h from over 950s to about 10-15
Stuart Carnie 2 weeks ago
parent
commit
3ffcae66a8

+ 1 - 0
editor/export/shader_baker_export_plugin.cpp

@@ -37,6 +37,7 @@
 #include "scene/3d/sprite_3d.h"
 #include "scene/3d/sprite_3d.h"
 #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h"
 #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h"
 #include "servers/rendering/renderer_rd/storage_rd/material_storage.h"
 #include "servers/rendering/renderer_rd/storage_rd/material_storage.h"
+#include "servers/rendering/rendering_shader_container.h"
 
 
 // Ensure that AlphaCut is the same between the two classes so we can share the code to detect transparency.
 // Ensure that AlphaCut is the same between the two classes so we can share the code to detect transparency.
 static_assert(ENUM_MEMBERS_EQUAL(SpriteBase3D::ALPHA_CUT_DISABLED, Label3D::ALPHA_CUT_DISABLED));
 static_assert(ENUM_MEMBERS_EQUAL(SpriteBase3D::ALPHA_CUT_DISABLED, Label3D::ALPHA_CUT_DISABLED));

+ 2 - 1
editor/export/shader_baker_export_plugin.h

@@ -32,7 +32,8 @@
 
 
 #include "editor/export/editor_export_plugin.h"
 #include "editor/export/editor_export_plugin.h"
 #include "servers/rendering/renderer_rd/shader_rd.h"
 #include "servers/rendering/renderer_rd/shader_rd.h"
-#include "servers/rendering/rendering_shader_container.h"
+
+class RenderingShaderContainerFormat;
 
 
 class ShaderBakerExportPluginPlatform : public RefCounted {
 class ShaderBakerExportPluginPlatform : public RefCounted {
 	GDCLASS(ShaderBakerExportPluginPlatform, RefCounted);
 	GDCLASS(ShaderBakerExportPluginPlatform, RefCounted);

+ 1 - 0
servers/rendering/rendering_device.cpp

@@ -37,6 +37,7 @@
 #include "core/config/project_settings.h"
 #include "core/config/project_settings.h"
 #include "core/io/dir_access.h"
 #include "core/io/dir_access.h"
 #include "modules/modules_enabled.gen.h"
 #include "modules/modules_enabled.gen.h"
+#include "servers/rendering/rendering_shader_container.h"
 
 
 #ifdef MODULE_GLSLANG_ENABLED
 #ifdef MODULE_GLSLANG_ENABLED
 #include "modules/glslang/shader_compile.h"
 #include "modules/glslang/shader_compile.h"

+ 3 - 1
servers/rendering/rendering_device_driver.h

@@ -49,7 +49,9 @@
 #include "core/variant/type_info.h"
 #include "core/variant/type_info.h"
 #include "servers/rendering/rendering_context_driver.h"
 #include "servers/rendering/rendering_context_driver.h"
 #include "servers/rendering/rendering_device_commons.h"
 #include "servers/rendering/rendering_device_commons.h"
-#include "servers/rendering/rendering_shader_container.h"
+
+class RenderingShaderContainer;
+class RenderingShaderContainerFormat;
 
 
 // These utilities help drivers avoid allocations.
 // These utilities help drivers avoid allocations.
 #define ALLOCA(m_size) ((m_size != 0) ? alloca(m_size) : nullptr)
 #define ALLOCA(m_size) ((m_size != 0) ? alloca(m_size) : nullptr)

+ 2 - 0
servers/rendering/rendering_shader_container.cpp

@@ -127,6 +127,8 @@ Error RenderingShaderContainer::reflect_spirv(const String &p_shader_name, Span<
 	using RDC = RenderingDeviceCommons;
 	using RDC = RenderingDeviceCommons;
 	RDC::ShaderReflection reflection;
 	RDC::ShaderReflection reflection;
 
 
+	shader_name = p_shader_name.utf8();
+
 	const uint32_t spirv_size = p_spirv.size() + 0;
 	const uint32_t spirv_size = p_spirv.size() + 0;
 	r_refl.resize(spirv_size);
 	r_refl.resize(spirv_size);