Bug 1668575 - Disable DMABUF with software WebRender. r=mattwoodrow

Differential Revision: https://phabricator.services.mozilla.com/D93623
This commit is contained in:
Andrew Osmond 2020-10-15 03:41:46 +00:00
Родитель 92653cd047
Коммит 90f11a9082
3 изменённых файлов: 13 добавлений и 3 удалений

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

@ -112,9 +112,15 @@ TextureType TexTypeForWebgl(KnowsCompositor* const knowsCompositor) {
return TextureType::MacIOSurface;
}
if (kIsWayland) {
if (knowsCompositor->UsingSoftwareWebRender()) {
return TextureType::Unknown;
}
return TextureType::DMABUF;
}
if (kIsX11) {
if (knowsCompositor->UsingSoftwareWebRender()) {
return TextureType::Unknown;
}
return TextureType::X11;
}
if (kIsAndroid) {

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

@ -274,8 +274,7 @@ static TextureType GetTextureType(gfx::SurfaceFormat aFormat,
int32_t maxTextureSize = aKnowsCompositor->GetMaxTextureSize();
if ((layersBackend == LayersBackend::LAYERS_D3D11 ||
(layersBackend == LayersBackend::LAYERS_WR &&
!aKnowsCompositor->GetTextureFactoryIdentifier()
.mUsingSoftwareWebRender)) &&
!aKnowsCompositor->UsingSoftwareWebRender())) &&
(moz2DBackend == gfx::BackendType::DIRECT2D ||
moz2DBackend == gfx::BackendType::DIRECT2D1_1 ||
(!!(aAllocFlags & ALLOC_FOR_OUT_OF_BAND_CONTENT))) &&
@ -293,7 +292,8 @@ static TextureType GetTextureType(gfx::SurfaceFormat aFormat,
#ifdef MOZ_WAYLAND
if ((layersBackend == LayersBackend::LAYERS_OPENGL ||
layersBackend == LayersBackend::LAYERS_WR) &&
(layersBackend == LayersBackend::LAYERS_WR &&
!aKnowsCompositor->UsingSoftwareWebRender())) &&
gfxPlatformGtk::GetPlatform()->UseDMABufTextures() &&
aFormat != SurfaceFormat::A8) {
return TextureType::DMABUF;

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

@ -117,6 +117,10 @@ class KnowsCompositor {
return mTextureFactoryIdentifier.mUseCompositorWnd;
}
bool UsingSoftwareWebRender() const {
return mTextureFactoryIdentifier.mUsingSoftwareWebRender;
}
const TextureFactoryIdentifier& GetTextureFactoryIdentifier() const {
return mTextureFactoryIdentifier;
}