Revert "[vulkan] create resources with requirements (guest)"

This reverts commit d3064505bf3d715c557cad28d23e6cc9ee13de81.

Reason for revert: Actual vulkan apps not working

Change-Id: I5fe8e8e3811987220cb9d8ec9e0caedd1290128f
diff --git a/system/OpenglSystemCommon/EmulatorFeatureInfo.h b/system/OpenglSystemCommon/EmulatorFeatureInfo.h
index b2add4a..d3228f5 100644
--- a/system/OpenglSystemCommon/EmulatorFeatureInfo.h
+++ b/system/OpenglSystemCommon/EmulatorFeatureInfo.h
@@ -82,9 +82,6 @@
 // Vulkan null optional strings
 static const char kVulkanNullOptionalStrings[] = "ANDROID_EMU_vulkan_null_optional_strings";
 
-// Vulkan create resources with requirements
-static const char kVulkanCreateResourcesWithRequirements[] = "ANDROID_EMU_vulkan_create_resources_with_requirements";
-
 // Struct describing available emulator features
 struct EmulatorFeatureInfo {
 
@@ -96,8 +93,7 @@
         hasDirectMem(false),
         hasVulkan(false),
         hasDeferredVulkanCommands(false),
-        hasVulkanNullOptionalStrings(false),
-        hasVulkanCreateResourcesWithRequirements(false) { }
+        hasVulkanNullOptionalStrings(false) { }
 
     SyncImpl syncImpl;
     DmaImpl dmaImpl;
@@ -107,7 +103,6 @@
     bool hasVulkan;
     bool hasDeferredVulkanCommands;
     bool hasVulkanNullOptionalStrings;
-    bool hasVulkanCreateResourcesWithRequirements;
 };
 
 #endif // __COMMON_EMULATOR_FEATURE_INFO_H
diff --git a/system/OpenglSystemCommon/HostConnection.cpp b/system/OpenglSystemCommon/HostConnection.cpp
index cfe31b5..392b7c6 100644
--- a/system/OpenglSystemCommon/HostConnection.cpp
+++ b/system/OpenglSystemCommon/HostConnection.cpp
@@ -294,7 +294,6 @@
         queryAndSetVulkanSupport(m_rcEnc);
         queryAndSetDeferredVulkanCommandsSupport(m_rcEnc);
         queryAndSetVulkanNullOptionalStringsSupport(m_rcEnc);
-        queryAndSetVulkanCreateResourcesWithRequirementsSupport(m_rcEnc);
         if (m_processPipe) {
             m_processPipe->processPipeInit(m_rcEnc);
         }
@@ -457,10 +456,3 @@
         rcEnc->featureInfo()->hasVulkanNullOptionalStrings = true;
     }
 }
-
-void HostConnection::queryAndSetVulkanCreateResourcesWithRequirementsSupport(ExtendedRCEncoderContext* rcEnc) {
-    std::string glExtensions = queryGLExtensions(rcEnc);
-    if (glExtensions.find(kVulkanCreateResourcesWithRequirements) != std::string::npos) {
-        rcEnc->featureInfo()->hasVulkanCreateResourcesWithRequirements = true;
-    }
-}
diff --git a/system/OpenglSystemCommon/HostConnection.h b/system/OpenglSystemCommon/HostConnection.h
index f79c11f..2f9f83f 100644
--- a/system/OpenglSystemCommon/HostConnection.h
+++ b/system/OpenglSystemCommon/HostConnection.h
@@ -167,7 +167,6 @@
     void queryAndSetVulkanSupport(ExtendedRCEncoderContext *rcEnc);
     void queryAndSetDeferredVulkanCommandsSupport(ExtendedRCEncoderContext *rcEnc);
     void queryAndSetVulkanNullOptionalStringsSupport(ExtendedRCEncoderContext *rcEnc);
-    void queryAndSetVulkanCreateResourcesWithRequirementsSupport(ExtendedRCEncoderContext *rcEnc);
 
 private:
     IOStream *m_stream;
diff --git a/system/vulkan/func_table.cpp b/system/vulkan/func_table.cpp
index 64427be..f0ed982 100644
--- a/system/vulkan/func_table.cpp
+++ b/system/vulkan/func_table.cpp
@@ -3844,34 +3844,6 @@
     vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber);
 }
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-static VkResult entry_vkCreateImageWithRequirementsGOOGLE(
-    VkDevice device,
-    const VkImageCreateInfo* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkImage* pImage,
-    VkMemoryRequirements* pMemoryRequirements)
-{
-    AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE");
-    auto vkEnc = HostConnection::get()->vkEncoder();
-    VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
-    vkCreateImageWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateImageWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pImage, pMemoryRequirements);
-    return vkCreateImageWithRequirementsGOOGLE_VkResult_return;
-}
-static VkResult entry_vkCreateBufferWithRequirementsGOOGLE(
-    VkDevice device,
-    const VkBufferCreateInfo* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkBuffer* pBuffer,
-    VkMemoryRequirements* pMemoryRequirements)
-{
-    AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE");
-    auto vkEnc = HostConnection::get()->vkEncoder();
-    VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
-    vkCreateBufferWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, pMemoryRequirements);
-    return vkCreateBufferWithRequirementsGOOGLE_VkResult_return;
-}
-#endif
 void* goldfish_vulkan_get_proc_address(const char* name){
 #ifdef VK_VERSION_1_0
     if (!strcmp(name, "vkCreateInstance"))
@@ -5307,16 +5279,6 @@
         return nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-    if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
-    {
-        return nullptr;
-    }
-#endif
     return nullptr;
 }
 void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
@@ -6916,18 +6878,6 @@
         return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-    if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_create_resources_with_requirements");
-        return hasExt ? (void*)entry_vkCreateImageWithRequirementsGOOGLE : nullptr;
-    }
-    if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_create_resources_with_requirements");
-        return hasExt ? (void*)entry_vkCreateBufferWithRequirementsGOOGLE : nullptr;
-    }
-#endif
     return nullptr;
 }
 void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
@@ -8527,18 +8477,6 @@
         return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-    if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
-        return hasExt ? (void*)entry_vkCreateImageWithRequirementsGOOGLE : nullptr;
-    }
-    if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
-        return hasExt ? (void*)entry_vkCreateBufferWithRequirementsGOOGLE : nullptr;
-    }
-#endif
     return nullptr;
 }
 
diff --git a/system/vulkan/func_table.h b/system/vulkan/func_table.h
index 05658cf..4d0e977 100644
--- a/system/vulkan/func_table.h
+++ b/system/vulkan/func_table.h
@@ -284,8 +284,6 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 void* goldfish_vulkan_get_proc_address(const char* name);
 void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name);
 void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name);
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index a3d8861..9cd8a79 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -265,8 +265,6 @@
         VkDeviceMemory currentBacking = VK_NULL_HANDLE;
         VkDeviceSize currentBackingOffset = 0;
         VkDeviceSize currentBackingSize = 0;
-        bool baseRequirementsKnown = false;
-        VkMemoryRequirements baseRequirements;
     };
 
     struct VkBuffer_Info {
@@ -277,8 +275,6 @@
         VkDeviceMemory currentBacking = VK_NULL_HANDLE;
         VkDeviceSize currentBackingOffset = 0;
         VkDeviceSize currentBackingSize = 0;
-        bool baseRequirementsKnown = false;
-        VkMemoryRequirements baseRequirements;
     };
 
     struct VkSemaphore_Info {
@@ -615,11 +611,6 @@
         return mFeatureInfo->hasDeferredVulkanCommands;
     }
 
-    bool supportsCreateResourcesWithRequirements() const {
-        if (!mFeatureInfo) return false;
-        return mFeatureInfo->hasVulkanCreateResourcesWithRequirements;
-    }
-
     int getHostInstanceExtensionIndex(const std::string& extName) const {
         int i = 0;
         for (const auto& prop : mHostInstanceExtensions) {
@@ -2069,10 +2060,12 @@
         dedicatedReqs->requiresDedicatedAllocation = VK_TRUE;
     }
 
-    void transformImageMemoryRequirementsForGuestLocked(
+    void transformImageMemoryRequirementsForGuest(
         VkImage image,
         VkMemoryRequirements* reqs) {
 
+        AutoLock lock(mLock);
+
         auto it = info_VkImage.find(image);
         if (it == info_VkImage.end()) return;
 
@@ -2087,10 +2080,12 @@
         transformExternalResourceMemoryRequirementsForGuest(reqs);
     }
 
-    void transformBufferMemoryRequirementsForGuestLocked(
+    void transformBufferMemoryRequirementsForGuest(
         VkBuffer buffer,
         VkMemoryRequirements* reqs) {
 
+        AutoLock lock(mLock);
+
         auto it = info_VkBuffer.find(buffer);
         if (it == info_VkBuffer.end()) return;
 
@@ -2243,14 +2238,7 @@
         }
 #endif
 
-        VkResult res;
-        VkMemoryRequirements memReqs;
-
-        if (supportsCreateResourcesWithRequirements()) {
-            res = enc->vkCreateImageWithRequirementsGOOGLE(device, &localCreateInfo, pAllocator, pImage, &memReqs);
-        } else {
-            res = enc->vkCreateImage(device, &localCreateInfo, pAllocator, pImage);
-        }
+        VkResult res = enc->vkCreateImage(device, &localCreateInfo, pAllocator, pImage);
 
         if (res != VK_SUCCESS) return res;
 
@@ -2265,19 +2253,10 @@
         info.createInfo = *pCreateInfo;
         info.createInfo.pNext = nullptr;
 
-        if (supportsCreateResourcesWithRequirements()) {
-            info.baseRequirementsKnown = true;
-        }
+        if (!extImgCiPtr) return res;
 
-        if (extImgCiPtr) {
-            info.external = true;
-            info.externalCreateInfo = *extImgCiPtr;
-        }
-
-        if (info.baseRequirementsKnown) {
-            transformImageMemoryRequirementsForGuestLocked(*pImage, &memReqs);
-            info.baseRequirements = memReqs;
-        }
+        info.external = true;
+        info.externalCreateInfo = *extImgCiPtr;
 
         return res;
     }
@@ -2342,28 +2321,11 @@
     void on_vkGetImageMemoryRequirements(
         void *context, VkDevice device, VkImage image,
         VkMemoryRequirements *pMemoryRequirements) {
-
-        AutoLock lock(mLock);
-
-        auto it = info_VkImage.find(image);
-        if (it == info_VkImage.end()) return;
-
-        auto& info = it->second;
-
-        if (info.baseRequirementsKnown) {
-            *pMemoryRequirements = info.baseRequirements;
-            return;
-        }
-
         VkEncoder* enc = (VkEncoder*)context;
-
         enc->vkGetImageMemoryRequirements(
             device, image, pMemoryRequirements);
-
-        transformImageMemoryRequirementsForGuestLocked(
+        transformImageMemoryRequirementsForGuest(
             image, pMemoryRequirements);
-        info.baseRequirementsKnown = true;
-        info.baseRequirements = *pMemoryRequirements;
     }
 
     void on_vkGetImageMemoryRequirements2(
@@ -2415,14 +2377,7 @@
         VkBuffer *pBuffer) {
         VkEncoder* enc = (VkEncoder*)context;
 
-        VkResult res;
-        VkMemoryRequirements memReqs;
-
-        if (supportsCreateResourcesWithRequirements()) {
-            res = enc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, &memReqs);
-        } else {
-            res = enc->vkCreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
-        }
+        VkResult res = enc->vkCreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
 
         if (res != VK_SUCCESS) return res;
 
@@ -2436,22 +2391,13 @@
         info.createInfo = *pCreateInfo;
         info.createInfo.pNext = nullptr;
 
-        if (supportsCreateResourcesWithRequirements()) {
-            info.baseRequirementsKnown = true;
-        }
-
         const VkExternalMemoryBufferCreateInfo* extBufCi =
             vk_find_struct<VkExternalMemoryBufferCreateInfo>(pCreateInfo);
 
-        if (extBufCi) {
-            info.external = true;
-            info.externalCreateInfo = *extBufCi;
-        }
+        if (!extBufCi) return res;
 
-        if (info.baseRequirementsKnown) {
-            transformBufferMemoryRequirementsForGuestLocked(*pBuffer, &memReqs);
-            info.baseRequirements = memReqs;
-        }
+        info.external = true;
+        info.externalCreateInfo = *extBufCi;
 
         return res;
     }
@@ -2465,26 +2411,11 @@
 
     void on_vkGetBufferMemoryRequirements(
         void* context, VkDevice device, VkBuffer buffer, VkMemoryRequirements *pMemoryRequirements) {
-
-        AutoLock lock(mLock);
-
-        auto it = info_VkBuffer.find(buffer);
-        if (it == info_VkBuffer.end()) return;
-
-        auto& info = it->second;
-
-        if (info.baseRequirementsKnown) {
-            *pMemoryRequirements = info.baseRequirements;
-            return;
-        }
-
         VkEncoder* enc = (VkEncoder*)context;
         enc->vkGetBufferMemoryRequirements(
             device, buffer, pMemoryRequirements);
-        transformBufferMemoryRequirementsForGuestLocked(
+        transformBufferMemoryRequirementsForGuest(
             buffer, pMemoryRequirements);
-        info.baseRequirementsKnown = true;
-        info.baseRequirements = *pMemoryRequirements;
     }
 
     void on_vkGetBufferMemoryRequirements2(
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index 85d7092..732bd21 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -94,11 +94,7 @@
 
     // Assume the lock for the current encoder is held.
     void registerCleanupCallback(void* handle, VkEncoder::CleanupCallback cb) {
-        if (mCleanupCallbacks.end() == mCleanupCallbacks.find(handle)) {
-            mCleanupCallbacks[handle] = cb;
-        } else {
-            return;
-        }
+        mCleanupCallbacks.insert({handle, cb});
     }
 
     void unregisterCleanupCallback(void* handle) {
@@ -23100,209 +23096,5 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-VkResult VkEncoder::vkCreateImageWithRequirementsGOOGLE(
-    VkDevice device,
-    const VkImageCreateInfo* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkImage* pImage,
-    VkMemoryRequirements* pMemoryRequirements)
-{
-    AutoLock encoderLock(mImpl->lock);
-    AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE encode");
-    mImpl->log("start vkCreateImageWithRequirementsGOOGLE");
-    auto stream = mImpl->stream();
-    auto countingStream = mImpl->countingStream();
-    auto resources = mImpl->resources();
-    auto pool = mImpl->pool();
-    stream->setHandleMapping(resources->unwrapMapping());
-    VkDevice local_device;
-    VkImageCreateInfo* local_pCreateInfo;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_pCreateInfo = nullptr;
-    if (pCreateInfo)
-    {
-        local_pCreateInfo = (VkImageCreateInfo*)pool->alloc(sizeof(const VkImageCreateInfo));
-        deepcopy_VkImageCreateInfo(pool, pCreateInfo, (VkImageCreateInfo*)(local_pCreateInfo));
-    }
-    local_pAllocator = nullptr;
-    if (pAllocator)
-    {
-        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
-        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    local_pAllocator = nullptr;
-    if (local_pCreateInfo)
-    {
-        transform_tohost_VkImageCreateInfo(mImpl->resources(), (VkImageCreateInfo*)(local_pCreateInfo));
-    }
-    if (local_pAllocator)
-    {
-        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    countingStream->rewind();
-    {
-        uint64_t cgen_var_1520;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1520, 1);
-        countingStream->write((uint64_t*)&cgen_var_1520, 1 * 8);
-        marshal_VkImageCreateInfo(countingStream, (VkImageCreateInfo*)(local_pCreateInfo));
-        // WARNING PTR CHECK
-        uint64_t cgen_var_1521 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1521);
-        if (local_pAllocator)
-        {
-            marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
-        }
-        uint64_t cgen_var_1522;
-        countingStream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_1522, 1);
-        countingStream->write((uint64_t*)&cgen_var_1522, 8);
-        marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements));
-    }
-    uint32_t packetSize_vkCreateImageWithRequirementsGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
-    countingStream->rewind();
-    uint32_t opcode_vkCreateImageWithRequirementsGOOGLE = OP_vkCreateImageWithRequirementsGOOGLE;
-    stream->write(&opcode_vkCreateImageWithRequirementsGOOGLE, sizeof(uint32_t));
-    stream->write(&packetSize_vkCreateImageWithRequirementsGOOGLE, sizeof(uint32_t));
-    uint64_t cgen_var_1523;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1523, 1);
-    stream->write((uint64_t*)&cgen_var_1523, 1 * 8);
-    marshal_VkImageCreateInfo(stream, (VkImageCreateInfo*)(local_pCreateInfo));
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1524 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1524);
-    if (local_pAllocator)
-    {
-        marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1525;
-    stream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_1525, 1);
-    stream->write((uint64_t*)&cgen_var_1525, 8);
-    stream->setHandleMapping(resources->unwrapMapping());
-    marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
-    AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE readParams");
-    stream->setHandleMapping(resources->createMapping());
-    uint64_t cgen_var_1526;
-    stream->read((uint64_t*)&cgen_var_1526, 8);
-    stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1526, (VkImage*)pImage, 1);
-    stream->unsetHandleMapping();
-    unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
-    if (pMemoryRequirements)
-    {
-        transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
-    }
-    AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE returnUnmarshal");
-    VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
-    stream->read(&vkCreateImageWithRequirementsGOOGLE_VkResult_return, sizeof(VkResult));
-    countingStream->clearPool();
-    stream->clearPool();
-    pool->freeAll();
-    mImpl->log("finish vkCreateImageWithRequirementsGOOGLE");;
-    return vkCreateImageWithRequirementsGOOGLE_VkResult_return;
-}
-
-VkResult VkEncoder::vkCreateBufferWithRequirementsGOOGLE(
-    VkDevice device,
-    const VkBufferCreateInfo* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkBuffer* pBuffer,
-    VkMemoryRequirements* pMemoryRequirements)
-{
-    AutoLock encoderLock(mImpl->lock);
-    AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE encode");
-    mImpl->log("start vkCreateBufferWithRequirementsGOOGLE");
-    auto stream = mImpl->stream();
-    auto countingStream = mImpl->countingStream();
-    auto resources = mImpl->resources();
-    auto pool = mImpl->pool();
-    stream->setHandleMapping(resources->unwrapMapping());
-    VkDevice local_device;
-    VkBufferCreateInfo* local_pCreateInfo;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_pCreateInfo = nullptr;
-    if (pCreateInfo)
-    {
-        local_pCreateInfo = (VkBufferCreateInfo*)pool->alloc(sizeof(const VkBufferCreateInfo));
-        deepcopy_VkBufferCreateInfo(pool, pCreateInfo, (VkBufferCreateInfo*)(local_pCreateInfo));
-    }
-    local_pAllocator = nullptr;
-    if (pAllocator)
-    {
-        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
-        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    local_pAllocator = nullptr;
-    if (local_pCreateInfo)
-    {
-        transform_tohost_VkBufferCreateInfo(mImpl->resources(), (VkBufferCreateInfo*)(local_pCreateInfo));
-    }
-    if (local_pAllocator)
-    {
-        transform_tohost_VkAllocationCallbacks(mImpl->resources(), (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    countingStream->rewind();
-    {
-        uint64_t cgen_var_1527;
-        countingStream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1527, 1);
-        countingStream->write((uint64_t*)&cgen_var_1527, 1 * 8);
-        marshal_VkBufferCreateInfo(countingStream, (VkBufferCreateInfo*)(local_pCreateInfo));
-        // WARNING PTR CHECK
-        uint64_t cgen_var_1528 = (uint64_t)(uintptr_t)local_pAllocator;
-        countingStream->putBe64(cgen_var_1528);
-        if (local_pAllocator)
-        {
-            marshal_VkAllocationCallbacks(countingStream, (VkAllocationCallbacks*)(local_pAllocator));
-        }
-        uint64_t cgen_var_1529;
-        countingStream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_1529, 1);
-        countingStream->write((uint64_t*)&cgen_var_1529, 8);
-        marshal_VkMemoryRequirements(countingStream, (VkMemoryRequirements*)(pMemoryRequirements));
-    }
-    uint32_t packetSize_vkCreateBufferWithRequirementsGOOGLE = 4 + 4 + (uint32_t)countingStream->bytesWritten();
-    countingStream->rewind();
-    uint32_t opcode_vkCreateBufferWithRequirementsGOOGLE = OP_vkCreateBufferWithRequirementsGOOGLE;
-    stream->write(&opcode_vkCreateBufferWithRequirementsGOOGLE, sizeof(uint32_t));
-    stream->write(&packetSize_vkCreateBufferWithRequirementsGOOGLE, sizeof(uint32_t));
-    uint64_t cgen_var_1530;
-    stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1530, 1);
-    stream->write((uint64_t*)&cgen_var_1530, 1 * 8);
-    marshal_VkBufferCreateInfo(stream, (VkBufferCreateInfo*)(local_pCreateInfo));
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1531 = (uint64_t)(uintptr_t)local_pAllocator;
-    stream->putBe64(cgen_var_1531);
-    if (local_pAllocator)
-    {
-        marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    stream->unsetHandleMapping() /* emit_marshal, is handle, possibly out */;
-    uint64_t cgen_var_1532;
-    stream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_1532, 1);
-    stream->write((uint64_t*)&cgen_var_1532, 8);
-    stream->setHandleMapping(resources->unwrapMapping());
-    marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
-    AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE readParams");
-    stream->setHandleMapping(resources->createMapping());
-    uint64_t cgen_var_1533;
-    stream->read((uint64_t*)&cgen_var_1533, 8);
-    stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1533, (VkBuffer*)pBuffer, 1);
-    stream->unsetHandleMapping();
-    unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
-    if (pMemoryRequirements)
-    {
-        transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
-    }
-    AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE returnUnmarshal");
-    VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
-    stream->read(&vkCreateBufferWithRequirementsGOOGLE_VkResult_return, sizeof(VkResult));
-    countingStream->clearPool();
-    stream->clearPool();
-    pool->freeAll();
-    mImpl->log("finish vkCreateBufferWithRequirementsGOOGLE");;
-    return vkCreateBufferWithRequirementsGOOGLE_VkResult_return;
-}
-
-#endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/VkEncoder.h b/system/vulkan_enc/VkEncoder.h
index dd2cd64..65debda 100644
--- a/system/vulkan_enc/VkEncoder.h
+++ b/system/vulkan_enc/VkEncoder.h
@@ -1793,20 +1793,6 @@
         uint32_t needHostSync,
         uint32_t sequenceNumber);
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-    VkResult vkCreateImageWithRequirementsGOOGLE(
-    VkDevice device,
-        const VkImageCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkImage* pImage,
-        VkMemoryRequirements* pMemoryRequirements);
-    VkResult vkCreateBufferWithRequirementsGOOGLE(
-    VkDevice device,
-        const VkBufferCreateInfo* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkBuffer* pBuffer,
-        VkMemoryRequirements* pMemoryRequirements);
-#endif
 
 private:
     class Impl;
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
index 1513661..5b004c0 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -6384,8 +6384,6 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 void deepcopy_extension_struct(
     Pool* pool,
     const void* structExtension,
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
index ca6d6dc..b367ee0 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
@@ -2026,7 +2026,5 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
index 481ce6c..c42f6e8 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
@@ -282,8 +282,6 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 uint32_t goldfish_vk_struct_type(
     const void* structExtension)
 {
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
index 7df1ac1..1d671f8 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
@@ -299,7 +299,5 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
index fbc6a48..7d16b31 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
@@ -4748,8 +4748,6 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 void handlemap_extension_struct(
     VulkanHandleMapping* handlemap,
     void* structExtension_out)
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.h b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
index 911ff2f..e973064 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.h
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
@@ -1679,7 +1679,5 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index 0ed32d3..96efd31 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -13453,8 +13453,6 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 void marshal_extension_struct(
     VulkanStreamGuest* vkStream,
     const void* structExtension)
@@ -16220,16 +16218,6 @@
             return "OP_vkCommandBufferHostSyncGOOGLE";
         }
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-        case OP_vkCreateImageWithRequirementsGOOGLE:
-        {
-            return "OP_vkCreateImageWithRequirementsGOOGLE";
-        }
-        case OP_vkCreateBufferWithRequirementsGOOGLE:
-        {
-            return "OP_vkCreateBufferWithRequirementsGOOGLE";
-        }
-#endif
         default:
         {
             return "OP_UNKNOWN_API_CALL";
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
index ad7f8f3..154b7de 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -3390,10 +3390,6 @@
 #define OP_vkResetCommandBufferAsyncGOOGLE 20323
 #define OP_vkCommandBufferHostSyncGOOGLE 20324
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#define OP_vkCreateImageWithRequirementsGOOGLE 20325
-#define OP_vkCreateBufferWithRequirementsGOOGLE 20326
-#endif
 const char* api_opcode_to_string(
     const uint32_t opcode);
 
diff --git a/system/vulkan_enc/goldfish_vk_private_defs.h b/system/vulkan_enc/goldfish_vk_private_defs.h
index b180ce8..662b8f0 100644
--- a/system/vulkan_enc/goldfish_vk_private_defs.h
+++ b/system/vulkan_enc/goldfish_vk_private_defs.h
@@ -429,11 +429,6 @@
     uint32_t needHostSync,
     uint32_t sequenceNumber);
 
-#define VK_GOOGLE_create_resources_with_requirements 1
-
-typedef void (VKAPI_PTR *PFN_vkCreateImageWithRequirementsGOOGLE)(
-    VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage, VkMemoryRequirements* pMemoryRequirements);
-
 #ifndef VK_FUCHSIA_buffer_collection
 #define VK_FUCHSIA_buffer_collection 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA)
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.cpp b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
index d06135e..aa42af7 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
@@ -8945,8 +8945,6 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 void transform_tohost_extension_struct(
     ResourceTracker* resourceTracker,
     void* structExtension_out)
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.h b/system/vulkan_enc/goldfish_vk_transform_guest.h
index 217284e..754c033 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.h
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.h
@@ -3067,7 +3067,5 @@
 #endif
 #ifdef VK_GOOGLE_async_command_buffers
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
-#endif
 
 } // namespace goldfish_vk