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 HeapDebug { uint id; uint real_heap_id; uint depth; uint level_first_element; uint id_in_level; uint first_bit; }; struct DebugStruct { HeapDebug heapValues[18]; }; 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 RWStructuredBuffer debugBuffer; // 24 SamplerState displacementSampler; // 25 Texture2D displacementMap; }; ParameterBlock pParams;