[09/30] libcamera: software_isp: gpu: Make Rectangle window_ a local variable in configure()
diff mbox series

Message ID 20260618122245.946138-10-bryan.odonoghue@linaro.org
State New
Headers show
Series
  • RFC/RFT: gpuisp: Multipass with speed optimisations on top
Related show

Commit Message

Bryan O'Donoghue June 18, 2026, 12:22 p.m. UTC
Class member window_ is only used in one method now so make it a local to
that method instead.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 .../software_isp/software_isp_pipeline_gpu.cpp   | 16 +++++++++-------
 .../software_isp/software_isp_pipeline_gpu.h     |  1 -
 2 files changed, 9 insertions(+), 8 deletions(-)

Patch
diff mbox series

diff --git a/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp b/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp
index 6f329cf40..7de77319d 100644
--- a/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp
+++ b/src/libcamera/software_isp/software_isp_pipeline_gpu.cpp
@@ -122,6 +122,8 @@  int SoftwareIspPipelineGpu::configure(const StreamConfiguration &inputCfg,
 				      const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,
 				      [[maybe_unused]] bool ccmEnabled)
 {
+	Rectangle window;
+
 	if (getInputConfig(inputCfg.pixelFormat, inputConfig_) != 0)
 		return -EINVAL;
 
@@ -165,21 +167,21 @@  int SoftwareIspPipelineGpu::configure(const StreamConfiguration &inputCfg,
 	outputPixelFormat_ = outputCfg.pixelFormat;
 	outputSize_ = outputCfg.size;
 
-	window_.x = ((inputCfg.size.width - outputCfg.size.width) / 2) &
+	window.x = ((inputCfg.size.width - outputCfg.size.width) / 2) &
 		    ~(inputConfig_.patternSize.width - 1);
-	window_.y = ((inputCfg.size.height - outputCfg.size.height) / 2) &
+	window.y = ((inputCfg.size.height - outputCfg.size.height) / 2) &
 		    ~(inputConfig_.patternSize.height - 1);
-	window_.width = outputCfg.size.width;
-	window_.height = outputCfg.size.height;
+	window.width = outputCfg.size.width;
+	window.height = outputCfg.size.height;
 
 	/*
-	 * Don't pass x,y from window_ since process() already adjusts for it.
+	 * Don't pass x,y from window since process() already adjusts for it.
 	 * But crop the window to 2/3 of its width and height for speedup.
 	 */
-	stats_->setWindow(Rectangle(window_.size()));
+	stats_->setWindow(Rectangle(window.size()));
 
 	/* Configure for one pass */
-	PassConfig rawSensorIn = { inputCfg.size, inputConfig_.stride, inputPixelFormat_, window_ };
+	PassConfig rawSensorIn = { inputCfg.size, inputConfig_.stride, inputPixelFormat_, window };
 	PassConfig rgbaOut = { outputCfg.size, outputConfig_.stride, outputPixelFormat_, Rectangle(outputSize_) };
 
 	gpuIspShaderPassDemosiac_.configure(rawSensorIn, rgbaOut);
diff --git a/src/libcamera/software_isp/software_isp_pipeline_gpu.h b/src/libcamera/software_isp/software_isp_pipeline_gpu.h
index 6bd8adc8f..1b77bc71d 100644
--- a/src/libcamera/software_isp/software_isp_pipeline_gpu.h
+++ b/src/libcamera/software_isp/software_isp_pipeline_gpu.h
@@ -67,7 +67,6 @@  private:
 	std::unique_ptr<eGLImage> eglImageBayerIn_;
 	std::unique_ptr<eGLImage> eglImageRGBAOut_;
 
-	Rectangle window_;
 	std::unique_ptr<SwStatsCpu> stats_;
 	eGL egl_;
 	uint32_t width_;