<html><head></head><body><div>I was surprised that missing that didn't cause any trouble. It seems that the way the trampoline code was setup would still generate trampoline functions, but interpreting the dispatch object as a command buffer, and both anv_queue and anv_cmd_buffer have their device pointer field at exactly the same offset, so we were getting lucky. I modified the generator to inject assertions for unhandled trampoline cases to better protect against this in the future.</div><div><br></div><div>On Mon, 2018-03-12 at 07:37 -0700, Jason Ekstrand wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr">You need to also add support for VkQueue for trampoline functions.<br><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 12, 2018 at 1:40 AM, Iago Toral Quiroga <span dir="ltr"><<a href="mailto:itoral@igalia.com" target="_blank">itoral@igalia.com</a>></span> wrote:<br><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex">---<br>
 src/intel/vulkan/anv_entrypoints_gen.py | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py<br>
index 485c6cfe8d..2dddd7f1aa 100644<br>
--- a/src/intel/vulkan/anv_entrypoints_gen.py<br>
+++ b/src/intel/vulkan/anv_entrypoints_gen.py<br>
@@ -423,7 +423,7 @@ class Entrypoint(EntrypointBase):<br>
         self.guard = guard<br>
<br>
     def is_device_entrypoint(self):<br>
-        return self.params[0].type in ('VkDevice', 'VkCommandBuffer')<br>
+        return self.params[0].type in ('VkDevice', 'VkCommandBuffer', 'VkQueue')<br>
<br>
     def prefixed_name(self, prefix):<br>
         assert self.name.startswith('vk')<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.14.1<br>
<br>
</font></span></blockquote></div><br></div></div></div>
</blockquote></body></html>