Bug 975824 - Disable S3TC compressed texture support on VMware Gallium 0.4 with

llvmpipe. r=jgilbert
This commit is contained in:
Dan Glastonbury 2014-02-28 16:57:03 +10:00
Родитель 8e35f9b4b4
Коммит 105377fc80
2 изменённых файлов: 20 добавлений и 3 удалений

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

@ -538,7 +538,8 @@ GLContext::InitWithPrefix(const char *prefix, bool trygl)
"Qualcomm",
"Imagination",
"nouveau",
"Vivante"
"Vivante",
"VMware, Inc."
};
mVendor = GLVendor::Other;
@ -563,7 +564,8 @@ GLContext::InitWithPrefix(const char *prefix, bool trygl)
"PowerVR SGX 530",
"PowerVR SGX 540",
"NVIDIA Tegra",
"Android Emulator"
"Android Emulator",
"Gallium 0.4 on llvmpipe"
};
mRenderer = GLRenderer::Other;
@ -1097,7 +1099,7 @@ GLContext::InitWithPrefix(const char *prefix, bool trygl)
mMaxTextureSize = std::min(mMaxTextureSize, 4096);
mMaxRenderbufferSize = std::min(mMaxRenderbufferSize, 4096);
}
// Part of the bug 879656, but it also doesn't hurt the 877949
mNeedsTextureSizeChecks = true;
}
@ -1178,6 +1180,19 @@ GLContext::InitExtensions()
MarkExtensionSupported(OES_rgb8_rgba8);
}
if (WorkAroundDriverBugs() &&
Vendor() == GLVendor::VMware &&
Renderer() == GLRenderer::GalliumLlvmpipe)
{
// The llvmpipe driver that is used on linux try servers appears to have
// buggy support for s3tc/dxt1 compressed textures.
// See Bug 975824.
MarkExtensionUnsupported(EXT_texture_compression_s3tc);
MarkExtensionUnsupported(EXT_texture_compression_dxt1);
MarkExtensionUnsupported(ANGLE_texture_compression_dxt3);
MarkExtensionUnsupported(ANGLE_texture_compression_dxt5);
}
#ifdef DEBUG
firstRun = false;
#endif

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

@ -131,6 +131,7 @@ MOZ_BEGIN_ENUM_CLASS(GLVendor)
Imagination,
Nouveau,
Vivante,
VMware,
Other
MOZ_END_ENUM_CLASS(GLVendor)
@ -143,6 +144,7 @@ MOZ_BEGIN_ENUM_CLASS(GLRenderer)
SGX540,
Tegra,
AndroidEmulator,
GalliumLlvmpipe,
Other
MOZ_END_ENUM_CLASS(GLRenderer)