Open Bug 1156567 Opened 10 years ago Updated 2 years ago

Blacklisting code handles intel version numbers incorrectly

Categories

(Core :: Graphics, defect, P3)

29 Branch
x86
macOS
defect

Tracking

()

People

(Reporter: mattwoodrow, Unassigned, NeedInfo)

References

Details

(Whiteboard: [gfx-noted] [platform-rel-Intel])

http://www.intel.com/support/graphics/sb/CS-020667.htm According to the above document, the first two values in the intel (and NVIDIA I believe) driver numbers are related to the windows and DirectX versions, and are entirely orthogonal to the actual driver build number. We currently treat the entire driver version string as a single number, so blacklisting a version on a newer operating system will blacklist *all* driver versions on older OS's. In particular, we have a blacklist entry for < 8,17,11,8265 (Driver 182.65 on windows 7), that will blacklist all drivers versions for vista and below. I think we can fix this fairly easily by blacklisting using the build number instead of the full string, but this will likely unblacklist a decent number of machines and we risk some fallout from doing that.
Isn't blacklisting usually OS specific?
(In reply to Jeff Muizelaar [:jrmuizel] from comment #1) > Isn't blacklisting usually OS specific? Usually, but not always. A few concrete issues: We blacklist NVIDIA 8.17.11.8265 for Windows 7. Anthony has a Windows 7 machine running 8.15.11.8593 which gets blacklisted due to this rule even though 185.93 > 182.65. Amusingly about:support also recommends he 'upgrade' to 182.65. [1] is attempting to blacklist a Windows 7 specific driver on Vista, so won't be doing anything useful. [1] http://mxr.mozilla.org/mozilla-central/source/widget/windows/GfxInfo.cpp#883
There are two parts to the driver version. One is the OS binding and the other is the actual driver itself. In that specific case the issue is that _.15._._ refers to D3D9 and _.17._._ refers to D3D11. This driver is known as version 185 on Linux. This rule blocks all HD3000 drivers on Windows XP and Vista for this hardware because they have 6._._._ and 7._._._ version numbers. APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelHD3000), GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN_OR_EQUAL, V(8,15,10,2321), "8.15.10.2342" );
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #3) > There are two parts to the driver version. One is the OS binding and the > other is the actual driver itself. In that specific case the issue is that > _.15._._ refers to D3D9 and _.17._._ refers to D3D11. This driver is known > as version 185 on Linux. > > This rule blocks all HD3000 drivers on Windows XP and Vista for this > hardware because they have 6._._._ and 7._._._ version numbers. > > APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, > (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), > (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelHD3000), > GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, > DRIVER_LESS_THAN_OR_EQUAL, V(8,15,10,2321), "8.15.10.2342" ); This rule should probably be fixed at a minimum.
DRIVER_OS_ALL is incompatible with DRIVER_LESS_THAN_OR_EQUAL unless we ignore the first two fields in Intel/nVidia version numbers.
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #5) > DRIVER_OS_ALL is incompatible with DRIVER_LESS_THAN_OR_EQUAL unless we > ignore the first two fields in Intel/nVidia version numbers. I think that's fine or at least ok.
Whiteboard: [gfx-noted]
Can we remove the rules and associated macros that exhibit this problem? Should we rely on the runtime testing instead for these Intel cases?
Flags: needinfo?(matt.woodrow)
No longer blocks: MSE
Whiteboard: [gfx-noted] → [gfx-noted] [platform-rel-Intel]
platform-rel: --- → ?
platform-rel: ? → ---
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.