diff --git a/gfx/ipc/GPUParent.cpp b/gfx/ipc/GPUParent.cpp index c62904ef2be7..08d42dc7f0d9 100644 --- a/gfx/ipc/GPUParent.cpp +++ b/gfx/ipc/GPUParent.cpp @@ -18,6 +18,7 @@ #include "VRManagerParent.h" #include "VsyncBridgeParent.h" #if defined(XP_WIN) +# include "DeviceManagerD3D9.h" # include "mozilla/gfx/DeviceManagerD3D11.h" #endif @@ -50,6 +51,7 @@ GPUParent::Init(base::ProcessId aParentPid, gfxVars::Initialize(); #if defined(XP_WIN) DeviceManagerD3D11::Init(); + DeviceManagerD3D9::Init(); #endif CompositorThreadHolder::Start(); VRManager::ManagerInit(); @@ -224,8 +226,7 @@ GPUParent::ActorDestroy(ActorDestroyReason aWhy) #ifndef NS_FREE_PERMANENT_DATA // No point in going through XPCOM shutdown because we don't keep persistent - // state. Currently we quick-exit in RecvBeginShutdown so this should be - // unreachable. + // state. ProcessChild::QuickExit(); #endif @@ -235,6 +236,7 @@ GPUParent::ActorDestroy(ActorDestroyReason aWhy) CompositorThreadHolder::Shutdown(); #if defined(XP_WIN) DeviceManagerD3D11::Shutdown(); + DeviceManagerD3D9::Shutdown(); #endif gfxVars::Shutdown(); gfxConfig::Shutdown(); diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp index 7e579b220a67..372b53da8d5d 100644 --- a/gfx/thebes/gfxPlatform.cpp +++ b/gfx/thebes/gfxPlatform.cpp @@ -2249,6 +2249,10 @@ gfxPlatform::GetScaledFontForFontWithCairoSkia(DrawTarget* aTarget, gfxFont* aFo /* static */ bool gfxPlatform::UsesOffMainThreadCompositing() { + if (XRE_GetProcessType() == GeckoProcessType_GPU) { + return true; + } + static bool firstTime = true; static bool result = false;