Kaydet (Commit) 7eb4c692 authored tarafından Markus Mohrhard's avatar Markus Mohrhard

remove all traces of old device code

Change-Id: I792749951f11e99504c708bf27bec56c2d98019e
Reviewed-on: https://gerrit.libreoffice.org/16331Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst f067d701
......@@ -47,22 +47,6 @@ enum VersionComparisonOp {
DRIVER_COMPARISON_IGNORED
};
enum DeviceFamily {
IntelGMA500,
IntelGMA900,
IntelGMA950,
IntelGMA3150,
IntelGMAX3000,
IntelGMAX4500HD,
IntelHD3000,
IntelMobileHDGraphics,
NvidiaBlockD3D9Layers,
RadeonX1000,
Geforce7300GT,
Nvidia310M,
DeviceFamilyMax
};
enum DeviceVendor {
VendorAll,
VendorIntel,
......@@ -77,15 +61,8 @@ bool ParseDriverVersion(const OUString& rString, uint64_t& rVersion);
struct DriverInfo
{
typedef std::vector<OUString> DeviceFamilyVector;
// If |ownDevices| is true, you are transferring ownership of the devices
// array, and it will be deleted when this GfxDriverInfo is destroyed.
DriverInfo(OperatingSystem os, const OUString& vendor, DeviceFamilyVector* devices,
VersionComparisonOp op,
uint64_t driverVersion, bool bWhiteListed = false, const char *suggestedVersion = nullptr,
bool ownDevices = false);
DriverInfo(OperatingSystem os, const OUString& vendor, VersionComparisonOp op,
uint64_t driverVersion, bool bWhiteListed = false, const char *suggestedVersion = nullptr);
DriverInfo();
DriverInfo(const DriverInfo&);
......@@ -96,8 +73,6 @@ struct DriverInfo
OUString maAdapterVendor;
static DeviceFamilyVector* const allDevices;
DeviceFamilyVector* mpDevices;
std::vector<OUString> maDevices;
// Whether the mDevices array should be deleted when this structure is
......@@ -113,9 +88,6 @@ struct DriverInfo
uint64_t mnDriverVersionMax;
static uint64_t allDriverVersions;
static const DeviceFamilyVector* GetDeviceFamily(DeviceFamily id);
static DeviceFamilyVector* mpDeviceFamilies[DeviceFamilyMax];
OUString maSuggestedVersion;
OUString maMsg;
};
......
......@@ -18,26 +18,6 @@
OUString* WinOpenGLDeviceInfo::mpDeviceVendors[wgl::DeviceVendorMax];
std::vector<wgl::DriverInfo> WinOpenGLDeviceInfo::maDriverInfo;
#define APPEND_TO_DRIVER_BLOCKLIST(os, vendor, devices, driverComparator, driverVersion, suggestedVersion) \
maDriverInfo.push_back(wgl::DriverInfo(os, vendor, devices, driverComparator, driverVersion, false, suggestedVersion))
#define APPEND_TO_DRIVER_BLOCKLIST2(os, vendor, devices, driverComparator, driverVersion) \
maDriverInfo.push_back(wgl::DriverInfo(os, vendor, devices, driverComparator, driverVersion))
#define APPEND_TO_DRIVER_WHITELIST(os, vendor, devices, driverComparator, driverVersion) \
maDriverInfo.push_back(wgl::DriverInfo(os, vendor, devices, driverComparator, driverVersion, true))
#define APPEND_TO_DRIVER_BLOCKLIST_RANGE(os, vendor, devices, driverComparator, driverVersion, driverVersionMax, suggestedVersion) \
do \
{ \
assert(driverComparator == wgl::DRIVER_BETWEEN_EXCLUSIVE || \
driverComparator == wgl::DRIVER_BETWEEN_INCLUSIVE || \
driverComparator == wgl::DRIVER_BETWEEN_INCLUSIVE_START); \
wgl::DriverInfo info(os, vendor, devices, driverComparator, driverVersion, false, suggestedVersion); \
info.mnDriverVersionMax = driverVersionMax; \
maDriverInfo.push_back(info); \
} while (false)
namespace {
......@@ -399,16 +379,11 @@ bool ParseDriverVersion(const OUString& aVersion, uint64_t& rNumericVersion)
}
uint64_t DriverInfo::allDriverVersions = ~(uint64_t(0));
DriverInfo::DeviceFamilyVector* const DriverInfo::allDevices = nullptr;
DriverInfo::DeviceFamilyVector* DriverInfo::mpDeviceFamilies[DeviceFamilyMax];
DriverInfo::DriverInfo()
: meOperatingSystem(wgl::DRIVER_OS_UNKNOWN),
mnOperatingSystemVersion(0),
maAdapterVendor(WinOpenGLDeviceInfo::GetDeviceVendor(VendorAll)),
mpDevices(allDevices),
mbDeleteDevices(false),
mbWhitelisted(false),
meComparisonOp(DRIVER_COMPARISON_IGNORED),
mnDriverVersion(0),
......@@ -416,17 +391,13 @@ DriverInfo::DriverInfo()
{}
DriverInfo::DriverInfo(OperatingSystem os, const OUString& vendor,
DeviceFamilyVector* devices,
VersionComparisonOp op,
uint64_t driverVersion,
bool bWhitelisted,
const char *suggestedVersion /* = nullptr */,
bool ownDevices /* = false */)
const char *suggestedVersion /* = nullptr */)
: meOperatingSystem(os),
mnOperatingSystemVersion(0),
maAdapterVendor(vendor),
mpDevices(devices),
mbDeleteDevices(ownDevices),
mbWhitelisted(bWhitelisted),
meComparisonOp(op),
mnDriverVersion(driverVersion),
......@@ -445,169 +416,10 @@ DriverInfo::DriverInfo(const DriverInfo& aOrig)
mnDriverVersion(aOrig.mnDriverVersion),
mnDriverVersionMax(aOrig.mnDriverVersionMax)
{
//If we're managing the lifetime of the device family, we have to make a
// copy of the original's device family.
if (aOrig.mbDeleteDevices && aOrig.mpDevices)
{
mpDevices = new DeviceFamilyVector;
*mpDevices = *aOrig.mpDevices;
}
else
{
mpDevices = aOrig.mpDevices;
}
mbDeleteDevices = aOrig.mbDeleteDevices;
}
DriverInfo::~DriverInfo()
{
if (mbDeleteDevices)
delete mpDevices;
}
// Macros for appending a device to the DeviceFamily.
#define APPEND_DEVICE(device) APPEND_DEVICE2(#device)
#define APPEND_DEVICE2(device) deviceFamily->push_back(OUString("#device"))
const DriverInfo::DeviceFamilyVector* DriverInfo::GetDeviceFamily(DeviceFamily id)
{
// The code here is too sensitive to fall through to the default case if the
// code is invalid.
assert(id >= 0 && id < DeviceFamilyMax);
// If it already exists, we must have processed it once, so return it now.
if (mpDeviceFamilies[id])
return mpDeviceFamilies[id];
mpDeviceFamilies[id] = new wgl::DriverInfo::DeviceFamilyVector;
wgl::DriverInfo::DeviceFamilyVector* deviceFamily = mpDeviceFamilies[id];
switch (id)
{
case IntelGMA500:
APPEND_DEVICE(0x8108); /* IntelGMA500_1 */
APPEND_DEVICE(0x8109); /* IntelGMA500_2 */
break;
case IntelGMA900:
APPEND_DEVICE(0x2582); /* IntelGMA900_1 */
APPEND_DEVICE(0x2782); /* IntelGMA900_2 */
APPEND_DEVICE(0x2592); /* IntelGMA900_3 */
APPEND_DEVICE(0x2792); /* IntelGMA900_4 */
break;
case IntelGMA950:
APPEND_DEVICE(0x2772); /* Intel945G_1 */
APPEND_DEVICE(0x2776); /* Intel945G_2 */
APPEND_DEVICE(0x27a2); /* Intel945_1 */
APPEND_DEVICE(0x27a6); /* Intel945_2 */
APPEND_DEVICE(0x27ae); /* Intel945_3 */
break;
case IntelGMA3150:
APPEND_DEVICE(0xa001); /* IntelGMA3150_Nettop_1 */
APPEND_DEVICE(0xa002); /* IntelGMA3150_Nettop_2 */
APPEND_DEVICE(0xa011); /* IntelGMA3150_Netbook_1 */
APPEND_DEVICE(0xa012); /* IntelGMA3150_Netbook_2 */
break;
case IntelGMAX3000:
APPEND_DEVICE(0x2972); /* Intel946GZ_1 */
APPEND_DEVICE(0x2973); /* Intel946GZ_2 */
APPEND_DEVICE(0x2982); /* IntelG35_1 */
APPEND_DEVICE(0x2983); /* IntelG35_2 */
APPEND_DEVICE(0x2992); /* IntelQ965_1 */
APPEND_DEVICE(0x2993); /* IntelQ965_2 */
APPEND_DEVICE(0x29a2); /* IntelG965_1 */
APPEND_DEVICE(0x29a3); /* IntelG965_2 */
APPEND_DEVICE(0x29b2); /* IntelQ35_1 */
APPEND_DEVICE(0x29b3); /* IntelQ35_2 */
APPEND_DEVICE(0x29c2); /* IntelG33_1 */
APPEND_DEVICE(0x29c3); /* IntelG33_2 */
APPEND_DEVICE(0x29d2); /* IntelQ33_1 */
APPEND_DEVICE(0x29d3); /* IntelQ33_2 */
APPEND_DEVICE(0x2a02); /* IntelGL960_1 */
APPEND_DEVICE(0x2a03); /* IntelGL960_2 */
APPEND_DEVICE(0x2a12); /* IntelGM965_1 */
APPEND_DEVICE(0x2a13); /* IntelGM965_2 */
break;
case IntelGMAX4500HD:
APPEND_DEVICE(0x2a42); /* IntelGMA4500MHD_1 */
APPEND_DEVICE(0x2a43); /* IntelGMA4500MHD_2 */
APPEND_DEVICE(0x2e42); /* IntelB43_1 */
APPEND_DEVICE(0x2e43); /* IntelB43_2 */
APPEND_DEVICE(0x2e92); /* IntelB43_3 */
APPEND_DEVICE(0x2e93); /* IntelB43_4 */
APPEND_DEVICE(0x2e32); /* IntelG41_1 */
APPEND_DEVICE(0x2e33); /* IntelG41_2 */
APPEND_DEVICE(0x2e22); /* IntelG45_1 */
APPEND_DEVICE(0x2e23); /* IntelG45_2 */
APPEND_DEVICE(0x2e12); /* IntelQ45_1 */
APPEND_DEVICE(0x2e13); /* IntelQ45_2 */
APPEND_DEVICE(0x0042); /* IntelHDGraphics */
APPEND_DEVICE(0x0046); /* IntelMobileHDGraphics */
APPEND_DEVICE(0x0102); /* IntelSandyBridge_1 */
APPEND_DEVICE(0x0106); /* IntelSandyBridge_2 */
APPEND_DEVICE(0x0112); /* IntelSandyBridge_3 */
APPEND_DEVICE(0x0116); /* IntelSandyBridge_4 */
APPEND_DEVICE(0x0122); /* IntelSandyBridge_5 */
APPEND_DEVICE(0x0126); /* IntelSandyBridge_6 */
APPEND_DEVICE(0x010a); /* IntelSandyBridge_7 */
APPEND_DEVICE(0x0080); /* IntelIvyBridge */
break;
case IntelHD3000:
APPEND_DEVICE(0x0126);
break;
case IntelMobileHDGraphics:
APPEND_DEVICE(0x0046); /* IntelMobileHDGraphics */
break;
case NvidiaBlockD3D9Layers:
// Glitches whilst scrolling (see bugs 612007, 644787, 645872)
APPEND_DEVICE(0x00f3); /* NV43 [GeForce 6200 (TM)] */
APPEND_DEVICE(0x0146); /* NV43 [Geforce Go 6600TE/6200TE (TM)] */
APPEND_DEVICE(0x014f); /* NV43 [GeForce 6200 (TM)] */
APPEND_DEVICE(0x0161); /* NV44 [GeForce 6200 TurboCache (TM)] */
APPEND_DEVICE(0x0162); /* NV44 [GeForce 6200SE TurboCache (TM)] */
APPEND_DEVICE(0x0163); /* NV44 [GeForce 6200 LE (TM)] */
APPEND_DEVICE(0x0164); /* NV44 [GeForce Go 6200 (TM)] */
APPEND_DEVICE(0x0167); /* NV43 [GeForce Go 6200/6400 (TM)] */
APPEND_DEVICE(0x0168); /* NV43 [GeForce Go 6200/6400 (TM)] */
APPEND_DEVICE(0x0169); /* NV44 [GeForce 6250 (TM)] */
APPEND_DEVICE(0x0222); /* NV44 [GeForce 6200 A-LE (TM)] */
APPEND_DEVICE(0x0240); /* C51PV [GeForce 6150 (TM)] */
APPEND_DEVICE(0x0241); /* C51 [GeForce 6150 LE (TM)] */
APPEND_DEVICE(0x0244); /* C51 [Geforce Go 6150 (TM)] */
APPEND_DEVICE(0x0245); /* C51 [Quadro NVS 210S/GeForce 6150LE (TM)] */
APPEND_DEVICE(0x0247); /* C51 [GeForce Go 6100 (TM)] */
APPEND_DEVICE(0x03d0); /* C61 [GeForce 6150SE nForce 430 (TM)] */
APPEND_DEVICE(0x03d1); /* C61 [GeForce 6100 nForce 405 (TM)] */
APPEND_DEVICE(0x03d2); /* C61 [GeForce 6100 nForce 400 (TM)] */
APPEND_DEVICE(0x03d5); /* C61 [GeForce 6100 nForce 420 (TM)] */
break;
case RadeonX1000:
// This list is from the ATIRadeonX1000.kext Info.plist
APPEND_DEVICE(0x7187);
APPEND_DEVICE(0x7210);
APPEND_DEVICE(0x71de);
APPEND_DEVICE(0x7146);
APPEND_DEVICE(0x7142);
APPEND_DEVICE(0x7109);
APPEND_DEVICE(0x71c5);
APPEND_DEVICE(0x71c0);
APPEND_DEVICE(0x7240);
APPEND_DEVICE(0x7249);
APPEND_DEVICE(0x7291);
break;
case Geforce7300GT:
APPEND_DEVICE(0x0393);
break;
case Nvidia310M:
APPEND_DEVICE(0x0A70);
break;
// This should never happen, but we get a warning if we don't handle this.
case DeviceFamilyMax:
SAL_WARN("vcl.opengl", "Invalid DeviceFamily id");
break;
}
return deviceFamily;
}
}
......@@ -625,6 +437,26 @@ WinOpenGLDeviceInfo::~WinOpenGLDeviceInfo()
{
}
namespace {
struct compareIgnoreAsciiCase
{
compareIgnoreAsciiCase(const OUString& rString):
maString(rString)
{
}
bool operator()(const OUString& rCompare)
{
return maString.equalsIgnoreAsciiCase(rCompare);
}
private:
OUString maString;
};
}
bool WinOpenGLDeviceInfo::FindBlocklistedDeviceInList()
{
uint64_t driverVersion;
......@@ -652,19 +484,9 @@ bool WinOpenGLDeviceInfo::FindBlocklistedDeviceInList()
continue;
}
if (maDriverInfo[i].mpDevices != wgl::DriverInfo::allDevices && maDriverInfo[i].mpDevices->size())
if (std::none_of(maDriverInfo[i].maDevices.begin(), maDriverInfo[i].maDevices.end(), [](const OUString& rString){ return rString == "all"; } ))
{
bool deviceMatches = false;
for (uint32_t j = 0; j < maDriverInfo[i].mpDevices->size(); j++)
{
if ((*maDriverInfo[i].mpDevices)[j].equalsIgnoreAsciiCase(maAdapterDeviceID))
{
deviceMatches = true;
break;
}
}
if (!deviceMatches)
if (std::none_of(maDriverInfo[i].maDevices.begin(), maDriverInfo[i].maDevices.end(), compareIgnoreAsciiCase(maAdapterDeviceID)))
{
continue;
}
......@@ -1066,123 +888,6 @@ OUString WinOpenGLDeviceInfo::GetDeviceVendor(wgl::DeviceVendor id)
void WinOpenGLDeviceInfo::FillBlacklist()
{
/*
* Implement whitelist entries first as they will be used first to stop early;
*/
APPEND_TO_DRIVER_WHITELIST( wgl::DRIVER_OS_WINDOWS_7, GetDeviceVendor(wgl::VendorIntel),
wgl::DriverInfo::allDevices, wgl::DRIVER_EQUAL, wgl::V(10,18,10,3412));
/*
* It should be noted here that more specialized rules on certain features
* should be inserted -before- more generalized restriction. As the first
* match for feature/OS/device found in the list will be used for the final
* blacklisting call.
*/
/*
* NVIDIA entries
*/
APPEND_TO_DRIVER_BLOCKLIST( wgl::DRIVER_OS_WINDOWS_XP,
GetDeviceVendor(wgl::VendorNVIDIA), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::V(6,14,11,8265), "182.65" );
APPEND_TO_DRIVER_BLOCKLIST( wgl::DRIVER_OS_WINDOWS_VISTA,
GetDeviceVendor(wgl::VendorNVIDIA), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::V(8,17,11,8265), "182.65" );
APPEND_TO_DRIVER_BLOCKLIST( wgl::DRIVER_OS_WINDOWS_7,
GetDeviceVendor(wgl::VendorNVIDIA), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::V(8,17,11,8265), "182.65" );
/*
* AMD/ATI entries
*/
APPEND_TO_DRIVER_BLOCKLIST( wgl::DRIVER_OS_ALL,
GetDeviceVendor(wgl::VendorATI), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::V(8,62,0,0), "9.6" );
APPEND_TO_DRIVER_BLOCKLIST( wgl::DRIVER_OS_ALL,
GetDeviceVendor(wgl::VendorAMD), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::V(8,62,0,0), "9.6" );
/*
* moz#783517 - crashes in AMD driver on Windows 8
*/
APPEND_TO_DRIVER_BLOCKLIST_RANGE( wgl::DRIVER_OS_WINDOWS_8,
GetDeviceVendor(wgl::VendorATI), wgl::DriverInfo::allDevices,
wgl::DRIVER_BETWEEN_INCLUSIVE_START, wgl::V(8,982,0,0), wgl::V(8,983,0,0), "!= 8.982.*.*" );
APPEND_TO_DRIVER_BLOCKLIST_RANGE( wgl::DRIVER_OS_WINDOWS_8,
GetDeviceVendor(wgl::VendorAMD), wgl::DriverInfo::allDevices,
wgl::DRIVER_BETWEEN_INCLUSIVE_START, wgl::V(8,982,0,0), wgl::V(8,983,0,0), "!= 8.982.*.*" );
/* OpenGL on any ATI/AMD hardware is discouraged
* See:
* bug moz#619773 - WebGL: Crash with blue screen : "NMI: Parity Check / Memory Parity Error"
* bugs moz#584403, moz#584404, moz#620924 - crashes in atioglxx
* + many complaints about incorrect rendering
*/
APPEND_TO_DRIVER_BLOCKLIST2( wgl::DRIVER_OS_ALL,
GetDeviceVendor(wgl::VendorATI), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::DriverInfo::allDriverVersions );
APPEND_TO_DRIVER_BLOCKLIST2( wgl::DRIVER_OS_ALL,
GetDeviceVendor(wgl::VendorAMD), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::DriverInfo::allDriverVersions );
/*
* Intel entries
*/
/* The driver versions used here come from moz#594877. They might not
* be particularly relevant anymore.
*/
#define IMPLEMENT_INTEL_DRIVER_BLOCKLIST(winVer, devFamily, driverVer) \
APPEND_TO_DRIVER_BLOCKLIST2( winVer, \
GetDeviceVendor(wgl::VendorIntel), (wgl::DriverInfo::DeviceFamilyVector*) wgl::DriverInfo::GetDeviceFamily(devFamily), \
wgl::DRIVER_LESS_THAN, driverVer )
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_XP, wgl::IntelGMA500, wgl::V(3,0,20,3200));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_XP, wgl::IntelGMA900, wgl::V(6,14,10,4764));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_XP, wgl::IntelGMA950, wgl::V(6,14,10,4926));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_XP, wgl::IntelGMA3150, wgl::V(6,14,10,5134));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_XP, wgl::IntelGMAX3000, wgl::V(6,14,10,5218));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_XP, wgl::IntelGMAX4500HD, wgl::V(6,14,10,4969));
// StretchRect seems to suffer from precision issues which leads to artifacting
// during content drawing starting with at least version 6.14.10.5082
// and going until 6.14.10.5218. See moz#919454 and mox#949275 for more info.
APPEND_TO_DRIVER_BLOCKLIST_RANGE(wgl::DRIVER_OS_WINDOWS_XP,
GetDeviceVendor(wgl::VendorIntel),
const_cast<wgl::DriverInfo::DeviceFamilyVector*>(wgl::DriverInfo::GetDeviceFamily(wgl::IntelGMAX4500HD)),
wgl::DRIVER_BETWEEN_EXCLUSIVE, wgl::V(6,14,10,5076), wgl::V(6,14,10,5218), "6.14.10.5218");
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_VISTA, wgl::IntelGMA500, wgl::V(3,0,20,3200));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_VISTA, wgl::IntelGMA900, wgl::DriverInfo::allDriverVersions);
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_VISTA, wgl::IntelGMA950, wgl::V(7,14,10,1504));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_VISTA, wgl::IntelGMA3150, wgl::V(7,14,10,1910));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_VISTA, wgl::IntelGMAX3000, wgl::V(7,15,10,1666));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_VISTA, wgl::IntelGMAX4500HD, wgl::V(7,15,10,1666));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_7, wgl::IntelGMA500, wgl::V(5,0,0,2026));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_7, wgl::IntelGMA900, wgl::DriverInfo::allDriverVersions);
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_7, wgl::IntelGMA950, wgl::V(8,15,10,1930));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_7, wgl::IntelGMA3150, wgl::V(8,14,10,1972));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_7, wgl::IntelGMAX3000, wgl::V(7,15,10,1666));
IMPLEMENT_INTEL_DRIVER_BLOCKLIST(wgl::DRIVER_OS_WINDOWS_7, wgl::IntelGMAX4500HD, wgl::V(7,15,10,1666));
/* OpenGL on any Intel hardware is discouraged */
APPEND_TO_DRIVER_BLOCKLIST2( wgl::DRIVER_OS_ALL,
GetDeviceVendor(wgl::VendorIntel), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::DriverInfo::allDriverVersions );
/**
* Disable acceleration on Intel HD 3000 for graphics drivers <= 8.15.10.2321.
* See bug moz#1018278 and bug moz#1060736.
*/
APPEND_TO_DRIVER_BLOCKLIST( wgl::DRIVER_OS_ALL,
GetDeviceVendor(wgl::VendorIntel), (wgl::DriverInfo::DeviceFamilyVector*) wgl::DriverInfo::GetDeviceFamily(wgl::IntelHD3000),
wgl::DRIVER_LESS_THAN_OR_EQUAL, wgl::V(8,15,10,2321), "8.15.10.2342" );
/* Microsoft RemoteFX; blocked less than 6.2.0.0 */
APPEND_TO_DRIVER_BLOCKLIST( wgl::DRIVER_OS_ALL,
GetDeviceVendor(wgl::VendorMicrosoft), wgl::DriverInfo::allDevices,
wgl::DRIVER_LESS_THAN, wgl::V(6,2,0,0), "< 6.2.0.0" );
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment