Explorar el Código

Vulkan: Significant speedup to GLSL parsing

BearishSun hace 9 años
padre
commit
d083b0c77b

+ 2 - 2
Source/BansheeVulkanRenderAPI/Include/BsVulkanGLSLProgramFactory.h

@@ -15,8 +15,8 @@ namespace bs
 	class VulkanGLSLProgramFactory : public GpuProgramFactory
 	{
 	public:
-		VulkanGLSLProgramFactory() {}
-		~VulkanGLSLProgramFactory() {}
+		VulkanGLSLProgramFactory();
+		~VulkanGLSLProgramFactory();
 
 		/** @copydoc GpuProgramFactory::getLanguage */
 		const String& getLanguage() const override;

+ 13 - 0
Source/BansheeVulkanRenderAPI/Source/BsVulkanGLSLProgramFactory.cpp

@@ -3,10 +3,23 @@
 #include "BsVulkanGLSLProgramFactory.h"
 #include "BsVulkanGpuProgram.h"
 
+#define AMD_EXTENSIONS
+#include "glslang/Public/ShaderLang.h"
+
 namespace bs
 {
     const String VulkanGLSLProgramFactory::LANGUAGE_NAME = "glsl";
 
+	VulkanGLSLProgramFactory::VulkanGLSLProgramFactory()
+	{
+		glslang::InitializeProcess();
+	}
+
+	VulkanGLSLProgramFactory::~VulkanGLSLProgramFactory()
+	{
+		glslang::FinalizeProcess();
+	}
+
     const String& VulkanGLSLProgramFactory::getLanguage(void) const
     {
         return LANGUAGE_NAME;

+ 0 - 4
Source/BansheeVulkanRenderAPI/Source/BsVulkanGpuProgram.cpp

@@ -552,8 +552,6 @@ namespace bs
 			return;
 		}
 		
-		glslang::InitializeProcess();
-
 		TBuiltInResource resources = DefaultTBuiltInResource;
 		glslang::TProgram* program = new glslang::TProgram;
 
@@ -670,8 +668,6 @@ cleanup:
 		delete program;
 		delete shader;
 
-		glslang::FinalizeProcess();
-
 		BS_INC_RENDER_STAT_CAT(ResCreated, RenderStatObject_GpuProgram);
 
 		GpuProgramCore::initialize();