[2/2] software_isp: benchmark: Print what is being benchmarked
diff mbox series

Message ID 20260211170037.131630-2-johannes.goede@oss.qualcomm.com
State New
Headers show
Series
  • [1/2] software_isp: benchmark: Add missing _ postfix to measure data member
Related show

Commit Message

Hans de Goede Feb. 11, 2026, 5 p.m. UTC
With the GPU accelerated softISP 2 separate benchmark results are printed,
1 for the generation of the output images on the GPU and a separate one
for generating the statistics on the CPU.

Add a new name argument to the Benchmark class descriptor and print this
out when printing the benchmark result.

Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
---
 include/libcamera/internal/software_isp/benchmark.h | 3 ++-
 src/libcamera/software_isp/benchmark.cpp            | 5 +++--
 src/libcamera/software_isp/debayer.cpp              | 3 ++-
 src/libcamera/software_isp/swstats_cpu.cpp          | 2 +-
 4 files changed, 8 insertions(+), 5 deletions(-)

Comments

Barnabás Pőcze Feb. 11, 2026, 5:44 p.m. UTC | #1
Hi

2026. 02. 11. 18:00 keltezéssel, Hans de Goede írta:
> With the GPU accelerated softISP 2 separate benchmark results are printed,
> 1 for the generation of the output images on the GPU and a separate one
> for generating the statistics on the CPU.
> 
> Add a new name argument to the Benchmark class descriptor and print this
> out when printing the benchmark result.
> 
> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
> ---
>   include/libcamera/internal/software_isp/benchmark.h | 3 ++-
>   src/libcamera/software_isp/benchmark.cpp            | 5 +++--
>   src/libcamera/software_isp/debayer.cpp              | 3 ++-
>   src/libcamera/software_isp/swstats_cpu.cpp          | 2 +-
>   4 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/include/libcamera/internal/software_isp/benchmark.h b/include/libcamera/internal/software_isp/benchmark.h
> index 46bdb86d..9c181927 100644
> --- a/include/libcamera/internal/software_isp/benchmark.h
> +++ b/include/libcamera/internal/software_isp/benchmark.h

#include <string>


> @@ -20,13 +20,14 @@ namespace libcamera {
>   class Benchmark
>   {
>   public:
> -	Benchmark(const GlobalConfiguration &configuration);
> +	Benchmark(const GlobalConfiguration &configuration, const std::string &name);
>   	~Benchmark();
>   
>   	void startFrame(void);
>   	void finishFrame(void);
>   
>   private:
> +	std::string name_;
>   	timespec frameStartTime_;
>   	bool measure_;
>   	/* Skip 30 frames for things to stabilize then measure 30 frames */
> diff --git a/src/libcamera/software_isp/benchmark.cpp b/src/libcamera/software_isp/benchmark.cpp
> index 4ffb6773..e0fffaba 100644
> --- a/src/libcamera/software_isp/benchmark.cpp
> +++ b/src/libcamera/software_isp/benchmark.cpp
> @@ -26,8 +26,9 @@ LOG_DEFINE_CATEGORY(Benchmark)
>   /**
>    * \brief Constructs a Benchmark object
>    */
> -Benchmark::Benchmark(const GlobalConfiguration &configuration)
> +Benchmark::Benchmark(const GlobalConfiguration &configuration, const std::string &name)

   : name_(name)

instead of

>   {
> +	name_ = name;



>   	skipBeforeMeasure_ = configuration.option<unsigned int>(
>   						{ "software_isp", "measure", "skip" })
>   							.value_or(skipBeforeMeasure_);
> @@ -81,7 +82,7 @@ void Benchmark::finishFrame(void)
>   		frameProcessTime_ += timeDiff(frameEndTime, frameStartTime_);
>   		if (encounteredFrames_ == skipBeforeMeasure_ + framesToMeasure_) {
>   			LOG(Benchmark, Info)
> -				<< "Processed " << framesToMeasure_
> +				<< name_ << " processed " << framesToMeasure_
>   				<< " frames in " << frameProcessTime_ / 1000 << "us, "
>   				<< frameProcessTime_ / (1000 * framesToMeasure_)
>   				<< " us/frame";
> diff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/software_isp/debayer.cpp
> index dccdd86b..a6bceb58 100644
> --- a/src/libcamera/software_isp/debayer.cpp
> +++ b/src/libcamera/software_isp/debayer.cpp
> @@ -58,7 +58,8 @@ namespace libcamera {
>   
>   LOG_DEFINE_CATEGORY(Debayer)
>   
> -Debayer::Debayer(const GlobalConfiguration &configuration) : bench_(configuration)
> +Debayer::Debayer(const GlobalConfiguration &configuration)
> +	: bench_(configuration, "Debayer")
>   {
>   }
>   
> diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp
> index 5c3011a7..1cedcfbc 100644
> --- a/src/libcamera/software_isp/swstats_cpu.cpp
> +++ b/src/libcamera/software_isp/swstats_cpu.cpp
> @@ -155,7 +155,7 @@ namespace libcamera {
>   LOG_DEFINE_CATEGORY(SwStatsCpu)
>   
>   SwStatsCpu::SwStatsCpu(const GlobalConfiguration &configuration)
> -	: sharedStats_("softIsp_stats"), bench_(configuration)
> +	: sharedStats_("softIsp_stats"), bench_(configuration, "CPU stats")
>   {
>   	if (!sharedStats_)
>   		LOG(SwStatsCpu, Error)

Patch
diff mbox series

diff --git a/include/libcamera/internal/software_isp/benchmark.h b/include/libcamera/internal/software_isp/benchmark.h
index 46bdb86d..9c181927 100644
--- a/include/libcamera/internal/software_isp/benchmark.h
+++ b/include/libcamera/internal/software_isp/benchmark.h
@@ -20,13 +20,14 @@  namespace libcamera {
 class Benchmark
 {
 public:
-	Benchmark(const GlobalConfiguration &configuration);
+	Benchmark(const GlobalConfiguration &configuration, const std::string &name);
 	~Benchmark();
 
 	void startFrame(void);
 	void finishFrame(void);
 
 private:
+	std::string name_;
 	timespec frameStartTime_;
 	bool measure_;
 	/* Skip 30 frames for things to stabilize then measure 30 frames */
diff --git a/src/libcamera/software_isp/benchmark.cpp b/src/libcamera/software_isp/benchmark.cpp
index 4ffb6773..e0fffaba 100644
--- a/src/libcamera/software_isp/benchmark.cpp
+++ b/src/libcamera/software_isp/benchmark.cpp
@@ -26,8 +26,9 @@  LOG_DEFINE_CATEGORY(Benchmark)
 /**
  * \brief Constructs a Benchmark object
  */
-Benchmark::Benchmark(const GlobalConfiguration &configuration)
+Benchmark::Benchmark(const GlobalConfiguration &configuration, const std::string &name)
 {
+	name_ = name;
 	skipBeforeMeasure_ = configuration.option<unsigned int>(
 						{ "software_isp", "measure", "skip" })
 							.value_or(skipBeforeMeasure_);
@@ -81,7 +82,7 @@  void Benchmark::finishFrame(void)
 		frameProcessTime_ += timeDiff(frameEndTime, frameStartTime_);
 		if (encounteredFrames_ == skipBeforeMeasure_ + framesToMeasure_) {
 			LOG(Benchmark, Info)
-				<< "Processed " << framesToMeasure_
+				<< name_ << " processed " << framesToMeasure_
 				<< " frames in " << frameProcessTime_ / 1000 << "us, "
 				<< frameProcessTime_ / (1000 * framesToMeasure_)
 				<< " us/frame";
diff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/software_isp/debayer.cpp
index dccdd86b..a6bceb58 100644
--- a/src/libcamera/software_isp/debayer.cpp
+++ b/src/libcamera/software_isp/debayer.cpp
@@ -58,7 +58,8 @@  namespace libcamera {
 
 LOG_DEFINE_CATEGORY(Debayer)
 
-Debayer::Debayer(const GlobalConfiguration &configuration) : bench_(configuration)
+Debayer::Debayer(const GlobalConfiguration &configuration)
+	: bench_(configuration, "Debayer")
 {
 }
 
diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp
index 5c3011a7..1cedcfbc 100644
--- a/src/libcamera/software_isp/swstats_cpu.cpp
+++ b/src/libcamera/software_isp/swstats_cpu.cpp
@@ -155,7 +155,7 @@  namespace libcamera {
 LOG_DEFINE_CATEGORY(SwStatsCpu)
 
 SwStatsCpu::SwStatsCpu(const GlobalConfiguration &configuration)
-	: sharedStats_("softIsp_stats"), bench_(configuration)
+	: sharedStats_("softIsp_stats"), bench_(configuration, "CPU stats")
 {
 	if (!sharedStats_)
 		LOG(SwStatsCpu, Error)