Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

[core] Render pipeline refactoring #14385

Merged
merged 7 commits into from
Apr 17, 2019

Conversation

pozdnyakov
Copy link
Contributor

@pozdnyakov pozdnyakov commented Apr 10, 2019

This patch does the following:

  • provides generic mechanism to synchronize buckets and layer paint properties (applied for the layers that render geometry tiles data, i.e. symbol, line, fill, fill-extrusion, heatmap, circle)
  • introduces new immutable style::LayerProperties and LayerRenderData types, which is a step towards separate render thread.
  • encapsulates layer paint properties initialization
  • encapsulates render tile initialization
  • multiple simplifications and refactoring

Fixes #13812

@pozdnyakov pozdnyakov force-pushed the mikhail_sync_buckets_and_paint_properties branch from 9997c34 to 8f54901 Compare April 10, 2019 13:15
@pozdnyakov pozdnyakov added Core The cross-platform C++ core, aka mbgl refactor labels Apr 10, 2019
src/mbgl/layermanager/fill_layer_factory.cpp Outdated Show resolved Hide resolved
src/mbgl/style/layers/background_layer_properties.hpp Outdated Show resolved Hide resolved
src/mbgl/renderer/tile_pyramid.cpp Outdated Show resolved Hide resolved
@pozdnyakov pozdnyakov force-pushed the mikhail_sync_buckets_and_paint_properties branch 3 times, most recently from 5439462 to 06bc2ea Compare April 11, 2019 14:41
Copy link
Contributor

@alexshalamov alexshalamov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm with nits

@@ -412,7 +392,7 @@ void GeometryTileWorker::parse() {
}

for (const auto& layer : group) {
buckets.emplace(layer->baseImpl->id, bucket);
renderData.emplace(layer->baseImpl->id, LayerRenderData{bucket, layer});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

std::move(bucket)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bucket is shared between several items

src/mbgl/tile/geometry_tile.cpp Show resolved Hide resolved
const auto& evaluated_,
const auto& crossfade_,
const auto& tileBucket,
auto&& uniformValues,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const auto&

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is invoked with a temporary

const optional<ImagePosition>& patternPositionA,
const optional<ImagePosition>& patternPositionB, auto&& textureBindings) {
const optional<ImagePosition>& patternPositionB,
auto&& textureBindings) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const auto&

and remove moves in draw call below

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Core The cross-platform C++ core, aka mbgl refactor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unsynchronized buckets and paint properties when layout changes
2 participants