summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/render_orchestrator.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [core] use individual textures for line dash patternsupstream/zmiao-testKonstantin Käfer2019-10-291-13/+11
| | | | | | | | This moves the LineAtlas from a shared texture that contained SDF dash patterns to use individual textures. Previously, the texture space was limited to a texture of 512 pixels height. Dash patterns were never removed (and are still never removed as of this patch), which means that this texture could fill up for styles that use a lot of different dash patterns. In particular, dash patterns for lines with a round line cap take up 15 pixels of texture height, limiting the amount of unique dash patterns to 34. While this was probably enough for rendering a single style, we quickly exhausted this number when reusing the Map object to render different styles. Instead of a global shared texture, we're now creating individual textures for every dash pattern. These textures are still cached so that we don't need to re-upload the texture on every frame.
* [core] Orchestration performance for styles with multiple sourcesMikhail Pozdnyakov2019-10-041-25/+36
| | | | | | | | | | | | RenderOrchestrator holds a vector of ordered rendered layers, in order to minimize calling of `getRenderLayer()`, which could be quite expensive as it calculates hash of the layer Id. This change improves orchestration performance in particular for the styles that have multiple sources. The `API_renderStill_multiple_sources` benchmark runs approximately 70% faster with the changes applied.
* [core] Clang format fixandroid-v8.3.2Mikhail Pozdnyakov2019-09-191-19/+20
|
* [core] Immutable/Mutable pattern for PlacementMikhail Pozdnyakov2019-09-191-15/+15
|
* [core] Update buckets in RendererMikhail Pozdnyakov2019-09-191-12/+27
|
* [build] Fix clang format and tidy checksJuha Alanen2019-09-181-8/+4
|
* [core] Add removeFeatureState APIJuha Alanen2019-09-181-0/+9
|
* [core] Add support for set/getFeatureState APIsJuha Alanen2019-09-181-0/+18
|
* [core] Coalesce buckets updates from several tilesMikhail Pozdnyakov2019-09-131-1/+5
|
* [core] Initiate new placement only when a new bucket appearesMikhail Pozdnyakov2019-09-131-3/+6
|
* [core] Fix placement for updated bucketsMikhail Pozdnyakov2019-09-131-10/+8
| | | | | Buckets update initiates new placement, so that newly added symbols are placed and shown immediately.
* [core] Export symbol placement update status from MapObserverMikhail Pozdnyakov2019-08-231-5/+5
|
* [core] make symbols fade out faster while zooming outAnsis Brammanis2019-08-201-2/+2
| | | | | | | | | | | Zooming outcan make symbols overlap quickly. The area previously covered by the viewport is covered by a lot of colliding labels while the surrounding area has no labels. This difference produces an unwanted effect. This reduces that effect by: - reducing the fade duration while zooming out - doing placement more frequently while zooming out
* [core] Shrink RenderOrchestrator::filteredLayersForSource in reduceMemoryUse()Mikhail Pozdnyakov2019-07-291-3/+1
| | | | | Before this change, `RenderOrchestrator::filteredLayersForSource` shrank inside `createRenderTree()`, which potentially might have affected rendering performance.
* [core] Optimize Query Rendered Features APIMikhail Pozdnyakov2019-07-251-7/+8
| | | | | | | | This PR filters out invisible layers before quering features (rather than after, like it happened before). With this change `API_queryRenderedFeaturesAll` performance test passes almost two times faster.
* Fix wrong #15065 nit fixAleksandar Stojiljkovic2019-07-191-2/+4
| | | | | | | Change in https://github.com/mapbox/mapbox-gl-native/pull/15065/commits/3ffc14a3250e5c4eb7dcaf0d1cc0e95c9de3c014 was a typo while addresssing review nit: while it didn't affect render tests it doesn't work properly in all cases. Fixes: #14844, #14779, #15039
* [core] Synchronize render passes and render tilesMikhail Pozdnyakov2019-07-111-3/+3
| | | | | | | | | | | | | | | | Before this change render passes were assigned for the whole layer at properties evaluation stage. This caused problems, as layer render data are bound to the tile and these data might differ from tile to tile, depending on which tile has been updated by the tile worker and which has not been yet updated. This change takes into consideration the actual render passes required for each tile and combines them for the layer render passes. Naturally, this change also introduces render pass check for each render layer in `RenderLayer::render()` implementations.
* Issue #15065 changelogs and nit fix.Aleksandar Stojiljkovic2019-07-091-5/+6
|
* Fix layers rendering after fill-extrusionAleksandar Stojiljkovic2019-07-091-3/+7
| | | | | | | | | | | | | | | | | | | | | This fixes following issues: * Fix some false passing combinations/fill-extrusion-translucent--XXXX tests * Fix and enable other, failing but ignored, combinations/fill-extrusion-translucent--XXXX tests * Fix rendering of layers that are on top of fill-extrusion layers state.getProjMatrix(nearClippedProjMatrix, 100) caused that tests with size 64x64 were not rendering fill extrusions: far plane calculated as 96.9 and near plane set to 100 was the cause. near plane is changed from hardcoded 100 to depend on state.getCameraToCenterDistance() - producing similar value but one that follows max zoom. This caused that e.g. combinations/fill-extrusion-translucent--fill-opaque was falsely passing as only fill-opaque layer got rendered. combinations/fill-extrusion-translucent--XXXX tests expose regression https://github.com/mapbox/mapbox-gl-native/issues/14844#issuecomment-503600034 in #14844, #14779. Fix (opaquePassCutoff, is3D) is ported from https://github.com/mapbox/mapbox-gl-js/pull/7821 Fixes: #14844, #14779, #15039
* [core] Reserve size for filtered render layersAlexander Shalamov2019-07-091-2/+9
|
* [core] Improve performance for query rendered featuresAlexander Shalamov2019-07-091-15/+27
| | | | | - query rendered symbols only from layers that support it - remove unnecessary iterations over vectors
* [core] RenderSource creates render itemsMikhail Pozdnyakov2019-07-041-21/+15
|
* [core] ImageManager is not used at tile upload stageMikhail Pozdnyakov2019-07-041-1/+1
|
* [core] RenderSource does re-layout if layer's data-driven properties change.Mikhail Pozdnyakov2019-07-021-1/+6
|
* [core] Introduce RenderOrchestratorMikhail Pozdnyakov2019-06-251-0/+630