Fix GetPhysicalDeviceSurfaceFormats2KHR for compression control struct handling

As per the spec, vkGetPhysicalDeviceImageFormatProperties2 may return
VK_ERROR_FORMAT_NOT_SUPPORTED when an invalid combination of parameters
appears in VkPhysicalDeviceImageFormatInfo2 pImageFormatInfo argument
which is not handled by the loader. i.e.. loader doesn't loop through
all surface formats

Fix this by correctly handling vkGetPhysicalDeviceImageFormatProperties2
return value

Test: Working separately on testing strategy for this: 357903074
Bug: 357903074
Flag: EXEMPT bugfix
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a920d2d6dcc97331a8fffe3a2584eb30b890005e)
(cherry picked from https://android-review.googlesource.com/q/commit:e5b150b8cc340c23fa6dd3e7e7b648c6493836df)
Merged-In: Id0712387e3249ac6118990441a4bb19102cd4a84
Change-Id: Id0712387e3249ac6118990441a4bb19102cd4a84
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp
index 1314193..f15fe4d 100644
--- a/vulkan/libvulkan/swapchain.cpp
+++ b/vulkan/libvulkan/swapchain.cpp
@@ -1225,8 +1225,15 @@
                             surfaceCompressionProps
                                 ->imageCompressionFixedRateFlags =
                                 compressionProps.imageCompressionFixedRateFlags;
-                        } else {
+                        } else if (compressionRes ==
+                                       VK_ERROR_OUT_OF_HOST_MEMORY ||
+                                   compressionRes ==
+                                       VK_ERROR_OUT_OF_DEVICE_MEMORY) {
                             return compressionRes;
+                        } else {
+                            // For any of the *_NOT_SUPPORTED errors we continue
+                            // onto the next format
+                            continue;
                         }
                     }
                 } break;