Module: Mesa
Branch: master
Commit: 0c399dca51d2aa1a784edcb6e409aba5b67e1473
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0c399dca51d2aa1a784edcb6e409aba5b67e1473

Author: Jason Ekstrand <[email protected]>
Date:   Tue Jan 16 18:11:03 2018 -0800

anv: Add a per-instance dispatch table

We also switch GetInstanceProcAddr over to use it.

Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>

---

 src/intel/vulkan/anv_device.c  | 7 ++++++-
 src/intel/vulkan/anv_private.h | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index c3a8fbbb4e..d827aec9a7 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -574,6 +574,7 @@ VkResult anv_CreateInstance(
 
    instance->apiVersion = client_version;
    instance->enabled_extensions = enabled_extensions;
+   instance->dispatch = anv_dispatch_table;
    instance->physicalDeviceCount = -1;
 
    result = vk_debug_report_instance_init(&instance->debug_report_callbacks);
@@ -1088,7 +1089,11 @@ PFN_vkVoidFunction anv_GetInstanceProcAddr(
    if (instance == NULL)
       return NULL;
 
-   return anv_lookup_entrypoint(NULL, pName);
+   int idx = anv_get_entrypoint_index(pName);
+   if (idx < 0)
+      return NULL;
+
+   return instance->dispatch.entrypoints[idx];
 }
 
 /* With version 1+ of the loader interface the ICD should expose
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 1fd7c39567..d1b2ebc11f 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -797,6 +797,7 @@ struct anv_instance {
 
     uint32_t                                    apiVersion;
     struct anv_instance_extension_table         enabled_extensions;
+    struct anv_dispatch_table                   dispatch;
 
     int                                         physicalDeviceCount;
     struct anv_physical_device                  physicalDevice;

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to