1
0
mirror of https://github.com/YosysHQ/nextpnr.git synced 2026-05-03 22:58:26 +00:00

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 <mateusz@appliedsourcery.com>
This commit is contained in:
Mateusz Zalega
2018-08-16 21:44:37 +02:00
parent b5faa7ad10
commit d03291eeb1
5 changed files with 184 additions and 90 deletions

View File

@@ -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;