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 { float triangleSize; uint32_t maxSubdivisionDepth; float fov; float farPlaneDistance; } struct DebugStruct { uint4 indices; uint baseHeapID; uint subdivision; uint propagateLocation; uint numSiblings; }; struct ComputeParams { // 0 ConstantBuffer geometry; // 1 ConstantBuffer update; // 2 RWStructuredBuffer currentVertexBuffer; // 3 StructuredBuffer indexedBisectorBuffer; // 4 RWStructuredBuffer indirectDrawBuffer; // 5 RWStructuredBuffer heapIDBuffer; // 6 RWStructuredBuffer bisectorDataBuffer; // 7 RWStructuredBuffer classificationBuffer; // 8 RWStructuredBuffer allocateBuffer; // 9 RWStructuredBuffer indirectDispatchBuffer; // 10 RWStructuredBuffer neighboursBuffer; // 11 RWStructuredBuffer neighboursOutputBuffer; // 12 RWStructuredBuffer memoryBuffer; // 13 RWStructuredBuffer cbtBuffer; // 14 RWStructuredBuffer bitFieldBuffer; // 15 RWStructuredBuffer propagateBuffer; // 16 RWStructuredBuffer simplifyBuffer; // 17 RWStructuredBuffer validationBuffer; // 18 RWStructuredBuffer bisectorIndicesBuffer; // 19 RWStructuredBuffer visibleBisectorIndices; // 20 RWStructuredBuffer modifiedBisectorIndices; // 21 RWStructuredBuffer lebPositionBuffer; // 22 StructuredBuffer lebMatrixCache; // 23 globallycoherent RWStructuredBuffer debugBuffer; }; ParameterBlock pParams;