Merge "reland: virtio-gpu-asg transport"
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index dc53cf9..91be62b 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -1329,6 +1329,25 @@
}
}
+ void on_vkGetPhysicalDeviceProperties(
+ void*,
+ VkPhysicalDevice,
+ VkPhysicalDeviceProperties* pProperties) {
+ if (pProperties) {
+ pProperties->deviceType = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU;
+ }
+ }
+
+ void on_vkGetPhysicalDeviceProperties2(
+ void*,
+ VkPhysicalDevice,
+ VkPhysicalDeviceProperties2* pProperties) {
+ if (pProperties) {
+ pProperties->properties.deviceType =
+ VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU;
+ }
+ }
+
void on_vkGetPhysicalDeviceMemoryProperties(
void*,
VkPhysicalDevice physdev,
@@ -4630,6 +4649,30 @@
pPhysicalDevices);
}
+void ResourceTracker::on_vkGetPhysicalDeviceProperties(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceProperties* pProperties) {
+ mImpl->on_vkGetPhysicalDeviceProperties(context, physicalDevice,
+ pProperties);
+}
+
+void ResourceTracker::on_vkGetPhysicalDeviceProperties2(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceProperties2* pProperties) {
+ mImpl->on_vkGetPhysicalDeviceProperties2(context, physicalDevice,
+ pProperties);
+}
+
+void ResourceTracker::on_vkGetPhysicalDeviceProperties2KHR(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceProperties2* pProperties) {
+ mImpl->on_vkGetPhysicalDeviceProperties2(context, physicalDevice,
+ pProperties);
+}
+
void ResourceTracker::on_vkGetPhysicalDeviceMemoryProperties(
void* context,
VkPhysicalDevice physicalDevice,
diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h
index 9a72bdf..63cfc41 100644
--- a/system/vulkan_enc/ResourceTracker.h
+++ b/system/vulkan_enc/ResourceTracker.h
@@ -76,6 +76,19 @@
VkInstance instance, uint32_t* pPhysicalDeviceCount,
VkPhysicalDevice* pPhysicalDevices);
+ void on_vkGetPhysicalDeviceProperties(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceProperties* pProperties);
+ void on_vkGetPhysicalDeviceProperties2(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceProperties2* pProperties);
+ void on_vkGetPhysicalDeviceProperties2KHR(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceProperties2* pProperties);
+
void on_vkGetPhysicalDeviceMemoryProperties(
void* context,
VkPhysicalDevice physicalDevice,
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index 8c00e0c..06ef7f0 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -594,6 +594,9 @@
transform_fromhost_VkPhysicalDeviceProperties(mImpl->resources(), (VkPhysicalDeviceProperties*)(pProperties));
}
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties returnUnmarshal");
+ encoderLock.unlock();
+ mImpl->resources()->on_vkGetPhysicalDeviceProperties(this, physicalDevice, pProperties);
+ encoderLock.lock();
mImpl->log("finish vkGetPhysicalDeviceProperties");;
}
@@ -10634,6 +10637,9 @@
transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties));
}
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 returnUnmarshal");
+ encoderLock.unlock();
+ mImpl->resources()->on_vkGetPhysicalDeviceProperties2(this, physicalDevice, pProperties);
+ encoderLock.lock();
mImpl->log("finish vkGetPhysicalDeviceProperties2");;
}
@@ -14515,6 +14521,9 @@
transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties));
}
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR returnUnmarshal");
+ encoderLock.unlock();
+ mImpl->resources()->on_vkGetPhysicalDeviceProperties2KHR(this, physicalDevice, pProperties);
+ encoderLock.lock();
mImpl->log("finish vkGetPhysicalDeviceProperties2KHR");;
}