[vulkan] Take codegen for general / external memory transforms (guest)
bug: 111137294
bug: 122080810
Change-Id: I3f45e8862785f333aaa5b814b3a7d95b6ad1704f
diff --git a/system/vulkan_enc/Android.mk b/system/vulkan_enc/Android.mk
index 51bf3bf..0c9c06d 100644
--- a/system/vulkan_enc/Android.mk
+++ b/system/vulkan_enc/Android.mk
@@ -53,7 +53,7 @@
goldfish_vk_marshaling_guest.cpp \
goldfish_vk_deepcopy_guest.cpp \
goldfish_vk_handlemap_guest.cpp \
-goldfish_vk_transform.cpp \
+goldfish_vk_transform_guest.cpp \
ifeq (true,$(GOLDFISH_OPENGL_BUILD_FOR_HOST))
diff --git a/system/vulkan_enc/CMakeLists.txt b/system/vulkan_enc/CMakeLists.txt
index 90999f0..cb2f40d 100644
--- a/system/vulkan_enc/CMakeLists.txt
+++ b/system/vulkan_enc/CMakeLists.txt
@@ -1,8 +1,8 @@
# This is an autogenerated file! Do not edit!
# instead run make from .../device/generic/goldfish-opengl
# which will re-generate this file.
-android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "15e4471512bfd1d88d9be2d8fa99983da0453b63dc748e1d3ea0fa5145a6f0af")
-set(vulkan_enc_src HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStream.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform.cpp)
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "08ea865dd8d2c10ef454508cff17fafbab701a014e0096e54f8663ed51f5536b")
+set(vulkan_enc_src HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStream.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform_guest.cpp)
android_add_shared_library(vulkan_enc)
target_include_directories(vulkan_enc PRIVATE ${GOLDFISH_DEVICE_ROOT}/android-emu ${GOLDFISH_DEVICE_ROOT}/shared/OpenglCodecCommon ${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc ${GOLDFISH_DEVICE_ROOT}/./host/include/libOpenglRender ${GOLDFISH_DEVICE_ROOT}/./system/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/guest ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include/vulkan)
target_compile_definitions(vulkan_enc PRIVATE "-DWITH_GLES2" "-DPLATFORM_SDK_VERSION=29" "-DGOLDFISH_HIDL_GRALLOC" "-DEMULATOR_OPENGL_POST_O=1" "-DHOST_BUILD" "-DANDROID" "-DGL_GLEXT_PROTOTYPES" "-DPAGE_SIZE=4096" "-DGOLDFISH_VULKAN" "-DLOG_TAG=\"goldfish_vulkan\"" "-DVK_ANDROID_native_buffer" "-DVK_GOOGLE_address_space" "-DVK_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES")
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 3cacf39..8d6b6b6 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -1150,34 +1150,6 @@
return mImpl->usingDirectMapping();
}
-void ResourceTracker::deviceMemoryTransform_tohost(
- VkDeviceMemory* memory, uint32_t memoryCount,
- VkDeviceSize* offset, uint32_t offsetCount,
- VkDeviceSize* size, uint32_t sizeCount,
- uint32_t* typeIndex, uint32_t typeIndexCount,
- uint32_t* typeBits, uint32_t typeBitsCount) {
- mImpl->deviceMemoryTransform_tohost(
- memory, memoryCount,
- offset, offsetCount,
- size, sizeCount,
- typeIndex, typeIndexCount,
- typeBits, typeBitsCount);
-}
-
-void ResourceTracker::deviceMemoryTransform_fromhost(
- VkDeviceMemory* memory, uint32_t memoryCount,
- VkDeviceSize* offset, uint32_t offsetCount,
- VkDeviceSize* size, uint32_t sizeCount,
- uint32_t* typeIndex, uint32_t typeIndexCount,
- uint32_t* typeBits, uint32_t typeBitsCount) {
- mImpl->deviceMemoryTransform_fromhost(
- memory, memoryCount,
- offset, offsetCount,
- size, sizeCount,
- typeIndex, typeIndexCount,
- typeBits, typeBitsCount);
-}
-
uint32_t ResourceTracker::getApiVersionFromInstance(VkInstance instance) const {
return mImpl->getApiVersionFromInstance(instance);
}
@@ -1342,4 +1314,38 @@
context, input_result, device, memory, pAddress);
}
-} // namespace goldfish_vk
+void ResourceTracker::deviceMemoryTransform_tohost(
+ VkDeviceMemory* memory, uint32_t memoryCount,
+ VkDeviceSize* offset, uint32_t offsetCount,
+ VkDeviceSize* size, uint32_t sizeCount,
+ uint32_t* typeIndex, uint32_t typeIndexCount,
+ uint32_t* typeBits, uint32_t typeBitsCount) {
+ mImpl->deviceMemoryTransform_tohost(
+ memory, memoryCount,
+ offset, offsetCount,
+ size, sizeCount,
+ typeIndex, typeIndexCount,
+ typeBits, typeBitsCount);
+}
+
+void ResourceTracker::deviceMemoryTransform_fromhost(
+ VkDeviceMemory* memory, uint32_t memoryCount,
+ VkDeviceSize* offset, uint32_t offsetCount,
+ VkDeviceSize* size, uint32_t sizeCount,
+ uint32_t* typeIndex, uint32_t typeIndexCount,
+ uint32_t* typeBits, uint32_t typeBitsCount) {
+ mImpl->deviceMemoryTransform_fromhost(
+ memory, memoryCount,
+ offset, offsetCount,
+ size, sizeCount,
+ typeIndex, typeIndexCount,
+ typeBits, typeBitsCount);
+}
+
+#define DEFINE_TRANSFORMED_TYPE_IMPL(type) \
+ void ResourceTracker::transformImpl_##type##_tohost(const type*, uint32_t) { } \
+ void ResourceTracker::transformImpl_##type##_fromhost(const type*, uint32_t) { } \
+
+LIST_TRANSFORMED_TYPES(DEFINE_TRANSFORMED_TYPE_IMPL)
+
+} // namespace goldfish_vk
\ No newline at end of file
diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h
index c63dfc0..0afed7f 100644
--- a/system/vulkan_enc/ResourceTracker.h
+++ b/system/vulkan_enc/ResourceTracker.h
@@ -20,6 +20,8 @@
#include "VulkanHandles.h"
#include <memory>
+#include "goldfish_vk_transform_guest.h"
+
struct EmulatorFeatureInfo;
namespace goldfish_vk {
@@ -145,6 +147,12 @@
void setupFeatures(const EmulatorFeatureInfo* features);
bool hostSupportsVulkan() const;
bool usingDirectMapping() const;
+ uint32_t getApiVersionFromInstance(VkInstance instance) const;
+ uint32_t getApiVersionFromDevice(VkDevice device) const;
+ bool hasInstanceExtension(VkInstance instance, const std::string& name) const;
+ bool hasDeviceExtension(VkDevice instance, const std::string& name) const;
+
+ // Transforms
void deviceMemoryTransform_tohost(
VkDeviceMemory* memory, uint32_t memoryCount,
VkDeviceSize* offset, uint32_t offsetCount,
@@ -158,10 +166,11 @@
uint32_t* typeIndex, uint32_t typeIndexCount,
uint32_t* typeBits, uint32_t typeBitsCount);
- uint32_t getApiVersionFromInstance(VkInstance instance) const;
- uint32_t getApiVersionFromDevice(VkDevice device) const;
- bool hasInstanceExtension(VkInstance instance, const std::string& name) const;
- bool hasDeviceExtension(VkDevice instance, const std::string& name) const;
+#define DEFINE_TRANSFORMED_TYPE_PROTOTYPE(type) \
+ void transformImpl_##type##_tohost(const type*, uint32_t); \
+ void transformImpl_##type##_fromhost(const type*, uint32_t); \
+
+LIST_TRANSFORMED_TYPES(DEFINE_TRANSFORMED_TYPE_PROTOTYPE)
private:
class Impl;
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index c34372b..dc1ad44 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -40,7 +40,7 @@
#include "goldfish_vk_deepcopy_guest.h"
#include "goldfish_vk_handlemap_guest.h"
#include "goldfish_vk_private_defs.h"
-#include "goldfish_vk_transform.h"
+#include "goldfish_vk_transform_guest.h"
namespace goldfish_vk {
@@ -1599,7 +1599,7 @@
deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
}
local_pAllocator = nullptr;
- mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
countingStream->rewind();
{
uint64_t cgen_var_101;
@@ -1863,7 +1863,7 @@
VkDeviceMemory local_memory;
local_device = device;
local_memory = memory;
- mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
countingStream->rewind();
{
uint64_t cgen_var_111;
@@ -1910,7 +1910,7 @@
local_buffer = buffer;
local_memory = memory;
local_memoryOffset = memoryOffset;
- mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, &local_memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)&local_memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
countingStream->rewind();
{
uint64_t cgen_var_115;
@@ -1968,7 +1968,7 @@
local_image = image;
local_memory = memory;
local_memoryOffset = memoryOffset;
- mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, &local_memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)&local_memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
countingStream->rewind();
{
uint64_t cgen_var_121;
@@ -10751,6 +10751,7 @@
}
if (local_pExternalBufferInfo)
{
+ mImpl->resources()->transformImpl_VkPhysicalDeviceExternalBufferInfo_tohost(local_pExternalBufferInfo, 1);
transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
}
countingStream->rewind();
@@ -10774,6 +10775,7 @@
unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
if (pExternalBufferProperties)
{
+ mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1);
transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
}
mImpl->log("finish vkGetPhysicalDeviceExternalBufferProperties");;
@@ -14242,6 +14244,7 @@
}
if (local_pExternalBufferInfo)
{
+ mImpl->resources()->transformImpl_VkPhysicalDeviceExternalBufferInfo_tohost(local_pExternalBufferInfo, 1);
transform_tohost_VkPhysicalDeviceExternalBufferInfo(mImpl->resources(), (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
}
countingStream->rewind();
@@ -14265,6 +14268,7 @@
unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
if (pExternalBufferProperties)
{
+ mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1);
transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
}
mImpl->log("finish vkGetPhysicalDeviceExternalBufferPropertiesKHR");;
@@ -17918,7 +17922,7 @@
local_device = device;
local_memory = memory;
local_handleType = handleType;
- mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
countingStream->rewind();
{
uint64_t cgen_var_1250;
@@ -21120,7 +21124,7 @@
VkDeviceMemory local_memory;
local_device = device;
local_memory = memory;
- mImpl->resources()->deviceMemoryTransform_tohost(&local_memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ mImpl->resources()->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
countingStream->rewind();
{
uint64_t cgen_var_1473;
diff --git a/system/vulkan_enc/goldfish_vk_transform.cpp b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
similarity index 96%
rename from system/vulkan_enc/goldfish_vk_transform.cpp
rename to system/vulkan_enc/goldfish_vk_transform_guest.cpp
index c5991c3..b413863 100644
--- a/system/vulkan_enc/goldfish_vk_transform.cpp
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
@@ -13,7 +13,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// Autogenerated module goldfish_vk_transform
+// Autogenerated module goldfish_vk_transform_guest
// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
// re-run android/scripts/generate-vulkan-sources.sh,
@@ -22,12 +22,14 @@
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
-#include "goldfish_vk_transform.h"
+#include "goldfish_vk_transform_guest.h"
#include "goldfish_vk_extension_structs_guest.h"
#include "goldfish_vk_private_defs.h"
+#include "ResourceTracker.h"
+
namespace goldfish_vk {
@@ -444,7 +446,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeIndex, 1, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeIndex, 1, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -457,7 +459,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeIndex, 1, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeIndex, 1, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -470,7 +472,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->offset, 1, &toTransform->size, 1, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->offset, 1, (VkDeviceSize*)&toTransform->size, 1, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -483,7 +485,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->offset, 1, &toTransform->size, 1, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->offset, 1, (VkDeviceSize*)&toTransform->size, 1, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -496,7 +498,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
}
void transform_fromhost_VkMemoryRequirements(
@@ -505,7 +507,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
}
void transform_tohost_VkSparseImageFormatProperties(
@@ -550,7 +552,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
}
void transform_fromhost_VkSparseMemoryBind(
@@ -559,7 +561,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
}
void transform_tohost_VkSparseBufferMemoryBindInfo(
@@ -660,7 +662,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
transform_tohost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
@@ -672,7 +674,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
transform_fromhost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
@@ -2802,7 +2804,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -2815,7 +2817,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -2828,7 +2830,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 0, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)&toTransform->memoryOffset, 1, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -2841,7 +2843,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 0, &toTransform->memoryOffset, 1, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)&toTransform->memoryOffset, 1, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -4086,6 +4088,7 @@
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
}
+ resourceTracker->transformImpl_VkExternalMemoryProperties_tohost(&toTransform->externalMemoryProperties, 1);
transform_tohost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
}
@@ -4099,6 +4102,7 @@
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
}
+ resourceTracker->transformImpl_VkExternalMemoryProperties_fromhost(&toTransform->externalMemoryProperties, 1);
transform_fromhost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
}
@@ -4136,6 +4140,7 @@
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
}
+ resourceTracker->transformImpl_VkExternalMemoryProperties_tohost(&toTransform->externalMemoryProperties, 1);
transform_tohost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
}
@@ -4149,6 +4154,7 @@
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
}
+ resourceTracker->transformImpl_VkExternalMemoryProperties_fromhost(&toTransform->externalMemoryProperties, 1);
transform_fromhost_VkExternalMemoryProperties(resourceTracker, (VkExternalMemoryProperties*)(&toTransform->externalMemoryProperties));
}
@@ -5118,7 +5124,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5131,7 +5137,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5144,7 +5150,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5157,7 +5163,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5196,7 +5202,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5209,7 +5215,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5222,7 +5228,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5235,7 +5241,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5250,7 +5256,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)toTransform->pReleaseSyncs, toTransform->releaseCount, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -5263,7 +5269,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)toTransform->pReleaseSyncs, toTransform->releaseCount, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -6678,7 +6684,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)toTransform->pReleaseSyncs, toTransform->releaseCount, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -6691,7 +6697,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(toTransform->pReleaseSyncs, toTransform->releaseCount, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)toTransform->pReleaseSyncs, toTransform->releaseCount, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -7914,7 +7920,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -7927,7 +7933,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -7990,7 +7996,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(&toTransform->memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -8003,7 +8009,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(&toTransform->memory, 1, nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -8678,7 +8684,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_tohost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -8691,7 +8697,7 @@
{
(void)resourceTracker;
(void)toTransform;
- resourceTracker->deviceMemoryTransform_fromhost(nullptr, 0, nullptr, 0, nullptr, 0, nullptr, 0, &toTransform->memoryTypeBits, 1);
+ resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
if (toTransform->pNext)
{
transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
@@ -9044,11 +9050,13 @@
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
{
+ resourceTracker->transformImpl_VkPhysicalDeviceExternalImageFormatInfo_tohost(reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out), 1);
transform_tohost_VkPhysicalDeviceExternalImageFormatInfo(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
{
+ resourceTracker->transformImpl_VkExternalImageFormatProperties_tohost(reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out), 1);
transform_tohost_VkExternalImageFormatProperties(resourceTracker, reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
break;
}
@@ -9059,16 +9067,19 @@
}
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
{
+ resourceTracker->transformImpl_VkExternalMemoryImageCreateInfo_tohost(reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out), 1);
transform_tohost_VkExternalMemoryImageCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
{
+ resourceTracker->transformImpl_VkExternalMemoryBufferCreateInfo_tohost(reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out), 1);
transform_tohost_VkExternalMemoryBufferCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
{
+ resourceTracker->transformImpl_VkExportMemoryAllocateInfo_tohost(reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out), 1);
transform_tohost_VkExportMemoryAllocateInfo(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
break;
}
@@ -9695,11 +9706,13 @@
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
{
+ resourceTracker->transformImpl_VkPhysicalDeviceExternalImageFormatInfo_fromhost(reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out), 1);
transform_fromhost_VkPhysicalDeviceExternalImageFormatInfo(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
{
+ resourceTracker->transformImpl_VkExternalImageFormatProperties_fromhost(reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out), 1);
transform_fromhost_VkExternalImageFormatProperties(resourceTracker, reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
break;
}
@@ -9710,16 +9723,19 @@
}
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
{
+ resourceTracker->transformImpl_VkExternalMemoryImageCreateInfo_fromhost(reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out), 1);
transform_fromhost_VkExternalMemoryImageCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
{
+ resourceTracker->transformImpl_VkExternalMemoryBufferCreateInfo_fromhost(reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out), 1);
transform_fromhost_VkExternalMemoryBufferCreateInfo(resourceTracker, reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
{
+ resourceTracker->transformImpl_VkExportMemoryAllocateInfo_fromhost(reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out), 1);
transform_fromhost_VkExportMemoryAllocateInfo(resourceTracker, reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
break;
}
diff --git a/system/vulkan_enc/goldfish_vk_transform.h b/system/vulkan_enc/goldfish_vk_transform_guest.h
similarity index 99%
rename from system/vulkan_enc/goldfish_vk_transform.h
rename to system/vulkan_enc/goldfish_vk_transform_guest.h
index 9aa4b84..e2d33de 100644
--- a/system/vulkan_enc/goldfish_vk_transform.h
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.h
@@ -13,7 +13,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// Autogenerated module goldfish_vk_transform
+// Autogenerated module goldfish_vk_transform_guest
// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
// re-run android/scripts/generate-vulkan-sources.sh,
@@ -30,11 +30,21 @@
#include "vk_platform_compat.h"
#include "goldfish_vk_private_defs.h"
-#include "ResourceTracker.h"
namespace goldfish_vk {
+class ResourceTracker;
+#define LIST_TRANSFORMED_TYPES(f) \
+f(VkExternalMemoryProperties) \
+f(VkPhysicalDeviceExternalImageFormatInfo) \
+f(VkPhysicalDeviceExternalBufferInfo) \
+f(VkExternalMemoryImageCreateInfo) \
+f(VkExternalMemoryBufferCreateInfo) \
+f(VkExportMemoryAllocateInfo) \
+f(VkExternalImageFormatProperties) \
+f(VkExternalBufferProperties) \
+
#ifdef VK_VERSION_1_0
void transform_tohost_VkApplicationInfo(
ResourceTracker* resourceTracker,