Commit 8487cf85 authored by Kartikaya Gupta's avatar Kartikaya Gupta
Browse files

Bug 1385003 - Drop the hacky gecko IdNamespace allocator and use the...

Bug 1385003 - Drop the hacky gecko IdNamespace allocator and use the IdNamespace from WR to avoid mismatches. r=sotaro

MozReview-Commit-ID: 410h1ZkWBGL

--HG--
extra : rebase_source : c9172918eee2dbe290b09b3753e52f6998aa9173
parent c18e91b3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1695,8 +1695,6 @@ CompositorBridgeParent::AllocPWebRenderBridgeParent(const wr::PipelineId& aPipel
  RefPtr<widget::CompositorWidget> widget = mWidget;
  RefPtr<wr::WebRenderAPI> api = wr::WebRenderAPI::Create(
    gfxPrefs::WebRenderProfilerEnabled(), this, Move(widget), aSize);
  RefPtr<AsyncImagePipelineManager> asyncMgr =
    new AsyncImagePipelineManager(WebRenderBridgeParent::AllocIdNameSpace());
  if (!api) {
    mWrBridge = WebRenderBridgeParent::CreateDestroyed();
    mWrBridge.get()->AddRef(); // IPDL reference
@@ -1704,6 +1702,8 @@ CompositorBridgeParent::AllocPWebRenderBridgeParent(const wr::PipelineId& aPipel
    *aTextureFactoryIdentifier = TextureFactoryIdentifier(LayersBackend::LAYERS_NONE);
    return mWrBridge;
  }
  RefPtr<AsyncImagePipelineManager> asyncMgr =
    new AsyncImagePipelineManager(api->GetNamespace());
  api->SetRootPipeline(aPipelineId);
  RefPtr<CompositorAnimationStorage> animStorage = GetAnimationStorage();
  mWrBridge = new WebRenderBridgeParent(this, aPipelineId, mWidget, nullptr, Move(api), Move(asyncMgr), Move(animStorage));
+3 −5
Original line number Diff line number Diff line
@@ -112,8 +112,6 @@ private:
  InfallibleTArray<OpDestroy>* mActorsToDestroy;
};

/* static */ uint32_t WebRenderBridgeParent::sIdNameSpace = 0;

WebRenderBridgeParent::WebRenderBridgeParent(CompositorBridgeParentBase* aCompositorBridge,
                                             const wr::PipelineId& aPipelineId,
                                             widget::CompositorWidget* aWidget,
@@ -131,7 +129,7 @@ WebRenderBridgeParent::WebRenderBridgeParent(CompositorBridgeParentBase* aCompos
  , mChildLayerObserverEpoch(0)
  , mParentLayerObserverEpoch(0)
  , mWrEpoch(0)
  , mIdNamespace(AllocIdNameSpace())
  , mIdNamespace(aApi->GetNamespace())
  , mPaused(false)
  , mDestroyed(false)
  , mForceRendering(false)
@@ -150,7 +148,7 @@ WebRenderBridgeParent::WebRenderBridgeParent()
  , mChildLayerObserverEpoch(0)
  , mParentLayerObserverEpoch(0)
  , mWrEpoch(0)
  , mIdNamespace(AllocIdNameSpace())
  , mIdNamespace{0}
  , mPaused(false)
  , mDestroyed(true)
  , mForceRendering(false)
@@ -886,7 +884,7 @@ WebRenderBridgeParent::UpdateWebRender(CompositorVsyncScheduler* aScheduler,

  // Update id name space to identify obsoleted keys.
  // Since usage of invalid keys could cause crash in webrender.
  mIdNamespace = AllocIdNameSpace();
  mIdNamespace = aApi->GetNamespace();
  // XXX Remove it when webrender supports sharing/moving Keys between different webrender instances.
  // XXX It requests client to update/reallocate webrender related resources,
  // but parent side does not wait end of the update.
+0 −6
Original line number Diff line number Diff line
@@ -187,10 +187,6 @@ public:
  void UpdateAPZ();
  const WebRenderScrollData& GetScrollData() const;

  static wr::IdNamespace AllocIdNameSpace() {
    return wr::IdNamespace { ++sIdNameSpace };
  }

  void FlushRendering(bool aIsSync);

  void ScheduleComposition();
@@ -296,8 +292,6 @@ private:

  // Can only be accessed on the compositor thread.
  WebRenderScrollData mScrollData;

  static uint32_t sIdNameSpace;
};

} // namespace layers