17 VkDescriptorSetLayout layout) {
19 if (requestedDescCounts.
empty()) {
32 for (
size_t i = 0;
i < requestedDescCounts.
size();
i++) {
34 if (requestedDescCounts[
i].
fCount > kMaxNumDescriptors) {
35 SkDebugf(
"The number of descriptors requested, %u, exceeds the maximum allowed (%d).\n",
51 createInfo.
pNext =
nullptr;
57 VkDescriptorPool
pool;
61 CreateDescriptorPool(context->
device(),
67 DestroyDescriptorSetLayout(context->
device(), layout,
nullptr));
74 VkDescriptorPool
pool,
75 VkDescriptorSetLayout layout)
76 : fSharedContext(context)
78 , fDescSetLayout(layout) {}
80VulkanDescriptorPool::~VulkanDescriptorPool() {
84 DestroyDescriptorPool(fSharedContext->
device(), fDescPool,
nullptr));
87 DestroyDescriptorSetLayout(fSharedContext->
device(), fDescSetLayout,
nullptr));
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
#define VULKAN_CALL(IFACE, X)
#define VULKAN_CALL_RESULT(SHARED_CONTEXT, RESULT, X)
constexpr bool empty() const
constexpr size_t size() const
static sk_sp< VulkanDescriptorPool > Make(const VulkanSharedContext *, SkSpan< DescriptorData >, VkDescriptorSetLayout)
static constexpr int kMaxNumSets
const skgpu::VulkanInterface * interface() const
VkDescriptorType DsTypeEnumToVkDs(DescriptorType type)
const VkDescriptorPoolSize * pPoolSizes
VkDescriptorPoolCreateFlags flags
@ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO