[PATCH] libcamera: debayer_cpu: Report buffer sync times
Robert Mader
robert.mader at collabora.com
Sat Aug 31 20:59:26 CEST 2024
---
src/libcamera/software_isp/debayer_cpu.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp
index 6c953b03..e51ab6ff 100644
--- a/src/libcamera/software_isp/debayer_cpu.cpp
+++ b/src/libcamera/software_isp/debayer_cpu.cpp
@@ -735,6 +735,8 @@ void DebayerCpu::process(FrameBuffer *input, FrameBuffer *output, DebayerParams
clock_gettime(CLOCK_MONOTONIC_RAW, &frameStartTime);
}
+ timespec time0 = {};
+ clock_gettime(CLOCK_MONOTONIC_RAW, &time0);
for (const FrameBuffer::Plane &plane : output->planes()) {
const int fd = plane.fd.get();
struct dma_buf_sync sync = { DMA_BUF_SYNC_START };
@@ -744,6 +746,10 @@ void DebayerCpu::process(FrameBuffer *input, FrameBuffer *output, DebayerParams
if (ioctl (fd, DMA_BUF_IOCTL_SYNC, &sync) < 0)
LOG(Debayer, Error) << "Syncing buffer FD " << fd << "failed: " << errno;
}
+ timespec time1 = {};
+ clock_gettime(CLOCK_MONOTONIC_RAW, &time1);
+ int64_t time_sync = timeDiff(time1, time0);
+ LOG(Debayer, Warning) << "Syncing input buffers start: " << time_sync / 1000 << "us";
green_ = params.green;
red_ = swapRedBlueGains_ ? params.blue : params.red;
@@ -772,6 +778,7 @@ void DebayerCpu::process(FrameBuffer *input, FrameBuffer *output, DebayerParams
metadata.planes()[0].bytesused = out.planes()[0].size();
+ clock_gettime(CLOCK_MONOTONIC_RAW, &time0);
for (const FrameBuffer::Plane &plane : output->planes()) {
const int fd = plane.fd.get();
struct dma_buf_sync sync = { DMA_BUF_SYNC_END };
@@ -781,6 +788,9 @@ void DebayerCpu::process(FrameBuffer *input, FrameBuffer *output, DebayerParams
if (ioctl (fd, DMA_BUF_IOCTL_SYNC, &sync) < 0)
LOG(Debayer, Error) << "Syncing buffer FD " << fd << "failed: " << errno;
}
+ clock_gettime(CLOCK_MONOTONIC_RAW, &time1);
+ time_sync = timeDiff(time1, time0);
+ LOG(Debayer, Warning) << "Syncing input buffers end: " << time_sync / 1000 << "us";
/* Measure before emitting signals */
if (measuredFrames_ < DebayerCpu::kLastFrameToMeasure &&
--
2.46.0
More information about the libcamera-devel
mailing list