Update guest encoder generated code for MoltenVK
Bug: 177241396
Change-Id: I17663ddab5cceebbc7b32295612e2b413558ad6e
diff --git a/system/vulkan/func_table.cpp b/system/vulkan/func_table.cpp
index 6a4a128..b5b1174 100644
--- a/system/vulkan/func_table.cpp
+++ b/system/vulkan/func_table.cpp
@@ -5365,6 +5365,60 @@
vkEnc->vkGetLinearImageLayoutGOOGLE(device, format, pOffset, pRowPitchAlignment);
}
#endif
+#ifdef VK_MVK_moltenvk
+static void entry_vkGetMTLDeviceMVK(
+ VkPhysicalDevice physicalDevice,
+ void** pMTLDevice)
+{
+ AEMU_SCOPED_TRACE("vkGetMTLDeviceMVK");
+ auto vkEnc = HostConnection::get()->vkEncoder();
+ vkEnc->vkGetMTLDeviceMVK(physicalDevice, pMTLDevice);
+}
+static VkResult entry_vkSetMTLTextureMVK(
+ VkImage image,
+ void* mtlTexture)
+{
+ AEMU_SCOPED_TRACE("vkSetMTLTextureMVK");
+ auto vkEnc = HostConnection::get()->vkEncoder();
+ VkResult vkSetMTLTextureMVK_VkResult_return = (VkResult)0;
+ vkSetMTLTextureMVK_VkResult_return = vkEnc->vkSetMTLTextureMVK(image, mtlTexture);
+ return vkSetMTLTextureMVK_VkResult_return;
+}
+static void entry_vkGetMTLTextureMVK(
+ VkImage image,
+ void** pMTLTexture)
+{
+ AEMU_SCOPED_TRACE("vkGetMTLTextureMVK");
+ auto vkEnc = HostConnection::get()->vkEncoder();
+ vkEnc->vkGetMTLTextureMVK(image, pMTLTexture);
+}
+static void entry_vkGetMTLBufferMVK(
+ VkBuffer buffer,
+ void** pMTLBuffer)
+{
+ AEMU_SCOPED_TRACE("vkGetMTLBufferMVK");
+ auto vkEnc = HostConnection::get()->vkEncoder();
+ vkEnc->vkGetMTLBufferMVK(buffer, pMTLBuffer);
+}
+static VkResult entry_vkUseIOSurfaceMVK(
+ VkImage image,
+ void* ioSurface)
+{
+ AEMU_SCOPED_TRACE("vkUseIOSurfaceMVK");
+ auto vkEnc = HostConnection::get()->vkEncoder();
+ VkResult vkUseIOSurfaceMVK_VkResult_return = (VkResult)0;
+ vkUseIOSurfaceMVK_VkResult_return = vkEnc->vkUseIOSurfaceMVK(image, ioSurface);
+ return vkUseIOSurfaceMVK_VkResult_return;
+}
+static void entry_vkGetIOSurfaceMVK(
+ VkImage image,
+ void** pIOSurface)
+{
+ AEMU_SCOPED_TRACE("vkGetIOSurfaceMVK");
+ auto vkEnc = HostConnection::get()->vkEncoder();
+ vkEnc->vkGetIOSurfaceMVK(image, pIOSurface);
+}
+#endif
void* goldfish_vulkan_get_proc_address(const char* name){
#ifdef VK_VERSION_1_0
if (!strcmp(name, "vkCreateInstance"))
@@ -6846,6 +6900,32 @@
return nullptr;
}
#endif
+#ifdef VK_MVK_moltenvk
+ if (!strcmp(name, "vkGetMTLDeviceMVK"))
+ {
+ return nullptr;
+ }
+ if (!strcmp(name, "vkSetMTLTextureMVK"))
+ {
+ return nullptr;
+ }
+ if (!strcmp(name, "vkGetMTLTextureMVK"))
+ {
+ return nullptr;
+ }
+ if (!strcmp(name, "vkGetMTLBufferMVK"))
+ {
+ return nullptr;
+ }
+ if (!strcmp(name, "vkUseIOSurfaceMVK"))
+ {
+ return nullptr;
+ }
+ if (!strcmp(name, "vkGetIOSurfaceMVK"))
+ {
+ return nullptr;
+ }
+#endif
return nullptr;
}
void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
@@ -8428,6 +8508,38 @@
return (void*)dynCheck_entry_vkGetLinearImageLayoutGOOGLE;
}
#endif
+#ifdef VK_MVK_moltenvk
+ if (!strcmp(name, "vkGetMTLDeviceMVK"))
+ {
+ bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr;
+ }
+ if (!strcmp(name, "vkSetMTLTextureMVK"))
+ {
+ bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr;
+ }
+ if (!strcmp(name, "vkGetMTLTextureMVK"))
+ {
+ bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr;
+ }
+ if (!strcmp(name, "vkGetMTLBufferMVK"))
+ {
+ bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr;
+ }
+ if (!strcmp(name, "vkUseIOSurfaceMVK"))
+ {
+ bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr;
+ }
+ if (!strcmp(name, "vkGetIOSurfaceMVK"))
+ {
+ bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr;
+ }
+#endif
return nullptr;
}
void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
@@ -10082,6 +10194,38 @@
return hasExt ? (void*)entry_vkGetLinearImageLayoutGOOGLE : nullptr;
}
#endif
+#ifdef VK_MVK_moltenvk
+ if (!strcmp(name, "vkGetMTLDeviceMVK"))
+ {
+ bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr;
+ }
+ if (!strcmp(name, "vkSetMTLTextureMVK"))
+ {
+ bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr;
+ }
+ if (!strcmp(name, "vkGetMTLTextureMVK"))
+ {
+ bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr;
+ }
+ if (!strcmp(name, "vkGetMTLBufferMVK"))
+ {
+ bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr;
+ }
+ if (!strcmp(name, "vkUseIOSurfaceMVK"))
+ {
+ bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr;
+ }
+ if (!strcmp(name, "vkGetIOSurfaceMVK"))
+ {
+ bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+ return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr;
+ }
+#endif
return nullptr;
}
diff --git a/system/vulkan/func_table.h b/system/vulkan/func_table.h
index a3a7f99..eb4dd21 100644
--- a/system/vulkan/func_table.h
+++ b/system/vulkan/func_table.h
@@ -296,6 +296,8 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#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/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index 88b8329..e90a931 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -23207,5 +23207,229 @@
}
#endif
+#ifdef VK_MVK_moltenvk
+void VkEncoder::vkGetMTLDeviceMVK(
+ VkPhysicalDevice physicalDevice,
+ void** pMTLDevice)
+{
+ EncoderAutoLock encoderLock(this);
+ mImpl->log("start vkGetMTLDeviceMVK");
+ auto stream = mImpl->stream();
+ auto countingStream = mImpl->countingStream();
+ auto resources = mImpl->resources();
+ auto pool = mImpl->pool();
+ stream->setHandleMapping(resources->unwrapMapping());
+ VkPhysicalDevice local_physicalDevice;
+ local_physicalDevice = physicalDevice;
+ countingStream->rewind();
+ {
+ uint64_t cgen_var_1567;
+ countingStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1567, 1);
+ countingStream->write((uint64_t*)&cgen_var_1567, 1 * 8);
+ countingStream->write((void**)pMTLDevice, sizeof(void*));
+ }
+ uint32_t packetSize_vkGetMTLDeviceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+ countingStream->rewind();
+ uint32_t opcode_vkGetMTLDeviceMVK = OP_vkGetMTLDeviceMVK;
+ stream->write(&opcode_vkGetMTLDeviceMVK, sizeof(uint32_t));
+ stream->write(&packetSize_vkGetMTLDeviceMVK, sizeof(uint32_t));
+ uint64_t cgen_var_1568;
+ stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_1568, 1);
+ stream->write((uint64_t*)&cgen_var_1568, 1 * 8);
+ stream->write((void**)pMTLDevice, sizeof(void*));
+ stream->read((void**)pMTLDevice, sizeof(void*));
+ pool->freeAll();
+ countingStream->clearPool();
+ stream->clearPool();
+ mImpl->log("finish vkGetMTLDeviceMVK");;
+}
+
+VkResult VkEncoder::vkSetMTLTextureMVK(
+ VkImage image,
+ void* mtlTexture)
+{
+ EncoderAutoLock encoderLock(this);
+ mImpl->log("start vkSetMTLTextureMVK");
+ auto stream = mImpl->stream();
+ auto countingStream = mImpl->countingStream();
+ auto resources = mImpl->resources();
+ auto pool = mImpl->pool();
+ stream->setHandleMapping(resources->unwrapMapping());
+ VkImage local_image;
+ local_image = image;
+ countingStream->rewind();
+ {
+ uint64_t cgen_var_1569;
+ countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1569, 1);
+ countingStream->write((uint64_t*)&cgen_var_1569, 1 * 8);
+ countingStream->write((void*)mtlTexture, sizeof(uint8_t));
+ }
+ uint32_t packetSize_vkSetMTLTextureMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+ countingStream->rewind();
+ uint32_t opcode_vkSetMTLTextureMVK = OP_vkSetMTLTextureMVK;
+ stream->write(&opcode_vkSetMTLTextureMVK, sizeof(uint32_t));
+ stream->write(&packetSize_vkSetMTLTextureMVK, sizeof(uint32_t));
+ uint64_t cgen_var_1570;
+ stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1570, 1);
+ stream->write((uint64_t*)&cgen_var_1570, 1 * 8);
+ stream->write((void*)mtlTexture, sizeof(uint8_t));
+ stream->read((void*)mtlTexture, sizeof(uint8_t));
+ VkResult vkSetMTLTextureMVK_VkResult_return = (VkResult)0;
+ stream->read(&vkSetMTLTextureMVK_VkResult_return, sizeof(VkResult));
+ pool->freeAll();
+ countingStream->clearPool();
+ stream->clearPool();
+ mImpl->log("finish vkSetMTLTextureMVK");;
+ return vkSetMTLTextureMVK_VkResult_return;
+}
+
+void VkEncoder::vkGetMTLTextureMVK(
+ VkImage image,
+ void** pMTLTexture)
+{
+ EncoderAutoLock encoderLock(this);
+ mImpl->log("start vkGetMTLTextureMVK");
+ auto stream = mImpl->stream();
+ auto countingStream = mImpl->countingStream();
+ auto resources = mImpl->resources();
+ auto pool = mImpl->pool();
+ stream->setHandleMapping(resources->unwrapMapping());
+ VkImage local_image;
+ local_image = image;
+ countingStream->rewind();
+ {
+ uint64_t cgen_var_1571;
+ countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1571, 1);
+ countingStream->write((uint64_t*)&cgen_var_1571, 1 * 8);
+ countingStream->write((void**)pMTLTexture, sizeof(void*));
+ }
+ uint32_t packetSize_vkGetMTLTextureMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+ countingStream->rewind();
+ uint32_t opcode_vkGetMTLTextureMVK = OP_vkGetMTLTextureMVK;
+ stream->write(&opcode_vkGetMTLTextureMVK, sizeof(uint32_t));
+ stream->write(&packetSize_vkGetMTLTextureMVK, sizeof(uint32_t));
+ uint64_t cgen_var_1572;
+ stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1572, 1);
+ stream->write((uint64_t*)&cgen_var_1572, 1 * 8);
+ stream->write((void**)pMTLTexture, sizeof(void*));
+ stream->read((void**)pMTLTexture, sizeof(void*));
+ pool->freeAll();
+ countingStream->clearPool();
+ stream->clearPool();
+ mImpl->log("finish vkGetMTLTextureMVK");;
+}
+
+void VkEncoder::vkGetMTLBufferMVK(
+ VkBuffer buffer,
+ void** pMTLBuffer)
+{
+ EncoderAutoLock encoderLock(this);
+ mImpl->log("start vkGetMTLBufferMVK");
+ auto stream = mImpl->stream();
+ auto countingStream = mImpl->countingStream();
+ auto resources = mImpl->resources();
+ auto pool = mImpl->pool();
+ stream->setHandleMapping(resources->unwrapMapping());
+ VkBuffer local_buffer;
+ local_buffer = buffer;
+ countingStream->rewind();
+ {
+ uint64_t cgen_var_1573;
+ countingStream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1573, 1);
+ countingStream->write((uint64_t*)&cgen_var_1573, 1 * 8);
+ countingStream->write((void**)pMTLBuffer, sizeof(void*));
+ }
+ uint32_t packetSize_vkGetMTLBufferMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+ countingStream->rewind();
+ uint32_t opcode_vkGetMTLBufferMVK = OP_vkGetMTLBufferMVK;
+ stream->write(&opcode_vkGetMTLBufferMVK, sizeof(uint32_t));
+ stream->write(&packetSize_vkGetMTLBufferMVK, sizeof(uint32_t));
+ uint64_t cgen_var_1574;
+ stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1574, 1);
+ stream->write((uint64_t*)&cgen_var_1574, 1 * 8);
+ stream->write((void**)pMTLBuffer, sizeof(void*));
+ stream->read((void**)pMTLBuffer, sizeof(void*));
+ pool->freeAll();
+ countingStream->clearPool();
+ stream->clearPool();
+ mImpl->log("finish vkGetMTLBufferMVK");;
+}
+
+VkResult VkEncoder::vkUseIOSurfaceMVK(
+ VkImage image,
+ void* ioSurface)
+{
+ EncoderAutoLock encoderLock(this);
+ mImpl->log("start vkUseIOSurfaceMVK");
+ auto stream = mImpl->stream();
+ auto countingStream = mImpl->countingStream();
+ auto resources = mImpl->resources();
+ auto pool = mImpl->pool();
+ stream->setHandleMapping(resources->unwrapMapping());
+ VkImage local_image;
+ local_image = image;
+ countingStream->rewind();
+ {
+ uint64_t cgen_var_1575;
+ countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1575, 1);
+ countingStream->write((uint64_t*)&cgen_var_1575, 1 * 8);
+ countingStream->write((void*)ioSurface, sizeof(uint8_t));
+ }
+ uint32_t packetSize_vkUseIOSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+ countingStream->rewind();
+ uint32_t opcode_vkUseIOSurfaceMVK = OP_vkUseIOSurfaceMVK;
+ stream->write(&opcode_vkUseIOSurfaceMVK, sizeof(uint32_t));
+ stream->write(&packetSize_vkUseIOSurfaceMVK, sizeof(uint32_t));
+ uint64_t cgen_var_1576;
+ stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1576, 1);
+ stream->write((uint64_t*)&cgen_var_1576, 1 * 8);
+ stream->write((void*)ioSurface, sizeof(uint8_t));
+ stream->read((void*)ioSurface, sizeof(uint8_t));
+ VkResult vkUseIOSurfaceMVK_VkResult_return = (VkResult)0;
+ stream->read(&vkUseIOSurfaceMVK_VkResult_return, sizeof(VkResult));
+ pool->freeAll();
+ countingStream->clearPool();
+ stream->clearPool();
+ mImpl->log("finish vkUseIOSurfaceMVK");;
+ return vkUseIOSurfaceMVK_VkResult_return;
+}
+
+void VkEncoder::vkGetIOSurfaceMVK(
+ VkImage image,
+ void** pIOSurface)
+{
+ EncoderAutoLock encoderLock(this);
+ mImpl->log("start vkGetIOSurfaceMVK");
+ auto stream = mImpl->stream();
+ auto countingStream = mImpl->countingStream();
+ auto resources = mImpl->resources();
+ auto pool = mImpl->pool();
+ stream->setHandleMapping(resources->unwrapMapping());
+ VkImage local_image;
+ local_image = image;
+ countingStream->rewind();
+ {
+ uint64_t cgen_var_1577;
+ countingStream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1577, 1);
+ countingStream->write((uint64_t*)&cgen_var_1577, 1 * 8);
+ countingStream->write((void**)pIOSurface, sizeof(void*));
+ }
+ uint32_t packetSize_vkGetIOSurfaceMVK = 4 + 4 + (uint32_t)countingStream->bytesWritten();
+ countingStream->rewind();
+ uint32_t opcode_vkGetIOSurfaceMVK = OP_vkGetIOSurfaceMVK;
+ stream->write(&opcode_vkGetIOSurfaceMVK, sizeof(uint32_t));
+ stream->write(&packetSize_vkGetIOSurfaceMVK, sizeof(uint32_t));
+ uint64_t cgen_var_1578;
+ stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1578, 1);
+ stream->write((uint64_t*)&cgen_var_1578, 1 * 8);
+ stream->write((void**)pIOSurface, sizeof(void*));
+ stream->read((void**)pIOSurface, sizeof(void*));
+ pool->freeAll();
+ countingStream->clearPool();
+ stream->clearPool();
+ mImpl->log("finish vkGetIOSurfaceMVK");;
+}
+
+#endif
} // namespace goldfish_vk
diff --git a/system/vulkan_enc/VkEncoder.h b/system/vulkan_enc/VkEncoder.h
index d263823..6e3eba1 100644
--- a/system/vulkan_enc/VkEncoder.h
+++ b/system/vulkan_enc/VkEncoder.h
@@ -1843,6 +1843,26 @@
VkDeviceSize* pOffset,
VkDeviceSize* pRowPitchAlignment);
#endif
+#ifdef VK_MVK_moltenvk
+ void vkGetMTLDeviceMVK(
+ VkPhysicalDevice physicalDevice,
+ void** pMTLDevice);
+ VkResult vkSetMTLTextureMVK(
+ VkImage image,
+ void* mtlTexture);
+ void vkGetMTLTextureMVK(
+ VkImage image,
+ void** pMTLTexture);
+ void vkGetMTLBufferMVK(
+ VkBuffer buffer,
+ void** pMTLBuffer);
+ VkResult vkUseIOSurfaceMVK(
+ VkImage image,
+ void* ioSurface);
+ void vkGetIOSurfaceMVK(
+ VkImage image,
+ void** pIOSurface);
+#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 a6fb577..e1966fc 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -6428,6 +6428,8 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#endif
void deepcopy_extension_struct(
BumpPool* 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 c29802b..03fe03c 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
@@ -2048,5 +2048,7 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#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 ee84c21..8ea86d4 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
@@ -294,6 +294,8 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#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 e549de9..8b9ac38 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
@@ -315,5 +315,7 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#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 ff9a069..4c38700 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
@@ -4784,6 +4784,8 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#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 88fca6c..797dee9 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.h
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
@@ -1699,5 +1699,7 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#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 15fa96f..a6a60b0 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -10372,6 +10372,8 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#endif
void marshal_extension_struct(
VulkanStreamGuest* vkStream,
const void* structExtension)
@@ -13249,6 +13251,32 @@
return "OP_vkGetLinearImageLayoutGOOGLE";
}
#endif
+#ifdef VK_MVK_moltenvk
+ case OP_vkGetMTLDeviceMVK:
+ {
+ return "OP_vkGetMTLDeviceMVK";
+ }
+ case OP_vkSetMTLTextureMVK:
+ {
+ return "OP_vkSetMTLTextureMVK";
+ }
+ case OP_vkGetMTLTextureMVK:
+ {
+ return "OP_vkGetMTLTextureMVK";
+ }
+ case OP_vkGetMTLBufferMVK:
+ {
+ return "OP_vkGetMTLBufferMVK";
+ }
+ case OP_vkUseIOSurfaceMVK:
+ {
+ return "OP_vkUseIOSurfaceMVK";
+ }
+ case OP_vkGetIOSurfaceMVK:
+ {
+ return "OP_vkGetIOSurfaceMVK";
+ }
+#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 d8cb1b0..cb41c63 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -3427,6 +3427,14 @@
#ifdef VK_GOOGLE_linear_image_layout
#define OP_vkGetLinearImageLayoutGOOGLE 20333
#endif
+#ifdef VK_MVK_moltenvk
+#define OP_vkGetMTLDeviceMVK 20334
+#define OP_vkSetMTLTextureMVK 20335
+#define OP_vkGetMTLTextureMVK 20336
+#define OP_vkGetMTLBufferMVK 20337
+#define OP_vkUseIOSurfaceMVK 20338
+#define OP_vkGetIOSurfaceMVK 20339
+#endif
const char* api_opcode_to_string(
const uint32_t opcode);
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.cpp b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
index b829c49..8a7e656 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
@@ -9005,6 +9005,8 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#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 b29e205..a0c0762 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.h
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.h
@@ -3095,5 +3095,7 @@
#endif
#ifdef VK_GOOGLE_linear_image_layout
#endif
+#ifdef VK_MVK_moltenvk
+#endif
} // namespace goldfish_vk