Vulkan: Simplify present history logic Instead of marking `ImagePresentOperation` as corresponding to an older swapchain, accumulate all present history in the `mOldSwapchains`. Keeping old Swapchain's `ImagePresentOperation` with Fences can lead to multiple "old swapchains" lists. This may cause situations exceeding the `kMaxOldSwapchains` limit. Keeping items with Fences may help cleanup resources faster, but I think that it is not worth the code complexity. It also should be safe to recycle Fences at the same time as the Semaphores (when the first image is recycled). Also this CL may fix bug: if (mPresentHistory.empty() || mPresentHistory.back().imageIndex == kInvalidImageIndex) The above condition will always pass when using actual present Fences (VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT). Bug: angleproject:7847 Change-Id: I39d854b03733dcb976c6bd7eb5f848d0cbece5d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481251 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>