Vulkan Schnee
0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
ShaderBindingsDef.hpp
Go to the documentation of this file.
1
#pragma once
2
10
11
// Pattern: STAGE_BINDINGS(X) where X(name, value) will be expanded differently per use case
12
13
#define DISPATCHER_BINDINGS( X ) \
14
X(DISPATCHER_COUNTER, 0) \
15
X(DISPATCHER_BUFFER, 1)
16
17
#define MESHLET_UNPACKING_DISPATCH_BINDINGS( X ) \
18
X( MESHLET_UNPACKING_DISPATCH_COUNTER, 0 ) \
19
X( MESHLET_UNPACKING_DISPATCH_BUFFER, 1 ) \
20
X( MESHLET_UNPACKING_DISPATCH_LOD_COUNTER, 2 )
21
22
#define MESHLET_CULLING_DISPATCH_BINDINGS( X ) \
23
X( MESHLET_CULLING_DISPATCH_COUNTER, 0 ) \
24
X( MESHLET_CULLING_DISPATCH_BUFFER, 1 )
25
29
#define PRIMITIVE_BINNING_BINDINGS( X ) \
30
X( BINNING_CULLING_SURVIVORS, 0 ) \
31
X( BINNING_PRIMITIVE_MESHLET_DATA, 1 ) \
32
X( BINNING_ALLOCATIONS, 2 ) \
33
X( BINNING_PIPELINE_COUNTERS, 3 ) \
34
X( BINNING_SURVIVOR_COUNT, 4 ) \
35
X( BINNING_LOD_CLUSTER_SURVIVORS, 5 ) \
36
X( BINNING_LOD_CLUSTER_SURVIVOR_COUNT, 6 ) \
37
X( BINNING_CLUSTER_LOD_DATA, 7 ) \
38
X( BINNING_PRIMITIVE_MESHLET_DATA_LOD, 8 )
39
43
#define MESHLET_UNPACKING_V2_BINDINGS( X ) \
44
X( UNPACKING_ALLOCATIONS, 0 ) \
45
X( UNPACKING_BIN_OFFSETS, 1 ) \
46
X( UNPACKING_OUTPUT, 2 ) \
47
X( UNPACKING_SURVIVOR_COUNT, 3 ) \
48
X( UNPACKING_LOD_CLUSTER_SURVIVOR_COUNT, 4 )
49
51
#define MESHLET_UNPACKING_BINDINGS( X ) \
52
X( MESHLET_UNPACKING_OBJECT_IDS, 0 ) \
53
X( MESHLET_UNPACKING_OBJECT_DATA, 1 ) \
54
X( MESHLET_UNPACKING_MESHLET_INDICES, 2 ) \
55
X( MESHLET_UNPACKING_COUNTER, 3 )
56
57
#define PRIMITIVE_CULLING_BINDINGS( X ) \
58
X( PRIMITIVE_CULLING_DATA, 0 ) \
59
X( PRIMITIVE_MESHLET_DATA, 1 ) \
60
X( PRIMITIVE_CULLING_FRUSTUM_PLANES, 2 ) \
61
X( PRIMITIVE_IDS, 3 ) \
62
X( PRIMITIVE_CULLING_COUNTER, 4 ) \
63
X( PRIMITIVE_MESH_UNPACKING_DATA, 5 ) \
64
X( PRIMITIVE_LOCAL_BOUNDS, 8 ) \
65
X( PRIMITIVE_PER_OBJECT_DATA, 9 ) \
66
X( PRIMITIVE_VS_INDIRECT_DRAW, 13 ) \
67
X( PRIMITIVE_VS_INDIRECT_COUNT, 14 ) \
68
X( PRIMITIVE_SINGLE_MESHLET_GEO, 15 ) \
69
X( PRIMITIVE_INSTANCE_CULLING_DATA, 16 ) \
70
X( PRIMITIVE_MESH_GEOMETRY_DATA, 17 ) \
71
X( CLUSTER_LOD_DATA, 18 ) \
72
X( CLUSTER_GROUP_DATA, 19 ) \
73
X( LOD_CONFIG, 20 ) \
74
X( LOD_CLUSTER_SURVIVORS, 21 ) \
75
X( LOD_CLUSTER_SURVIVOR_COUNT, 22 ) \
76
X( LOD_VISIBLE_PRIMITIVES, 23 ) \
77
X( LOD_VISIBLE_PRIMITIVE_COUNT, 24 ) \
78
X( ACTIVE_INSTANCE_IDS, 25 ) \
79
X( PRIMITIVE_SUN_SHADOW_CASCADE_BUFFER, 26 )
80
81
#define MESHLET_CULLING_BINDINGS( X ) \
82
X( MESHLET_CULLING_INDICES, 0 ) \
83
X( MESHLET_CULLING_BOUNDS, 1 ) \
84
X( MESHLET_CULLING_FRUSTUM_PLANES, 2 ) \
85
X( MESHLET_CULLING_COUNTS, 3 ) \
86
X( MESHLET_CULLING_BINNED_RENDERING, 4 )
87
88
#define PREPARE_DRAW_BINDINGS( X ) \
89
X( PREPARE_DRAW_MESHLET_COUNTER, 0 ) \
90
X( PREPARE_DRAW_INDIRECT_DRAW, 1 )
91
93
#define VS_BINNING_BINDINGS( X ) \
94
X( VS_BINNING_VISIBLE_INSTANCES, 0 ) \
95
X( VS_BINNING_VISIBLE_COUNT, 1 ) \
96
X( VS_BINNING_MESH_GEOMETRY_DATA, 2 ) \
97
X( VS_BINNING_INSTANCE_CULLING_DATA, 3 ) \
98
X( VS_BINNING_ALLOCATIONS, 4 ) \
99
X( VS_BINNING_GEOMETRY_COUNTERS, 5 )
100
102
#define VS_INSTANCE_UNPACKING_BINDINGS( X ) \
103
X( VS_UNPACKING_ALLOCATIONS, 0 ) \
104
X( VS_UNPACKING_VISIBLE_COUNT, 1 ) \
105
X( VS_UNPACKING_INSTANCE_IDS, 2 ) \
106
X( VS_UNPACKING_GEOMETRY_OFFSETS, 3 )
107
109
#define VS_PREPARE_DRAW_BINDINGS( X ) \
110
X( VS_PREPARE_SINGLE_MESHLET_GEO, 0 ) \
111
X( VS_PREPARE_GEOMETRY_COUNTERS, 1 ) \
112
X( VS_PREPARE_INDIRECT_DRAWS, 2 ) \
113
X( VS_PREPARE_DRAW_COUNT, 3 ) \
114
X( VS_PREPARE_GEOMETRY_OFFSETS, 4 ) \
115
X( VS_PREPARE_PIPELINE_DRAW_OFFSETS, 5 )
116
118
#define VS_PREFIX_SUM_BINDINGS( X ) \
119
X( VS_PREFIX_COUNTERS, 0 ) \
120
X( VS_PREFIX_OFFSETS, 1 )
121
124
#define CLUSTER_PREFIX_SUM_BINDINGS( X ) \
125
X( PREFIX_SUM_VISIBLE_PRIMITIVES, 0 ) \
126
X( PREFIX_SUM_VISIBLE_COUNT, 1 ) \
127
X( PREFIX_SUM_OUTPUT, 2 ) \
128
X( PREFIX_SUM_TOTAL_CLUSTERS, 3 ) \
129
X( PREFIX_SUM_DISPATCH_BUFFER, 4 )
130
133
#define CLUSTER_LOD_SELECTION_BINDINGS( X ) \
134
X( LOD_SELECT_VISIBLE_PRIMITIVES, 0 ) \
135
X( LOD_SELECT_VISIBLE_COUNT, 1 ) \
136
X( LOD_SELECT_PREFIX_SUM, 2 ) \
137
X( LOD_SELECT_TOTAL_CLUSTERS, 3 ) \
138
X( LOD_SELECT_CLUSTER_LOD_DATA, 4 ) \
139
X( LOD_SELECT_CLUSTER_GROUP_DATA, 5 ) \
140
X( LOD_SELECT_LOD_CONFIG, 6 ) \
141
X( LOD_SELECT_PER_OBJECT_DATA, 7 ) \
142
X( LOD_SELECT_CLUSTER_SURVIVORS, 8 ) \
143
X( LOD_SELECT_CLUSTER_SURVIVOR_COUNT, 9 )
144
145
#define GRAPHICS_BINDINGS( X ) \
146
X( VERTEX_BUFFER, 0 ) \
147
X( VIEW_PROJECTION_UBO, 1 ) \
148
X( MESHLET_BUFFER, 2 ) \
149
X( MESHLET_TRIANGLES_BUFFER, 3 ) \
150
X( BINNED_VISIBLE_MESHLET_INDEX_BUFFER, 4 ) \
151
X( PER_OBJECT_SSBO, 5 ) \
152
X( MESH_BUFFER, 6 ) \
153
X( MESH_PRIMITIVE_BUFFER, 7 ) \
154
X( MESHLET_TO_OBJECT_MAP_BUFFER, 8 ) \
155
X( MATERIAL_DIFFUSE_FLAT_COLOR, 9 ) \
156
X( MATERIAL_DIFFUSE_SHADER, 10 ) \
157
X( MATERIAL_MOVABLE_DIFFUSE, 11 ) \
158
X( MATERIAL_NORMALS, 12 ) \
159
X( MATERIAL_L0, 13 ) \
160
X( MATERIAL_L1, 14 ) \
161
X( MATERIAL_L2, 15 ) \
162
X( MATERIAL_DYNAMIC_TEXTURES, 16 ) \
163
X( MATERIAL_STATIC_LIGHTMAP, 17 ) \
164
X( VS_INSTANCE_IDS, 18 ) \
165
X( SH_PROBE_BUFFER, 19 ) \
166
X( BONE_VERTEX_DATA, 20 ) \
167
X( BONE_MATRIX_BUFFER, 21 ) \
168
X( BONE_MATRIX_OFFSETS, 22 ) \
169
X( MESH_GEOMETRY_DATA_GRAPHICS, 23 ) \
170
X( INSTANCE_DATA_GRAPHICS, 24 ) \
171
X( ENVIRONMENT_CUBEMAP, 25 ) \
172
X( BRDF_LUT, 26 ) \
173
X( SH_PROBE_VOLUME_BUFFER, 27 ) \
174
X( SH_PROBE_ROOT_INDEX_BUFFER, 28 ) \
175
X( SH_PROBE_OCTREE_NODE_BUFFER, 29 ) \
176
X( DYNAMIC_POINT_LIGHT_BUFFER, 30 ) \
177
X( SUN_LIGHT_BUFFER, 31 ) \
178
X( LIGHTMAP_STREAMING_METADATA, 32 ) \
179
X( LIGHTMAP_STREAMING_FEEDBACK, 33 ) \
180
X( SUN_SHADOW_CASCADE_BUFFER, 34 ) \
181
X( SUN_SHADOW_MAP, 35 ) \
182
X( DYNAMIC_SUN_SHADOW_MAP, 36 ) \
183
X( TEXTURE_ARRAY, 37 )
Engine
include
Engine
Renderer
ShaderBindingsDef.hpp
Generated by
1.14.0