Index: src/gpu/vk/GrVkDescriptorSetManager.h |
diff --git a/src/gpu/vk/GrVkDescriptorSetManager.h b/src/gpu/vk/GrVkDescriptorSetManager.h |
index 0b11eb3ba91d354c67efd7a34cd0b661c2be547d..84dd29ece0c0ab500f5d9dd20bc33bbfdf3df9ae 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); |
}; |