v127: Use PFN_vkVoidFunction for GetProcAddr
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 5d31cd8..7f7d41e 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -2989,7 +2989,7 @@
 //    debug_marker_dispatch_table(device)->DbgSetObjectName(device, objType, object, nameSize, pName);
 //}
 
-VK_LAYER_EXPORT void* VKAPI vkGetDeviceProcAddr(VkDevice dev, const char* funcName)
+VK_LAYER_EXPORT PFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(VkDevice dev, const char* funcName)
 {
     if (dev == NULL)
         return NULL;
@@ -2997,196 +2997,196 @@
     /* loader uses this to force layer initialization; device object is wrapped */
     if (!strcmp(funcName, "vkGetDeviceProcAddr")) {
         initDeviceTable(draw_state_device_table_map, (const VkBaseLayerObject *) dev);
-        return (void *) vkGetDeviceProcAddr;
+        return (PFN_vkVoidFunction) vkGetDeviceProcAddr;
     }
     if (!strcmp(funcName, "vkCreateDevice"))
-        return (void*) vkCreateDevice;
+        return (PFN_vkVoidFunction) vkCreateDevice;
     if (!strcmp(funcName, "vkDestroyDevice"))
-        return (void*) vkDestroyDevice;
+        return (PFN_vkVoidFunction) vkDestroyDevice;
     if (!strcmp(funcName, "vkQueueSubmit"))
-        return (void*) vkQueueSubmit;
+        return (PFN_vkVoidFunction) vkQueueSubmit;
     if (!strcmp(funcName, "vkDestroyInstance"))
-        return (void*) vkDestroyInstance;
+        return (PFN_vkVoidFunction) vkDestroyInstance;
     if (!strcmp(funcName, "vkDestroyDevice"))
-        return (void*) vkDestroyDevice;
+        return (PFN_vkVoidFunction) vkDestroyDevice;
     if (!strcmp(funcName, "vkDestroyFence"))
-        return (void*) vkDestroyFence;
+        return (PFN_vkVoidFunction) vkDestroyFence;
     if (!strcmp(funcName, "vkDestroySemaphore"))
-        return (void*) vkDestroySemaphore;
+        return (PFN_vkVoidFunction) vkDestroySemaphore;
     if (!strcmp(funcName, "vkDestroyEvent"))
-        return (void*) vkDestroyEvent;
+        return (PFN_vkVoidFunction) vkDestroyEvent;
     if (!strcmp(funcName, "vkDestroyQueryPool"))
-        return (void*) vkDestroyQueryPool;
+        return (PFN_vkVoidFunction) vkDestroyQueryPool;
     if (!strcmp(funcName, "vkDestroyBuffer"))
-        return (void*) vkDestroyBuffer;
+        return (PFN_vkVoidFunction) vkDestroyBuffer;
     if (!strcmp(funcName, "vkDestroyBufferView"))
-        return (void*) vkDestroyBufferView;
+        return (PFN_vkVoidFunction) vkDestroyBufferView;
     if (!strcmp(funcName, "vkDestroyImage"))
-        return (void*) vkDestroyImage;
+        return (PFN_vkVoidFunction) vkDestroyImage;
     if (!strcmp(funcName, "vkDestroyImageView"))
-        return (void*) vkDestroyImageView;
+        return (PFN_vkVoidFunction) vkDestroyImageView;
     if (!strcmp(funcName, "vkDestroyAttachmentView"))
-        return (void*) vkDestroyAttachmentView;
+        return (PFN_vkVoidFunction) vkDestroyAttachmentView;
     if (!strcmp(funcName, "vkDestroyShaderModule"))
-        return (void*) vkDestroyShaderModule;
+        return (PFN_vkVoidFunction) vkDestroyShaderModule;
     if (!strcmp(funcName, "vkDestroyShader"))
-        return (void*) vkDestroyShader;
+        return (PFN_vkVoidFunction) vkDestroyShader;
     if (!strcmp(funcName, "vkDestroyPipeline"))
-        return (void*) vkDestroyPipeline;
+        return (PFN_vkVoidFunction) vkDestroyPipeline;
     if (!strcmp(funcName, "vkDestroyPipelineLayout"))
-        return (void*) vkDestroyPipelineLayout;
+        return (PFN_vkVoidFunction) vkDestroyPipelineLayout;
     if (!strcmp(funcName, "vkDestroySampler"))
-        return (void*) vkDestroySampler;
+        return (PFN_vkVoidFunction) vkDestroySampler;
     if (!strcmp(funcName, "vkDestroyDescriptorSetLayout"))
-        return (void*) vkDestroyDescriptorSetLayout;
+        return (PFN_vkVoidFunction) vkDestroyDescriptorSetLayout;
     if (!strcmp(funcName, "vkDestroyDescriptorPool"))
-        return (void*) vkDestroyDescriptorPool;
+        return (PFN_vkVoidFunction) vkDestroyDescriptorPool;
     if (!strcmp(funcName, "vkDestroyDynamicViewportState"))
-        return (void*) vkDestroyDynamicViewportState;
+        return (PFN_vkVoidFunction) vkDestroyDynamicViewportState;
     if (!strcmp(funcName, "vkDestroyDynamicRasterState"))
-        return (void*) vkDestroyDynamicRasterState;
+        return (PFN_vkVoidFunction) vkDestroyDynamicRasterState;
     if (!strcmp(funcName, "vkDestroyDynamicColorBlendState"))
-        return (void*) vkDestroyDynamicColorBlendState;
+        return (PFN_vkVoidFunction) vkDestroyDynamicColorBlendState;
     if (!strcmp(funcName, "vkDestroyDynamicDepthStencilState"))
-        return (void*) vkDestroyDynamicDepthStencilState;
+        return (PFN_vkVoidFunction) vkDestroyDynamicDepthStencilState;
     if (!strcmp(funcName, "vkDestroyCommandBuffer"))
-        return (void*) vkDestroyCommandBuffer;
+        return (PFN_vkVoidFunction) vkDestroyCommandBuffer;
     if (!strcmp(funcName, "vkDestroyFramebuffer"))
-        return (void*) vkDestroyFramebuffer;
+        return (PFN_vkVoidFunction) vkDestroyFramebuffer;
     if (!strcmp(funcName, "vkDestroyRenderPass"))
-        return (void*) vkDestroyRenderPass;
+        return (PFN_vkVoidFunction) vkDestroyRenderPass;
     if (!strcmp(funcName, "vkCreateBufferView"))
-        return (void*) vkCreateBufferView;
+        return (PFN_vkVoidFunction) vkCreateBufferView;
     if (!strcmp(funcName, "vkCreateImageView"))
-        return (void*) vkCreateImageView;
+        return (PFN_vkVoidFunction) vkCreateImageView;
     if (!strcmp(funcName, "vkCreateAttachmentView"))
-        return (void*) vkCreateAttachmentView;
+        return (PFN_vkVoidFunction) vkCreateAttachmentView;
     if (!strcmp(funcName, "CreatePipelineCache"))
-        return (void*) vkCreatePipelineCache;
+        return (PFN_vkVoidFunction) vkCreatePipelineCache;
     if (!strcmp(funcName, "DestroyPipelineCache"))
-        return (void*) vkDestroyPipelineCache;
+        return (PFN_vkVoidFunction) vkDestroyPipelineCache;
     if (!strcmp(funcName, "GetPipelineCacheSize"))
-        return (void*) vkGetPipelineCacheSize;
+        return (PFN_vkVoidFunction) vkGetPipelineCacheSize;
     if (!strcmp(funcName, "GetPipelineCacheData"))
-        return (void*) vkGetPipelineCacheData;
+        return (PFN_vkVoidFunction) vkGetPipelineCacheData;
     if (!strcmp(funcName, "MergePipelineCaches"))
-        return (void*) vkMergePipelineCaches;
+        return (PFN_vkVoidFunction) vkMergePipelineCaches;
     if (!strcmp(funcName, "vkCreateGraphicsPipelines"))
-        return (void*) vkCreateGraphicsPipelines;
+        return (PFN_vkVoidFunction) vkCreateGraphicsPipelines;
     if (!strcmp(funcName, "vkCreateSampler"))
-        return (void*) vkCreateSampler;
+        return (PFN_vkVoidFunction) vkCreateSampler;
     if (!strcmp(funcName, "vkCreateDescriptorSetLayout"))
-        return (void*) vkCreateDescriptorSetLayout;
+        return (PFN_vkVoidFunction) vkCreateDescriptorSetLayout;
     if (!strcmp(funcName, "vkCreatePipelineLayout"))
-        return (void*) vkCreatePipelineLayout;
+        return (PFN_vkVoidFunction) vkCreatePipelineLayout;
     if (!strcmp(funcName, "vkCreateDescriptorPool"))
-        return (void*) vkCreateDescriptorPool;
+        return (PFN_vkVoidFunction) vkCreateDescriptorPool;
     if (!strcmp(funcName, "vkResetDescriptorPool"))
-        return (void*) vkResetDescriptorPool;
+        return (PFN_vkVoidFunction) vkResetDescriptorPool;
     if (!strcmp(funcName, "vkAllocDescriptorSets"))
-        return (void*) vkAllocDescriptorSets;
+        return (PFN_vkVoidFunction) vkAllocDescriptorSets;
     if (!strcmp(funcName, "vkUpdateDescriptorSets"))
-        return (void*) vkUpdateDescriptorSets;
+        return (PFN_vkVoidFunction) vkUpdateDescriptorSets;
     if (!strcmp(funcName, "vkCreateDynamicViewportState"))
-        return (void*) vkCreateDynamicViewportState;
+        return (PFN_vkVoidFunction) vkCreateDynamicViewportState;
     if (!strcmp(funcName, "vkCreateDynamicRasterState"))
-        return (void*) vkCreateDynamicRasterState;
+        return (PFN_vkVoidFunction) vkCreateDynamicRasterState;
     if (!strcmp(funcName, "vkCreateDynamicColorBlendState"))
-        return (void*) vkCreateDynamicColorBlendState;
+        return (PFN_vkVoidFunction) vkCreateDynamicColorBlendState;
     if (!strcmp(funcName, "vkCreateDynamicDepthStencilState"))
-        return (void*) vkCreateDynamicDepthStencilState;
+        return (PFN_vkVoidFunction) vkCreateDynamicDepthStencilState;
     if (!strcmp(funcName, "vkCreateCommandBuffer"))
-        return (void*) vkCreateCommandBuffer;
+        return (PFN_vkVoidFunction) vkCreateCommandBuffer;
     if (!strcmp(funcName, "vkBeginCommandBuffer"))
-        return (void*) vkBeginCommandBuffer;
+        return (PFN_vkVoidFunction) vkBeginCommandBuffer;
     if (!strcmp(funcName, "vkEndCommandBuffer"))
-        return (void*) vkEndCommandBuffer;
+        return (PFN_vkVoidFunction) vkEndCommandBuffer;
     if (!strcmp(funcName, "vkResetCommandBuffer"))
-        return (void*) vkResetCommandBuffer;
+        return (PFN_vkVoidFunction) vkResetCommandBuffer;
     if (!strcmp(funcName, "vkCmdBindPipeline"))
-        return (void*) vkCmdBindPipeline;
+        return (PFN_vkVoidFunction) vkCmdBindPipeline;
     if (!strcmp(funcName, "vkCmdBindDynamicViewportState"))
-        return (void*) vkCmdBindDynamicViewportState;
+        return (PFN_vkVoidFunction) vkCmdBindDynamicViewportState;
     if (!strcmp(funcName, "vkCmdBindDynamicRasterState"))
-        return (void*) vkCmdBindDynamicRasterState;
+        return (PFN_vkVoidFunction) vkCmdBindDynamicRasterState;
     if (!strcmp(funcName, "vkCmdBindDynamicColorBlendState"))
-        return (void*) vkCmdBindDynamicColorBlendState;
+        return (PFN_vkVoidFunction) vkCmdBindDynamicColorBlendState;
     if (!strcmp(funcName, "vkCmdBindDynamicDepthStencilState"))
-        return (void*) vkCmdBindDynamicDepthStencilState;
+        return (PFN_vkVoidFunction) vkCmdBindDynamicDepthStencilState;
     if (!strcmp(funcName, "vkCmdBindDescriptorSets"))
-        return (void*) vkCmdBindDescriptorSets;
+        return (PFN_vkVoidFunction) vkCmdBindDescriptorSets;
     if (!strcmp(funcName, "vkCmdBindVertexBuffers"))
-        return (void*) vkCmdBindVertexBuffers;
+        return (PFN_vkVoidFunction) vkCmdBindVertexBuffers;
     if (!strcmp(funcName, "vkCmdBindIndexBuffer"))
-        return (void*) vkCmdBindIndexBuffer;
+        return (PFN_vkVoidFunction) vkCmdBindIndexBuffer;
     if (!strcmp(funcName, "vkCmdDraw"))
-        return (void*) vkCmdDraw;
+        return (PFN_vkVoidFunction) vkCmdDraw;
     if (!strcmp(funcName, "vkCmdDrawIndexed"))
-        return (void*) vkCmdDrawIndexed;
+        return (PFN_vkVoidFunction) vkCmdDrawIndexed;
     if (!strcmp(funcName, "vkCmdDrawIndirect"))
-        return (void*) vkCmdDrawIndirect;
+        return (PFN_vkVoidFunction) vkCmdDrawIndirect;
     if (!strcmp(funcName, "vkCmdDrawIndexedIndirect"))
-        return (void*) vkCmdDrawIndexedIndirect;
+        return (PFN_vkVoidFunction) vkCmdDrawIndexedIndirect;
     if (!strcmp(funcName, "vkCmdDispatch"))
-        return (void*) vkCmdDispatch;
+        return (PFN_vkVoidFunction) vkCmdDispatch;
     if (!strcmp(funcName, "vkCmdDispatchIndirect"))
-        return (void*) vkCmdDispatchIndirect;
+        return (PFN_vkVoidFunction) vkCmdDispatchIndirect;
     if (!strcmp(funcName, "vkCmdCopyBuffer"))
-        return (void*) vkCmdCopyBuffer;
+        return (PFN_vkVoidFunction) vkCmdCopyBuffer;
     if (!strcmp(funcName, "vkCmdCopyImage"))
-        return (void*) vkCmdCopyImage;
+        return (PFN_vkVoidFunction) vkCmdCopyImage;
     if (!strcmp(funcName, "vkCmdCopyBufferToImage"))
-        return (void*) vkCmdCopyBufferToImage;
+        return (PFN_vkVoidFunction) vkCmdCopyBufferToImage;
     if (!strcmp(funcName, "vkCmdCopyImageToBuffer"))
-        return (void*) vkCmdCopyImageToBuffer;
+        return (PFN_vkVoidFunction) vkCmdCopyImageToBuffer;
     if (!strcmp(funcName, "vkCmdUpdateBuffer"))
-        return (void*) vkCmdUpdateBuffer;
+        return (PFN_vkVoidFunction) vkCmdUpdateBuffer;
     if (!strcmp(funcName, "vkCmdFillBuffer"))
-        return (void*) vkCmdFillBuffer;
+        return (PFN_vkVoidFunction) vkCmdFillBuffer;
     if (!strcmp(funcName, "vkCmdClearColorImage"))
-        return (void*) vkCmdClearColorImage;
+        return (PFN_vkVoidFunction) vkCmdClearColorImage;
     if (!strcmp(funcName, "vkCmdClearDepthStencilImage"))
-        return (void*) vkCmdClearDepthStencilImage;
+        return (PFN_vkVoidFunction) vkCmdClearDepthStencilImage;
     if (!strcmp(funcName, "vkCmdClearColorAttachment"))
-        return (void*) vkCmdClearColorAttachment;
+        return (PFN_vkVoidFunction) vkCmdClearColorAttachment;
     if (!strcmp(funcName, "vkCmdClearDepthStencilAttachment"))
-        return (void*) vkCmdClearDepthStencilAttachment;
+        return (PFN_vkVoidFunction) vkCmdClearDepthStencilAttachment;
     if (!strcmp(funcName, "vkCmdResolveImage"))
-        return (void*) vkCmdResolveImage;
+        return (PFN_vkVoidFunction) vkCmdResolveImage;
     if (!strcmp(funcName, "vkCmdSetEvent"))
-        return (void*) vkCmdSetEvent;
+        return (PFN_vkVoidFunction) vkCmdSetEvent;
     if (!strcmp(funcName, "vkCmdResetEvent"))
-        return (void*) vkCmdResetEvent;
+        return (PFN_vkVoidFunction) vkCmdResetEvent;
     if (!strcmp(funcName, "vkCmdWaitEvents"))
-        return (void*) vkCmdWaitEvents;
+        return (PFN_vkVoidFunction) vkCmdWaitEvents;
     if (!strcmp(funcName, "vkCmdPipelineBarrier"))
-        return (void*) vkCmdPipelineBarrier;
+        return (PFN_vkVoidFunction) vkCmdPipelineBarrier;
     if (!strcmp(funcName, "vkCmdBeginQuery"))
-        return (void*) vkCmdBeginQuery;
+        return (PFN_vkVoidFunction) vkCmdBeginQuery;
     if (!strcmp(funcName, "vkCmdEndQuery"))
-        return (void*) vkCmdEndQuery;
+        return (PFN_vkVoidFunction) vkCmdEndQuery;
     if (!strcmp(funcName, "vkCmdResetQueryPool"))
-        return (void*) vkCmdResetQueryPool;
+        return (PFN_vkVoidFunction) vkCmdResetQueryPool;
     if (!strcmp(funcName, "vkCmdWriteTimestamp"))
-        return (void*) vkCmdWriteTimestamp;
+        return (PFN_vkVoidFunction) vkCmdWriteTimestamp;
     if (!strcmp(funcName, "vkCreateFramebuffer"))
-        return (void*) vkCreateFramebuffer;
+        return (PFN_vkVoidFunction) vkCreateFramebuffer;
     if (!strcmp(funcName, "vkCreateRenderPass"))
-        return (void*) vkCreateRenderPass;
+        return (PFN_vkVoidFunction) vkCreateRenderPass;
     if (!strcmp(funcName, "vkCmdBeginRenderPass"))
-        return (void*) vkCmdBeginRenderPass;
+        return (PFN_vkVoidFunction) vkCmdBeginRenderPass;
     if (!strcmp(funcName, "vkCmdNextSubpass"))
-        return (void*) vkCmdNextSubpass;
+        return (PFN_vkVoidFunction) vkCmdNextSubpass;
     if (!strcmp(funcName, "vkCmdEndRenderPass"))
-        return (void*) vkCmdEndRenderPass;
+        return (PFN_vkVoidFunction) vkCmdEndRenderPass;
 
     VkLayerDispatchTable* pTable = get_dispatch_table(draw_state_device_table_map, dev);
     if (deviceExtMap.size() == 0 || deviceExtMap[pTable].debug_marker_enabled)
     {
         if (!strcmp(funcName, "vkCmdDbgMarkerBegin"))
-            return (void*) vkCmdDbgMarkerBegin;
+            return (PFN_vkVoidFunction) vkCmdDbgMarkerBegin;
         if (!strcmp(funcName, "vkCmdDbgMarkerEnd"))
-            return (void*) vkCmdDbgMarkerEnd;
+            return (PFN_vkVoidFunction) vkCmdDbgMarkerEnd;
 //        if (!strcmp(funcName, "vkDbgSetObjectTag"))
 //            return (void*) vkDbgSetObjectTag;
 //        if (!strcmp(funcName, "vkDbgSetObjectName"))
@@ -3199,29 +3199,29 @@
     }
 }
 
-VK_LAYER_EXPORT void * VKAPI vkGetInstanceProcAddr(VkInstance instance, const char* funcName)
+VK_LAYER_EXPORT PFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(VkInstance instance, const char* funcName)
 {
-    void *fptr;
+    PFN_vkVoidFunction fptr;
     if (instance == NULL)
         return NULL;
 
     /* loader uses this to force layer initialization; instance object is wrapped */
     if (!strcmp(funcName, "vkGetInstanceProcAddr")) {
         initInstanceTable(draw_state_instance_table_map, (const VkBaseLayerObject *) instance);
-        return (void *) vkGetInstanceProcAddr;
+        return (PFN_vkVoidFunction) vkGetInstanceProcAddr;
     }
     if (!strcmp(funcName, "vkCreateInstance"))
-        return (void *) vkCreateInstance;
+        return (PFN_vkVoidFunction) vkCreateInstance;
     if (!strcmp(funcName, "vkDestroyInstance"))
-        return (void *) vkDestroyInstance;
+        return (PFN_vkVoidFunction) vkDestroyInstance;
     if (!strcmp(funcName, "vkGetGlobalLayerProperties"))
-        return (void*) vkGetGlobalLayerProperties;
+        return (PFN_vkVoidFunction) vkGetGlobalLayerProperties;
     if (!strcmp(funcName, "vkGetGlobalExtensionProperties"))
-        return (void*) vkGetGlobalExtensionProperties;
+        return (PFN_vkVoidFunction) vkGetGlobalExtensionProperties;
     if (!strcmp(funcName, "vkGetPhysicalDeviceLayerProperties"))
-        return (void*) vkGetPhysicalDeviceLayerProperties;
+        return (PFN_vkVoidFunction) vkGetPhysicalDeviceLayerProperties;
     if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionProperties"))
-        return (void*) vkGetPhysicalDeviceExtensionProperties;
+        return (PFN_vkVoidFunction) vkGetPhysicalDeviceExtensionProperties;
 
     layer_data *my_data = get_my_data_ptr(get_dispatch_key(instance), layer_data_map);
     fptr = debug_report_get_instance_proc_addr(my_data->report_data, funcName);