Bug 1356119 - Skip Flush to old context after device reset. r=dvander

This commit is contained in:
Kevin Chen 2017-04-14 00:19:00 -04:00
Родитель 4d8d922a77
Коммит d83dc709cb
4 изменённых файлов: 7 добавлений и 5 удалений

Просмотреть файл

@ -418,7 +418,7 @@ public:
*/
virtual void EndFrame();
virtual void CancelFrame() { ReadUnlockTextures(); }
virtual void CancelFrame(bool aNeedFlush = true) { ReadUnlockTextures(); }
virtual void SetDispAcquireFence(Layer* aLayer);

Просмотреть файл

@ -1369,7 +1369,7 @@ void
LayerManagerComposite::ChangeCompositor(Compositor* aNewCompositor)
{
if (mCompositor) {
mCompositor->CancelFrame();
mCompositor->CancelFrame(false);
}
mCompositor = aNewCompositor;
mTwoPassTmpTarget = nullptr;

Просмотреть файл

@ -1534,12 +1534,14 @@ CompositorD3D11::Present()
}
void
CompositorD3D11::CancelFrame()
CompositorD3D11::CancelFrame(bool aNeedFlush)
{
ReadUnlockTextures();
// Flush the context, otherwise the driver might hold some resources alive
// until the next flush or present.
mContext->Flush();
if (aNeedFlush) {
mContext->Flush();
}
}
void

Просмотреть файл

@ -119,7 +119,7 @@ public:
*/
virtual void EndFrame() override;
virtual void CancelFrame() override;
virtual void CancelFrame(bool aNeedFlush = true) override;
/**
* Setup the viewport and projection matrix for rendering