| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Buckets update initiates new placement, so that
newly added symbols are placed and shown immediately.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Before this change, `RenderOrchestrator::filteredLayersForSource` shrank inside
`createRenderTree()`, which potentially might have affected rendering performance.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
- query rendered symbols only from layers that support it
- remove unnecessary iterations over vectors
|
| |
|
| |
|
| |
|
|
|