| Summary: | GraphUI Group: Resolve Performance Regression in Scene.pickShape(): Drop invisible and clipped shapes | ||
|---|---|---|---|
| Product: | [JogAmp] GraphUI | Reporter: | Sven Gothel <sgothel> |
| Component: | Core | Assignee: | Sven Gothel <sgothel> |
| Status: | RESOLVED FIXED | ||
| Severity: | critical | ||
| Priority: | P1 | ||
| Version: | 2.6.0 | ||
| Hardware: | All | ||
| OS: | all | ||
| Type: | DEFECT | SCM Refs: |
5f9fb7159fa33bc979e5050d384b6939658049bd
19fac36ae64ffb219fb40449b537219d74a1f000
8bb2f6dec8ab731b07387b947715fa1959c680e4
|
| Workaround: | --- | ||
| Bug Depends on: | |||
| Bug Blocks: | 805 | ||
|
Description
Sven Gothel
2024-01-22 02:44:50 CET
commit 5f9fb7159fa33bc979e5050d384b6939658049bd Bug 1489 - GraphUI Group: Resolve Performance Regression in Scene.pickShape(): Drop invisible and clipped shapes implemented as described. +++ Further - cleanup TreeTool - rename Container methods: -- setFrustumCullingEnabled() -> setPMvCullingEnabled() -- isFrustumCullingEnabled() -> isPMvCullingEnabled() - supply Container with -- isCullingEnabled() -- List<Shape> getRenderedShapes() -- isOutside() -- isOutside2() -- forAllRendered() 19fac36ae64ffb219fb40449b537219d74a1f000 Scene.dispatchMouseEventPickShape(): Reuse PMVMatrix4f, Ray and Vec3f within EDT, reducing temp objects on mouse moves commit 8bb2f6dec8ab731b07387b947715fa1959c680e4
Bug 1489: Lock-Free Double-Buffered 'renderedShapes' causes data-race between rendering & input-edt, use synchronized tripple-buffering
Tripple-buffering _almost_ produces zero data-race collisions,
however .. it still does rarely -> hence synchronize on the used ArrayList<>.
This adds a minimal chance for blocking the input-EDT,
but gives correct code & results.
Double-buffered 'renderedShapes' was introduced to resolve Bug 1489
in commit 5f9fb7159fa33bc979e5050d384b6939658049bd
This solution is tested by passing '-swapInterval 0' via CommandlineOptions for FontView01, UIMediaGrid01 ..,
i.e. rendering faster than picking and hence provoking the data-race condition.
|