diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 18f4a02cc270..d07f1a7b5ae8 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -320,10 +320,14 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera,
 			/*
 			 * Use the sensor resolution aligned to the ImgU
 			 * output constraints.
+			 *
+			 * \todo Give 32 pixels from the sensor frame size
+			 * for the IF and BDS rectangles to scale. See
+			 * the todo note for te same operation in validate().
 			 */
-			size.width = std::min(sensorResolution.width,
+			size.width = std::min(sensorResolution.width - 32,
 					      IPU3_OUTPUT_MAX_WIDTH);
-			size.height = std::min(sensorResolution.height,
+			size.height = std::min(sensorResolution.height - 32,
 					       IPU3_OUTPUT_MAX_HEIGHT);
 			size.width &= ~IPU3_OUTPUT_WIDTH_ALIGN;
 			size.height &= ~IPU3_OUTPUT_HEIGHT_ALIGN;
