From aa6c59f950d45581d7d1a8058cb1e6023b649bcb Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Mon, 19 May 2025 21:23:36 +0200 Subject: [PATCH] renderer: dont call glgeterror unless trace glgeterror causes overhead and driver synchronisations overhead if called in hot paths, the GLCALL macro is used in a lot of places, guard it behind the AQ_TRACE env var. at the cost of less debug output unless AQ_TRACE is used. --- src/backend/drm/Renderer.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/backend/drm/Renderer.cpp b/src/backend/drm/Renderer.cpp index c46ea24..3b523c0 100644 --- a/src/backend/drm/Renderer.cpp +++ b/src/backend/drm/Renderer.cpp @@ -20,11 +20,13 @@ using namespace Hyprutils::Math; #define GLCALL(__CALL__) \ { \ __CALL__; \ - auto err = glGetError(); \ - if (err != GL_NO_ERROR) { \ - backend->log(AQ_LOG_ERROR, \ - std::format("[GLES] Error in call at {}@{}: 0x{:x}", __LINE__, \ - ([]() constexpr -> std::string { return std::string(__FILE__).substr(std::string(__FILE__).find_last_of('/') + 1); })(), err)); \ + if (Aquamarine::isTrace()) { \ + auto err = glGetError(); \ + if (err != GL_NO_ERROR) { \ + backend->log(AQ_LOG_ERROR, \ + std::format("[GLES] Error in call at {}@{}: 0x{:x}", __LINE__, \ + ([]() constexpr -> std::string { return std::string(__FILE__).substr(std::string(__FILE__).find_last_of('/') + 1); })(), err)); \ + } \ } \ }