Vulkan: Defer texture data flush until data provided for all levels One of the major overhead with VkEvent is seeing with first frame where all textures are being specified. The immutable textures, we always immediately flush out the update as data provided for each level. This means one VkEvent is created and SetEvent is called per level. This CL delays the flush until data for all levels are provided, thus there is only one flush per texture instead of per level. With this CL asphalt_9 is no longer timeout on bots when VkEvent is enabled. There is also another benefit comes with this CL. On all desktop GPUs, ASTC format texture are falling back to RGBA8. We always stage a clear for the emulated format. That staged clear are able to be removed if data is provided later. Because of we flush out staged update when first level data is provided, all staged clear for the subsequent levels are also gets flushed out, losing the chance to be removed. This CL will allow all staged clears being removed. Bug: b/343976993 Bug: b/336844257 Change-Id: Ica731ea57db771b16966f4da92ccdc551ae93d81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588816 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>