import Common; import Bisector; struct GeometryCB { uint32_t totalNumElements; uint32_t baseDepth; uint32_t totalNumVertices; }; struct DeformationCB { float4 patchSize; float4 patchRoughness; float choppiness; int attenuation; float amplification; uint32_t patchFlags; }; struct UpdateCB { float4x4 viewProjectionMatrix; float triangleSize; uint32_t maxSubdivisionDepth; float fov; float farPlaneDistance; } struct DebugStruct { uint3 neighbours; int status; } struct ComputeParams { ConstantBuffer geometry; ConstantBuffer update; RWStructuredBuffer currentVertexBuffer; StructuredBuffer indexedBisectorBuffer; RWStructuredBuffer indirectDrawBuffer; RWStructuredBuffer heapIDBuffer; RWStructuredBuffer bisectorDataBuffer; RWStructuredBuffer classificationBuffer; RWStructuredBuffer allocateBuffer; RWStructuredBuffer indirectDispatchBuffer; RWStructuredBuffer neighboursBuffer; RWStructuredBuffer neighboursOutputBuffer; RWStructuredBuffer memoryBuffer; RWStructuredBuffer cbtBuffer; RWStructuredBuffer bitFieldBuffer; RWStructuredBuffer propagateBuffer; RWStructuredBuffer simplifyBuffer; RWStructuredBuffer validationBuffer; RWStructuredBuffer bisectorIndicesBuffer; RWStructuredBuffer visibleBisectorIndices; RWStructuredBuffer modifiedBisectorIndices; RWStructuredBuffer lebPositionBuffer; StructuredBuffer lebMatrixCache; RWStructuredBuffer debugBuffer; }; ParameterBlock pParams;