diff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp
index f31956ff0..0121c97ad 100644
--- a/src/apps/qcam/viewfinder_gl.cpp
+++ b/src/apps/qcam/viewfinder_gl.cpp
@@ -9,14 +9,16 @@
 
 #include <array>
 
+#include <libcamera/formats.h>
+
+#include "libcamera/internal/dma_buf_allocator.h"
+
 #include <QByteArray>
 #include <QFile>
 #include <QImage>
 #include <QMatrix4x4>
 #include <QStringList>
 
-#include <libcamera/formats.h>
-
 #include "../common/image.h"
 
 static const QList<libcamera::PixelFormat> supportedFormats{
@@ -542,6 +544,10 @@ void ViewFinderGL::doRender()
 	/* Stride of the first plane, in pixels. */
 	unsigned int stridePixels;
 
+	std::vector<libcamera::DmaSyncer> dmaSyncers;
+	for (const libcamera::FrameBuffer::Plane &plane : buffer_->planes())
+		dmaSyncers.emplace_back(plane.fd, libcamera::DmaSyncer::SyncType::Read);
+
 	switch (format_) {
 	case libcamera::formats::NV12:
 	case libcamera::formats::NV21:
diff --git a/src/apps/qcam/viewfinder_qt.cpp b/src/apps/qcam/viewfinder_qt.cpp
index 1a238922b..4d00f154d 100644
--- a/src/apps/qcam/viewfinder_qt.cpp
+++ b/src/apps/qcam/viewfinder_qt.cpp
@@ -11,6 +11,7 @@
 #include <stdint.h>
 #include <utility>
 
+#include "libcamera/internal/dma_buf_allocator.h"
 #include <libcamera/formats.h>
 
 #include <QImage>
@@ -114,6 +115,10 @@ void ViewFinderQt::render(libcamera::FrameBuffer *buffer, Image *image)
 			 * Otherwise, convert the format and release the frame
 			 * buffer immediately.
 			 */
+			std::vector<libcamera::DmaSyncer> dmaSyncers;
+			for (const libcamera::FrameBuffer::Plane &plane : buffer->planes())
+				dmaSyncers.emplace_back(plane.fd, libcamera::DmaSyncer::SyncType::Read);
+
 			converter_.convert(image, size, &image_);
 		}
 	}
@@ -161,6 +166,12 @@ void ViewFinderQt::paintEvent(QPaintEvent *)
 
 	/* If we have an image, draw it, with black letterbox rectangles. */
 	if (!image_.isNull()) {
+		if (buffer_) {
+			std::vector<libcamera::DmaSyncer> dmaSyncers;
+			for (const libcamera::FrameBuffer::Plane &plane : buffer_->planes())
+				dmaSyncers.emplace_back(plane.fd, libcamera::DmaSyncer::SyncType::Read);
+		}
+
 		if (place_.width() < width()) {
 			QRect rect{ 0, 0, (width() - place_.width()) / 2, height() };
 			painter.drawRect(rect);
