loader: use generated dispatch table ops
This also fixes several typos in xglGetProcAddr(), such as in
else if (!strncmp("xglCreateFence", pName, sizeof ("xgllCreateFence")))
return disp_table->CreateFence;
They are generally harmless though.
diff --git a/loader/loader.c b/loader/loader.c
index e9ec0fb..c658279 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -39,6 +39,7 @@
#include <dlfcn.h>
#include <pthread.h>
#include <assert.h>
+#include "table_ops.h"
#include "loader.h"
struct loader_layers {
@@ -460,129 +461,10 @@
static void loader_init_dispatch_table(XGL_LAYER_DISPATCH_TABLE *tab, GetProcAddrType fpGPA, XGL_PHYSICAL_GPU gpu)
{
- tab->GetProcAddr = fpGPA;
- tab->InitAndEnumerateGpus = fpGPA(gpu, "xglInitAndEnumerateGpus");
- tab->GetGpuInfo = fpGPA(gpu, "xglGetGpuInfo");
- tab->CreateDevice = fpGPA(gpu, "xglCreateDevice");
- tab->DestroyDevice = fpGPA(gpu, "xglDestroyDevice");
- tab->GetExtensionSupport = fpGPA(gpu, "xglGetExtensionSupport");
- tab->EnumerateLayers = fpGPA(gpu, "xglEnumerateLayers");
+ loader_initialize_dispatch_table(tab, fpGPA, gpu);
+
if (tab->EnumerateLayers == NULL)
tab->EnumerateLayers = xglEnumerateLayers;
- tab->GetDeviceQueue = fpGPA(gpu, "xglGetDeviceQueue");
- tab->QueueSubmit = fpGPA(gpu, "xglQueueSubmit");
- tab->QueueSetGlobalMemReferences = fpGPA(gpu, "xglQueueSetGlobalMemReferences");
- tab->QueueWaitIdle = fpGPA(gpu, "xglQueueWaitIdle");
- tab->DeviceWaitIdle = fpGPA(gpu, "xglDeviceWaitIdle");
- tab->GetMemoryHeapCount = fpGPA(gpu, "xglGetMemoryHeapCount");
- tab->GetMemoryHeapInfo = fpGPA(gpu, "xglGetMemoryHeapInfo");
- tab->AllocMemory = fpGPA(gpu, "xglAllocMemory");
- tab->FreeMemory = fpGPA(gpu, "xglFreeMemory");
- tab->SetMemoryPriority = fpGPA(gpu, "xglSetMemoryPriority");
- tab->MapMemory = fpGPA(gpu, "xglMapMemory");
- tab->UnmapMemory = fpGPA(gpu, "xglUnmapMemory");
- tab->PinSystemMemory = fpGPA(gpu, "xglPinSystemMemory");
- tab->RemapVirtualMemoryPages = fpGPA(gpu, "xglRemapVirtualMemoryPages");
- tab->GetMultiGpuCompatibility = fpGPA(gpu, "xglGetMultiGpuCompatibility");
- tab->OpenSharedMemory = fpGPA(gpu, "xglOpenSharedMemory");
- tab->OpenSharedQueueSemaphore = fpGPA(gpu, "xglOpenSharedQueueSemaphore");
- tab->OpenPeerMemory = fpGPA(gpu, "xglOpenPeerMemory");
- tab->OpenPeerImage = fpGPA(gpu, "xglOpenPeerImage");
- tab->DestroyObject = fpGPA(gpu, "xglDestroyObject");
- tab->GetObjectInfo = fpGPA(gpu, "xglGetObjectInfo");
- tab->BindObjectMemory = fpGPA(gpu, "xglBindObjectMemory");
- tab->CreateFence = fpGPA(gpu, "xglCreateFence");
- tab->GetFenceStatus = fpGPA(gpu, "xglGetFenceStatus");
- tab->WaitForFences = fpGPA(gpu, "xglWaitForFences");
- tab->CreateQueueSemaphore = fpGPA(gpu, "xglCreateQueueSemaphore");
- tab->SignalQueueSemaphore = fpGPA(gpu, "xglSignalQueueSemaphore");
- tab->WaitQueueSemaphore = fpGPA(gpu, "xglWaitQueueSemaphore");
- tab->CreateEvent = fpGPA(gpu, "xglCreateEvent");
- tab->GetEventStatus = fpGPA(gpu, "xglGetEventStatus");
- tab->SetEvent = fpGPA(gpu, "xglSetEvent");
- tab->ResetEvent = fpGPA(gpu, "xglResetEvent");
- tab->CreateQueryPool = fpGPA(gpu, "xglCreateQueryPool");
- tab->GetQueryPoolResults = fpGPA(gpu, "xglGetQueryPoolResults");
- tab->GetFormatInfo = fpGPA(gpu, "xglGetFormatInfo");
- tab->CreateImage = fpGPA(gpu, "xglCreateImage");
- tab->GetImageSubresourceInfo = fpGPA(gpu, "xglGetImageSubresourceInfo");
- tab->CreateImageView = fpGPA(gpu, "xglCreateImageView");
- tab->CreateColorAttachmentView = fpGPA(gpu, "xglCreateColorAttachmentView");
- tab->CreateDepthStencilView = fpGPA(gpu, "xglCreateDepthStencilView");
- tab->CreateShader = fpGPA(gpu, "xglCreateShader");
- tab->CreateGraphicsPipeline = fpGPA(gpu, "xglCreateGraphicsPipeline");
- tab->CreateComputePipeline = fpGPA(gpu, "xglCreateComputePipeline");
- tab->StorePipeline = fpGPA(gpu, "xglStorePipeline");
- tab->LoadPipeline = fpGPA(gpu, "xglLoadPipeline");
- tab->CreatePipelineDelta = fpGPA(gpu, "xglCreatePipelineDelta");
- tab->CreateSampler = fpGPA(gpu, "xglCreateSampler");
- tab->CreateDescriptorSet = fpGPA(gpu, "xglCreateDescriptorSet");
- tab->BeginDescriptorSetUpdate = fpGPA(gpu, "xglBeginDescriptorSetUpdate");
- tab->EndDescriptorSetUpdate = fpGPA(gpu, "xglEndDescriptorSetUpdate");
- tab->AttachSamplerDescriptors = fpGPA(gpu, "xglAttachSamplerDescriptors");
- tab->AttachImageViewDescriptors = fpGPA(gpu, "xglAttachImageViewDescriptors");
- tab->AttachMemoryViewDescriptors = fpGPA(gpu, "xglAttachMemoryViewDescriptors");
- tab->AttachNestedDescriptors = fpGPA(gpu, "xglAttachNestedDescriptors");
- tab->ClearDescriptorSetSlots = fpGPA(gpu, "xglClearDescriptorSetSlots");
- tab->CreateViewportState = fpGPA(gpu, "xglCreateViewportState");
- tab->CreateRasterState = fpGPA(gpu, "xglCreateRasterState");
- tab->CreateMsaaState = fpGPA(gpu, "xglCreateMsaaState");
- tab->CreateColorBlendState = fpGPA(gpu, "xglCreateColorBlendState");
- tab->CreateDepthStencilState = fpGPA(gpu, "xglCreateDepthStencilState");
- tab->CreateCommandBuffer = fpGPA(gpu, "xglCreateCommandBuffer");
- tab->BeginCommandBuffer = fpGPA(gpu, "xglBeginCommandBuffer");
- tab->EndCommandBuffer = fpGPA(gpu, "xglEndCommandBuffer");
- tab->ResetCommandBuffer = fpGPA(gpu, "xglResetCommandBuffer");
- tab->CmdBindPipeline = fpGPA(gpu, "xglCmdBindPipeline");
- tab->CmdBindPipelineDelta = fpGPA(gpu, "xglCmdBindPipelineDelta");
- tab->CmdBindStateObject = fpGPA(gpu, "xglCmdBindStateObject");
- tab->CmdBindDescriptorSet = fpGPA(gpu, "xglCmdBindDescriptorSet");
- tab->CmdBindDynamicMemoryView = fpGPA(gpu, "xglCmdBindDynamicMemoryView");
- tab->CmdBindVertexData = fpGPA(gpu, "xglCmdBindVertexData");
- tab->CmdBindIndexData = fpGPA(gpu, "xglCmdBindIndexData");
- tab->CmdBindAttachments = fpGPA(gpu, "xglCmdBindAttachments");
- tab->CmdPrepareMemoryRegions = fpGPA(gpu, "xglCmdPrepareMemoryRegions");
- tab->CmdPrepareImages = fpGPA(gpu, "xglCmdPrepareImages");
- tab->CmdDraw = fpGPA(gpu, "xglCmdDraw");
- tab->CmdDrawIndexed = fpGPA(gpu, "xglCmdDrawIndexed");
- tab->CmdDrawIndirect = fpGPA(gpu, "xglCmdDrawIndirect");
- tab->CmdDrawIndexedIndirect = fpGPA(gpu, "xglCmdDrawIndexedIndirect");
- tab->CmdDispatch = fpGPA(gpu, "xglCmdDispatch");
- tab->CmdDispatchIndirect = fpGPA(gpu, "xglCmdDispatchIndirect");
- tab->CmdCopyMemory = fpGPA(gpu, "xglCmdCopyMemory");
- tab->CmdCopyImage = fpGPA(gpu, "xglCmdCopyImage");
- tab->CmdCopyMemoryToImage = fpGPA(gpu, "xglCmdCopyMemoryToImage");
- tab->CmdCopyImageToMemory = fpGPA(gpu, "xglCmdCopyImageToMemory");
- tab->CmdCloneImageData = fpGPA(gpu, "xglCmdCloneImageData");
- tab->CmdUpdateMemory = fpGPA(gpu, "xglCmdUpdateMemory");
- tab->CmdFillMemory = fpGPA(gpu, "xglCmdFillMemory");
- tab->CmdClearColorImage = fpGPA(gpu, "xglCmdClearColorImage");
- tab->CmdClearColorImageRaw = fpGPA(gpu, "xglCmdClearColorImageRaw");
- tab->CmdClearDepthStencil = fpGPA(gpu, "xglCmdClearDepthStencil");
- tab->CmdResolveImage = fpGPA(gpu, "xglCmdResolveImage");
- tab->CmdSetEvent = fpGPA(gpu, "xglCmdSetEvent");
- tab->CmdResetEvent = fpGPA(gpu, "xglCmdResetEvent");
- tab->CmdMemoryAtomic = fpGPA(gpu, "xglCmdMemoryAtomic");
- tab->CmdBeginQuery = fpGPA(gpu, "xglCmdBeginQuery");
- tab->CmdEndQuery = fpGPA(gpu, "xglCmdEndQuery");
- tab->CmdResetQueryPool = fpGPA(gpu, "xglCmdResetQueryPool");
- tab->CmdWriteTimestamp = fpGPA(gpu, "xglCmdWriteTimestamp");
- tab->CmdInitAtomicCounters = fpGPA(gpu, "xglCmdInitAtomicCounters");
- tab->CmdLoadAtomicCounters = fpGPA(gpu, "xglCmdLoadAtomicCounters");
- tab->CmdSaveAtomicCounters = fpGPA(gpu, "xglCmdSaveAtomicCounters");
- tab->DbgSetValidationLevel = fpGPA(gpu, "xglDbgSetValidationLevel");
- tab->DbgRegisterMsgCallback = fpGPA(gpu, "xglDbgRegisterMsgCallback");
- tab->DbgUnregisterMsgCallback = fpGPA(gpu, "xglDbgUnregisterMsgCallback");
- tab->DbgSetMessageFilter = fpGPA(gpu, "xglDbgSetMessageFilter");
- tab->DbgSetObjectTag = fpGPA(gpu, "xglDbgSetObjectTag");
- tab->DbgSetGlobalOption = fpGPA(gpu, "xglDbgSetGlobalOption");
- tab->DbgSetDeviceOption = fpGPA(gpu, "xglDbgSetDeviceOption");
- tab->CmdDbgMarkerBegin = fpGPA(gpu, "xglCmdDbgMarkerBegin");
- tab->CmdDbgMarkerEnd = fpGPA(gpu, "xglCmdDbgMarkerEnd");
- tab->WsiX11AssociateConnection = fpGPA(gpu, "xglWsiX11AssociateConnection");
- tab->WsiX11GetMSC = fpGPA(gpu, "xglWsiX11GetMSC");
- tab->WsiX11CreatePresentableImage = fpGPA(gpu, "xglWsiX11CreatePresentableImage");
- tab->WsiX11QueuePresent = fpGPA(gpu, "xglWsiX11QueuePresent");
}
static struct loader_icd * loader_get_icd(const XGL_BASE_LAYER_OBJECT *gpu, XGL_UINT *gpu_index)
@@ -871,252 +753,14 @@
return NULL;
XGL_BASE_LAYER_OBJECT* gpuw = (XGL_BASE_LAYER_OBJECT *) gpu;
XGL_LAYER_DISPATCH_TABLE * disp_table = * (XGL_LAYER_DISPATCH_TABLE **) gpuw->baseObject;
+ void *addr;
if (disp_table == NULL)
return NULL;
- if (!strncmp("xglGetProcAddr", pName, sizeof("xglGetProcAddr")))
- return disp_table->GetProcAddr;
- else if (!strncmp("xglInitAndEnumerateGpus", pName, sizeof("xglInitAndEnumerateGpus")))
- return disp_table->InitAndEnumerateGpus;
- else if (!strncmp("xglGetGpuInfo", pName, sizeof ("xglGetGpuInfo")))
- return disp_table->GetGpuInfo;
- else if (!strncmp("xglCreateDevice", pName, sizeof ("xglCreateDevice")))
- return disp_table->CreateDevice;
- else if (!strncmp("xglDestroyDevice", pName, sizeof ("xglDestroyDevice")))
- return disp_table->DestroyDevice;
- else if (!strncmp("xglGetExtensionSupport", pName, sizeof ("xglGetExtensionSupport")))
- return disp_table->GetExtensionSupport;
- else if (!strncmp("xglEnumerateLayers", pName, sizeof ("xglEnumerateLayers")))
- return disp_table->EnumerateLayers;
- else if (!strncmp("xglGetDeviceQueue", pName, sizeof ("xglGetDeviceQueue")))
- return disp_table->GetDeviceQueue;
- else if (!strncmp("xglQueueSubmit", pName, sizeof ("xglQueueSubmit")))
- return disp_table->QueueSubmit;
- else if (!strncmp("xglQueueSetGlobalMemReferences", pName, sizeof ("xglQueueSetGlobalMemReferences")))
- return disp_table->QueueSetGlobalMemReferences;
- else if (!strncmp("xglQueueWaitIdle", pName, sizeof ("xglQueueWaitIdle")))
- return disp_table->QueueWaitIdle;
- else if (!strncmp("xglDeviceWaitIdle", pName, sizeof ("xglDeviceWaitIdle")))
- return disp_table->DeviceWaitIdle;
- else if (!strncmp("xglGetMemoryHeapCount", pName, sizeof ("xglGetMemoryHeapCount")))
- return disp_table->GetMemoryHeapCount;
- else if (!strncmp("xglGetMemoryHeapInfo", pName, sizeof ("xglGetMemoryHeapInfo")))
- return disp_table->GetMemoryHeapInfo;
- else if (!strncmp("xglAllocMemory", pName, sizeof ("xglAllocMemory")))
- return disp_table->AllocMemory;
- else if (!strncmp("xglFreeMemory", pName, sizeof ("xglFreeMemory")))
- return disp_table->FreeMemory;
- else if (!strncmp("xglSetMemoryPriority", pName, sizeof ("xglSetMemoryPriority")))
- return disp_table->SetMemoryPriority;
- else if (!strncmp("xglMapMemory", pName, sizeof ("xglMapMemory")))
- return disp_table->MapMemory;
- else if (!strncmp("xglUnmapMemory", pName, sizeof ("xglUnmapMemory")))
- return disp_table->UnmapMemory;
- else if (!strncmp("xglPinSystemMemory", pName, sizeof ("xglPinSystemMemory")))
- return disp_table->PinSystemMemory;
- else if (!strncmp("xglRemapVirtualMemoryPages", pName, sizeof ("xglRemapVirtualMemoryPages")))
- return disp_table->RemapVirtualMemoryPages;
- else if (!strncmp("xglGetMultiGpuCompatibility", pName, sizeof ("xglGetMultiGpuCompatibility")))
- return disp_table->GetMultiGpuCompatibility;
- else if (!strncmp("xglOpenSharedMemory", pName, sizeof ("xglOpenSharedMemory")))
- return disp_table->OpenSharedMemory;
- else if (!strncmp("xglOpenSharedQueueSemaphore", pName, sizeof ("xglOpenSharedQueueSemaphore")))
- return disp_table->OpenSharedQueueSemaphore;
- else if (!strncmp("xglOpenPeerMemory", pName, sizeof ("xglOpenPeerMemory")))
- return disp_table->OpenPeerMemory;
- else if (!strncmp("xglOpenPeerImage", pName, sizeof ("xglOpenPeerImage")))
- return disp_table->OpenPeerImage;
- else if (!strncmp("xglDestroyObject", pName, sizeof ("xglDestroyObject")))
- return disp_table->DestroyObject;
- else if (!strncmp("xglGetObjectInfo", pName, sizeof ("xglGetObjectInfo")))
- return disp_table->GetObjectInfo;
- else if (!strncmp("xglBindObjectMemory", pName, sizeof ("xglBindObjectMemory")))
- return disp_table->BindObjectMemory;
- else if (!strncmp("xglCreateFence", pName, sizeof ("xgllCreateFence")))
- return disp_table->CreateFence;
- else if (!strncmp("xglGetFenceStatus", pName, sizeof ("xglGetFenceStatus")))
- return disp_table->GetFenceStatus;
- else if (!strncmp("xglWaitForFences", pName, sizeof ("xglWaitForFences")))
- return disp_table->WaitForFences;
- else if (!strncmp("xglCreateQueueSemaphore", pName, sizeof ("xgllCreateQueueSemaphore")))
- return disp_table->CreateQueueSemaphore;
- else if (!strncmp("xglSignalQueueSemaphore", pName, sizeof ("xglSignalQueueSemaphore")))
- return disp_table->SignalQueueSemaphore;
- else if (!strncmp("xglWaitQueueSemaphore", pName, sizeof ("xglWaitQueueSemaphore")))
- return disp_table->WaitQueueSemaphore;
- else if (!strncmp("xglCreateEvent", pName, sizeof ("xgllCreateEvent")))
- return disp_table->CreateEvent;
- else if (!strncmp("xglGetEventStatus", pName, sizeof ("xglGetEventStatus")))
- return disp_table->GetEventStatus;
- else if (!strncmp("xglSetEvent", pName, sizeof ("xglSetEvent")))
- return disp_table->SetEvent;
- else if (!strncmp("xglResetEvent", pName, sizeof ("xgllResetEvent")))
- return disp_table->ResetEvent;
- else if (!strncmp("xglCreateQueryPool", pName, sizeof ("xglCreateQueryPool")))
- return disp_table->CreateQueryPool;
- else if (!strncmp("xglGetQueryPoolResults", pName, sizeof ("xglGetQueryPoolResults")))
- return disp_table->GetQueryPoolResults;
- else if (!strncmp("xglGetFormatInfo", pName, sizeof ("xglGetFormatInfo")))
- return disp_table->GetFormatInfo;
- else if (!strncmp("xglCreateImage", pName, sizeof ("xglCreateImage")))
- return disp_table->CreateImage;
- else if (!strncmp("xglGetImageSubresourceInfo", pName, sizeof ("xglGetImageSubresourceInfo")))
- return disp_table->GetImageSubresourceInfo;
- else if (!strncmp("xglCreateImageView", pName, sizeof ("xglCreateImageView")))
- return disp_table->CreateImageView;
- else if (!strncmp("xglCreateColorAttachmentView", pName, sizeof ("xglCreateColorAttachmentView")))
- return disp_table->CreateColorAttachmentView;
- else if (!strncmp("xglCreateDepthStencilView", pName, sizeof ("xglCreateDepthStencilView")))
- return disp_table->CreateDepthStencilView;
- else if (!strncmp("xglCreateShader", pName, sizeof ("xglCreateShader")))
- return disp_table->CreateShader;
- else if (!strncmp("xglCreateGraphicsPipeline", pName, sizeof ("xglCreateGraphicsPipeline")))
- return disp_table->CreateGraphicsPipeline;
- else if (!strncmp("xglCreateComputePipeline", pName, sizeof ("xglCreateComputePipeline")))
- return disp_table->CreateComputePipeline;
- else if (!strncmp("xglStorePipeline", pName, sizeof ("xglStorePipeline")))
- return disp_table->StorePipeline;
- else if (!strncmp("xglLoadPipeline", pName, sizeof ("xglLoadPipeline")))
- return disp_table->LoadPipeline;
- else if (!strncmp("xglCreatePipelineDelta", pName, sizeof ("xglCreatePipelineDelta")))
- return disp_table->CreatePipelineDelta;
- else if (!strncmp("xglCreateSampler", pName, sizeof ("xglCreateSampler")))
- return disp_table->CreateSampler;
- else if (!strncmp("xglCreateDescriptorSet", pName, sizeof ("xglCreateDescriptorSet")))
- return disp_table->CreateDescriptorSet;
- else if (!strncmp("xglBeginDescriptorSetUpdate", pName, sizeof ("xglBeginDescriptorSetUpdate")))
- return disp_table->BeginDescriptorSetUpdate;
- else if (!strncmp("xglEndDescriptorSetUpdate", pName, sizeof ("xglEndDescriptorSetUpdate")))
- return disp_table->EndDescriptorSetUpdate;
- else if (!strncmp("xglAttachSamplerDescriptors", pName, sizeof ("xglAttachSamplerDescriptors")))
- return disp_table->AttachSamplerDescriptors;
- else if (!strncmp("xglAttachImageViewDescriptors", pName, sizeof ("xglAttachImageViewDescriptors")))
- return disp_table->AttachImageViewDescriptors;
- else if (!strncmp("xglAttachMemoryViewDescriptors", pName, sizeof ("xglAttachMemoryViewDescriptors")))
- return disp_table->AttachMemoryViewDescriptors;
- else if (!strncmp("xglAttachNestedDescriptors", pName, sizeof ("xglAttachNestedDescriptors")))
- return disp_table->AttachNestedDescriptors;
- else if (!strncmp("xglClearDescriptorSetSlots", pName, sizeof ("xglClearDescriptorSetSlots")))
- return disp_table->ClearDescriptorSetSlots;
- else if (!strncmp("xglCreateViewportState", pName, sizeof ("xglCreateViewportState")))
- return disp_table->CreateViewportState;
- else if (!strncmp("xglCreateRasterState", pName, sizeof ("xglCreateRasterState")))
- return disp_table->CreateRasterState;
- else if (!strncmp("xglCreateMsaaState", pName, sizeof ("xglCreateMsaaState")))
- return disp_table->CreateMsaaState;
- else if (!strncmp("xglCreateColorBlendState", pName, sizeof ("xglCreateColorBlendState")))
- return disp_table->CreateColorBlendState;
- else if (!strncmp("xglCreateDepthStencilState", pName, sizeof ("xglCreateDepthStencilState")))
- return disp_table->CreateDepthStencilState;
- else if (!strncmp("xglCreateCommandBuffer", pName, sizeof ("xglCreateCommandBuffer")))
- return disp_table->CreateCommandBuffer;
- else if (!strncmp("xglBeginCommandBuffer", pName, sizeof ("xglBeginCommandBuffer")))
- return disp_table->BeginCommandBuffer;
- else if (!strncmp("xglEndCommandBuffer", pName, sizeof ("xglEndCommandBuffer")))
- return disp_table->EndCommandBuffer;
- else if (!strncmp("xglResetCommandBuffer", pName, sizeof ("xglResetCommandBuffer")))
- return disp_table->ResetCommandBuffer;
- else if (!strncmp("xglCmdBindPipeline", pName, sizeof ("xglCmdBindPipeline")))
- return disp_table->CmdBindPipeline;
- else if (!strncmp("xglCmdBindPipelineDelta", pName, sizeof ("xglCmdBindPipelineDelta")))
- return disp_table->CmdBindPipelineDelta;
- else if (!strncmp("xglCmdBindStateObject", pName, sizeof ("xglCmdBindStateObject")))
- return disp_table->CmdBindStateObject;
- else if (!strncmp("xglCmdBindDescriptorSet", pName, sizeof ("xglCmdBindDescriptorSet")))
- return disp_table->CmdBindDescriptorSet;
- else if (!strncmp("xglCmdBindDynamicMemoryView", pName, sizeof ("xglCmdBindDynamicMemoryView")))
- return disp_table->CmdBindDynamicMemoryView;
- else if (!strncmp("xglCmdBindVertexData", pName, sizeof ("xglCmdBindVertexData")))
- return disp_table->CmdBindVertexData;
- else if (!strncmp("xglCmdBindIndexData", pName, sizeof ("xglCmdBindIndexData")))
- return disp_table->CmdBindIndexData;
- else if (!strncmp("xglCmdBindAttachments", pName, sizeof ("xglCmdBindAttachments")))
- return disp_table->CmdBindAttachments;
- else if (!strncmp("xglCmdPrepareMemoryRegions", pName, sizeof ("xglCmdPrepareMemoryRegions")))
- return disp_table->CmdPrepareMemoryRegions;
- else if (!strncmp("xglCmdPrepareImages", pName, sizeof ("xglCmdPrepareImages")))
- return disp_table->CmdPrepareImages;
- else if (!strncmp("xglCmdDraw", pName, sizeof ("xglCmdDraw")))
- return disp_table->CmdDraw;
- else if (!strncmp("xglCmdDrawIndexed", pName, sizeof ("xglCmdDrawIndexed")))
- return disp_table->CmdDrawIndexed;
- else if (!strncmp("xglCmdDrawIndirect", pName, sizeof ("xglCmdDrawIndirect")))
- return disp_table->CmdDrawIndirect;
- else if (!strncmp("xglCmdDrawIndexedIndirect", pName, sizeof ("xglCmdDrawIndexedIndirect")))
- return disp_table->CmdDrawIndexedIndirect;
- else if (!strncmp("xglCmdDispatch", pName, sizeof ("xglCmdDispatch")))
- return disp_table->CmdDispatch;
- else if (!strncmp("xglCmdDispatchIndirect", pName, sizeof ("xglCmdDispatchIndirect")))
- return disp_table->CmdDispatchIndirect;
- else if (!strncmp("xglCmdCopyMemory", pName, sizeof ("xglCmdCopyMemory")))
- return disp_table->CmdCopyMemory;
- else if (!strncmp("xglCmdCopyImage", pName, sizeof ("xglCmdCopyImage")))
- return disp_table->CmdCopyImage;
- else if (!strncmp("xglCmdCopyMemoryToImage", pName, sizeof ("xglCmdCopyMemoryToImage")))
- return disp_table->CmdCopyMemoryToImage;
- else if (!strncmp("xglCmdCopyImageToMemory", pName, sizeof ("xglCmdCopyImageToMemory")))
- return disp_table->CmdCopyImageToMemory;
- else if (!strncmp("xglCmdCloneImageData", pName, sizeof ("xglCmdCloneImageData")))
- return disp_table->CmdCloneImageData;
- else if (!strncmp("xglCmdUpdateMemory", pName, sizeof ("xglCmdUpdateMemory")))
- return disp_table->CmdUpdateMemory;
- else if (!strncmp("xglCmdFillMemory", pName, sizeof ("xglCmdFillMemory")))
- return disp_table->CmdFillMemory;
- else if (!strncmp("xglCmdClearColorImage", pName, sizeof ("xglCmdClearColorImage")))
- return disp_table->CmdClearColorImage;
- else if (!strncmp("xglCmdClearColorImageRaw", pName, sizeof ("xglCmdClearColorImageRaw")))
- return disp_table->CmdClearColorImageRaw;
- else if (!strncmp("xglCmdClearDepthStencil", pName, sizeof ("xglCmdClearDepthStencil")))
- return disp_table->CmdClearDepthStencil;
- else if (!strncmp("xglCmdResolveImage", pName, sizeof ("xglCmdResolveImage")))
- return disp_table->CmdResolveImage;
- else if (!strncmp("xglCmdSetEvent", pName, sizeof ("xglCmdSetEvent")))
- return disp_table->CmdSetEvent;
- else if (!strncmp("xglCmdResetEvent", pName, sizeof ("xglCmdResetEvent")))
- return disp_table->CmdResetEvent;
- else if (!strncmp("xglCmdMemoryAtomic", pName, sizeof ("xglCmdMemoryAtomic")))
- return disp_table->CmdMemoryAtomic;
- else if (!strncmp("xglCmdBeginQuery", pName, sizeof ("xglCmdBeginQuery")))
- return disp_table->CmdBeginQuery;
- else if (!strncmp("xglCmdEndQuery", pName, sizeof ("xglCmdEndQuery")))
- return disp_table->CmdEndQuery;
- else if (!strncmp("xglCmdResetQueryPool", pName, sizeof ("xglCmdResetQueryPool")))
- return disp_table->CmdResetQueryPool;
- else if (!strncmp("xglCmdWriteTimestamp", pName, sizeof ("xglCmdWriteTimestamp")))
- return disp_table->CmdWriteTimestamp;
- else if (!strncmp("xglCmdInitAtomicCounters", pName, sizeof ("xglCmdInitAtomicCounters")))
- return disp_table->CmdInitAtomicCounters;
- else if (!strncmp("xglCmdLoadAtomicCounters", pName, sizeof ("xglCmdLoadAtomicCounters")))
- return disp_table->CmdLoadAtomicCounters;
- else if (!strncmp("xglCmdSaveAtomicCounters", pName, sizeof ("xglCmdSaveAtomicCounters")))
- return disp_table->CmdSaveAtomicCounters;
- else if (!strncmp("xglDbgSetValidationLevel", pName, sizeof ("xglDbgSetValidationLevel")))
- return disp_table->DbgSetValidationLevel;
- else if (!strncmp("xglDbgRegisterMsgCallback", pName, sizeof ("xglDbgRegisterMsgCallback")))
- return disp_table->DbgRegisterMsgCallback;
- else if (!strncmp("xglDbgUnregisterMsgCallback", pName, sizeof ("xglDbgUnregisterMsgCallback")))
- return disp_table->DbgUnregisterMsgCallback;
- else if (!strncmp("xglDbgSetMessageFilter", pName, sizeof ("xglDbgSetMessageFilter")))
- return disp_table->DbgSetMessageFilter;
- else if (!strncmp("xglDbgSetObjectTag", pName, sizeof ("xglDbgSetObjectTag")))
- return disp_table->DbgSetObjectTag;
- else if (!strncmp("xglDbgSetGlobalOption", pName, sizeof ("xglDbgSetGlobalOption")))
- return disp_table->DbgSetGlobalOption;
- else if (!strncmp("xglDbgSetDeviceOption", pName, sizeof ("xglDbgSetDeviceOption")))
- return disp_table->DbgSetDeviceOption;
- else if (!strncmp("xglCmdDbgMarkerBegin", pName, sizeof ("xglCmdDbgMarkerBegin")))
- return disp_table->CmdDbgMarkerBegin;
- else if (!strncmp("xglCmdDbgMarkerEnd", pName, sizeof ("xglCmdDbgMarkerEnd")))
- return disp_table->CmdDbgMarkerEnd;
- else if (!strncmp("xglWsiX11AssociateConnection", pName, sizeof("xglWsiX11AssociateConnection")))
- return disp_table->WsiX11AssociateConnection;
- else if (!strncmp("xglWsiX11GetMSC", pName, sizeof("xglWsiX11GetMSC")))
- return disp_table->WsiX11GetMSC;
- else if (!strncmp("xglWsiX11CreatePresentableImage", pName, sizeof("xglWsiX11CreatePresentableImage")))
- return disp_table->WsiX11CreatePresentableImage;
- else if (!strncmp("xglWsiX11QueuePresent", pName, sizeof("xglWsiX11QueuePresent")))
- return disp_table->WsiX11QueuePresent;
+ addr = loader_lookup_dispatch_table(disp_table, pName);
+ if (addr)
+ return addr;
else {
if (disp_table->GetProcAddr == NULL)
return NULL;