зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1194335. Disable partial present on Nvidia hardware. r=bas
I have a theory that bug 1189940 is caused by partial present. This is an attempt to see if that's true. --HG-- extra : rebase_source : 663613989e5a1b012909e1335595fac495c81478
This commit is contained in:
Родитель
52972d2713
Коммит
37ae0e16b5
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include "gfxWindowsPlatform.h"
|
||||
#include "nsIWidget.h"
|
||||
#include "nsIGfxInfo.h"
|
||||
#include "mozilla/layers/ImageHost.h"
|
||||
#include "mozilla/layers/ContentHost.h"
|
||||
#include "mozilla/layers/Effects.h"
|
||||
|
@ -19,6 +20,7 @@
|
|||
#include "gfxCrashReporterUtils.h"
|
||||
#include "gfxVR.h"
|
||||
#include "mozilla/gfx/StackArray.h"
|
||||
#include "mozilla/Services.h"
|
||||
|
||||
#include "mozilla/EnumeratedArray.h"
|
||||
|
||||
|
@ -1200,7 +1202,13 @@ CompositorD3D11::EndFrame()
|
|||
if (oldSize == mSize) {
|
||||
RefPtr<IDXGISwapChain1> chain;
|
||||
HRESULT hr = mSwapChain->QueryInterface((IDXGISwapChain1**)byRef(chain));
|
||||
if (SUCCEEDED(hr) && chain) {
|
||||
nsString vendorID;
|
||||
nsCOMPtr<nsIGfxInfo> gfxInfo = services::GetGfxInfo();
|
||||
gfxInfo->GetAdapterVendorID(vendorID);
|
||||
bool isNvidia = vendorID.EqualsLiteral("0x10de") && !gfxWindowsPlatform::GetPlatform()->IsWARP();
|
||||
if (SUCCEEDED(hr) && chain && !isNvidia) {
|
||||
// Avoid partial present on Nvidia hardware to try to work around
|
||||
// bug 1189940
|
||||
DXGI_PRESENT_PARAMETERS params;
|
||||
PodZero(¶ms);
|
||||
params.DirtyRectsCount = mInvalidRegion.GetNumRects();
|
||||
|
|
Загрузка…
Ссылка в новой задаче