2
0
Эх сурвалжийг харах

VK: Fixed some ubsan reported issue.

Бранимир Караџић 3 жил өмнө
parent
commit
90e847c46d
1 өөрчлөгдсөн 14 нэмэгдсэн , 10 устгасан
  1. 14 10
      src/renderer_vk.cpp

+ 14 - 10
src/renderer_vk.cpp

@@ -295,27 +295,31 @@ VK_IMPORT_DEVICE
 		LayerInfo m_device;
 		LayerInfo m_device;
 	};
 	};
 
 
-
 	// Layer registry
 	// Layer registry
 	//
 	//
 	static Layer s_layer[] =
 	static Layer s_layer[] =
 	{
 	{
 		{ "VK_LAYER_LUNARG_standard_validation", 1, { false, false }, { false, false } },
 		{ "VK_LAYER_LUNARG_standard_validation", 1, { false, false }, { false, false } },
 		{ "VK_LAYER_KHRONOS_validation",         1, { false, false }, { false, false } },
 		{ "VK_LAYER_KHRONOS_validation",         1, { false, false }, { false, false } },
+		{ "",                                    0, { false, false }, { false, false } },
 	};
 	};
-	BX_STATIC_ASSERT(Layer::Count == BX_COUNTOF(s_layer) );
+	BX_STATIC_ASSERT(Layer::Count == BX_COUNTOF(s_layer)-1);
 
 
 	void updateLayer(const char* _name, uint32_t _version, bool _instanceLayer)
 	void updateLayer(const char* _name, uint32_t _version, bool _instanceLayer)
 	{
 	{
-		bx::StringView lyr(_name);
+		bx::StringView layerName(_name);
 
 
 		for (uint32_t ii = 0; ii < Layer::Count; ++ii)
 		for (uint32_t ii = 0; ii < Layer::Count; ++ii)
 		{
 		{
 			Layer& layer = s_layer[ii];
 			Layer& layer = s_layer[ii];
-			LayerInfo& layerInfo = _instanceLayer ? layer.m_instance : layer.m_device;
+			LayerInfo& layerInfo = _instanceLayer
+				? layer.m_instance
+				: layer.m_device
+				;
+
 			if (!layerInfo.m_supported && layerInfo.m_initialize)
 			if (!layerInfo.m_supported && layerInfo.m_initialize)
 			{
 			{
-				if (       0 == bx::strCmp(lyr, layer.m_name)
+				if (       0 == bx::strCmp(layerName, layer.m_name)
 				&&  _version >= layer.m_minVersion)
 				&&  _version >= layer.m_minVersion)
 				{
 				{
 					layerInfo.m_supported = true;
 					layerInfo.m_supported = true;
@@ -343,10 +347,10 @@ VK_IMPORT_DEVICE
 		};
 		};
 
 
 		const char* m_name;
 		const char* m_name;
-		uint32_t m_minVersion;
-		bool m_instanceExt;
-		bool m_supported;
-		bool m_initialize;
+		uint32_t    m_minVersion;
+		bool        m_instanceExt;
+		bool        m_supported;
+		bool        m_initialize;
 		Layer::Enum m_layer;
 		Layer::Enum m_layer;
 	};
 	};
 
 
@@ -375,7 +379,7 @@ VK_IMPORT_DEVICE
 			for (uint32_t ii = 0; ii < Extension::Count; ++ii)
 			for (uint32_t ii = 0; ii < Extension::Count; ++ii)
 			{
 			{
 				Extension& extension = _extensions[ii];
 				Extension& extension = _extensions[ii];
-				LayerInfo& layerInfo = _instanceExt
+				const LayerInfo& layerInfo = _instanceExt
 					? s_layer[extension.m_layer].m_instance
 					? s_layer[extension.m_layer].m_instance
 					: s_layer[extension.m_layer].m_device
 					: s_layer[extension.m_layer].m_device
 					;
 					;