Explorar o código

Reemoved use of old LineReader.

Бранимир Караџић %!s(int64=5) %!d(string=hai) anos
pai
achega
a95ddd1c0c

+ 2 - 5
src/renderer_gl.cpp

@@ -6452,11 +6452,8 @@ namespace bgfx { namespace gl
 				for (int32_t line = 1; !lineReader.isDone(); ++line)
 				{
 					bx::StringView str = lineReader.next();
-
-					if (!lineReader.isDone() )
-					{
-						BX_TRACE("%3d %.*s", line, str.getLength(), str.getPtr() );
-					}
+					BX_TRACE("%3d %.*s", line, str.getLength(), str.getPtr() );
+					BX_UNUSED(str);
 				}
 
 				GLsizei len;

+ 7 - 12
tools/shaderc/shaderc.cpp

@@ -529,22 +529,17 @@ namespace bgfx
 	{
 		bx::printf("Code:\n---\n");
 
-		bx::Error err;
-		LineReader reader(_code);
-		for (int32_t line = 1; err.isOk() && line < _end; ++line)
+		bx::LineReader reader(_code);
+		for (int32_t line = 1; !reader.isDone() && line < _end; ++line)
 		{
-			char str[4096];
-			int32_t len = bx::read(&reader, str, BX_COUNTOF(str), &err);
+			bx::StringView strLine = reader.next();
 
-			if (err.isOk()
-			&&  line >= _start)
+			if (line >= _start)
 			{
-				bx::StringView strLine(str, len);
-
 				if (_line == line)
 				{
 					bx::printf("\n");
-					bx::printf(">>> %3d: %.*s", line, strLine.getLength(), strLine.getPtr() );
+					bx::printf(">>> %3d: %.*s\n", line, strLine.getLength(), strLine.getPtr() );
 					if (-1 != _column)
 					{
 						bx::printf(">>> %3d: %*s\n", _column, _column, "^");
@@ -553,7 +548,7 @@ namespace bgfx
 				}
 				else
 				{
-					bx::printf("    %3d: %.*s", line, strLine.getLength(), strLine.getPtr() );
+					bx::printf("    %3d: %.*s\n", line, strLine.getLength(), strLine.getPtr() );
 				}
 			}
 		}
@@ -1950,7 +1945,7 @@ namespace bgfx
 									 !bx::strFind(preprocessedInput, "floatBitsToInt").isEmpty() ||
 									 !bx::strFind(preprocessedInput, "intBitsToFloat").isEmpty() ||
 									 !bx::strFind(preprocessedInput, "uintBitsToFloat").isEmpty()
-									) )  
+									) )
 								)
 							{
 								glsl = 430;

+ 18 - 57
tools/shaderc/shaderc.h

@@ -11,33 +11,33 @@ namespace bgfx
 	extern bool g_verbose;
 }
 
-#define _BX_TRACE(_format, ...) \
-				BX_MACRO_BLOCK_BEGIN \
-					if (bgfx::g_verbose) \
-					{ \
+#define _BX_TRACE(_format, ...)                                                               \
+				BX_MACRO_BLOCK_BEGIN                                                          \
+					if (bgfx::g_verbose)                                                      \
+					{                                                                         \
 						fprintf(stdout, BX_FILE_LINE_LITERAL "" _format "\n", ##__VA_ARGS__); \
-					} \
+					}                                                                         \
 				BX_MACRO_BLOCK_END
 
-#define _BX_WARN(_condition, _format, ...) \
-				BX_MACRO_BLOCK_BEGIN \
-					if (!(_condition) ) \
-					{ \
+#define _BX_WARN(_condition, _format, ...)                        \
+				BX_MACRO_BLOCK_BEGIN                              \
+					if (!(_condition) )                           \
+					{                                             \
 						BX_TRACE("WARN " _format, ##__VA_ARGS__); \
-					} \
+					}                                             \
 				BX_MACRO_BLOCK_END
 
-#define _BX_ASSERT(_condition, _format, ...) \
-				BX_MACRO_BLOCK_BEGIN \
-					if (!(_condition) ) \
-					{ \
+#define _BX_ASSERT(_condition, _format, ...)                       \
+				BX_MACRO_BLOCK_BEGIN                               \
+					if (!(_condition) )                            \
+					{                                              \
 						BX_TRACE("CHECK " _format, ##__VA_ARGS__); \
-						bx::debugBreak(); \
-					} \
+						bx::debugBreak();                          \
+					}                                              \
 				BX_MACRO_BLOCK_END
 
-#define BX_TRACE _BX_TRACE
-#define BX_WARN  _BX_WARN
+#define BX_TRACE  _BX_TRACE
+#define BX_WARN   _BX_WARN
 #define BX_ASSERT _BX_ASSERT
 
 #ifndef SHADERC_CONFIG_HLSL
@@ -66,45 +66,6 @@ namespace bgfx
 {
 	extern bool g_verbose;
 
-	class LineReader : public bx::ReaderI
-	{
-	public:
-		LineReader(const char* _str)
-			: m_str(_str)
-			, m_pos(0)
-			, m_size(bx::strLen(_str) )
-		{
-		}
-
-		virtual int32_t read(void* _data, int32_t _size, bx::Error* _err) override
-		{
-			if (m_str[m_pos] == '\0'
-			||  m_pos == m_size)
-			{
-				BX_ERROR_SET(_err, BX_ERROR_READERWRITER_EOF, "LineReader: EOF.");
-				return 0;
-			}
-
-			uint32_t pos = m_pos;
-			const char* str = &m_str[pos];
-			const char* nl = bx::strFindNl(bx::StringView(str, str + (m_size - pos))).getPtr();
-			pos += (uint32_t)(nl - str);
-
-			const char* eol = &m_str[pos];
-
-			uint32_t size = bx::uint32_min(uint32_t(eol - str), _size);
-
-			bx::memCopy(_data, str, size);
-			m_pos += size;
-
-			return size;
-		}
-
-		const char* m_str;
-		uint32_t m_pos;
-		uint32_t m_size;
-	};
-
 	bx::StringView nextWord(bx::StringView& _parse);
 
 	constexpr uint8_t kUniformFragmentBit  = 0x10;

+ 30 - 26
tools/shaderc/shaderc_hlsl.cpp

@@ -680,38 +680,42 @@ namespace bgfx { namespace hlsl
 
 				// first time through, we just find unused uniforms and get rid of them
 				std::string output;
-				bx::Error err;
-				LineReader reader(_code.c_str() );
-				while (err.isOk() )
+				bx::LineReader reader(_code.c_str() );
+				while (!reader.isDone() )
 				{
-					char str[4096];
-					int32_t len = bx::read(&reader, str, BX_COUNTOF(str), &err);
-					if (err.isOk() )
-					{
-						std::string strLine(str, len);
+					bx::StringView strLine = reader.next();
+					bool found = false;
 
-						for (UniformNameList::iterator it = unusedUniforms.begin(), itEnd = unusedUniforms.end(); it != itEnd; ++it)
+					for (UniformNameList::iterator it = unusedUniforms.begin(), itEnd = unusedUniforms.end(); it != itEnd; ++it)
+					{
+						bx::StringView str = strFind(strLine, "uniform ");
+						if (str.isEmpty() )
 						{
-							size_t index = strLine.find("uniform ");
-							if (index == std::string::npos)
-							{
-								continue;
-							}
+							continue;
+						}
 
-							// matching lines like:  uniform u_name;
-							// we want to replace "uniform" with "static" so that it's no longer
-							// included in the uniform blob that the application must upload
-							// we can't just remove them, because unused functions might still reference
-							// them and cause a compile error when they're gone
-							if (!bx::findIdentifierMatch(strLine.c_str(), it->c_str() ).isEmpty() )
-							{
-								strLine = strLine.replace(index, strLength, "static");
-								unusedUniforms.erase(it);
-								break;
-							}
+						// matching lines like:  uniform u_name;
+						// we want to replace "uniform" with "static" so that it's no longer
+						// included in the uniform blob that the application must upload
+						// we can't just remove them, because unused functions might still reference
+						// them and cause a compile error when they're gone
+						if (!bx::findIdentifierMatch(strLine, it->c_str() ).isEmpty() )
+						{
+							output.append(strLine.getPtr(), str.getPtr() );
+							output += "static ";
+							output.append(str.getTerm(), strLine.getTerm() );
+							output += "\n";
+							found = true;
+
+							unusedUniforms.erase(it);
+							break;
 						}
+					}
 
-						output += strLine;
+					if (!found)
+					{
+						output.append(strLine.getPtr(), strLine.getTerm() );
+						output += "\n";
 					}
 				}
 

+ 55 - 42
tools/shaderc/shaderc_metal.cpp

@@ -8,6 +8,9 @@
 BX_PRAGMA_DIAGNOSTIC_PUSH()
 BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // error C4100: 'inclusionDepth' : unreferenced formal parameter
 BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4265) // error C4265: 'spv::spirvbin_t': class has virtual functions, but destructor is not virtual
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wattributes") // warning: attribute ignored
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wdeprecated-declarations") // warning: ‘MSLVertexAttr’ is deprecated
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wtype-limits") // warning: comparison of unsigned expression in ‘< 0’ is always false
 BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'userData' shadows a member of 'glslang::TShader::Includer::IncludeResult'
 #define ENABLE_OPT 1
 #include <ShaderLang.h>
@@ -585,7 +588,7 @@ namespace bgfx { namespace metal
 	{
 		uint16_t size = 0;
 
-		uint16_t count = static_cast<uint16_t>(uniforms.size());
+		uint16_t count = static_cast<uint16_t>(uniforms.size() );
 		bx::write(_writer, count);
 
 		uint32_t fragmentBit = isFragmentShader ? kUniformFragmentBit : 0;
@@ -598,7 +601,7 @@ namespace bgfx { namespace metal
 			uint8_t nameSize = (uint8_t)un.name.size();
 			bx::write(_writer, nameSize);
 			bx::write(_writer, un.name.c_str(), nameSize);
-			bx::write(_writer, uint8_t(un.type | fragmentBit));
+			bx::write(_writer, uint8_t(un.type | fragmentBit) );
 			bx::write(_writer, un.num);
 			bx::write(_writer, un.regIndex);
 			bx::write(_writer, un.regCount);
@@ -719,53 +722,59 @@ namespace bgfx { namespace metal
 					// first time through, we just find unused uniforms and get rid of them
 					std::string output;
 					bx::Error err;
-					LineReader reader(_code.c_str() );
-					while (err.isOk() )
+					bx::LineReader reader(_code.c_str() );
+					while (!reader.isDone() )
 					{
-						char str[4096];
-						int32_t len = bx::read(&reader, str, BX_COUNTOF(str), &err);
-						if (err.isOk() )
+						bx::StringView strLine = reader.next();
+						bx::StringView str = strFind(strLine, "uniform ");
+
+						if (!str.isEmpty() )
 						{
-							std::string strLine(str, len);
+							bool found = false;
 
-							size_t index = strLine.find("uniform ");
-							if (index != std::string::npos)
+							for (uint32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
 							{
-								bool found = false;
-
-								for (uint32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
+								if (!bx::findIdentifierMatch(strLine, s_samplerTypes[ii]).isEmpty() )
 								{
-									if (!bx::findIdentifierMatch(strLine.c_str(), s_samplerTypes[ii]).isEmpty())
-									{
-										found = true;
-										break;
-									}
+									found = true;
+									break;
 								}
+							}
 
-								if (!found)
+							if (!found)
+							{
+								for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
 								{
-									for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
+									// matching lines like:  uniform u_name;
+									// we want to replace "uniform" with "static" so that it's no longer
+									// included in the uniform blob that the application must upload
+									// we can't just remove them, because unused functions might still reference
+									// them and cause a compile error when they're gone
+									if (!bx::findIdentifierMatch(strLine, program->getUniformName(ii) ).isEmpty() )
 									{
-										// matching lines like:  uniform u_name;
-										// we want to replace "uniform" with "static" so that it's no longer
-										// included in the uniform blob that the application must upload
-										// we can't just remove them, because unused functions might still reference
-										// them and cause a compile error when they're gone
-										if (!bx::findIdentifierMatch(strLine.c_str(), program->getUniformName(ii)).isEmpty())
-										{
-											found = true;
-											break;
-										}
+										found = true;
+										break;
 									}
 								}
-
-								if (!found)
-								{
-									strLine = strLine.replace(index, 7 /* uniform */, "static");
-								}
 							}
 
-							output += strLine;
+							if (!found)
+							{
+								output.append(strLine.getPtr(), str.getPtr() );
+								output += "static ";
+								output.append(str.getTerm(), strLine.getTerm() );
+								output += "\n";
+							}
+							else
+							{
+								output.append(strLine.getPtr(), strLine.getTerm() );
+								output += "\n";
+							}
+						}
+						else
+						{
+							output.append(strLine.getPtr(), strLine.getTerm() );
+							output += "\n";
 						}
 					}
 
@@ -788,7 +797,7 @@ namespace bgfx { namespace metal
 						un.regIndex = uint16_t(offset);
 						un.regCount = un.num;
 
-						switch (program->getUniformType(ii))
+						switch (program->getUniformType(ii) )
 						{
 						case 0x1404: // GL_INT:
 							un.type = UniformType::Sampler;
@@ -887,14 +896,14 @@ namespace bgfx { namespace metal
 					}
 					uint16_t size = writeUniformArray( _writer, uniforms, _options.shaderType == 'f');
 
-					if (_version == BX_MAKEFOURCC('M', 'T', 'L', 0))
+					if (_version == BX_MAKEFOURCC('M', 'T', 'L', 0) )
 					{
 						if (g_verbose)
 						{
 							glslang::SpirvToolsDisassemble(std::cout, spirv);
 						}
 
-						spirv_cross::CompilerMSL msl(std::move(spirv));
+						spirv_cross::CompilerMSL msl(std::move(spirv) );
 
 						auto executionModel = msl.get_execution_model();
 						spirv_cross::MSLResourceBinding newBinding;
@@ -903,7 +912,7 @@ namespace bgfx { namespace metal
 						spirv_cross::ShaderResources resources = msl.get_shader_resources();
 
 						spirv_cross::SmallVector<spirv_cross::EntryPoint> entryPoints = msl.get_entry_points_and_stages();
-						if (!entryPoints.empty())
+						if (!entryPoints.empty() )
 							msl.rename_entry_point(entryPoints[0].name, "xlatMtlMain", entryPoints[0].execution_model);
 
 						for (auto &resource : resources.uniform_buffers)
@@ -943,7 +952,9 @@ namespace bgfx { namespace metal
 						{
 							std::string name = msl.get_name(resource.id);
 							if (name.size() > 7 && 0 == bx::strCmp(name.c_str() + name.length() - 7, "Texture") )
-								msl.set_name(resource.id, name.substr(0, name.length() - 7));
+							{
+								msl.set_name(resource.id, name.substr(0, name.length() - 7) );
+							}
 
 							unsigned set = msl.get_decoration( resource.id, spv::DecorationDescriptorSet );
 							unsigned binding = msl.get_decoration( resource.id, spv::DecorationBinding );
@@ -958,7 +969,9 @@ namespace bgfx { namespace metal
 						{
 							std::string name = msl.get_name(resource.id);
 							if (name.size() > 7 && 0 == bx::strCmp(name.c_str() + name.length() - 7, "Texture") )
-								msl.set_name(resource.id, name.substr(0, name.length() - 7));
+							{
+								msl.set_name(resource.id, name.substr(0, name.length() - 7) );
+							}
 
 							unsigned set = msl.get_decoration( resource.id, spv::DecorationDescriptorSet );
 							unsigned binding = msl.get_decoration( resource.id, spv::DecorationBinding );

+ 74 - 67
tools/shaderc/shaderc_spirv.cpp

@@ -8,6 +8,9 @@
 BX_PRAGMA_DIAGNOSTIC_PUSH()
 BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // error C4100: 'inclusionDepth' : unreferenced formal parameter
 BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4265) // error C4265: 'spv::spirvbin_t': class has virtual functions, but destructor is not virtual
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wattributes") // warning: attribute ignored
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wdeprecated-declarations") // warning: ‘MSLVertexAttr’ is deprecated
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wtype-limits") // warning: comparison of unsigned expression in ‘< 0’ is always false
 BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'userData' shadows a member of 'glslang::TShader::Includer::IncludeResult'
 #define ENABLE_OPT 1
 #include <ShaderLang.h>
@@ -638,21 +641,24 @@ namespace bgfx { namespace spirv
 	{
 		uint16_t size = 0;
 
-		uint16_t count = static_cast<uint16_t>(uniforms.size());
+		uint16_t count = static_cast<uint16_t>(uniforms.size() );
 		bx::write(_writer, count);
 
 		uint32_t fragmentBit = isFragmentShader ? kUniformFragmentBit : 0;
+
 		for (uint16_t ii = 0; ii < count; ++ii)
 		{
 			const Uniform& un = uniforms[ii];
 
-			if ((un.type & ~kUniformMask) > UniformType::End)
-				size = bx::max(size, (uint16_t)(un.regIndex + un.regCount*16));
+			if ( (un.type & ~kUniformMask) > UniformType::End)
+			{
+				size = bx::max(size, (uint16_t)(un.regIndex + un.regCount*16) );
+			}
 
 			uint8_t nameSize = (uint8_t)un.name.size();
 			bx::write(_writer, nameSize);
 			bx::write(_writer, un.name.c_str(), nameSize);
-			bx::write(_writer, uint8_t(un.type | fragmentBit));
+			bx::write(_writer, uint8_t(un.type | fragmentBit) );
 			bx::write(_writer, un.num);
 			bx::write(_writer, un.regIndex);
 			bx::write(_writer, un.regCount);
@@ -665,7 +671,7 @@ namespace bgfx { namespace spirv
 				, un.num
 				, un.regIndex
 				, un.regCount
-			);
+				);
 		}
 		return size;
 	}
@@ -782,88 +788,89 @@ namespace bgfx { namespace spirv
 					};
 					std::vector<Uniform> uniforms;
 
-					bx::Error err;
-					LineReader reader(_code.c_str() );
-					while (err.isOk() )
+					bx::LineReader reader(_code.c_str() );
+					while (!reader.isDone() )
 					{
-						char str[4096];
-						int32_t len = bx::read(&reader, str, BX_COUNTOF(str), &err);
-						if (err.isOk() )
-						{
-							std::string strLine(str, len);
+						bx::StringView strLine = reader.next();
 
-							bool moved = false;
+						bool moved = false;
 
-							size_t index = strLine.find("uniform ");
-							if (index != std::string::npos)
-							{
-								bool found = false;
-								bool sampler = false;
-								std::string name = "";
+						bx::StringView str = strFind(strLine, "uniform ");
+						if (!str.isEmpty() )
+						{
+							bool found = false;
+							bool sampler = false;
+							std::string name = "";
 
-								// add to samplers
+							// add to samplers
 
-								for (uint32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
+							for (uint32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
+							{
+								if (!bx::findIdentifierMatch(strLine, s_samplerTypes[ii]).isEmpty() )
 								{
-									if (!bx::findIdentifierMatch(strLine.c_str(), s_samplerTypes[ii]).isEmpty())
-									{
-										found = true;
-										sampler = true;
-										break;
-									}
+									found = true;
+									sampler = true;
+									break;
 								}
+							}
 
-								if (!found)
+							if (!found)
+							{
+								for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
 								{
-									for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
+									// matching lines like:  uniform u_name;
+									// we want to replace "uniform" with "static" so that it's no longer
+									// included in the uniform blob that the application must upload
+									// we can't just remove them, because unused functions might still reference
+									// them and cause a compile error when they're gone
+									if (!bx::findIdentifierMatch(strLine, program->getUniformName(ii) ).isEmpty() )
 									{
-										// matching lines like:  uniform u_name;
-										// we want to replace "uniform" with "static" so that it's no longer
-										// included in the uniform blob that the application must upload
-										// we can't just remove them, because unused functions might still reference
-										// them and cause a compile error when they're gone
-										if (!bx::findIdentifierMatch(strLine.c_str(), program->getUniformName(ii)).isEmpty())
-										{
-											found = true;
-											name = program->getUniformName(ii);
-											break;
-										}
+										found = true;
+										name = program->getUniformName(ii);
+										break;
 									}
 								}
+							}
 
-								if (!found)
-								{
-									strLine.replace(index, 7 /* uniform */, "static");
-								}
-								else if (!sampler)
-								{
-									Uniform uniform;
-									uniform.name = name;
-									uniform.decl = strLine;
-									uniforms.push_back(uniform);
-									moved = true;
-								}
-
+							if (!found)
+							{
+								output.append(strLine.getPtr(), str.getPtr() );
+								output += "static ";
+								output.append(str.getTerm(), strLine.getTerm() );
+								output += "\n";
+								moved = true;
 							}
+							else if (!sampler)
+							{
+								Uniform uniform;
+								uniform.name = name;
+								uniform.decl = std::string(strLine.getPtr(), strLine.getTerm() );
+								uniforms.push_back(uniform);
+								moved = true;
+							}
+						}
 
-							if (!moved)
-								output += strLine;
+						if (!moved)
+						{
+							output.append(strLine.getPtr(), strLine.getTerm() );
+							output += "\n";
 						}
 					}
 
 					std::string uniformBlock;
 					uniformBlock += "cbuffer UniformBlock\n";
 					uniformBlock += "{\n";
+
 					for (const Uniform& uniform : uniforms)
 					{
 						uniformBlock += uniform.decl.substr(7 /* uniform */);
+						uniformBlock += "\n";
 					}
+
 					uniformBlock += "};\n";
 
 					output = uniformBlock + output;
 
-					//std::cout << "[debug] uniforms: " << std::endl << uniformBlock << std::endl;
-
 					// recompile with the unused uniforms converted to statics
 					return compile(_options, _version, output.c_str(), _writer, false);
 				}
@@ -887,7 +894,7 @@ namespace bgfx { namespace spirv
 						un.regIndex = uint16_t(offset);
 						un.regCount = un.num;
 
-						switch (program->getUniformType(ii))
+						switch (program->getUniformType(ii) )
 						{
 						case 0x1404: // GL_INT:
 							un.type = UniformType::Sampler;
@@ -991,7 +998,7 @@ namespace bgfx { namespace spirv
 							bool isCompareSampler = false;
 							for (auto& sampler : resourcesrefl.separate_samplers)
 							{
-								if (binding_index + 16 == refl.get_decoration(sampler.id, spv::Decoration::DecorationBinding))
+								if (binding_index + 16 == refl.get_decoration(sampler.id, spv::Decoration::DecorationBinding) )
 								{
 									std::string samplerName = refl.get_name(sampler.id);
 									isCompareSampler = refl.variable_is_depth_or_compare(sampler.id) || samplerName.find("Comparison") != std::string::npos;
@@ -1006,8 +1013,8 @@ namespace bgfx { namespace spirv
 									| (isCompareSampler ? kUniformCompareBit : 0)
 									);
 
-							un.texComponent = uint8_t(SpirvCrossBaseTypeToFormatType(componentType));
-							un.texDimension = uint8_t(SpirvDimToTextureViewDimension(imageType.dim, imageType.arrayed));
+							un.texComponent = uint8_t(SpirvCrossBaseTypeToFormatType(componentType) );
+							un.texDimension = uint8_t(SpirvDimToTextureViewDimension(imageType.dim, imageType.arrayed) );
 
 							un.regIndex = binding_index;
 							un.regCount = 0; // unused
@@ -1039,8 +1046,8 @@ namespace bgfx { namespace spirv
 							un.name = uniform_name;
 							un.type = type;
 
-							un.texComponent = uint8_t(SpirvCrossBaseTypeToFormatType(componentType));
-							un.texDimension = uint8_t(SpirvDimToTextureViewDimension(imageType.dim, imageType.arrayed));
+							un.texComponent = uint8_t(SpirvCrossBaseTypeToFormatType(componentType) );
+							un.texDimension = uint8_t(SpirvDimToTextureViewDimension(imageType.dim, imageType.arrayed) );
 
 							un.regIndex = binding_index;
 							un.regCount = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;	// for descriptor type
@@ -1056,7 +1063,7 @@ namespace bgfx { namespace spirv
 
 						for (auto& uniform : uniforms)
 						{
-							if (!bx::strFind(uniform.name.c_str(), name.c_str()).isEmpty())
+							if (!bx::strFind(uniform.name.c_str(), name.c_str() ).isEmpty() )
 							{
 								spirv_cross::Bitset flags = refl.get_buffer_block_flags(resource.id);
 								UniformType::Enum type = flags.get(spv::DecorationNonWritable)
@@ -1077,7 +1084,7 @@ namespace bgfx { namespace spirv
 
 					if (_version == BX_MAKEFOURCC('M', 'T', 'L', 0) )
 					{
-						spirv_cross::CompilerMSL msl(std::move(spirv));
+						spirv_cross::CompilerMSL msl(std::move(spirv) );
 
 						spirv_cross::ShaderResources resources = msl.get_shader_resources();
 
@@ -1108,7 +1115,7 @@ namespace bgfx { namespace spirv
 							if (name.size() > 7
 							&&  0 == bx::strCmp(name.c_str() + name.length() - 7, "Texture") )
 							{
-								msl.set_name(resource.id, name.substr(0, name.length() - 7));
+								msl.set_name(resource.id, name.substr(0, name.length() - 7) );
 							}
 						}