vulkan.h: V136 -- Vulkan Sparse Resource Issues

Totally reworked sparse resources.  This commit also incorporates the
changes for bug 14237.
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 8d53751..1f55e38 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -2888,10 +2888,8 @@
 void PostQueueBindSparseBufferMemory(
     VkQueue queue,
     VkBuffer buffer,
-    VkDeviceSize rangeOffset,
-    VkDeviceSize rangeSize,
-    VkDeviceMemory mem,
-    VkDeviceSize memOffset,
+    uint32_t numBindings,
+    const VkSparseMemoryBindInfo* pBindInfo,
     VkResult result)
 {
     if(queue == nullptr)
@@ -2908,16 +2906,6 @@
         return;
     }
 
-
-
-    if(mem == nullptr)
-    {
-        log_msg(mdd(queue), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK",
-        "vkQueueBindSparseBufferMemory parameter, VkDeviceMemory mem, is null pointer");
-        return;
-    }
-
-
     if(result != VK_SUCCESS)
     {
         std::string reason = "vkQueueBindSparseBufferMemory parameter, VkResult result, is " + EnumeratorString(result);
@@ -2927,24 +2915,22 @@
 }
 
 VK_LAYER_EXPORT VkResult VKAPI vkQueueBindSparseBufferMemory(
-    VkQueue queue,
-    VkBuffer buffer,
-    VkDeviceSize rangeOffset,
-    VkDeviceSize rangeSize,
-    VkDeviceMemory mem,
-    VkDeviceSize memOffset)
+    VkQueue                       queue,
+    VkBuffer                      buffer,
+    uint32_t                      numBindings,
+    const VkSparseMemoryBindInfo* pBindInfo)
 {
     PreQueueBindSparseBufferMemory(queue);
-    VkResult result = get_dispatch_table(pc_device_table_map, queue)->QueueBindSparseBufferMemory(queue, buffer, rangeOffset, rangeSize, mem, memOffset);
+    VkResult result = get_dispatch_table(pc_device_table_map, queue)->QueueBindSparseBufferMemory(queue, buffer, numBindings, pBindInfo);
 
-    PostQueueBindSparseBufferMemory(queue, buffer, rangeOffset, rangeSize, mem, memOffset, result);
+    PostQueueBindSparseBufferMemory(queue, buffer, numBindings, pBindInfo, result);
 
     return result;
 }
 
 void PreQueueBindSparseImageMemory(
     VkQueue queue,
-    const VkImageMemoryBindInfo* pBindInfo)
+    const VkSparseImageMemoryBindInfo* pBindInfo)
 {
     if(queue == nullptr)
     {
@@ -2959,13 +2945,6 @@
         "vkQueueBindSparseImageMemory parameter, const VkImageMemoryBindInfo* pBindInfo, is null pointer");
         return;
     }
-    if(pBindInfo->subresource.aspect < VK_IMAGE_ASPECT_BEGIN_RANGE ||
-        pBindInfo->subresource.aspect > VK_IMAGE_ASPECT_END_RANGE)
-    {
-        log_msg(mdd(queue), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK",
-        "vkQueueBindSparseImageMemory parameter, VkImageAspect pBindInfo->subresource.aspect, is unrecognized enumerator");
-        return;
-    }
 }
 
 void PostQueueBindSparseImageMemory(
@@ -3006,16 +2985,15 @@
 }
 
 VK_LAYER_EXPORT VkResult VKAPI vkQueueBindSparseImageMemory(
-    VkQueue queue,
-    VkImage image,
-    const VkImageMemoryBindInfo* pBindInfo,
-    VkDeviceMemory mem,
-    VkDeviceSize memOffset)
+    VkQueue                            queue,
+    VkImage                            image,
+    uint32_t                           numBindings,
+    const VkSparseImageMemoryBindInfo* pBindInfo)
 {
     PreQueueBindSparseImageMemory(queue, pBindInfo);
-    VkResult result = get_dispatch_table(pc_device_table_map, queue)->QueueBindSparseImageMemory(queue, image, pBindInfo, mem, memOffset);
+    VkResult result = get_dispatch_table(pc_device_table_map, queue)->QueueBindSparseImageMemory(queue, image, numBindings, pBindInfo);
 
-    PostQueueBindSparseImageMemory(queue, image, mem, memOffset, result);
+    PostQueueBindSparseImageMemory(queue, image, pBindInfo->mem, pBindInfo->memOffset, result);
 
     return result;
 }