Browse Source

[UPDATE] Update glslang

Panagiotis Christopoulos Charitos 7 years ago
parent
commit
08cd46ccb4
6 changed files with 16 additions and 9 deletions
  1. 1 1
      .travis.yml
  2. 6 6
      CMakeLists.txt
  3. 1 0
      src/anki/core/Trace.cpp
  4. 1 0
      src/anki/core/Trace.h
  5. 6 1
      src/anki/gr/vulkan/ShaderImpl.cpp
  6. 1 1
      thirdparty

+ 1 - 1
.travis.yml

@@ -36,7 +36,7 @@ script:
   - export CXX=${CXX_}
   - $CC --version
   - $CXX --version
-  - cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DANKI_EXTRA_CHECKS=${EXTRA_CHECKS} -DANKI_BUILD_TOOLS=ON -DANKI_BUILD_TESTS=ON -DANKI_ENABLE_TRACE=${TRACE} -DANKI_GR_BACKEND=${GR_BACKEND}
+  - cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DANKI_EXTRA_CHECKS=${EXTRA_CHECKS} -DANKI_BUILD_TOOLS=ON -DANKI_BUILD_TESTS=ON -DANKI_TRACE=${TRACE} -DANKI_GR_BACKEND=${GR_BACKEND}
   - make -j 2
 
 branches:

+ 6 - 6
CMakeLists.txt

@@ -78,8 +78,8 @@ option(ANKI_BUILD_SAMPLES "Build sample applications" ON)
 
 option(ANKI_STRIP "Srip the symbols from the executables" OFF)
 
-option(ANKI_ENABLE_TRACE "Enable performance tracing. Small overhead" OFF)
-if(ANKI_ENABLE_TRACE)
+option(ANKI_TRACE "Enable performance tracing. Small overhead" OFF)
+if(ANKI_TRACE)
 	set(_ANKI_ENABLE_TRACE 1)
 else()
 	set(_ANKI_ENABLE_TRACE 0)
@@ -87,7 +87,7 @@ endif()
 
 set(ANKI_CPU_ADDR_SPACE "0" CACHE STRING "The CPU architecture (0 or 32 or 64). If zero go native")
 
-option(ANKI_ENABLE_SIMD "Enable or not SIMD optimizations" ON)
+option(ANKI_SIMD "Enable or not SIMD optimizations" ON)
 option(ANKI_ADDRESS_SANITIZER "Enable address sanitizer (-fsanitize=address)" OFF)
 
 # Take a wild guess on the windowing system
@@ -177,7 +177,7 @@ if(NOT MSVC)
 		set(CXX_FLAGS "${CXX_FLAGS} -static-libstdc++ ")
 	endif()
 
-	if(ANKI_ENABLE_SIMD)
+	if(ANKI_SIMD)
 		if(LINUX OR MACOS OR WINDOWS)
 			set(COMPILER_FLAGS "${COMPILER_FLAGS} -msse4 ")
 		else()
@@ -313,7 +313,7 @@ else()
 	set(_ANKI_EXTRA_CHECKS 0)
 endif()
 
-if(ANKI_ENABLE_SIMD)
+if(ANKI_SIMD)
 	set(_ANKI_ENABLE_SIMD 1)
 else()
 	set(_ANKI_ENABLE_SIMD 0)
@@ -418,7 +418,7 @@ if(SDL)
 endif()
 
 if(VULKAN)
-	set(THIRD_PARTY_LIBS ${THIRD_PARTY_LIBS} glslang SPIRV HLSL OGLCompiler OSDependent ankispirvcross)
+	set(THIRD_PARTY_LIBS ${THIRD_PARTY_LIBS} glslang SPIRV OGLCompiler OSDependent ankispirvcross)
 endif()
 
 # Add anki sub libraries

+ 1 - 0
src/anki/core/Trace.cpp

@@ -37,6 +37,7 @@ static Array<const char*, U(TraceEventType::COUNT)> eventNames = {{"RESOURCE_ALL
 	"RENDERER_LIGHT_BINNING",
 	"GR_RENDER_GRAPH",
 	"GR_COMMAND_BUFFER_RESET",
+	"GR_GLSLANG",
 	"GL_THREAD",
 	"GL_2ND_LEVEL_CMD_BUFFER",
 	"GL_BIND_RESOURCES",

+ 1 - 0
src/anki/core/Trace.h

@@ -48,6 +48,7 @@ enum class TraceEventType
 	RENDERER_LIGHT_BINNING,
 	GR_RENDER_GRAPH,
 	GR_COMMAND_BUFFER_RESET,
+	GR_GLSLANG,
 	GL_THREAD,
 	GL_2ND_LEVEL_CMD_BUFFER,
 	GL_BIND_RESOURCES,

+ 6 - 1
src/anki/gr/vulkan/ShaderImpl.cpp

@@ -6,6 +6,7 @@
 #include <anki/gr/vulkan/ShaderImpl.h>
 #include <anki/gr/vulkan/GrManagerImpl.h>
 #include <anki/gr/common/Misc.h>
+#include <anki/core/Trace.h>
 #include <glslang/Public/ShaderLang.h>
 #include <glslang/SPIRV/GlslangToSpv.h>
 #include <SPIRV-Cross/spirv_cross.hpp>
@@ -192,6 +193,8 @@ ShaderImpl::~ShaderImpl()
 
 Error ShaderImpl::genSpirv(const CString& source, std::vector<unsigned int>& spirv)
 {
+	ANKI_TRACE_SCOPED_EVENT(GR_GLSLANG);
+
 	const EShLanguage stage = ankiToGlslangShaderType(m_shaderType);
 	const EShMessages messages = static_cast<EShMessages>(EShMsgSpvRules | EShMsgVulkanRules);
 
@@ -216,7 +219,9 @@ Error ShaderImpl::genSpirv(const CString& source, std::vector<unsigned int>& spi
 	}
 
 	// Gen SPIRV
-	glslang::GlslangToSpv(*program.getIntermediate(stage), spirv);
+	glslang::SpvOptions spvOptions;
+	spvOptions.optimizeSize = true;
+	glslang::GlslangToSpv(*program.getIntermediate(stage), spirv, &spvOptions);
 
 	return Error::NONE;
 }

+ 1 - 1
thirdparty

@@ -1 +1 @@
-Subproject commit aa0ad910477cec1a20954040d213473ca987fa77
+Subproject commit 6b69242226cafaec845daaecab9600e41421846e