vulkan.h: V100 -- Remove vkClearDescriptorSets, Bug# 13783

Conflicts:
	layers/draw_state.cpp
diff --git a/demos/cube.c b/demos/cube.c
index 737745a..b06674d 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -1526,8 +1526,6 @@
             &demo->desc_set, &count);
     assert(!err && count == 1);
 
-    vkClearDescriptorSets(demo->device, demo->desc_pool, 1, &demo->desc_set);
-
     memset(&tex_descs, 0, sizeof(tex_descs));
     for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
         tex_descs[i].sampler = demo->textures[i].sampler;
diff --git a/demos/tri.c b/demos/tri.c
index 6e7a44c..be151a7 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -1142,8 +1142,6 @@
             &demo->desc_set, &count);
     assert(!err && count == 1);
 
-    vkClearDescriptorSets(demo->device, demo->desc_pool, 1, &demo->desc_set);
-
     memset(&tex_descs, 0, sizeof(tex_descs));
     for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
         tex_descs[i].sampler = demo->textures[i].sampler;
diff --git a/icd/intel/desc.c b/icd/intel/desc.c
index 9c863cd..7008ee9 100644
--- a/icd/intel/desc.c
+++ b/icd/intel/desc.c
@@ -261,31 +261,6 @@
     /* is it ok not to reclaim? */
 }
 
-void intel_desc_region_clear(struct intel_desc_region *region,
-                             const struct intel_desc_offset *begin,
-                             const struct intel_desc_offset *end)
-{
-    uint32_t i;
-
-    desc_region_validate_begin_end(region, begin, end);
-
-    for (i = begin->surface; i < end->surface; i += region->surface_desc_size) {
-        struct intel_desc_surface *desc = (struct intel_desc_surface *)
-            ((char *) region->surfaces + i);
-
-        desc->mem = NULL;
-        desc->type = INTEL_DESC_SURFACE_UNUSED;
-        desc->u.unused = NULL;
-    }
-
-    for (i = begin->sampler; i < end->sampler; i += region->sampler_desc_size) {
-        struct intel_desc_sampler *desc = (struct intel_desc_sampler *)
-            ((char *) region->samplers + i);
-
-        desc->sampler = NULL;
-    }
-}
-
 void intel_desc_region_update(struct intel_desc_region *region,
                               const struct intel_desc_offset *begin,
                               const struct intel_desc_offset *end,
@@ -851,22 +826,6 @@
     return ret;
 }
 
-ICD_EXPORT void VKAPI vkClearDescriptorSets(
-    VkDevice                                  device,
-    VkDescriptorPool                          descriptorPool,
-    uint32_t                                     count,
-    const VkDescriptorSet*                    pDescriptorSets)
-{
-    uint32_t i;
-
-    for (i = 0; i < count; i++) {
-        struct intel_desc_set *set =
-            intel_desc_set((VkDescriptorSet) pDescriptorSets[i]);
-
-        intel_desc_region_clear(set->region, &set->region_begin, &set->region_end);
-    }
-}
-
 ICD_EXPORT VkResult VKAPI vkUpdateDescriptorSets(
     VkDevice                                    device,
     uint32_t                                    writeCount,
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index 5a62a40..ff0a901 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -2174,15 +2174,6 @@
     return ret;
 }
 
-ICD_EXPORT void VKAPI vkClearDescriptorSets(
-    VkDevice                                device,
-    VkDescriptorPool                        descriptorPool,
-    uint32_t                                     count,
-    const VkDescriptorSet*                    pDescriptorSets)
-{
-    NULLDRV_LOG_FUNC;
-}
-
 ICD_EXPORT VkResult VKAPI vkUpdateDescriptorSets(
     VkDevice                                    device,
     uint32_t                                    writeCount,
diff --git a/include/vkLayer.h b/include/vkLayer.h
index 209a088..bdbb8e9 100644
--- a/include/vkLayer.h
+++ b/include/vkLayer.h
@@ -83,7 +83,6 @@
     PFN_vkCreateDescriptorPool CreateDescriptorPool;
     PFN_vkResetDescriptorPool ResetDescriptorPool;
     PFN_vkAllocDescriptorSets AllocDescriptorSets;
-    PFN_vkClearDescriptorSets ClearDescriptorSets;
     PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
     PFN_vkCreateDynamicViewportState CreateDynamicViewportState;
     PFN_vkCreateDynamicRasterState CreateDynamicRasterState;
diff --git a/include/vulkan.h b/include/vulkan.h
index 6ea3001..995d7a4 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -33,7 +33,7 @@
 #include "vk_platform.h"
 
 // Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 99, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 100, 0)
 
 #ifdef __cplusplus
 extern "C"
@@ -2124,7 +2124,6 @@
 typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, VkDescriptorPoolUsage poolUsage, uint32_t maxSets, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
 typedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
 typedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets, uint32_t* pCount);
-typedef void     (VKAPI *PFN_vkClearDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
 typedef VkResult (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
 typedef VkResult (VKAPI *PFN_vkCreateDynamicViewportState)(VkDevice device, const VkDynamicVpStateCreateInfo* pCreateInfo, VkDynamicVpState* pState);
 typedef VkResult (VKAPI *PFN_vkCreateDynamicRasterState)(VkDevice device, const VkDynamicRsStateCreateInfo* pCreateInfo, VkDynamicRsState* pState);
@@ -2559,12 +2558,6 @@
     VkDescriptorSet*                            pDescriptorSets,
     uint32_t*                                   pCount);
 
-void VKAPI vkClearDescriptorSets(
-    VkDevice                                    device,
-    VkDescriptorPool                            descriptorPool,
-    uint32_t                                    count,
-    const VkDescriptorSet*                      pDescriptorSets);
-
 VkResult VKAPI vkUpdateDescriptorSets(
     VkDevice                                    device,
     uint32_t                                    writeCount,
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 07d4086..b071423 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1943,14 +1943,6 @@
     return result;
 }
 
-VK_LAYER_EXPORT void VKAPI vkClearDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets)
-{
-    for (uint32_t i = 0; i < count; i++) {
-        clearDescriptorSet(pDescriptorSets[i]);
-    }
-    get_dispatch_table(draw_state_device_table_map, device)->ClearDescriptorSets(device, descriptorPool, count, pDescriptorSets);
-}
-
 VK_LAYER_EXPORT VkResult VKAPI vkUpdateDescriptorSets(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies)
 {
     if (dsUpdate(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, writeCount, pDescriptorWrites) &&
@@ -2883,8 +2875,6 @@
         return (void*) vkResetDescriptorPool;
     if (!strcmp(funcName, "vkAllocDescriptorSets"))
         return (void*) vkAllocDescriptorSets;
-    if (!strcmp(funcName, "vkClearDescriptorSets"))
-        return (void*) vkClearDescriptorSets;
     if (!strcmp(funcName, "vkUpdateDescriptorSets"))
         return (void*) vkUpdateDescriptorSets;
     if (!strcmp(funcName, "vkCreateDynamicViewportState"))
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 20608ed..eeea84b 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -1061,12 +1061,6 @@
     return result;
 }
 
-VK_LAYER_EXPORT void VKAPI vkClearDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets)
-{
-
-    device_dispatch_table(device)->ClearDescriptorSets(device, descriptorPool, count, pDescriptorSets);
-}
-
 VK_LAYER_EXPORT VkResult VKAPI vkUpdateDescriptorSets(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies)
 {
 
@@ -2067,8 +2061,6 @@
         return (void*) vkResetDescriptorPool;
     if (!strcmp(name, "AllocDescriptorSets"))
         return (void*) vkAllocDescriptorSets;
-    if (!strcmp(name, "ClearDescriptorSets"))
-        return (void*) vkClearDescriptorSets;
     if (!strcmp(name, "CreateDynamicViewportState"))
         return (void*) vkCreateDynamicViewportState;
     if (!strcmp(name, "CreateDynamicRasterState"))
diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h
index 3b2d098..20b0b51 100644
--- a/loader/gpa_helper.h
+++ b/loader/gpa_helper.h
@@ -159,8 +159,6 @@
         return (void*) vkResetDescriptorPool;
     if (!strcmp(name, "AllocDescriptorSets"))
         return (void*) vkAllocDescriptorSets;
-    if (!strcmp(name, "ClearDescriptorSets"))
-        return (void*) vkClearDescriptorSets;
     if (!strcmp(name, "UpdateDescriptorSets"))
         return (void*) vkUpdateDescriptorSets;
     if (!strcmp(name, "CreateDynamicViewportState"))
diff --git a/loader/table_ops.h b/loader/table_ops.h
index d7dcdf8..a2c67c3 100644
--- a/loader/table_ops.h
+++ b/loader/table_ops.h
@@ -91,7 +91,6 @@
     table->CreateDescriptorPool = (PFN_vkCreateDescriptorPool) gpa(dev, "vkCreateDescriptorPool");
     table->ResetDescriptorPool = (PFN_vkResetDescriptorPool) gpa(dev, "vkResetDescriptorPool");
     table->AllocDescriptorSets = (PFN_vkAllocDescriptorSets) gpa(dev, "vkAllocDescriptorSets");
-    table->ClearDescriptorSets = (PFN_vkClearDescriptorSets) gpa(dev, "vkClearDescriptorSets");
     table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) gpa(dev, "vkUpdateDescriptorSets");
     table->CreateDynamicViewportState = (PFN_vkCreateDynamicViewportState) gpa(dev, "vkCreateDynamicViewportState");
     table->CreateDynamicRasterState = (PFN_vkCreateDynamicRasterState) gpa(dev, "vkCreateDynamicRasterState");
@@ -265,8 +264,6 @@
         return (void *) table->ResetDescriptorPool;
     if (!strcmp(name, "AllocDescriptorSets"))
         return (void *) table->AllocDescriptorSets;
-    if (!strcmp(name, "ClearDescriptorSets"))
-        return (void *) table->ClearDescriptorSets;
     if (!strcmp(name, "UpdateDescriptorSets"))
         return (void *) table->UpdateDescriptorSets;
     if (!strcmp(name, "CreateDynamicViewportState"))
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 5392b11..3361af4 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -716,15 +716,6 @@
     return disp->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets, pCount);
 }
 
-LOADER_EXPORT void VKAPI vkClearDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets)
-{
-    const VkLayerDispatchTable *disp;
-
-    disp = loader_get_dispatch(device);
-
-    disp->ClearDescriptorSets(device, descriptorPool, count, pDescriptorSets);
-}
-
 LOADER_EXPORT VkResult VKAPI vkUpdateDescriptorSets(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies)
 {
     const VkLayerDispatchTable *disp;
diff --git a/loader/vulkan.def b/loader/vulkan.def
index e6c6930..ef4ac1b 100644
--- a/loader/vulkan.def
+++ b/loader/vulkan.def
@@ -90,7 +90,6 @@
    vkCreateDescriptorPool
    vkResetDescriptorPool
    vkAllocDescriptorSets
-   vkClearDescriptorSets
    vkUpdateDescriptorSets
    vkCreateDynamicViewportState
    vkCreateDynamicRasterState
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 5dc2c43..baca55f 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -513,7 +513,6 @@
     }
 
     // do the updates
-    clear_sets(*m_set);
     m_device->update_descriptor_sets(m_writes);
 }
 
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index e3c06fa..42da8c0 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -857,12 +857,6 @@
     return (set.empty()) ? NULL : set[0];
 }
 
-void DescriptorPool::clear_sets(const std::vector<DescriptorSet *> &sets)
-{
-    const std::vector<VkDescriptorSet> set_objs = make_objects<VkDescriptorSet>(sets);
-    vkClearDescriptorSets(dev_->obj(), obj(), set_objs.size(), &set_objs[0]);
-}
-
 void DynamicVpStateObject::init(const Device &dev, const VkDynamicVpStateCreateInfo &info)
 {
     DERIVED_OBJECT_TYPE_INIT(vkCreateDynamicViewportState, dev, VK_OBJECT_TYPE_DYNAMIC_VP_STATE, &info);
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 87cbe32..77d7f89 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -554,10 +554,6 @@
     std::vector<DescriptorSet *> alloc_sets(const Device &dev, VkDescriptorSetUsage usage, const std::vector<const DescriptorSetLayout *> &layouts);
     std::vector<DescriptorSet *> alloc_sets(const Device &dev, VkDescriptorSetUsage usage, const DescriptorSetLayout &layout, uint32_t count);
     DescriptorSet *alloc_sets(const Device &dev, VkDescriptorSetUsage usage, const DescriptorSetLayout &layout);
-
-    // vkClearDescriptorSets()
-    void clear_sets(const std::vector<DescriptorSet *> &sets);
-    void clear_sets(DescriptorSet &set) { clear_sets(std::vector<DescriptorSet *>(1, &set)); }
 };
 
 class DescriptorSet : public DerivedObject<VkDescriptorSet, Object, VK_OBJECT_TYPE_DESCRIPTOR_SET> {
diff --git a/vulkan.py b/vulkan.py
index ec7f681..a83aa8d 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -559,12 +559,6 @@
              Param("VkDescriptorSet*", "pDescriptorSets"),
              Param("uint32_t*", "pCount")]),
 
-        Proto("void", "ClearDescriptorSets",
-            [Param("VkDevice", "device"),
-             Param("VkDescriptorPool", "descriptorPool"),
-             Param("uint32_t", "count"),
-             Param("const VkDescriptorSet*", "pDescriptorSets")]),
-
         Proto("VkResult", "UpdateDescriptorSets",
             [Param("VkDevice", "device"),
              Param("uint32_t", "writeCount"),