diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 6e9bc630..06df909b 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -26,6 +26,7 @@
 
 #include <libcamera/camera.h>
 #include <libcamera/control_ids.h>
+#include <libcamera/pixel_format.h>
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
@@ -209,6 +210,12 @@ static const SimplePipelineInfo supportedDevices[] = {
 	{ "sun6i-csi", {}, false },
 };
 
+bool isRawFormat(const PixelFormat &format)
+{
+	return libcamera::PixelFormatInfo::info(format).colourEncoding ==
+	       libcamera::PixelFormatInfo::ColourEncodingRAW;
+}
+
 } /* namespace */
 
 class SimpleCameraData : public Camera::Private
@@ -1284,7 +1291,8 @@ int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)
 
 		cfg.setStream(&data->streams_[i]);
 
-		if (data->useConversion_)
+		if (data->useConversion_ &&
+		    (!data->swIsp_ || !isRawFormat(cfg.pixelFormat)))
 			outputCfgs.push_back(cfg);
 	}
 
