goldfish-opengl: update AHB with host color buffer memory index

- use host defined memory index instead hardcoding to zero
- updateMemoryBitsForAndroidHardwareBuffers --> updateMemoryBits
    -- maybe a namesapce can be added later,
    -- gfxstream::guest::vk::ahb::updateMemoryBits

BUG=215538934
TEST=compile

Change-Id: Ifcdb877f0502249ec5fdfe5964fca9cd4f91bd5e
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 2f9a292..e74392f 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -912,6 +912,11 @@
     void setupCaps(void) {
         VirtGpuDevice& instance = VirtGpuDevice::getInstance((enum VirtGpuCapset)3);
         mCaps = instance.getCaps();
+
+        // Delete once goldfish Linux drivers are gone
+        if (mCaps.gfxstreamCapset.protocolVersion == 0) {
+            mCaps.gfxstreamCapset.colorBufferMemoryIndex = 0xFFFFFFFF;
+        }
     }
 
     void setupFeatures(const EmulatorFeatureInfo* features) {
@@ -1657,12 +1662,25 @@
 
 #ifdef VK_USE_PLATFORM_ANDROID_KHR
     VkResult on_vkGetAndroidHardwareBufferPropertiesANDROID(
-            void*, VkResult,
-            VkDevice,
+            void* context, VkResult,
+            VkDevice device,
             const AHardwareBuffer* buffer,
             VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
         auto grallocHelper =
             ResourceTracker::threadingCallbacks.hostConnectionGetFunc()->grallocHelper();
+
+        // Delete once goldfish Linux drivers are gone
+	if (mCaps.gfxstreamCapset.colorBufferMemoryIndex == 0xFFFFFFFF) {
+            const VkPhysicalDeviceMemoryProperties& memProps =
+                getPhysicalDeviceMemoryProperties(context, device, VK_NULL_HANDLE);
+
+            mCaps.gfxstreamCapset.colorBufferMemoryIndex =
+                (1u << memProps.memoryTypeCount) - 1;
+        }
+
+        updateMemoryTypeBits(&pProperties->memoryTypeBits,
+                             mCaps.gfxstreamCapset.colorBufferMemoryIndex);
+
         return getAndroidHardwareBufferPropertiesANDROID(
             grallocHelper, buffer, pProperties);
     }
@@ -4228,11 +4246,15 @@
             info.isSysmemBackedMemory = true;
         }
 #endif
+
+// Delete `protocolVersion` check goldfish drivers are gone.
 #ifdef VK_USE_PLATFORM_ANDROID_KHR
         if (extImgCiPtr &&
+            mCaps.gfxstreamCapset.protocolVersion &&
             (extImgCiPtr->handleTypes &
              VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)) {
-            updateMemoryTypeBitsForAndroidHardwareBuffers(&memReqs.memoryTypeBits);
+            updateMemoryTypeBits(&memReqs.memoryTypeBits,
+                                 mCaps.gfxstreamCapset.colorBufferMemoryIndex);
         }
 #endif
 
@@ -5271,11 +5293,14 @@
 
         if (res != VK_SUCCESS) return res;
 
+// Delete `protocolVersion` check goldfish drivers are gone.
 #ifdef VK_USE_PLATFORM_ANDROID_KHR
         if (extBufCiPtr &&
+            mCaps.gfxstreamCapset.protocolVersion &&
             (extBufCiPtr->handleTypes &
              VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)) {
-            updateMemoryTypeBitsForAndroidHardwareBuffers(&memReqs.memoryTypeBits);
+            updateMemoryTypeBits(&memReqs.memoryTypeBits,
+                                 mCaps.gfxstreamCapset.colorBufferMemoryIndex);
         }
 #endif