MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / copyDataToCPU

Method copyDataToCPU

Source/Falcor/Utils/Debug/PixelDebug.cpp:249–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

247}
248
249bool PixelDebug::copyDataToCPU()
250{
251 FALCOR_ASSERT(!mRunning);
252 if (mWaitingForData)
253 {
254 // Wait for signal.
255 mpFence->wait();
256 mWaitingForData = false;
257
258 if (mEnabled)
259 {
260 // Copy data from readback buffer to CPU buffers.
261 const uint8_t* data = reinterpret_cast<const uint8_t*>(mpReadbackBuffer->map());
262 const uint32_t* counterData = reinterpret_cast<const uint32_t*>(data);
263 data += mpCounterBuffer->getSize();
264 const PrintRecord* printData = reinterpret_cast<const PrintRecord*>(data);
265 data += mpPrintBuffer->getSize();
266 const AssertRecord* assertData = reinterpret_cast<const AssertRecord*>(data);
267
268 const uint32_t printCount = std::min(mpPrintBuffer->getElementCount(), counterData[0]);
269 const uint32_t assertCount = std::min(mpAssertBuffer->getElementCount(), counterData[1]);
270
271 mPrintData.assign(printData, printData + printCount);
272 mAssertData.assign(assertData, assertData + assertCount);
273
274 mpReadbackBuffer->unmap();
275 mDataValid = true;
276 return true;
277 }
278 }
279
280 return false;
281}
282
283} // namespace Falcor

Callers

nothing calls this directly

Calls 6

mapMethod · 0.80
assignMethod · 0.80
unmapMethod · 0.80
minFunction · 0.50
waitMethod · 0.45
getSizeMethod · 0.45

Tested by

no test coverage detected