From patchwork Thu May 21 14:10:05 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Mader X-Patchwork-Id: 26789 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 4C24FC32F4 for ; Thu, 21 May 2026 14:10:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E249363024; Thu, 21 May 2026 16:10:34 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=collabora.com header.i=robert.mader@collabora.com header.b="HRYz/rUU"; dkim-atps=neutral Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B0EA162FE1 for ; Thu, 21 May 2026 16:10:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; t=1779372627; cv=none; d=zohomail.com; s=zohoarc; b=NTkx9+6ww13vKzMG5b/MTeYp1hL6MVuI7OWw75BMlzhZLTnsZ8WTlBH2/hARZV13q37+TfUxjPUaOlAZvB7pE1MhIuudOJexZW5g3lQK+RpAkL/7YO3lDPiyHUFwIW3DCBO/VW8hS+Vn5oGJXdeze0Dkwm8sfk8iDsMND0dkNHA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779372627; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=TKgp4eFBCV13RWpqr4iN2JjjKqhWVNOT2jg98eLTw6c=; b=GKDI4L/QPEPklh7S/dTk6Vm7MbLTzfppL7kWIsKpnN/VZVXd0yaB/W0BqEoKqj/aSFfhwJRJZFrpc+gS2yOYLUBVn+23di28FOAAzAKU/A/93HUlnzPGAORJby5CenLQmNWxbxJBM8p3rwTe8pTAjbwc8rJOweLXAll7b6+CNLM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=robert.mader@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1779372627; s=zohomail; d=collabora.com; i=robert.mader@collabora.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Message-Id:Reply-To; bh=TKgp4eFBCV13RWpqr4iN2JjjKqhWVNOT2jg98eLTw6c=; b=HRYz/rUUPssLU8FBoGAueK7tbKsNwvb2yGVoHhS+CCWcImPgXvhfa/zUyiaxGM99 UJi6wj1uj/fykX7GBGmzwFdwESex6tWMi1Osm7U48H68bhX7YDCMX/eW9jWNyqhWLw4 rs3LUskYDAkZybapae+D4k74vIfhfxLuhP8rYoQI= Received: by mx.zohomail.com with SMTPS id 1779372626205474.31481325044206; Thu, 21 May 2026 07:10:26 -0700 (PDT) From: Robert Mader To: libcamera-devel@lists.libcamera.org Cc: Robert Mader Subject: [PATCH v1 2/3] egl: Call glFlush before glFinish Date: Thu, 21 May 2026 16:10:05 +0200 Message-ID: <20260521141006.101016-3-robert.mader@collabora.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260521141006.101016-1-robert.mader@collabora.com> References: <20260521141006.101016-1-robert.mader@collabora.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Apparently it is not guaranteed that drivers will do so implicitly, which may or may not be a driver bug. The impact on performance has been observed to be significant and it's easy enough, so let's do it explicitly. Below are some benchmark results. All where done using postmarketOS edge with updates from 21th May 2026 (Mesa 26.1.1). The mentioned pipelines where run five times each, with the mean value included here, which should be quite representive as the variance was rather small. All devices where using the powersave governor. cam -c /base/soc@0/cci@ac4a000/i2c-bus@0/camera@1a -s width=1920,height=1080 --capture=60 Before: 47986 us/frame After: 33596 us/frame ! cam -c /base/soc@0/cci@ac4a000/i2c-bus@1/camera@1a -s width=1920,height=1080 --capture=60 Before: 30294 us/frame After: 14922 us/frame ! cam -c /base/soc@0/cci@ac4b000/i2c-bus@1/camera@10 -s width=1920,height=1080 --capture=60 Before: 27373 us/frame After: 26106 us/frame cam -c /base/soc@0/cci@ac4a000/i2c-bus@1/camera@29 -s width=1920,height=1080 --capture=60 Before: 16339 us/frame After: 15897 us/frame cam -c /base/soc@0/cci@ac4a000/i2c-bus@1/camera@10 -s width=1920,height=1080 --capture=60 Before: 26206 us/frame After: 25721 us/frame cam -c /base/soc@0/cci@ac4a000/i2c-bus@0/camera@10 -s width=1920,height=1080 --capture=60 Before: 43723 us/frame After: 34124 us/frame ! cam -c /base/soc@0/cci@ac4a000/i2c-bus@0/camera@1a -s width=1920,height=1080 --capture=60 Before: 23597 us/frame After: 23707 us/frame cam -c /base/soc@0/bus@30800000/i2c@30a40000/camera@20 -s width=1280,height=720 --capture=60 Before: 91200 us/frame After: 91649 us/frame cam -c /base/soc@0/bus@30800000/i2c@30a50000/camera@2d -s width=1280,height=720 --capture=60 Before: 76577 us/frame After: 76956 us/frame cam -c /base/i2c-csi/front-camera@3c -s width=1280,height=720 --capture=60 Before: 188122 us/frame After: 188500 us/frame cam -c /base/i2c-csi/rear-camera@4c -s width=1280,height=720 --capture=60 Before: 193712 us/frame After: 190222 us/frame Signed-off-by: Robert Mader --- src/libcamera/egl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libcamera/egl.cpp b/src/libcamera/egl.cpp index 357918711..d9bc4f555 100644 --- a/src/libcamera/egl.cpp +++ b/src/libcamera/egl.cpp @@ -94,6 +94,7 @@ void eGL::syncOutput() { ASSERT(tid_ == Thread::currentId()); + glFlush(); glFinish(); }