diff --git a/src/Vulkan/VkGetProcAddress.cpp b/src/Vulkan/VkGetProcAddress.cpp
index b7a51cb..2d4a302 100644
--- a/src/Vulkan/VkGetProcAddress.cpp
+++ b/src/Vulkan/VkGetProcAddress.cpp
@@ -19,218 +19,263 @@
 
 namespace vk
 {
-#define MAKE_VULKAN_ENTRY(aFunction) { #aFunction, reinterpret_cast<PFN_vkVoidFunction>(aFunction) }
-	static const std::unordered_map <std::string, PFN_vkVoidFunction> func_ptrs =
-	{
-		MAKE_VULKAN_ENTRY(vkCreateInstance),
-		MAKE_VULKAN_ENTRY(vkDestroyInstance),
-		MAKE_VULKAN_ENTRY(vkEnumeratePhysicalDevices),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceFeatures),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceFormatProperties),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceImageFormatProperties),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceProperties),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceMemoryProperties),
-		MAKE_VULKAN_ENTRY(vkGetInstanceProcAddr),
-		MAKE_VULKAN_ENTRY(vkGetDeviceProcAddr),
-		MAKE_VULKAN_ENTRY(vkCreateDevice),
-		MAKE_VULKAN_ENTRY(vkDestroyDevice),
-		MAKE_VULKAN_ENTRY(vkEnumerateInstanceExtensionProperties),
-		MAKE_VULKAN_ENTRY(vkEnumerateDeviceExtensionProperties),
-		MAKE_VULKAN_ENTRY(vkEnumerateInstanceLayerProperties),
-		MAKE_VULKAN_ENTRY(vkEnumerateDeviceLayerProperties),
-		MAKE_VULKAN_ENTRY(vkGetDeviceQueue),
-		MAKE_VULKAN_ENTRY(vkQueueSubmit),
-		MAKE_VULKAN_ENTRY(vkQueueWaitIdle),
-		MAKE_VULKAN_ENTRY(vkDeviceWaitIdle),
-		MAKE_VULKAN_ENTRY(vkAllocateMemory),
-		MAKE_VULKAN_ENTRY(vkFreeMemory),
-		MAKE_VULKAN_ENTRY(vkMapMemory),
-		MAKE_VULKAN_ENTRY(vkUnmapMemory),
-		MAKE_VULKAN_ENTRY(vkFlushMappedMemoryRanges),
-		MAKE_VULKAN_ENTRY(vkInvalidateMappedMemoryRanges),
-		MAKE_VULKAN_ENTRY(vkGetDeviceMemoryCommitment),
-		MAKE_VULKAN_ENTRY(vkBindBufferMemory),
-		MAKE_VULKAN_ENTRY(vkBindImageMemory),
-		MAKE_VULKAN_ENTRY(vkGetBufferMemoryRequirements),
-		MAKE_VULKAN_ENTRY(vkGetImageMemoryRequirements),
-		MAKE_VULKAN_ENTRY(vkGetImageSparseMemoryRequirements),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties),
-		MAKE_VULKAN_ENTRY(vkQueueBindSparse),
-		MAKE_VULKAN_ENTRY(vkCreateFence),
-		MAKE_VULKAN_ENTRY(vkDestroyFence),
-		MAKE_VULKAN_ENTRY(vkResetFences),
-		MAKE_VULKAN_ENTRY(vkGetFenceStatus),
-		MAKE_VULKAN_ENTRY(vkWaitForFences),
-		MAKE_VULKAN_ENTRY(vkCreateSemaphore),
-		MAKE_VULKAN_ENTRY(vkDestroySemaphore),
-		MAKE_VULKAN_ENTRY(vkCreateEvent),
-		MAKE_VULKAN_ENTRY(vkDestroyEvent),
-		MAKE_VULKAN_ENTRY(vkGetEventStatus),
-		MAKE_VULKAN_ENTRY(vkSetEvent),
-		MAKE_VULKAN_ENTRY(vkResetEvent),
-		MAKE_VULKAN_ENTRY(vkCreateQueryPool),
-		MAKE_VULKAN_ENTRY(vkDestroyQueryPool),
-		MAKE_VULKAN_ENTRY(vkGetQueryPoolResults),
-		MAKE_VULKAN_ENTRY(vkCreateBuffer),
-		MAKE_VULKAN_ENTRY(vkDestroyBuffer),
-		MAKE_VULKAN_ENTRY(vkCreateBufferView),
-		MAKE_VULKAN_ENTRY(vkDestroyBufferView),
-		MAKE_VULKAN_ENTRY(vkCreateImage),
-		MAKE_VULKAN_ENTRY(vkDestroyImage),
-		MAKE_VULKAN_ENTRY(vkGetImageSubresourceLayout),
-		MAKE_VULKAN_ENTRY(vkCreateImageView),
-		MAKE_VULKAN_ENTRY(vkDestroyImageView),
-		MAKE_VULKAN_ENTRY(vkCreateShaderModule),
-		MAKE_VULKAN_ENTRY(vkDestroyShaderModule),
-		MAKE_VULKAN_ENTRY(vkCreatePipelineCache),
-		MAKE_VULKAN_ENTRY(vkDestroyPipelineCache),
-		MAKE_VULKAN_ENTRY(vkGetPipelineCacheData),
-		MAKE_VULKAN_ENTRY(vkMergePipelineCaches),
-		MAKE_VULKAN_ENTRY(vkCreateGraphicsPipelines),
-		MAKE_VULKAN_ENTRY(vkCreateComputePipelines),
-		MAKE_VULKAN_ENTRY(vkDestroyPipeline),
-		MAKE_VULKAN_ENTRY(vkCreatePipelineLayout),
-		MAKE_VULKAN_ENTRY(vkDestroyPipelineLayout),
-		MAKE_VULKAN_ENTRY(vkCreateSampler),
-		MAKE_VULKAN_ENTRY(vkDestroySampler),
-		MAKE_VULKAN_ENTRY(vkCreateDescriptorSetLayout),
-		MAKE_VULKAN_ENTRY(vkDestroyDescriptorSetLayout),
-		MAKE_VULKAN_ENTRY(vkCreateDescriptorPool),
-		MAKE_VULKAN_ENTRY(vkDestroyDescriptorPool),
-		MAKE_VULKAN_ENTRY(vkResetDescriptorPool),
-		MAKE_VULKAN_ENTRY(vkAllocateDescriptorSets),
-		MAKE_VULKAN_ENTRY(vkFreeDescriptorSets),
-		MAKE_VULKAN_ENTRY(vkUpdateDescriptorSets),
-		MAKE_VULKAN_ENTRY(vkCreateFramebuffer),
-		MAKE_VULKAN_ENTRY(vkDestroyFramebuffer),
-		MAKE_VULKAN_ENTRY(vkCreateRenderPass),
-		MAKE_VULKAN_ENTRY(vkDestroyRenderPass),
-		MAKE_VULKAN_ENTRY(vkGetRenderAreaGranularity),
-		MAKE_VULKAN_ENTRY(vkCreateCommandPool),
-		MAKE_VULKAN_ENTRY(vkDestroyCommandPool),
-		MAKE_VULKAN_ENTRY(vkResetCommandPool),
-		MAKE_VULKAN_ENTRY(vkAllocateCommandBuffers),
-		MAKE_VULKAN_ENTRY(vkFreeCommandBuffers),
-		MAKE_VULKAN_ENTRY(vkBeginCommandBuffer),
-		MAKE_VULKAN_ENTRY(vkEndCommandBuffer),
-		MAKE_VULKAN_ENTRY(vkResetCommandBuffer),
-		MAKE_VULKAN_ENTRY(vkCmdBindPipeline),
-		MAKE_VULKAN_ENTRY(vkCmdSetViewport),
-		MAKE_VULKAN_ENTRY(vkCmdSetScissor),
-		MAKE_VULKAN_ENTRY(vkCmdSetLineWidth),
-		MAKE_VULKAN_ENTRY(vkCmdSetDepthBias),
-		MAKE_VULKAN_ENTRY(vkCmdSetBlendConstants),
-		MAKE_VULKAN_ENTRY(vkCmdSetDepthBounds),
-		MAKE_VULKAN_ENTRY(vkCmdSetStencilCompareMask),
-		MAKE_VULKAN_ENTRY(vkCmdSetStencilWriteMask),
-		MAKE_VULKAN_ENTRY(vkCmdSetStencilReference),
-		MAKE_VULKAN_ENTRY(vkCmdBindDescriptorSets),
-		MAKE_VULKAN_ENTRY(vkCmdBindIndexBuffer),
-		MAKE_VULKAN_ENTRY(vkCmdBindVertexBuffers),
-		MAKE_VULKAN_ENTRY(vkCmdDraw),
-		MAKE_VULKAN_ENTRY(vkCmdDrawIndexed),
-		MAKE_VULKAN_ENTRY(vkCmdDrawIndirect),
-		MAKE_VULKAN_ENTRY(vkCmdDrawIndexedIndirect),
-		MAKE_VULKAN_ENTRY(vkCmdDispatch),
-		MAKE_VULKAN_ENTRY(vkCmdDispatchIndirect),
-		MAKE_VULKAN_ENTRY(vkCmdCopyBuffer),
-		MAKE_VULKAN_ENTRY(vkCmdCopyImage),
-		MAKE_VULKAN_ENTRY(vkCmdBlitImage),
-		MAKE_VULKAN_ENTRY(vkCmdCopyBufferToImage),
-		MAKE_VULKAN_ENTRY(vkCmdCopyImageToBuffer),
-		MAKE_VULKAN_ENTRY(vkCmdUpdateBuffer),
-		MAKE_VULKAN_ENTRY(vkCmdFillBuffer),
-		MAKE_VULKAN_ENTRY(vkCmdClearColorImage),
-		MAKE_VULKAN_ENTRY(vkCmdClearDepthStencilImage),
-		MAKE_VULKAN_ENTRY(vkCmdClearAttachments),
-		MAKE_VULKAN_ENTRY(vkCmdResolveImage),
-		MAKE_VULKAN_ENTRY(vkCmdSetEvent),
-		MAKE_VULKAN_ENTRY(vkCmdResetEvent),
-		MAKE_VULKAN_ENTRY(vkCmdWaitEvents),
-		MAKE_VULKAN_ENTRY(vkCmdPipelineBarrier),
-		MAKE_VULKAN_ENTRY(vkCmdBeginQuery),
-		MAKE_VULKAN_ENTRY(vkCmdEndQuery),
-		MAKE_VULKAN_ENTRY(vkCmdResetQueryPool),
-		MAKE_VULKAN_ENTRY(vkCmdWriteTimestamp),
-		MAKE_VULKAN_ENTRY(vkCmdCopyQueryPoolResults),
-		MAKE_VULKAN_ENTRY(vkCmdPushConstants),
-		MAKE_VULKAN_ENTRY(vkCmdBeginRenderPass),
-		MAKE_VULKAN_ENTRY(vkCmdNextSubpass),
-		MAKE_VULKAN_ENTRY(vkCmdEndRenderPass),
-		MAKE_VULKAN_ENTRY(vkCmdExecuteCommands),
-		MAKE_VULKAN_ENTRY(vkEnumerateInstanceVersion),
-		MAKE_VULKAN_ENTRY(vkBindBufferMemory2),
-		MAKE_VULKAN_ENTRY(vkBindImageMemory2),
-		MAKE_VULKAN_ENTRY(vkGetDeviceGroupPeerMemoryFeatures),
-		MAKE_VULKAN_ENTRY(vkCmdSetDeviceMask),
-		MAKE_VULKAN_ENTRY(vkCmdDispatchBase),
-		MAKE_VULKAN_ENTRY(vkEnumeratePhysicalDeviceGroups),
-		MAKE_VULKAN_ENTRY(vkGetImageMemoryRequirements2),
-		MAKE_VULKAN_ENTRY(vkGetBufferMemoryRequirements2),
-		MAKE_VULKAN_ENTRY(vkGetImageSparseMemoryRequirements2),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceFeatures2),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceProperties2),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceFormatProperties2),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceImageFormatProperties2),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceMemoryProperties2),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2),
-		MAKE_VULKAN_ENTRY(vkTrimCommandPool),
-		MAKE_VULKAN_ENTRY(vkGetDeviceQueue2),
-		MAKE_VULKAN_ENTRY(vkCreateSamplerYcbcrConversion),
-		MAKE_VULKAN_ENTRY(vkDestroySamplerYcbcrConversion),
-		MAKE_VULKAN_ENTRY(vkCreateDescriptorUpdateTemplate),
-		MAKE_VULKAN_ENTRY(vkDestroyDescriptorUpdateTemplate),
-		MAKE_VULKAN_ENTRY(vkUpdateDescriptorSetWithTemplate),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceExternalBufferProperties),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceExternalFenceProperties),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceExternalSemaphoreProperties),
-		MAKE_VULKAN_ENTRY(vkGetDescriptorSetLayoutSupport),
-		// VK_KHR_bind_memory2
-		MAKE_VULKAN_ENTRY(vkBindBufferMemory2KHR),
-		MAKE_VULKAN_ENTRY(vkBindImageMemory2KHR),
-		// VK_KHR_descriptor_update_template
-		MAKE_VULKAN_ENTRY(vkCreateDescriptorUpdateTemplateKHR),
-		MAKE_VULKAN_ENTRY(vkDestroyDescriptorUpdateTemplateKHR),
-		MAKE_VULKAN_ENTRY(vkUpdateDescriptorSetWithTemplateKHR),
-		// VK_KHR_device_group
-		MAKE_VULKAN_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHR),
-		MAKE_VULKAN_ENTRY(vkCmdSetDeviceMaskKHR),
-		MAKE_VULKAN_ENTRY(vkCmdDispatchBaseKHR),
-		// VK_KHR_device_group_creation
-		MAKE_VULKAN_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR),
-		// VK_KHR_external_fence_capabilities
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR),
-		// VK_KHR_external_memory_capabilities
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR),
-		// VK_KHR_external_semaphore_capabilities
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR),
-		// VK_KHR_get_memory_requirements2
-		MAKE_VULKAN_ENTRY(vkGetImageMemoryRequirements2KHR),
-		MAKE_VULKAN_ENTRY(vkGetBufferMemoryRequirements2KHR),
-		MAKE_VULKAN_ENTRY(vkGetImageSparseMemoryRequirements2KHR),
-		// VK_KHR_get_physical_device_properties2
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceFeatures2KHR),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceProperties2KHR),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR),
-		MAKE_VULKAN_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR),
-		// VK_KHR_maintenance1
-		MAKE_VULKAN_ENTRY(vkTrimCommandPoolKHR),
-		// VK_KHR_maintenance3
-		MAKE_VULKAN_ENTRY(vkGetDescriptorSetLayoutSupportKHR),
-		// VK_KHR_sampler_ycbcr_conversion
-		MAKE_VULKAN_ENTRY(vkCreateSamplerYcbcrConversionKHR),
-		MAKE_VULKAN_ENTRY(vkDestroySamplerYcbcrConversionKHR),
-	};
-#undef MAKE_VULKAN_ENTRY
 
-	PFN_vkVoidFunction GetProcAddr(const char* pName)
+#define MAKE_VULKAN_GLOBAL_ENTRY(aFunction) { #aFunction, reinterpret_cast<PFN_vkVoidFunction>(aFunction) }
+static const std::unordered_map<std::string, PFN_vkVoidFunction> globalFunctionPointers =
+{
+	MAKE_VULKAN_GLOBAL_ENTRY(vkCreateInstance),
+	MAKE_VULKAN_GLOBAL_ENTRY(vkEnumerateInstanceExtensionProperties),
+	MAKE_VULKAN_GLOBAL_ENTRY(vkEnumerateInstanceLayerProperties),
+	MAKE_VULKAN_GLOBAL_ENTRY(vkEnumerateInstanceVersion),
+};
+#undef MAKE_VULKAN_GLOBAL_ENTRY
+
+#define MAKE_VULKAN_INSTANCE_ENTRY(aFunction) { #aFunction, reinterpret_cast<PFN_vkVoidFunction>(aFunction) }
+static const std::unordered_map<std::string, PFN_vkVoidFunction> instanceFunctionPointers =
+{
+	MAKE_VULKAN_INSTANCE_ENTRY(vkDestroyInstance),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkEnumeratePhysicalDevices),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceFeatures),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceFormatProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceImageFormatProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceMemoryProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkCreateDevice),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkEnumerateDeviceExtensionProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkEnumerateDeviceLayerProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkEnumeratePhysicalDeviceGroups),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceFeatures2),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceProperties2),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceFormatProperties2),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceImageFormatProperties2),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceMemoryProperties2),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceExternalBufferProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceExternalFenceProperties),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceExternalSemaphoreProperties),
+	// VK_KHR_device_group_creation
+	MAKE_VULKAN_INSTANCE_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR),
+	// VK_KHR_external_fence_capabilities
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR),
+	// VK_KHR_external_memory_capabilities
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR),
+	// VK_KHR_external_semaphore_capabilities
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR),
+	// VK_KHR_get_physical_device_properties2
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceFeatures2KHR),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceProperties2KHR),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR),
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR),
+};
+#undef MAKE_VULKAN_GLOBAL_ENTRY
+
+#define MAKE_VULKAN_DEVICE_ENTRY(aFunction) { #aFunction, reinterpret_cast<PFN_vkVoidFunction>(aFunction) }
+static const std::unordered_map<std::string, PFN_vkVoidFunction> deviceFunctionPointers =
+{
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetInstanceProcAddr),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetDeviceProcAddr),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyDevice),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetDeviceQueue),
+	MAKE_VULKAN_DEVICE_ENTRY(vkQueueSubmit),
+	MAKE_VULKAN_DEVICE_ENTRY(vkQueueWaitIdle),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDeviceWaitIdle),
+	MAKE_VULKAN_DEVICE_ENTRY(vkAllocateMemory),
+	MAKE_VULKAN_DEVICE_ENTRY(vkFreeMemory),
+	MAKE_VULKAN_DEVICE_ENTRY(vkMapMemory),
+	MAKE_VULKAN_DEVICE_ENTRY(vkUnmapMemory),
+	MAKE_VULKAN_DEVICE_ENTRY(vkFlushMappedMemoryRanges),
+	MAKE_VULKAN_DEVICE_ENTRY(vkInvalidateMappedMemoryRanges),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetDeviceMemoryCommitment),
+	MAKE_VULKAN_DEVICE_ENTRY(vkBindBufferMemory),
+	MAKE_VULKAN_DEVICE_ENTRY(vkBindImageMemory),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetBufferMemoryRequirements),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetImageMemoryRequirements),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetImageSparseMemoryRequirements),
+	MAKE_VULKAN_DEVICE_ENTRY(vkQueueBindSparse),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateFence),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyFence),
+	MAKE_VULKAN_DEVICE_ENTRY(vkResetFences),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetFenceStatus),
+	MAKE_VULKAN_DEVICE_ENTRY(vkWaitForFences),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateSemaphore),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroySemaphore),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateEvent),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyEvent),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetEventStatus),
+	MAKE_VULKAN_DEVICE_ENTRY(vkSetEvent),
+	MAKE_VULKAN_DEVICE_ENTRY(vkResetEvent),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateQueryPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyQueryPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetQueryPoolResults),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateBufferView),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyBufferView),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetImageSubresourceLayout),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateImageView),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyImageView),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateShaderModule),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyShaderModule),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreatePipelineCache),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyPipelineCache),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetPipelineCacheData),
+	MAKE_VULKAN_DEVICE_ENTRY(vkMergePipelineCaches),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateGraphicsPipelines),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateComputePipelines),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyPipeline),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreatePipelineLayout),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyPipelineLayout),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateSampler),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroySampler),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateDescriptorSetLayout),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyDescriptorSetLayout),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateDescriptorPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyDescriptorPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkResetDescriptorPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkAllocateDescriptorSets),
+	MAKE_VULKAN_DEVICE_ENTRY(vkFreeDescriptorSets),
+	MAKE_VULKAN_DEVICE_ENTRY(vkUpdateDescriptorSets),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateFramebuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyFramebuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateRenderPass),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyRenderPass),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetRenderAreaGranularity),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateCommandPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyCommandPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkResetCommandPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkAllocateCommandBuffers),
+	MAKE_VULKAN_DEVICE_ENTRY(vkFreeCommandBuffers),
+	MAKE_VULKAN_DEVICE_ENTRY(vkBeginCommandBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkEndCommandBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkResetCommandBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdBindPipeline),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetViewport),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetScissor),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetLineWidth),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetDepthBias),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetBlendConstants),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetDepthBounds),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetStencilCompareMask),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetStencilWriteMask),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetStencilReference),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdBindDescriptorSets),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdBindIndexBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdBindVertexBuffers),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDraw),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDrawIndexed),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDrawIndirect),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDrawIndexedIndirect),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDispatch),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDispatchIndirect),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdCopyBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdCopyImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdBlitImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdCopyBufferToImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdCopyImageToBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdUpdateBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdFillBuffer),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdClearColorImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdClearDepthStencilImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdClearAttachments),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdResolveImage),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetEvent),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdResetEvent),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdWaitEvents),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdPipelineBarrier),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdBeginQuery),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdEndQuery),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdResetQueryPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdWriteTimestamp),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdCopyQueryPoolResults),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdPushConstants),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdBeginRenderPass),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdNextSubpass),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdEndRenderPass),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdExecuteCommands),
+	MAKE_VULKAN_DEVICE_ENTRY(vkBindBufferMemory2),
+	MAKE_VULKAN_DEVICE_ENTRY(vkBindImageMemory2),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetDeviceGroupPeerMemoryFeatures),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetDeviceMask),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDispatchBase),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetImageMemoryRequirements2),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetBufferMemoryRequirements2),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetImageSparseMemoryRequirements2),
+	MAKE_VULKAN_DEVICE_ENTRY(vkTrimCommandPool),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetDeviceQueue2),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateSamplerYcbcrConversion),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroySamplerYcbcrConversion),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateDescriptorUpdateTemplate),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyDescriptorUpdateTemplate),
+	MAKE_VULKAN_DEVICE_ENTRY(vkUpdateDescriptorSetWithTemplate),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetDescriptorSetLayoutSupport),
+	// VK_KHR_descriptor_update_template
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateDescriptorUpdateTemplateKHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroyDescriptorUpdateTemplateKHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkUpdateDescriptorSetWithTemplateKHR),
+	// VK_KHR_device_group
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdSetDeviceMaskKHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkCmdDispatchBaseKHR),
+	// VK_KHR_maintenance1
+	MAKE_VULKAN_DEVICE_ENTRY(vkTrimCommandPoolKHR),
+	// VK_KHR_sampler_ycbcr_conversion
+	MAKE_VULKAN_DEVICE_ENTRY(vkCreateSamplerYcbcrConversionKHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkDestroySamplerYcbcrConversionKHR),
+	// VK_KHR_bind_memory2
+	MAKE_VULKAN_DEVICE_ENTRY(vkBindBufferMemory2KHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkBindImageMemory2KHR),
+	// VK_KHR_get_memory_requirements2
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetImageMemoryRequirements2KHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetBufferMemoryRequirements2KHR),
+	MAKE_VULKAN_DEVICE_ENTRY(vkGetImageSparseMemoryRequirements2KHR),
+	// VK_KHR_maintenance3
+	MAKE_VULKAN_INSTANCE_ENTRY(vkGetDescriptorSetLayoutSupportKHR),
+};
+#undef MAKE_VULKAN_DEVICE_ENTRY
+
+PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName)
+{
+	auto globalFunction = globalFunctionPointers.find(std::string(pName));
+	if(globalFunction != globalFunctionPointers.end())
 	{
-		auto pFunc = func_ptrs.find(std::string(pName));
-		return (pFunc == func_ptrs.end()) ? nullptr : pFunc->second;
+		return globalFunction->second;
 	}
+
+	if(instance != VK_NULL_HANDLE)
+	{
+		auto instanceFunction = instanceFunctionPointers.find(std::string(pName));
+		if(instanceFunction != instanceFunctionPointers.end())
+		{
+			return instanceFunction->second;
+		}
+
+		auto deviceFunction = deviceFunctionPointers.find(std::string(pName));
+		if(deviceFunction != deviceFunctionPointers.end())
+		{
+			return deviceFunction->second;
+		}
+	}
+
+	return nullptr;
+}
+
+PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName)
+{
+	auto deviceFunction = deviceFunctionPointers.find(std::string(pName));
+	if(deviceFunction != deviceFunctionPointers.end())
+	{
+		return deviceFunction->second;
+	}
+
+	return nullptr;
+}
+
 }
diff --git a/src/Vulkan/VkGetProcAddress.h b/src/Vulkan/VkGetProcAddress.h
index c8bfc35..2d5ba5f 100644
--- a/src/Vulkan/VkGetProcAddress.h
+++ b/src/Vulkan/VkGetProcAddress.h
@@ -19,7 +19,8 @@
 
 namespace vk
 {
-	PFN_vkVoidFunction GetProcAddr(const char* pName);
+PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName);
+PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName);
 }
 
 #endif // VK_UTILS_HPP_
\ No newline at end of file
diff --git a/src/Vulkan/libVulkan.cpp b/src/Vulkan/libVulkan.cpp
index 21466db..57716be 100644
--- a/src/Vulkan/libVulkan.cpp
+++ b/src/Vulkan/libVulkan.cpp
@@ -45,7 +45,9 @@
 {
 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName)
 {
-	return vk::GetProcAddr(pName);
+	TRACE("(VkInstance instance = 0x%X, const char* pName = 0x%X)", instance, pName);
+
+	return vk::GetInstanceProcAddr(instance, pName);
 }
 
 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance)
@@ -186,13 +188,15 @@
 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char* pName)
 {
 	TRACE("(VkInstance instance = 0x%X, const char* pName = 0x%X)", instance, pName);
-	return vk::GetProcAddr(pName);
+
+	return vk::GetInstanceProcAddr(instance, pName);
 }
 
 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice device, const char* pName)
 {
 	TRACE("(VkDevice device = 0x%X, const char* pName = 0x%X)", device, pName);
-	return vk::GetProcAddr(pName);
+
+	return vk::GetDeviceProcAddr(device, pName);
 }
 
 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
diff --git a/tests/VulkanUnitTests/unittests.cpp b/tests/VulkanUnitTests/unittests.cpp
index cf4e8e9..dfde2f8 100644
--- a/tests/VulkanUnitTests/unittests.cpp
+++ b/tests/VulkanUnitTests/unittests.cpp
@@ -58,218 +58,21 @@
 	vk_icdGetInstanceProcAddrPtr vk_icdGetInstanceProcAddr = nullptr;
 };
 
-TEST_F(SwiftShaderVulkanTest, API_Check)
+TEST_F(SwiftShaderVulkanTest, ICD_Check)
 {
 	if(vk_icdGetInstanceProcAddr)
 	{
-		#define API_CHECK(function) auto function = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, #function); \
-		                            EXPECT_NE(function, nullptr);
+		auto createInstance = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkCreateInstance");
+		EXPECT_NE(createInstance, nullptr);
 
-		API_CHECK(vkCreateInstance);
-		API_CHECK(vkDestroyInstance);
-		API_CHECK(vkEnumeratePhysicalDevices);
-		API_CHECK(vkGetPhysicalDeviceFeatures);
-		API_CHECK(vkGetPhysicalDeviceFormatProperties);
-		API_CHECK(vkGetPhysicalDeviceImageFormatProperties);
-		API_CHECK(vkGetPhysicalDeviceProperties);
-		API_CHECK(vkGetPhysicalDeviceQueueFamilyProperties);
-		API_CHECK(vkGetPhysicalDeviceMemoryProperties);
-		API_CHECK(vkGetInstanceProcAddr);
-		API_CHECK(vkGetDeviceProcAddr);
-		API_CHECK(vkCreateDevice);
-		API_CHECK(vkDestroyDevice);
-		API_CHECK(vkEnumerateInstanceExtensionProperties);
-		API_CHECK(vkEnumerateDeviceExtensionProperties);
-		API_CHECK(vkEnumerateInstanceLayerProperties);
-		API_CHECK(vkEnumerateDeviceLayerProperties);
-		API_CHECK(vkGetDeviceQueue);
-		API_CHECK(vkQueueSubmit);
-		API_CHECK(vkQueueWaitIdle);
-		API_CHECK(vkDeviceWaitIdle);
-		API_CHECK(vkAllocateMemory);
-		API_CHECK(vkFreeMemory);
-		API_CHECK(vkMapMemory);
-		API_CHECK(vkUnmapMemory);
-		API_CHECK(vkFlushMappedMemoryRanges);
-		API_CHECK(vkInvalidateMappedMemoryRanges);
-		API_CHECK(vkGetDeviceMemoryCommitment);
-		API_CHECK(vkBindBufferMemory);
-		API_CHECK(vkBindImageMemory);
-		API_CHECK(vkGetBufferMemoryRequirements);
-		API_CHECK(vkGetImageMemoryRequirements);
-		API_CHECK(vkGetImageSparseMemoryRequirements);
-		API_CHECK(vkGetPhysicalDeviceSparseImageFormatProperties);
-		API_CHECK(vkQueueBindSparse);
-		API_CHECK(vkCreateFence);
-		API_CHECK(vkDestroyFence);
-		API_CHECK(vkResetFences);
-		API_CHECK(vkGetFenceStatus);
-		API_CHECK(vkWaitForFences);
-		API_CHECK(vkCreateSemaphore);
-		API_CHECK(vkDestroySemaphore);
-		API_CHECK(vkCreateEvent);
-		API_CHECK(vkDestroyEvent);
-		API_CHECK(vkGetEventStatus);
-		API_CHECK(vkSetEvent);
-		API_CHECK(vkResetEvent);
-		API_CHECK(vkCreateQueryPool);
-		API_CHECK(vkDestroyQueryPool);
-		API_CHECK(vkGetQueryPoolResults);
-		API_CHECK(vkCreateBuffer);
-		API_CHECK(vkDestroyBuffer);
-		API_CHECK(vkCreateBufferView);
-		API_CHECK(vkDestroyBufferView);
-		API_CHECK(vkCreateImage);
-		API_CHECK(vkDestroyImage);
-		API_CHECK(vkGetImageSubresourceLayout);
-		API_CHECK(vkCreateImageView);
-		API_CHECK(vkDestroyImageView);
-		API_CHECK(vkCreateShaderModule);
-		API_CHECK(vkDestroyShaderModule);
-		API_CHECK(vkCreatePipelineCache);
-		API_CHECK(vkDestroyPipelineCache);
-		API_CHECK(vkGetPipelineCacheData);
-		API_CHECK(vkMergePipelineCaches);
-		API_CHECK(vkCreateGraphicsPipelines);
-		API_CHECK(vkCreateComputePipelines);
-		API_CHECK(vkDestroyPipeline);
-		API_CHECK(vkCreatePipelineLayout);
-		API_CHECK(vkDestroyPipelineLayout);
-		API_CHECK(vkCreateSampler);
-		API_CHECK(vkDestroySampler);
-		API_CHECK(vkCreateDescriptorSetLayout);
-		API_CHECK(vkDestroyDescriptorSetLayout);
-		API_CHECK(vkCreateDescriptorPool);
-		API_CHECK(vkDestroyDescriptorPool);
-		API_CHECK(vkResetDescriptorPool);
-		API_CHECK(vkAllocateDescriptorSets);
-		API_CHECK(vkFreeDescriptorSets);
-		API_CHECK(vkUpdateDescriptorSets);
-		API_CHECK(vkCreateFramebuffer);
-		API_CHECK(vkDestroyFramebuffer);
-		API_CHECK(vkCreateRenderPass);
-		API_CHECK(vkDestroyRenderPass);
-		API_CHECK(vkGetRenderAreaGranularity);
-		API_CHECK(vkCreateCommandPool);
-		API_CHECK(vkDestroyCommandPool);
-		API_CHECK(vkResetCommandPool);
-		API_CHECK(vkAllocateCommandBuffers);
-		API_CHECK(vkFreeCommandBuffers);
-		API_CHECK(vkBeginCommandBuffer);
-		API_CHECK(vkEndCommandBuffer);
-		API_CHECK(vkResetCommandBuffer);
-		API_CHECK(vkCmdBindPipeline);
-		API_CHECK(vkCmdSetViewport);
-		API_CHECK(vkCmdSetScissor);
-		API_CHECK(vkCmdSetLineWidth);
-		API_CHECK(vkCmdSetDepthBias);
-		API_CHECK(vkCmdSetBlendConstants);
-		API_CHECK(vkCmdSetDepthBounds);
-		API_CHECK(vkCmdSetStencilCompareMask);
-		API_CHECK(vkCmdSetStencilWriteMask);
-		API_CHECK(vkCmdSetStencilReference);
-		API_CHECK(vkCmdBindDescriptorSets);
-		API_CHECK(vkCmdBindIndexBuffer);
-		API_CHECK(vkCmdBindVertexBuffers);
-		API_CHECK(vkCmdDraw);
-		API_CHECK(vkCmdDrawIndexed);
-		API_CHECK(vkCmdDrawIndirect);
-		API_CHECK(vkCmdDrawIndexedIndirect);
-		API_CHECK(vkCmdDispatch);
-		API_CHECK(vkCmdDispatchIndirect);
-		API_CHECK(vkCmdCopyBuffer);
-		API_CHECK(vkCmdCopyImage);
-		API_CHECK(vkCmdBlitImage);
-		API_CHECK(vkCmdCopyBufferToImage);
-		API_CHECK(vkCmdCopyImageToBuffer);
-		API_CHECK(vkCmdUpdateBuffer);
-		API_CHECK(vkCmdFillBuffer);
-		API_CHECK(vkCmdClearColorImage);
-		API_CHECK(vkCmdClearDepthStencilImage);
-		API_CHECK(vkCmdClearAttachments);
-		API_CHECK(vkCmdResolveImage);
-		API_CHECK(vkCmdSetEvent);
-		API_CHECK(vkCmdResetEvent);
-		API_CHECK(vkCmdWaitEvents);
-		API_CHECK(vkCmdPipelineBarrier);
-		API_CHECK(vkCmdBeginQuery);
-		API_CHECK(vkCmdEndQuery);
-		API_CHECK(vkCmdResetQueryPool);
-		API_CHECK(vkCmdWriteTimestamp);
-		API_CHECK(vkCmdCopyQueryPoolResults);
-		API_CHECK(vkCmdPushConstants);
-		API_CHECK(vkCmdBeginRenderPass);
-		API_CHECK(vkCmdNextSubpass);
-		API_CHECK(vkCmdEndRenderPass);
-		API_CHECK(vkCmdExecuteCommands);
-		API_CHECK(vkEnumerateInstanceVersion);
-		API_CHECK(vkBindBufferMemory2);
-		API_CHECK(vkBindImageMemory2);
-		API_CHECK(vkGetDeviceGroupPeerMemoryFeatures);
-		API_CHECK(vkCmdSetDeviceMask);
-		API_CHECK(vkCmdDispatchBase);
-		API_CHECK(vkEnumeratePhysicalDeviceGroups);
-		API_CHECK(vkGetImageMemoryRequirements2);
-		API_CHECK(vkGetBufferMemoryRequirements2);
-		API_CHECK(vkGetImageSparseMemoryRequirements2);
-		API_CHECK(vkGetPhysicalDeviceFeatures2);
-		API_CHECK(vkGetPhysicalDeviceProperties2);
-		API_CHECK(vkGetPhysicalDeviceFormatProperties2);
-		API_CHECK(vkGetPhysicalDeviceImageFormatProperties2);
-		API_CHECK(vkGetPhysicalDeviceQueueFamilyProperties2);
-		API_CHECK(vkGetPhysicalDeviceMemoryProperties2);
-		API_CHECK(vkGetPhysicalDeviceSparseImageFormatProperties2);
-		API_CHECK(vkTrimCommandPool);
-		API_CHECK(vkGetDeviceQueue2);
-		API_CHECK(vkCreateSamplerYcbcrConversion);
-		API_CHECK(vkDestroySamplerYcbcrConversion);
-		API_CHECK(vkCreateDescriptorUpdateTemplate);
-		API_CHECK(vkDestroyDescriptorUpdateTemplate);
-		API_CHECK(vkUpdateDescriptorSetWithTemplate);
-		API_CHECK(vkGetPhysicalDeviceExternalBufferProperties);
-		API_CHECK(vkGetPhysicalDeviceExternalFenceProperties);
-		API_CHECK(vkGetPhysicalDeviceExternalSemaphoreProperties);
-		API_CHECK(vkGetDescriptorSetLayoutSupport);
-		// VK_KHR_bind_memory2
-		API_CHECK(vkBindBufferMemory2KHR);
-		API_CHECK(vkBindImageMemory2KHR);
-		// VK_KHR_descriptor_update_template
-		API_CHECK(vkCreateDescriptorUpdateTemplateKHR);
-		API_CHECK(vkDestroyDescriptorUpdateTemplateKHR);
-		API_CHECK(vkUpdateDescriptorSetWithTemplateKHR);
-		// VK_KHR_device_group
-		API_CHECK(vkGetDeviceGroupPeerMemoryFeaturesKHR);
-		API_CHECK(vkCmdSetDeviceMaskKHR);
-		API_CHECK(vkCmdDispatchBaseKHR);
-		// VK_KHR_device_group_creation
-		API_CHECK(vkEnumeratePhysicalDeviceGroupsKHR);
-		// VK_KHR_external_fence_capabilities
-		API_CHECK(vkGetPhysicalDeviceExternalFencePropertiesKHR);
-		// VK_KHR_external_memory_capabilities
-		API_CHECK(vkGetPhysicalDeviceExternalBufferPropertiesKHR);
-		// VK_KHR_external_semaphore_capabilities
-		API_CHECK(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR);
-		// VK_KHR_get_memory_requirements2
-		API_CHECK(vkGetImageMemoryRequirements2KHR);
-		API_CHECK(vkGetBufferMemoryRequirements2KHR);
-		API_CHECK(vkGetImageSparseMemoryRequirements2KHR);
-		// VK_KHR_get_physical_device_properties2
-		API_CHECK(vkGetPhysicalDeviceFeatures2KHR);
-		API_CHECK(vkGetPhysicalDeviceProperties2KHR);
-		API_CHECK(vkGetPhysicalDeviceFormatProperties2KHR);
-		API_CHECK(vkGetPhysicalDeviceImageFormatProperties2KHR);
-		API_CHECK(vkGetPhysicalDeviceQueueFamilyProperties2KHR);
-		API_CHECK(vkGetPhysicalDeviceMemoryProperties2KHR);
-		API_CHECK(vkGetPhysicalDeviceSparseImageFormatProperties2KHR);
-		// VK_KHR_maintenance1
-		API_CHECK(vkTrimCommandPoolKHR);
-		// VK_KHR_maintenance3
-		API_CHECK(vkGetDescriptorSetLayoutSupportKHR);
-		// VK_KHR_sampler_ycbcr_conversion
-		API_CHECK(vkCreateSamplerYcbcrConversionKHR);
-		API_CHECK(vkDestroySamplerYcbcrConversionKHR);
+		auto enumerateInstanceExtensionProperties = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties");
+		EXPECT_NE(enumerateInstanceExtensionProperties, nullptr);
 
-		#undef API_CHECK
+		auto enumerateInstanceLayerProperties = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceLayerProperties");
+		EXPECT_NE(enumerateInstanceLayerProperties, nullptr);
+
+		auto enumerateInstanceVersion = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion");
+		EXPECT_NE(enumerateInstanceVersion, nullptr);
 
 		auto bad_function = vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "bad_function");
 		EXPECT_EQ(bad_function, nullptr);
@@ -278,6 +81,10 @@
 
 TEST_F(SwiftShaderVulkanTest, Version)
 {
+	uint32_t apiVersion = 0;
+	VkResult result = vkEnumerateInstanceVersion(&apiVersion);
+	EXPECT_EQ(apiVersion, VK_API_VERSION_1_1);
+
 	const VkInstanceCreateInfo createInfo =
 	{
 		VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, // sType
@@ -289,8 +96,8 @@
 		0,       // enabledExtensionCount
 		nullptr, // ppEnabledExtensionNames
 	};
-	VkInstance instance;
-	VkResult result = vkCreateInstance(&createInfo, nullptr, &instance);
+	VkInstance instance = VK_NULL_HANDLE;
+	result = vkCreateInstance(&createInfo, nullptr, &instance);
 	EXPECT_EQ(result, VK_SUCCESS);
 
 	uint32_t pPhysicalDeviceCount = 0;
