Browse Source

Fix a bug in SwapchainFactory

Panagiotis Christopoulos Charitos 4 years ago
parent
commit
9979b4677f
2 changed files with 6 additions and 5 deletions
  1. 1 1
      AnKi/Gr/Vulkan/GrManagerImpl.cpp
  2. 5 4
      AnKi/Gr/Vulkan/SwapchainFactory.cpp

+ 1 - 1
AnKi/Gr/Vulkan/GrManagerImpl.cpp

@@ -98,7 +98,7 @@ GrManagerImpl::~GrManagerImpl()
 
 
 Error GrManagerImpl::init(const GrManagerInitInfo& init)
 Error GrManagerImpl::init(const GrManagerInitInfo& init)
 {
 {
-	Error err = initInternal(init);
+	const Error err = initInternal(init);
 	if(err)
 	if(err)
 	{
 	{
 		ANKI_VK_LOGE("Vulkan initialization failed");
 		ANKI_VK_LOGE("Vulkan initialization failed");

+ 5 - 4
AnKi/Gr/Vulkan/SwapchainFactory.cpp

@@ -69,12 +69,13 @@ Error MicroSwapchain::initInternal()
 		ANKI_VK_CHECK(vkGetPhysicalDeviceSurfaceFormatsKHR(m_factory->m_gr->getPhysicalDevice(),
 		ANKI_VK_CHECK(vkGetPhysicalDeviceSurfaceFormatsKHR(m_factory->m_gr->getPhysicalDevice(),
 														   m_factory->m_gr->getSurface(), &formatCount, &formats[0]));
 														   m_factory->m_gr->getSurface(), &formatCount, &formats[0]));
 
 
-		while(formatCount--)
+		for(U32 i = 0; i < formatCount; ++i)
 		{
 		{
-			if(formats[formatCount].format == VK_FORMAT_B8G8R8A8_UNORM)
+			if(formats[i].format == VK_FORMAT_R8G8B8A8_UNORM || formats[i].format == VK_FORMAT_B8G8R8A8_UNORM
+			   || formats[i].format == VK_FORMAT_A8B8G8R8_UNORM_PACK32)
 			{
 			{
-				surfaceFormat = formats[formatCount].format;
-				colorspace = formats[formatCount].colorSpace;
+				surfaceFormat = formats[i].format;
+				colorspace = formats[i].colorSpace;
 				break;
 				break;
 			}
 			}
 		}
 		}