Hash :
4963febf
        
        Author :
  
        
        Date :
2023-08-02T16:52:52
        
      
Vulkan: Remove type indices with host-visible bit
  Currently, the memory type index for VMA image allocations are
selected and returned by the API. However, it could potentially
choose a type index with more flags than required or preferred,
and ignore the index with exactly the flags we want. For example,
it could pick a type index with the host-visible property flag,
even if is unnecessary and a type index with a device-local flag
would suffice.
  Using memoryTypeBits during the allocation allows us to filter
the unwanted type indices out and use the other indices initially.
* Added a new function to RendererVk.cpp to try to remove the memory
  type indices with the host-visible bit for VMA image allocations
  if they should be device-local.
  * GetMemoryTypeBitsExcludingHostVisible()
    * It also removes the indices with the protected bit if it is not
      required.
  * If the allocation is unsuccessful, the fallback resets the field
  for memoryTypeBits, allowing all available type indices to be used
  for the allocation.
* Added memory type index to the pending allocation log during OOM.
Bug: b/294085818
Change-Id: Icc1b218df075170a6baa7ec57c837ed59cd4fa96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4743604
Reviewed-by: Kaiyi Li <kaiyili@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>