Limit the size of descriptor pools in vulkan

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1867973002

Review URL: https://codereview.chromium.org/1867973002
diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp
index 5e3acf8..3e442fb 100644
--- a/src/gpu/vk/GrVkPipelineState.cpp
+++ b/src/gpu/vk/GrVkPipelineState.cpp
@@ -409,7 +409,11 @@
     if (fPool) {
         fPool->unref(gpu);
         SkASSERT(fMaxDescriptorSets < (SK_MaxU32 >> 1));
-        fMaxDescriptorSets = fMaxDescriptorSets << 1;
+        if (fMaxDescriptorSets < kMaxDescSetLimit >> 1) {
+            fMaxDescriptorSets = fMaxDescriptorSets << 1;
+        } else {
+            fMaxDescriptorSets = kMaxDescSetLimit;
+        }
 
     }
     if (fMaxDescriptorSets) {
diff --git a/src/gpu/vk/GrVkPipelineState.h b/src/gpu/vk/GrVkPipelineState.h
index 2533bff..2bfc16c 100644
--- a/src/gpu/vk/GrVkPipelineState.h
+++ b/src/gpu/vk/GrVkPipelineState.h
@@ -168,7 +168,7 @@
             , fDescType(type)
             , fCurrentDescriptorSet(0)
             , fPool(nullptr) {
-            SkASSERT(descCount < (SK_MaxU32 >> 2));
+            SkASSERT(descCount < (kMaxDescSetLimit >> 2));
             fMaxDescriptorSets = descCount << 2;
             this->getNewPool(gpu);
         }
@@ -190,6 +190,8 @@
         GrVkDescriptorPool*    fPool;
 
     private:
+        static const uint32_t kMaxDescSetLimit = 1 << 10;
+
         void getNewPool(GrVkGpu* gpu);
     };