Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/virtio/vulkan/vn_descriptor_set.h
4560 views
1
/*
2
* Copyright 2019 Google LLC
3
* SPDX-License-Identifier: MIT
4
*
5
* based in part on anv and radv which are:
6
* Copyright © 2015 Intel Corporation
7
* Copyright © 2016 Red Hat.
8
* Copyright © 2016 Bas Nieuwenhuizen
9
*/
10
11
#ifndef VN_DESCRIPTOR_SET_H
12
#define VN_DESCRIPTOR_SET_H
13
14
#include "vn_common.h"
15
16
struct vn_descriptor_set_layout_binding {
17
bool has_immutable_samplers;
18
};
19
20
struct vn_descriptor_set_layout {
21
struct vn_object_base base;
22
struct vn_descriptor_set_layout_binding bindings[];
23
};
24
VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_set_layout,
25
base.base,
26
VkDescriptorSetLayout,
27
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT)
28
29
struct vn_descriptor_pool {
30
struct vn_object_base base;
31
32
VkAllocationCallbacks allocator;
33
struct list_head descriptor_sets;
34
};
35
VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_pool,
36
base.base,
37
VkDescriptorPool,
38
VK_OBJECT_TYPE_DESCRIPTOR_POOL)
39
40
struct vn_update_descriptor_sets {
41
uint32_t write_count;
42
VkWriteDescriptorSet *writes;
43
VkDescriptorImageInfo *images;
44
VkDescriptorBufferInfo *buffers;
45
VkBufferView *views;
46
};
47
48
struct vn_descriptor_set {
49
struct vn_object_base base;
50
51
const struct vn_descriptor_set_layout *layout;
52
struct list_head head;
53
};
54
VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_set,
55
base.base,
56
VkDescriptorSet,
57
VK_OBJECT_TYPE_DESCRIPTOR_SET)
58
59
struct vn_descriptor_update_template_entry {
60
size_t offset;
61
size_t stride;
62
};
63
64
struct vn_descriptor_update_template {
65
struct vn_object_base base;
66
67
mtx_t mutex;
68
struct vn_update_descriptor_sets *update;
69
70
struct vn_descriptor_update_template_entry entries[];
71
};
72
VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_update_template,
73
base.base,
74
VkDescriptorUpdateTemplate,
75
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE)
76
77
#endif /* VN_DESCRIPTOR_SET_H */
78
79