Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
ShaderBindingsDef.hpp File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DISPATCHER_BINDINGS(X)
 Single source of truth for shader binding indices. These are expanded into C++ enums and GLSL #defines.
#define MESHLET_UNPACKING_DISPATCH_BINDINGS(X)
#define MESHLET_CULLING_DISPATCH_BINDINGS(X)
#define PRIMITIVE_BINNING_BINDINGS(X)
#define MESHLET_UNPACKING_V2_BINDINGS(X)
#define MESHLET_UNPACKING_BINDINGS(X)
 Legacy meshlet unpacking bindings (deprecated)
#define PRIMITIVE_CULLING_BINDINGS(X)
#define MESHLET_CULLING_BINDINGS(X)
#define PREPARE_DRAW_BINDINGS(X)
#define HIZ_GENERATION_BINDINGS(X)
 Hi-Z Generation bindings.
#define HIZ_CULLING_BINDINGS(X)
#define VS_BINNING_BINDINGS(X)
 VS Binning Stage 1: Count visible instances per geometry type, allocate write offsets.
#define VS_INSTANCE_UNPACKING_BINDINGS(X)
 VS Instance Unpacking Stage 2: Write primitive IDs to per-geometry bins.
#define VS_PREPARE_DRAW_BINDINGS(X)
 VS Prepare Draw Stage 3: Generate one draw command per geometry type.
#define GRAPHICS_BINDINGS(X)

Macro Definition Documentation

◆ DISPATCHER_BINDINGS

#define DISPATCHER_BINDINGS ( X)
Value:
X(DISPATCHER_COUNTER, 0) \
X(DISPATCHER_BUFFER, 1)

Single source of truth for shader binding indices. These are expanded into C++ enums and GLSL #defines.

Author
Konstantin Passig
Date
2025-12-25

Definition at line 13 of file ShaderBindingsDef.hpp.

◆ GRAPHICS_BINDINGS

#define GRAPHICS_BINDINGS ( X)
Value:
X( VERTEX_BUFFER, 0 ) \
X( VIEW_PROJECTION_UBO, 1 ) \
X( MESHLET_BUFFER, 2 ) \
X( MESHLET_TRIANGLES_BUFFER, 3 ) \
X( BINNED_VISIBLE_MESHLET_INDEX_BUFFER, 4 ) \
X( PER_OBJECT_SSBO, 5 ) \
X( MESH_BUFFER, 6 ) \
X( MESH_PRIMITIVE_BUFFER, 7 ) \
X( MESHLET_TO_OBJECT_MAP_BUFFER, 8 ) \
X( MATERIAL_DIFFUSE_FLAT_COLOR, 9 ) \
X( MATERIAL_DIFFUSE_SHADER, 10 ) \
X( MATERIAL_MOVABLE_DIFFUSE, 11 ) \
X( MATERIAL_NORMALS, 12 ) \
X( MATERIAL_L0, 13 ) \
X( MATERIAL_L1, 14 ) \
X( MATERIAL_L2, 15 ) \
X( MATERIAL_DYNAMIC_TEXTURES, 16 ) \
X( MATERIAL_STATIC_LIGHTMAP, 17 ) \
X( VS_INSTANCE_IDS, 18 ) \
X( SH_PROBE_BUFFER, 19 ) \
X( TEXTURE_ARRAY, 20 )

Definition at line 126 of file ShaderBindingsDef.hpp.

◆ HIZ_CULLING_BINDINGS

#define HIZ_CULLING_BINDINGS ( X)
Value:
X( HIZ_PYRAMID, 6 ) \
X( HIZ_VIEW_PROJECTION, 7 ) \
X( HIZ_PYRAMID_CURRENT, 12 )

Hi-Z Occlusion Culling bindings (added to PrimitiveCulling) HIZ_PYRAMID = previous frame's Hi-Z (for Pass 1) HIZ_PYRAMID_CURRENT = current frame's Hi-Z (for Pass 2, generated after Pass 1 render)

Definition at line 99 of file ShaderBindingsDef.hpp.

◆ HIZ_GENERATION_BINDINGS

#define HIZ_GENERATION_BINDINGS ( X)
Value:
X( HIZ_SRC_TEXTURE, 0 ) \
X( HIZ_SRC_DEPTH_MS, 1 ) \
X( HIZ_DST_MIP, 2 )

Hi-Z Generation bindings.

Definition at line 91 of file ShaderBindingsDef.hpp.

◆ MESHLET_CULLING_BINDINGS

#define MESHLET_CULLING_BINDINGS ( X)
Value:
X( MESHLET_CULLING_INDICES, 0 ) \
X( MESHLET_CULLING_BOUNDS, 1 ) \
X( MESHLET_CULLING_FRUSTUM_PLANES, 2 ) \
X( MESHLET_CULLING_COUNTS, 3 ) \
X( MESHLET_CULLING_BINNED_RENDERING, 4 )

Definition at line 79 of file ShaderBindingsDef.hpp.

◆ MESHLET_CULLING_DISPATCH_BINDINGS

#define MESHLET_CULLING_DISPATCH_BINDINGS ( X)
Value:
X( MESHLET_CULLING_DISPATCH_COUNTER, 0 ) \
X( MESHLET_CULLING_DISPATCH_BUFFER, 1 )

Definition at line 22 of file ShaderBindingsDef.hpp.

◆ MESHLET_UNPACKING_BINDINGS

#define MESHLET_UNPACKING_BINDINGS ( X)
Value:
X( MESHLET_UNPACKING_OBJECT_IDS, 0 ) \
X( MESHLET_UNPACKING_OBJECT_DATA, 1 ) \
X( MESHLET_UNPACKING_MESHLET_INDICES, 2 ) \
X( MESHLET_UNPACKING_COUNTER, 3 )

Legacy meshlet unpacking bindings (deprecated)

Definition at line 51 of file ShaderBindingsDef.hpp.

◆ MESHLET_UNPACKING_DISPATCH_BINDINGS

#define MESHLET_UNPACKING_DISPATCH_BINDINGS ( X)
Value:
X( MESHLET_UNPACKING_DISPATCH_COUNTER, 0 ) \
X( MESHLET_UNPACKING_DISPATCH_BUFFER, 1 ) \
X( MESHLET_UNPACKING_DISPATCH_LOD_COUNTER, 2 )

Definition at line 17 of file ShaderBindingsDef.hpp.

◆ MESHLET_UNPACKING_V2_BINDINGS

#define MESHLET_UNPACKING_V2_BINDINGS ( X)
Value:
X( UNPACKING_ALLOCATIONS, 0 ) \
X( UNPACKING_BIN_OFFSETS, 1 ) \
X( UNPACKING_OUTPUT, 2 ) \
X( UNPACKING_SURVIVOR_COUNT, 3 ) \
X( UNPACKING_LOD_CLUSTER_SURVIVOR_COUNT, 4 )

Stage 2: Meshlet Unpacking Expands primitives into linearized meshlet indices per pipeline bin Extended with LOD cluster survivor count for combined processing

Definition at line 43 of file ShaderBindingsDef.hpp.

◆ PREPARE_DRAW_BINDINGS

#define PREPARE_DRAW_BINDINGS ( X)
Value:
X( PREPARE_DRAW_MESHLET_COUNTER, 0 ) \
X( PREPARE_DRAW_INDIRECT_DRAW, 1 )

Definition at line 86 of file ShaderBindingsDef.hpp.

◆ PRIMITIVE_BINNING_BINDINGS

#define PRIMITIVE_BINNING_BINDINGS ( X)
Value:
X( BINNING_CULLING_SURVIVORS, 0 ) \
X( BINNING_PRIMITIVE_MESHLET_DATA, 1 ) \
X( BINNING_ALLOCATIONS, 2 ) \
X( BINNING_PIPELINE_COUNTERS, 3 ) \
X( BINNING_SURVIVOR_COUNT, 4 ) \
X( BINNING_LOD_CLUSTER_SURVIVORS, 5 ) \
X( BINNING_LOD_CLUSTER_SURVIVOR_COUNT, 6 ) \
X( BINNING_CLUSTER_LOD_DATA, 7 ) \
X( BINNING_PRIMITIVE_MESHLET_DATA_LOD, 8 )

Stage 1: Primitive Binning Allocator Counts meshlets per pipeline and allocates write offsets per primitive Extended with LOD cluster survivor processing

Definition at line 29 of file ShaderBindingsDef.hpp.

◆ PRIMITIVE_CULLING_BINDINGS

#define PRIMITIVE_CULLING_BINDINGS ( X)
Value:
X( PRIMITIVE_CULLING_DATA, 0 ) \
X( PRIMITIVE_MESHLET_DATA, 1 ) \
X( PRIMITIVE_CULLING_FRUSTUM_PLANES, 2 ) \
X( PRIMITIVE_IDS, 3 ) \
X( PRIMITIVE_CULLING_COUNTER, 4 ) \
X( PRIMITIVE_MESH_UNPACKING_DATA, 5 ) \
X( PRIMITIVE_LOCAL_BOUNDS, 8 ) \
X( PRIMITIVE_PER_OBJECT_DATA, 9 ) \
X( PRIMITIVE_CULLING_FAILED, 10 ) \
X( PRIMITIVE_CULLING_FAILED_COUNTER, 11 ) \
X( PRIMITIVE_VS_INDIRECT_DRAW, 13 ) \
X( PRIMITIVE_VS_INDIRECT_COUNT, 14 ) \
X( PRIMITIVE_SINGLE_MESHLET_GEO, 15 ) \
X( PRIMITIVE_INSTANCE_CULLING_DATA, 16 ) \
X( PRIMITIVE_MESH_GEOMETRY_DATA, 17 ) \
X( CLUSTER_LOD_DATA, 18 ) \
X( CLUSTER_GROUP_DATA, 19 ) \
X( LOD_CONFIG, 20 ) \
X( LOD_CLUSTER_SURVIVORS, 21 ) \
X( LOD_CLUSTER_SURVIVOR_COUNT, 22 )

Definition at line 57 of file ShaderBindingsDef.hpp.

◆ VS_BINNING_BINDINGS

#define VS_BINNING_BINDINGS ( X)
Value:
X( VS_BINNING_VISIBLE_INSTANCES, 0 ) \
X( VS_BINNING_VISIBLE_COUNT, 1 ) \
X( VS_BINNING_MESH_GEOMETRY_DATA, 2 ) \
X( VS_BINNING_INSTANCE_CULLING_DATA, 3 ) \
X( VS_BINNING_ALLOCATIONS, 4 ) \
X( VS_BINNING_GEOMETRY_COUNTERS, 5 )

VS Binning Stage 1: Count visible instances per geometry type, allocate write offsets.

Definition at line 105 of file ShaderBindingsDef.hpp.

◆ VS_INSTANCE_UNPACKING_BINDINGS

#define VS_INSTANCE_UNPACKING_BINDINGS ( X)
Value:
X( VS_UNPACKING_ALLOCATIONS, 0 ) \
X( VS_UNPACKING_VISIBLE_COUNT, 1 ) \
X( VS_UNPACKING_INSTANCE_IDS, 2 )

VS Instance Unpacking Stage 2: Write primitive IDs to per-geometry bins.

Definition at line 114 of file ShaderBindingsDef.hpp.

◆ VS_PREPARE_DRAW_BINDINGS

#define VS_PREPARE_DRAW_BINDINGS ( X)
Value:
X( VS_PREPARE_SINGLE_MESHLET_GEO, 0 ) \
X( VS_PREPARE_GEOMETRY_COUNTERS, 1 ) \
X( VS_PREPARE_INDIRECT_DRAWS, 2 ) \
X( VS_PREPARE_DRAW_COUNT, 3 )

VS Prepare Draw Stage 3: Generate one draw command per geometry type.

Definition at line 120 of file ShaderBindingsDef.hpp.