From 02b75fbdaf1cdfbbd4c743d80284943682964003 Mon Sep 17 00:00:00 2001 From: Nicolas Silva Date: Fri, 3 Oct 2014 11:25:07 +0200 Subject: [PATCH] Bug 1073113 - make D3D11 image layers double buffered. r=mattwoodrow --- gfx/layers/client/ClientImageLayer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gfx/layers/client/ClientImageLayer.cpp b/gfx/layers/client/ClientImageLayer.cpp index 06fed07e04aa..d82252292ac2 100644 --- a/gfx/layers/client/ClientImageLayer.cpp +++ b/gfx/layers/client/ClientImageLayer.cpp @@ -105,6 +105,13 @@ protected: return mImageClientTypeContainer; } + // Since D3D11 TextureClient doesn't have an internal buffer, modifying the + // front buffer directly may break the transactional property of layer updates. + if (ClientManager()->GetCompositorBackendType() == LayersBackend::LAYERS_D3D11) { + mImageClientTypeContainer = CompositableType::BUFFER_IMAGE_BUFFERED; + return mImageClientTypeContainer; + } + AutoLockImage autoLock(mContainer); #ifdef MOZ_WIDGET_GONK