Vulkan Schnee 0.0.1 (22840dc8)
High-performance rendering engine
Loading...
Searching...
No Matches
Engine::Rendering::GpuBuffers::MeshGeometryData Struct Reference

Shared geometry metadata for instanced rendering with LOD support. More...

#include <RenderData.h>

Public Attributes

uint64_t meshletDataAddress
 Device address of the slot's UnifiedMeshlet array (0 = none).
uint32_t meshletCount
 Number of meshlets for this geometry.
uint32_t pipelineIndex
 Pipeline bin used for rendering this geometry.
uint64_t singleMeshletGeoDataAddress
 Device address of the slot's SingleMeshletGeometryData (0 = none).
uint32_t singleMeshletGeoIndex
 Compact VS-path binning ordinal, or 0xFFFFFFFF if absent.
uint64_t clusterLodDataAddress
 Device address of the slot's ClusterLodData array (0 = none).
uint32_t clusterCount
 Number of LOD clusters for this geometry.
uint64_t clusterGroupDataAddress
 Device address of the slot's ClusterGroupData array (0 = none).
uint32_t groupCount
 Number of LOD cluster groups for this geometry.
uint32_t flags
 Bit 0 marks skinned geometry; bit 1 marks the slot payload resident (fully uploaded).
uint32_t boneCount
 Number of bones referenced by this geometry. Zero means static geometry.
uint64_t boneVertexDataAddress
 Device address of the slot's BoneVertexData array (0 = none).
uint64_t indexDataAddress
 Device address of the slot's index array (uint32_t), 0 = none.
uint64_t vertexDataAddress
 Device address of the slot's Vertex array (0 = none).
uint32_t geometryVertexStart
 Base vertex element within the slot's vertex array.
uint32_t _padding
 Pad to 104 bytes.

Static Public Attributes

static constexpr uint32_t FLAG_SKINNED = 1u << 0
 flags bits (kept in sync with shaders/culling/PrimitiveCulling.comp).
static constexpr uint32_t FLAG_RESIDENT = 1u << 1
 Slot payload fully uploaded (safe to render).

Detailed Description

Shared geometry metadata for instanced rendering with LOD support.

Each entry describes one unique mesh primitive stored in shared geometry buffers. Instances reference this table through InstanceData::meshGeometryId. Layout matches GLSL std430 MeshGeometryData and is 96 bytes.

Phase C (bindless geometry): payload ranges are referenced by device addresses instead of shared-buffer start indices, so a slot can own its own vertex/triangle/meshlet/bone/LOD buffers. A zero address means the range is not present for this geometry.

Definition at line 279 of file RenderData.h.

Member Data Documentation

◆ _padding

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::_padding

Pad to 104 bytes.

Definition at line 300 of file RenderData.h.

◆ boneCount

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::boneCount

Number of bones referenced by this geometry. Zero means static geometry.

Definition at line 295 of file RenderData.h.

◆ boneVertexDataAddress

uint64_t Engine::Rendering::GpuBuffers::MeshGeometryData::boneVertexDataAddress

Device address of the slot's BoneVertexData array (0 = none).

Definition at line 296 of file RenderData.h.

◆ clusterCount

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::clusterCount

Number of LOD clusters for this geometry.

Definition at line 291 of file RenderData.h.

◆ clusterGroupDataAddress

uint64_t Engine::Rendering::GpuBuffers::MeshGeometryData::clusterGroupDataAddress

Device address of the slot's ClusterGroupData array (0 = none).

Definition at line 292 of file RenderData.h.

◆ clusterLodDataAddress

uint64_t Engine::Rendering::GpuBuffers::MeshGeometryData::clusterLodDataAddress

Device address of the slot's ClusterLodData array (0 = none).

Definition at line 290 of file RenderData.h.

◆ FLAG_RESIDENT

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::FLAG_RESIDENT = 1u << 1
staticconstexpr

Slot payload fully uploaded (safe to render).

Definition at line 283 of file RenderData.h.

◆ FLAG_SKINNED

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::FLAG_SKINNED = 1u << 0
staticconstexpr

flags bits (kept in sync with shaders/culling/PrimitiveCulling.comp).

Routes to VS path for GPU skinning.

Definition at line 282 of file RenderData.h.

◆ flags

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::flags

Bit 0 marks skinned geometry; bit 1 marks the slot payload resident (fully uploaded).

Definition at line 294 of file RenderData.h.

◆ geometryVertexStart

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::geometryVertexStart

Base vertex element within the slot's vertex array.

Definition at line 299 of file RenderData.h.

◆ groupCount

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::groupCount

Number of LOD cluster groups for this geometry.

Definition at line 293 of file RenderData.h.

◆ indexDataAddress

uint64_t Engine::Rendering::GpuBuffers::MeshGeometryData::indexDataAddress

Device address of the slot's index array (uint32_t), 0 = none.

Definition at line 297 of file RenderData.h.

◆ meshletCount

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::meshletCount

Number of meshlets for this geometry.

Definition at line 286 of file RenderData.h.

◆ meshletDataAddress

uint64_t Engine::Rendering::GpuBuffers::MeshGeometryData::meshletDataAddress

Device address of the slot's UnifiedMeshlet array (0 = none).

Definition at line 285 of file RenderData.h.

◆ pipelineIndex

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::pipelineIndex

Pipeline bin used for rendering this geometry.

Definition at line 287 of file RenderData.h.

◆ singleMeshletGeoDataAddress

uint64_t Engine::Rendering::GpuBuffers::MeshGeometryData::singleMeshletGeoDataAddress

Device address of the slot's SingleMeshletGeometryData (0 = none).

Definition at line 288 of file RenderData.h.

◆ singleMeshletGeoIndex

uint32_t Engine::Rendering::GpuBuffers::MeshGeometryData::singleMeshletGeoIndex

Compact VS-path binning ordinal, or 0xFFFFFFFF if absent.

Definition at line 289 of file RenderData.h.

◆ vertexDataAddress

uint64_t Engine::Rendering::GpuBuffers::MeshGeometryData::vertexDataAddress

Device address of the slot's Vertex array (0 = none).

Definition at line 298 of file RenderData.h.


The documentation for this struct was generated from the following file:
  • /workspace/magerbeton/gl3-vulkan/code/Engine/include/Engine/Renderer/RenderData.h