mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1153381. Add a D3D11 ANGLE blacklist. r=mstange
This blocks the Intel 4500 style GPUs so that Google Maps works properly
This commit is contained in:
parent
9ea6369f7a
commit
a39f108967
@ -270,7 +270,7 @@ GLLibraryEGL::EnsureInitialized()
|
||||
if (gfxPrefs::WebGLANGLEForceD3D11()) {
|
||||
newDisplay = GetAndInitDisplay(*this,
|
||||
LOCAL_EGL_D3D11_ONLY_DISPLAY_ANGLE);
|
||||
} else if (gfxPrefs::WebGLANGLETryD3D11()) {
|
||||
} else if (gfxPrefs::WebGLANGLETryD3D11() && gfxPlatform::CanUseDirect3D11ANGLE()) {
|
||||
newDisplay = GetAndInitDisplay(*this,
|
||||
LOCAL_EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE);
|
||||
}
|
||||
|
@ -2169,6 +2169,7 @@ gfxPlatform::OptimalFormatForContent(gfxContentType aContent)
|
||||
*/
|
||||
static bool sLayersSupportsD3D9 = false;
|
||||
static bool sLayersSupportsD3D11 = false;
|
||||
static bool sANGLESupportsD3D11 = false;
|
||||
static bool sLayersSupportsHardwareVideoDecoding = false;
|
||||
static bool sBufferRotationCheckPref = true;
|
||||
static bool sPrefBrowserTabsRemoteAutostart = false;
|
||||
@ -2210,6 +2211,11 @@ InitLayersAccelerationPrefs()
|
||||
// Always support D3D11 when WARP is allowed.
|
||||
sLayersSupportsD3D11 = true;
|
||||
}
|
||||
if (NS_SUCCEEDED(gfxInfo->GetFeatureStatus(nsIGfxInfo::FEATURE_DIRECT3D_11_ANGLE, &status))) {
|
||||
if (status == nsIGfxInfo::FEATURE_STATUS_OK) {
|
||||
sANGLESupportsD3D11 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2255,6 +2261,14 @@ gfxPlatform::CanUseHardwareVideoDecoding()
|
||||
return sLayersSupportsHardwareVideoDecoding;
|
||||
}
|
||||
|
||||
bool
|
||||
gfxPlatform::CanUseDirect3D11ANGLE()
|
||||
{
|
||||
MOZ_ASSERT(sLayersAccelerationPrefsInitialized);
|
||||
return sANGLESupportsD3D11;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
gfxPlatform::BufferRotationEnabled()
|
||||
{
|
||||
|
@ -498,6 +498,7 @@ public:
|
||||
static bool CanUseDirect3D9();
|
||||
static bool CanUseDirect3D11();
|
||||
static bool CanUseHardwareVideoDecoding();
|
||||
static bool CanUseDirect3D11ANGLE();
|
||||
|
||||
/**
|
||||
* Is it possible to use buffer rotation. Note that these
|
||||
|
@ -123,6 +123,9 @@ GetPrefNameForFeature(int32_t aFeature)
|
||||
case nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS:
|
||||
name = BLACKLIST_PREF_BRANCH "layers.direct3d11";
|
||||
break;
|
||||
case nsIGfxInfo::FEATURE_DIRECT3D_11_ANGLE:
|
||||
name = BLACKLIST_PREF_BRANCH "direct3d11angle";
|
||||
break;
|
||||
case nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING:
|
||||
name = BLACKLIST_PREF_BRANCH "hardwarevideodecoding";
|
||||
break;
|
||||
@ -290,6 +293,8 @@ BlacklistFeatureToGfxFeature(const nsAString& aFeature)
|
||||
return nsIGfxInfo::FEATURE_DIRECT3D_10_1_LAYERS;
|
||||
else if (aFeature.EqualsLiteral("DIRECT3D_11_LAYERS"))
|
||||
return nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS;
|
||||
else if (aFeature.EqualsLiteral("DIRECT3D_11_ANGLE"))
|
||||
return nsIGfxInfo::FEATURE_DIRECT3D_11_ANGLE;
|
||||
else if (aFeature.EqualsLiteral("HARDWARE_VIDEO_DECODING"))
|
||||
return nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING;
|
||||
else if (aFeature.EqualsLiteral("OPENGL_LAYERS"))
|
||||
@ -858,6 +863,7 @@ GfxInfoBase::EvaluateDownloadedBlacklist(nsTArray<GfxDriverInfo>& aDriverInfo)
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_10_LAYERS,
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_10_1_LAYERS,
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS,
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_11_ANGLE,
|
||||
nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
|
||||
nsIGfxInfo::FEATURE_OPENGL_LAYERS,
|
||||
nsIGfxInfo::FEATURE_WEBGL_OPENGL,
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
/* NOTE: this interface is completely undesigned, not stable and likely to change */
|
||||
|
||||
[scriptable, uuid(b0541ea1-58c8-4c16-b3ea-94b3e14236d2)]
|
||||
[scriptable, uuid(74fdaac3-e5ce-4944-becc-c08c168f673c)]
|
||||
interface nsIGfxInfo : nsISupports
|
||||
{
|
||||
/*
|
||||
@ -89,6 +89,8 @@ interface nsIGfxInfo : nsISupports
|
||||
const long FEATURE_DIRECT3D_11_LAYERS = 11;
|
||||
/* Whether hardware accelerated video decoding is supported. */
|
||||
const long FEATURE_HARDWARE_VIDEO_DECODING = 12;
|
||||
/* Whether Direct3D 11 is supported for ANGLE. */
|
||||
const long FEATURE_DIRECT3D_11_ANGLE = 13;
|
||||
|
||||
/*
|
||||
* A set of return values from GetFeatureStatus
|
||||
|
@ -1114,6 +1114,12 @@ GfxInfo::GetGfxDriverInfo()
|
||||
GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
|
||||
DRIVER_BETWEEN_INCLUSIVE, V(8,17,12,5730), V(8,17,12,6901), "Nvidia driver > 8.17.12.6901");
|
||||
|
||||
/* Bug 1153381: WebGL issues with D3D11 ANGLE on Intel. These may be fixed by an ANGLE update. */
|
||||
APPEND_TO_DRIVER_BLOCKLIST2(DRIVER_OS_ALL,
|
||||
(nsAString&)GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*)GfxDriverInfo::GetDeviceFamily(IntelGMAX4500HD),
|
||||
nsIGfxInfo::FEATURE_DIRECT3D_11_ANGLE, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
|
||||
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions);
|
||||
|
||||
}
|
||||
return *mDriverInfo;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user