void BVH4HairBuilder::allocateData(const size_t threadCount, const size_t totalNumPrimitives) { DBG(PING); size_t numPrimitivesOld = numPrimitives; numPrimitives = totalNumPrimitives; if (numPrimitivesOld != numPrimitives) { const size_t numPrims = numPrimitives; const size_t minAllocNodes = (threadCount+1) * ALLOCATOR_NODE_BLOCK_SIZE; size_t numNodes = (size_t)((numPrims+1)/2 * BVH4HAIR_NODE_PREALLOC_FACTOR) + minAllocNodes; if (numPrimitives == 0) numNodes = 0; allocateMemoryPools(numPrims,numNodes); } }
void BVH4mbBuilder::allocateData(const size_t threadCount, const size_t totalNumPrimitives) { DBG(PING); size_t numPrimitivesOld = numPrimitives; numPrimitives = totalNumPrimitives; DBG(DBG_PRINT(numPrimitives)); if (numPrimitivesOld != numPrimitives) { const size_t numPrims = numPrimitives+4; const size_t minAllocNodes = numPrims ? threadCount * ALLOCATOR_NODE_BLOCK_SIZE * 4: 16; const size_t numNodes = max((size_t)(numPrims * BVH_NODE_PREALLOC_FACTOR),minAllocNodes); allocateMemoryPools(numPrims,numNodes,sizeof(BVH4i::Node),sizeof(BVH4mb::Triangle01)); } }
void BVH4mbBuilder::allocateData(const size_t threadCount, const size_t totalNumPrimitives) { DBG(PING); size_t numPrimitivesOld = numPrimitives; numPrimitives = totalNumPrimitives; DBG(PRINT(numPrimitives)); if (numPrimitivesOld != numPrimitives) { const size_t numPrims = numPrimitives+4; const size_t minAllocNodes = (threadCount+1) * 2 * ALLOCATOR_NODE_BLOCK_SIZE; const size_t numNodes = max((size_t)((numPrims+3)/4),minAllocNodes); allocateMemoryPools(numPrims,numNodes,sizeof(BVH4mb::Node),sizeof(BVH4mb::Triangle01)); } }