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_CULLING_FAILED, 10 ) \
67 X( PRIMITIVE_CULLING_FAILED_COUNTER, 11 ) \
68 X( PRIMITIVE_VS_INDIRECT_DRAW, 13 ) \
69 X( PRIMITIVE_VS_INDIRECT_COUNT, 14 ) \
70 X( PRIMITIVE_SINGLE_MESHLET_GEO, 15 ) \
71 X( PRIMITIVE_INSTANCE_CULLING_DATA, 16 ) \
72 X( PRIMITIVE_MESH_GEOMETRY_DATA, 17 ) \
73 X( CLUSTER_LOD_DATA, 18 ) \
74 X( CLUSTER_GROUP_DATA, 19 ) \
75 X( LOD_CONFIG, 20 ) \
76 X( LOD_CLUSTER_SURVIVORS, 21 ) \
77 X( LOD_CLUSTER_SURVIVOR_COUNT, 22 )
78
79#define MESHLET_CULLING_BINDINGS( X ) \
80 X( MESHLET_CULLING_INDICES, 0 ) \
81 X( MESHLET_CULLING_BOUNDS, 1 ) \
82 X( MESHLET_CULLING_FRUSTUM_PLANES, 2 ) \
83 X( MESHLET_CULLING_COUNTS, 3 ) \
84 X( MESHLET_CULLING_BINNED_RENDERING, 4 )
85
86#define PREPARE_DRAW_BINDINGS( X ) \
87 X( PREPARE_DRAW_MESHLET_COUNTER, 0 ) \
88 X( PREPARE_DRAW_INDIRECT_DRAW, 1 )
89
91#define HIZ_GENERATION_BINDINGS( X ) \
92 X( HIZ_SRC_TEXTURE, 0 ) \
93 X( HIZ_SRC_DEPTH_MS, 1 ) \
94 X( HIZ_DST_MIP, 2 )
95
99#define HIZ_CULLING_BINDINGS( X ) \
100 X( HIZ_PYRAMID, 6 ) \
101 X( HIZ_VIEW_PROJECTION, 7 ) \
102 X( HIZ_PYRAMID_CURRENT, 12 )
103
105#define VS_BINNING_BINDINGS( X ) \
106 X( VS_BINNING_VISIBLE_INSTANCES, 0 ) \
107 X( VS_BINNING_VISIBLE_COUNT, 1 ) \
108 X( VS_BINNING_MESH_GEOMETRY_DATA, 2 ) \
109 X( VS_BINNING_INSTANCE_CULLING_DATA, 3 ) \
110 X( VS_BINNING_ALLOCATIONS, 4 ) \
111 X( VS_BINNING_GEOMETRY_COUNTERS, 5 )
112
114#define VS_INSTANCE_UNPACKING_BINDINGS( X ) \
115 X( VS_UNPACKING_ALLOCATIONS, 0 ) \
116 X( VS_UNPACKING_VISIBLE_COUNT, 1 ) \
117 X( VS_UNPACKING_INSTANCE_IDS, 2 )
118
120#define VS_PREPARE_DRAW_BINDINGS( X ) \
121 X( VS_PREPARE_SINGLE_MESHLET_GEO, 0 ) \
122 X( VS_PREPARE_GEOMETRY_COUNTERS, 1 ) \
123 X( VS_PREPARE_INDIRECT_DRAWS, 2 ) \
124 X( VS_PREPARE_DRAW_COUNT, 3 )
125
126#define GRAPHICS_BINDINGS( X ) \
127 X( VERTEX_BUFFER, 0 ) \
128 X( VIEW_PROJECTION_UBO, 1 ) \
129 X( MESHLET_BUFFER, 2 ) \
130 X( MESHLET_TRIANGLES_BUFFER, 3 ) \
131 X( BINNED_VISIBLE_MESHLET_INDEX_BUFFER, 4 ) \
132 X( PER_OBJECT_SSBO, 5 ) \
133 X( MESH_BUFFER, 6 ) \
134 X( MESH_PRIMITIVE_BUFFER, 7 ) \
135 X( MESHLET_TO_OBJECT_MAP_BUFFER, 8 ) \
136 X( MATERIAL_DIFFUSE_FLAT_COLOR, 9 ) \
137 X( MATERIAL_DIFFUSE_SHADER, 10 ) \
138 X( MATERIAL_MOVABLE_DIFFUSE, 11 ) \
139 X( MATERIAL_NORMALS, 12 ) \
140 X( MATERIAL_L0, 13 ) \
141 X( MATERIAL_L1, 14 ) \
142 X( MATERIAL_L2, 15 ) \
143 X( MATERIAL_DYNAMIC_TEXTURES, 16 ) \
144 X( MATERIAL_STATIC_LIGHTMAP, 17 ) \
145 X( VS_INSTANCE_IDS, 18 ) \
146 X( SH_PROBE_BUFFER, 19 ) \
147 X( TEXTURE_ARRAY, 20 )