From: Iago Toral Quiroga Date: Mon, 12 Mar 2018 07:29:57 +0000 (+0100) Subject: anv/entrypoints: dispatches to VkQueue are device-level X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a631575ff4e415271d7b4b5574d64fc5d2e5586e;p=mesa.git anv/entrypoints: dispatches to VkQueue are device-level v2: - Add trampoline functions (Jason) - Add an assertion for unhandled trampoline cases Reviewed-by: Jason Ekstrand --- diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py index 485c6cfe8d7..72110347826 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -233,9 +233,14 @@ string_map_lookup(const char *str) % if e.params[0].type == 'VkDevice': ANV_FROM_HANDLE(anv_device, anv_device, ${e.params[0].name}); return anv_device->dispatch.${e.name}(${e.call_params()}); - % else: + % elif e.params[0].type == 'VkCommandBuffer': ANV_FROM_HANDLE(anv_cmd_buffer, anv_cmd_buffer, ${e.params[0].name}); return anv_cmd_buffer->device->dispatch.${e.name}(${e.call_params()}); + % elif e.params[0].type == 'VkQueue': + ANV_FROM_HANDLE(anv_queue, anv_queue, ${e.params[0].name}); + return anv_queue->device->dispatch.${e.name}(${e.call_params()}); + % else: + assert(!"Unhandled device child trampoline case: ${e.params[0].type}"); % endif } % if e.guard is not None: @@ -423,7 +428,7 @@ class Entrypoint(EntrypointBase): self.guard = guard def is_device_entrypoint(self): - return self.params[0].type in ('VkDevice', 'VkCommandBuffer') + return self.params[0].type in ('VkDevice', 'VkCommandBuffer', 'VkQueue') def prefixed_name(self, prefix): assert self.name.startswith('vk')