diff options
Diffstat (limited to 'src/gpu/vk/GrVkDescriptorSetManager.h')
-rw-r--r-- | src/gpu/vk/GrVkDescriptorSetManager.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gpu/vk/GrVkDescriptorSetManager.h b/src/gpu/vk/GrVkDescriptorSetManager.h index 0b11eb3ba9..84dd29ece0 100644 --- a/src/gpu/vk/GrVkDescriptorSetManager.h +++ b/src/gpu/vk/GrVkDescriptorSetManager.h @@ -29,6 +29,11 @@ public: GrVkDescriptorSetManager(GrVkGpu* gpu, VkDescriptorType, const GrVkUniformHandler* handler = nullptr); + + GrVkDescriptorSetManager(GrVkGpu* gpu, + VkDescriptorType, + const SkTArray<uint32_t>& visibilities); + ~GrVkDescriptorSetManager() {} void abandon(); @@ -41,11 +46,16 @@ public: void recycleDescriptorSet(const GrVkDescriptorSet*); bool isCompatible(VkDescriptorType type, const GrVkUniformHandler*) const; + bool isCompatible(VkDescriptorType type, + const SkTArray<uint32_t>& visibilities) const; private: struct DescriptorPoolManager { DescriptorPoolManager(VkDescriptorType type, GrVkGpu* gpu, const GrVkUniformHandler* handler = nullptr); + DescriptorPoolManager(VkDescriptorType type, GrVkGpu* gpu, + const SkTArray<uint32_t>& visibilities); + ~DescriptorPoolManager() { SkASSERT(!fDescLayout); @@ -71,6 +81,9 @@ private: kStartNumDescriptors = 16, // must be less than kMaxUniformDescriptors }; + void init(GrVkGpu* gpu, VkDescriptorType type, const GrVkUniformHandler* uniformHandler, + const SkTArray<uint32_t>* visibilities); + void getNewPool(GrVkGpu* gpu); }; |