diff --git a/icd/nulldrv/VK_nulldrv.def b/icd/nulldrv/VK_nulldrv.def
index 604416f..cae2478 100644
--- a/icd/nulldrv/VK_nulldrv.def
+++ b/icd/nulldrv/VK_nulldrv.def
@@ -26,12 +26,10 @@
 
 LIBRARY VK_nulldrv
 EXPORTS
-   vkGetProcAddr
    vkCreateInstance
    vkDestroyInstance
    vkEnumeratePhysicalDevices
    vkGetGlobalExtensionProperties
-   vkGetGlobalExtensionCount
    xcbCreateWindow
    xcbDestroyWindow
    xcbGetMessage
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index 4806521..317a0c6 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -981,6 +981,41 @@
     NULLDRV_LOG_FUNC;
 }
 
+ICD_EXPORT void VKAPI vkCmdClearDepthStencilImage(
+    VkCmdBuffer                              cmdBuffer,
+    VkImage                                   image,
+    VkImageLayout                            imageLayout,
+    float                                       depth,
+    uint32_t                                    stencil,
+    uint32_t                                    rangeCount,
+    const VkImageSubresourceRange*          pRanges)
+{
+    NULLDRV_LOG_FUNC;
+}
+
+ICD_EXPORT void VKAPI vkCmdClearColorAttachment(
+    VkCmdBuffer                             cmdBuffer,
+    uint32_t                                colorAttachment,
+    VkImageLayout                           imageLayout,
+    const VkClearColorValue                *pColor,
+    uint32_t                                rectCount,
+    const VkRect3D                         *pRects)
+{
+    NULLDRV_LOG_FUNC;
+}
+
+ICD_EXPORT void VKAPI vkCmdClearDepthStencilAttachment(
+    VkCmdBuffer                             cmdBuffer,
+    VkImageAspectFlags                      imageAspectMask,
+    VkImageLayout                           imageLayout,
+    float                                   depth,
+    uint32_t                                stencil,
+    uint32_t                                rectCount,
+    const VkRect3D                         *pRects)
+{
+    NULLDRV_LOG_FUNC;
+}
+
 ICD_EXPORT void VKAPI vkCmdClearColorImage(
     VkCmdBuffer                         cmdBuffer,
     VkImage                             image,
@@ -1408,6 +1443,23 @@
     return VK_SUCCESS;
 }
 
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceMemoryProperties(
+    VkPhysicalDevice gpu_,
+    VkPhysicalDeviceMemoryProperties* pProperties)
+{
+    // TODO: Fill in with real data
+    return VK_SUCCESS;
+}
+
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceLayerProperties(
+        VkPhysicalDevice                            physicalDevice,
+        uint32_t*                                   pCount,
+        VkLayerProperties*                          pProperties)
+{
+    // TODO: Fill in with real data
+    return VK_SUCCESS;
+}
+
 ICD_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
     const char*                                 pLayerName,
     uint32_t*                                   pCount,
@@ -1432,6 +1484,13 @@
     }
     return VK_SUCCESS;
 }
+ICD_EXPORT VkResult VKAPI vkGetGlobalLayerProperties(
+        uint32_t*                                   pCount,
+        VkLayerProperties*                          pProperties)
+{
+    // TODO: Fill in with real data
+    return VK_SUCCESS;
+}
 
 VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
     VkPhysicalDevice                            physicalDevice,
@@ -1787,6 +1846,15 @@
             (struct nulldrv_sampler **) pSampler);
 }
 
+ICD_EXPORT VkResult VKAPI vkCreateShaderModule(
+    VkDevice                                    device,
+    const VkShaderModuleCreateInfo*             pCreateInfo,
+    VkShaderModule*                             pShaderModule)
+{
+    // TODO: Fill in with real data
+    return VK_SUCCESS;
+}
+
 ICD_EXPORT VkResult VKAPI vkCreateShader(
         VkDevice                                  device,
         const VkShaderCreateInfo*               pCreateInfo,
