commit | 5f3b0e00fb23ce42dc07bc71a0bd363bd53c64c2 | [log] [tgz] |
---|---|---|
author | egdaniel <egdaniel@google.com> | Thu Apr 07 13:49:01 2016 -0700 |
committer | Commit bot <commit-bot@chromium.org> | Thu Apr 07 13:49:01 2016 -0700 |
tree | 4ce54b82e874bca679d8a4d6d85529c0308ec101 | |
parent | eadf3cf899d87b9c96fb7ede5c8eb54f63900193 [diff] |
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); };