Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
gpu
graphite
vk
VulkanDescriptorPool.h
Go to the documentation of this file.
1
/*
2
* Copyright 2023 Google LLC
3
*
4
* Use of this source code is governed by a BSD-style license that can be
5
* found in the LICENSE file.
6
*/
7
8
#ifndef skgpu_graphite_VulkanDescriptorPool_DEFINED
9
#define skgpu_graphite_VulkanDescriptorPool_DEFINED
10
11
#include "
include/core/SkRefCnt.h
"
12
13
#include "
include/core/SkSpan.h
"
14
#include "
src/gpu/graphite/DescriptorData.h
"
15
#include "
src/gpu/graphite/vk/VulkanGraphiteUtilsPriv.h
"
16
17
namespace
skgpu::graphite
{
18
19
class
VulkanSharedContext;
20
21
class
VulkanDescriptorPool
:
public
SkRefCnt
{
22
public
:
23
// Conservative upper bound of number of sets supported per pool.
24
static
constexpr
int
kMaxNumSets
= 512;
25
/**
26
* Given a span of descriptor types and counts, a descriptor pool will be created which houses
27
* enough of the descriptor types and quantities requested to allocate the maximum number of
28
* sets possible (kMaxNumSets). Counts must be > 0.
29
*/
30
static
sk_sp<VulkanDescriptorPool>
Make
(
const
VulkanSharedContext
*,
31
SkSpan<DescriptorData>
,
32
VkDescriptorSetLayout);
33
34
VkDescriptorPool
descPool
() {
return
fDescPool; }
35
36
const
VkDescriptorSetLayout*
descSetLayout
() {
37
SkASSERT
(fDescSetLayout !=
VK_NULL_HANDLE
);
38
return
&fDescSetLayout;
39
}
40
41
private
:
42
// Conservative overestimation of a maximum number of descriptors of any given type that can be
43
// requested.
44
static
constexpr
int
kMaxNumDescriptors = 1024;
45
46
VulkanDescriptorPool
(
const
VulkanSharedContext
*,
47
VkDescriptorPool,
48
VkDescriptorSetLayout);
49
~VulkanDescriptorPool
()
override
;
50
51
const
VulkanSharedContext
* fSharedContext;
52
VkDescriptorPool fDescPool;
53
// The VulkanDescriptorPool has ownership of the VkDescSetLayout used to allocate sets from this
54
// pool.
55
VkDescriptorSetLayout fDescSetLayout;
56
};
57
}
// namespace skgpu::graphite
58
59
#endif
// skgpu_graphite_VulkanDescriptorPool_DEFINED
DescriptorData.h
SkASSERT
#define SkASSERT(cond)
Definition
SkAssert.h:116
SkRefCnt.h
SkSpan.h
VulkanGraphiteUtilsPriv.h
SkRefCnt
Definition
SkRefCnt.h:119
SkSpan
Definition
SkSpan_impl.h:65
sk_sp
Definition
SkRefCnt.h:220
skgpu::graphite::VulkanDescriptorPool
Definition
VulkanDescriptorPool.h:21
skgpu::graphite::VulkanDescriptorPool::descPool
VkDescriptorPool descPool()
Definition
VulkanDescriptorPool.h:34
skgpu::graphite::VulkanDescriptorPool::Make
static sk_sp< VulkanDescriptorPool > Make(const VulkanSharedContext *, SkSpan< DescriptorData >, VkDescriptorSetLayout)
Definition
VulkanDescriptorPool.cpp:15
skgpu::graphite::VulkanDescriptorPool::descSetLayout
const VkDescriptorSetLayout * descSetLayout()
Definition
VulkanDescriptorPool.h:36
skgpu::graphite::VulkanDescriptorPool::kMaxNumSets
static constexpr int kMaxNumSets
Definition
VulkanDescriptorPool.h:24
skgpu::graphite::VulkanDescriptorPool::~VulkanDescriptorPool
~VulkanDescriptorPool() override
Definition
VulkanDescriptorPool.cpp:80
skgpu::graphite::VulkanSharedContext
Definition
VulkanSharedContext.h:28
skgpu::graphite
Definition
BoundsManagerBench.cpp:27
VK_NULL_HANDLE
#define VK_NULL_HANDLE
Definition
vulkan_core.h:46
Generated on Fri Apr 26 2024 06:17:21 for Flutter Engine by
1.9.8