From d03291eeb1efbb1005eba5a8a4b2c92ef66d2fd5 Mon Sep 17 00:00:00 2001 From: Mateusz Zalega Date: Thu, 16 Aug 2018 21:44:37 +0200 Subject: gui: improved FPGAViewWidget::paintGL() performance Profiling revealed that memcpy() in QOpenGLBuffer::allocate() had been taking the most time during paintGL() calls. I've been able to take the CPU usage down to about 1/4 of its previous values by caching elements in VBOs and updating them only after subsequent calls to renderGraphicElement(). Signed-off-by: Mateusz Zalega --- common/nextpnr.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'common/nextpnr.h') diff --git a/common/nextpnr.h b/common/nextpnr.h index 29a85a10..59ae0323 100644 --- a/common/nextpnr.h +++ b/common/nextpnr.h @@ -157,11 +157,25 @@ struct GraphicElement enum style_t { + STYLE_GRID, STYLE_FRAME, // Static "frame". Contrast between STYLE_INACTIVE and STYLE_ACTIVE STYLE_HIDDEN, // Only display when object is selected or highlighted STYLE_INACTIVE, // Render using low-contrast color STYLE_ACTIVE, // Render using high-contast color + // UI highlight groups + STYLE_HIGHLIGHTED0, + STYLE_HIGHLIGHTED1, + STYLE_HIGHLIGHTED2, + STYLE_HIGHLIGHTED3, + STYLE_HIGHLIGHTED4, + STYLE_HIGHLIGHTED5, + STYLE_HIGHLIGHTED6, + STYLE_HIGHLIGHTED7, + + STYLE_SELECTED, + STYLE_HOVER, + STYLE_MAX } style = STYLE_FRAME; -- cgit v1.2.3