diff options
author | Yahan Zhou <yahan@google.com> | 2022-04-13 11:13:12 -0700 |
---|---|---|
committer | Yahan Zhou <yahan@google.com> | 2022-04-13 11:13:12 -0700 |
commit | d28bc25bfbefbce671bc73e7a8ad2a8863ba26fe (patch) | |
tree | 2f610a05eb1621ed1fda91466bdea34283624a69 | |
parent | 3cd263b97ebbe1e0f4c0f1e2901b2873c64bc116 (diff) | |
download | gfxstream-protocols-d28bc25bfbefbce671bc73e7a8ad2a8863ba26fe.tar.gz |
Add vkCmd* device extension functions
vkCmdBeginQueryIndexedEXT and many other commands starting with "vkCmd"
are device extensions. Update our code generator to detect those device
extensions as well.
Bug: 229120758
Change-Id: I43030bb15d18fc1a7330d7c0b4f21538a48938e9
-rw-r--r-- | registry/vulkan/scripts/cereal/functable.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/registry/vulkan/scripts/cereal/functable.py b/registry/vulkan/scripts/cereal/functable.py index 58aa6429..0b45edcc 100644 --- a/registry/vulkan/scripts/cereal/functable.py +++ b/registry/vulkan/scripts/cereal/functable.py @@ -167,11 +167,15 @@ class VulkanFuncTable(VulkanWrapperGenerator): cgen.beginBlock() if self.feature == "VK_VERSION_1_1": cgen.stmt("auto resources = ResourceTracker::get()") + if "VkCommandBuffer" == api.parameters[0].typeName: + cgen.stmt("VkDevice device = resources->getDevice(commandBuffer)") cgen.beginIf("resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1") cgen.stmt("sOnInvalidDynamicallyCheckedCall(\"%s\", \"%s\")" % (api.name, self.feature)) cgen.endIf() elif self.feature != "VK_VERSION_1_0": cgen.stmt("auto resources = ResourceTracker::get()") + if "VkCommandBuffer" == api.parameters[0].typeName: + cgen.stmt("VkDevice device = resources->getDevice(commandBuffer);") cgen.beginIf("!resources->hasDeviceExtension(device, \"%s\")" % self.feature) cgen.stmt("sOnInvalidDynamicallyCheckedCall(\"%s\", \"%s\")" % (api.name, self.feature)) cgen.endIf() @@ -321,4 +325,5 @@ class VulkanFuncTable(VulkanWrapperGenerator): self.module.appendImpl(self.cgen.swapCode()) def isDeviceDispatch(self, api): - return len(api.parameters) > 0 and "VkDevice" == api.parameters[0].typeName + return len(api.parameters) > 0 and ( + "VkDevice" == api.parameters[0].typeName or "VkCommandBuffer" == api.parameters[0].typeName) |