Skip to content

Commit 7e7812e

Browse files
tomnomgoogleukAndroid Build Cherrypicker Worker
authored andcommitted
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
1 parent 16fbe77 commit 7e7812e

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

vulkan/libvulkan/swapchain.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1225,8 +1225,15 @@ VkResult GetPhysicalDeviceSurfaceFormats2KHR(
12251225
surfaceCompressionProps
12261226
->imageCompressionFixedRateFlags =
12271227
compressionProps.imageCompressionFixedRateFlags;
1228-
} else {
1228+
} else if (compressionRes ==
1229+
VK_ERROR_OUT_OF_HOST_MEMORY ||
1230+
compressionRes ==
1231+
VK_ERROR_OUT_OF_DEVICE_MEMORY) {
12291232
return compressionRes;
1233+
} else {
1234+
// For any of the *_NOT_SUPPORTED errors we continue
1235+
// onto the next format
1236+
continue;
12301237
}
12311238
}
12321239
} break;

0 commit comments

Comments
 (0)