Last Comment Bug 789830 - Graphics driver DriverVersion and DriverDate no longer present in registry location in Windows 8 (about:support and graphics driver blacklisting breaks -- possibly AMD only?)
: Graphics driver DriverVersion and DriverDate no longer present in registry lo...
Product: Core
Classification: Components
Component: Graphics (show other bugs)
: Trunk
: x86_64 Windows 8
-- critical (vote)
: mozilla18
Assigned To: Siddharth Agarwal [:sid0] (inactive)
: Mihaela Velimiroviciu (:mihaelav)
: Milan Sreckovic [:milan]
Depends on:
Blocks: 783517
  Show dependency treegraph
Reported: 2012-09-09 14:03 PDT by Siddharth Agarwal [:sid0] (inactive)
Modified: 2013-09-17 07:20 PDT (History)
11 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

proposed patch (1.36 KB, patch)
2012-09-16 13:14 PDT, Siddharth Agarwal [:sid0] (inactive)
joe: review+
Details | Diff | Splinter Review
what I checked in (1.45 KB, patch)
2012-09-17 11:02 PDT, Siddharth Agarwal [:sid0] (inactive)
sid.bugzilla: review+
akeybl: approval‑mozilla‑aurora+
akeybl: approval‑mozilla‑beta+
Details | Diff | Splinter Review

Description User image Siddharth Agarwal [:sid0] (inactive) 2012-09-09 14:03:30 PDT
GfxInfo queries HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000 for DriverVersion and DriverDate -- apparently with Windows 8 (at least on my AMD machine) the registry entries are no longer present.
Comment 1 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-09 14:11:18 PDT
This is pretty major because about:support breaks.
Comment 2 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-09 14:16:41 PDT
I searched through the entire registry for 8.982.0.0000 (my driver version) and couldn't find it except in a couple of AMD-specific locations.
Comment 3 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-09 14:39:37 PDT
Maybe we should use -- that seems to contain a driver date and version.
Comment 4 User image Jeff Muizelaar [:jrmuizel] 2012-09-09 16:15:59 PDT
We should perhaps see where SetupDiEnumDriverInfo gets it's information from. In previous versions of Windows it used the same registry keys that we're currently using.
Comment 5 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-10 00:02:47 PDT
I tried looking but didn't find anything.

Why not just use SetupDiEnumDriverInfo?
Comment 6 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-10 02:31:45 PDT
Note that this is fine in my VMware VM -- the DriverDate and DriverVersion are present where expected. It's only on my physical install that they're missing.
Comment 7 User image Matt Brubeck (:mbrubeck) 2012-09-10 08:07:39 PDT
Nominating this for tracking-firefox16 and 17.  It would be good to fix this in Firefox 16 so that we have a working about:support before Windows 8 ships to retail.
Comment 8 User image Lukas Blakk [:lsblakk] use ?needinfo 2012-09-10 15:49:28 PDT
Assigning to Joe to either take this on or find the right person who will since we're a day away from Beta 3 so tracking this for 16 means we'll want a fix ready for uplift in the next 2.5 weeks
Comment 9 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-16 12:46:10 PDT
What I'd suggest is that if the driver details aren't present in the registry we should always assume the worst (an epoch date and a version).
Comment 10 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-16 13:14:48 PDT
Created attachment 661630 [details] [diff] [review]
proposed patch

This works, but it might confuse anyone looking at about:support.
Comment 11 User image Joe Drew (not getting mail) 2012-09-17 06:58:16 PDT
Comment on attachment 661630 [details] [diff] [review]
proposed patch

Review of attachment 661630 [details] [diff] [review]:

::: widget/windows/GfxInfo.cpp
@@ +327,4 @@
>              mDriverDate = value;
> +          } else {
> +            // Again, assume the worst
> +            mDriverDate = L"01-01-1970";

If you want, append (driver info not found) to this string (it's never parsed by Firefox code, anyways).
Comment 12 User image Joe Drew (not getting mail) 2012-09-17 06:59:44 PDT
To be clear, this is a workaround only: whatever systems are affected by this will be blacklisted from all hardware acceleration. So I suggest we either [leave open] this bug for a permanent fix, or file a follow-up bug for same.
Comment 13 User image Siddharth Agarwal [:sid0] (inactive) 2012-09-17 11:02:37 PDT
Created attachment 661844 [details] [diff] [review]
what I checked in

Per an IRC discussion with Joe, I didn't make the (driver info not found) change because of l10n issues. I also switched to AssignLiteral to avoid potential issues with mingw.
Comment 14 User image Joe Drew (not getting mail) 2012-09-17 11:07:48 PDT
Comment on attachment 661844 [details] [diff] [review]
what I checked in

[Approval Request Comment]
Bug caused by (feature/regressing bug #): not a regression
User impact if declined: hardware acceleration enabled even on machines where it shouldn't be.
Testing completed (on m-c, etc.): limited
Risk to taking this patch (and alternatives if risky): not risky. However, this could make people we would otherwise allow to have hardware acceleration appear to be "blacklisted" on Windows 8; this is not actually a fix to this bug, but is instead a more correct handling of error cases.
String or UUID changes made by this patch: none
Comment 15 User image Graeme McCutcheon [:graememcc] 2012-09-18 05:09:18 PDT
Comment 16 User image Alex Keybl [:akeybl] 2012-09-18 09:43:31 PDT
Comment on attachment 661844 [details] [diff] [review]
what I checked in

[Triage Comment]
Let's take this in support of bug 783517, given the low risk profile.
Comment 17 User image Alex Keybl [:akeybl] 2012-09-18 09:43:56 PDT
(and please land asap today)
Comment 19 User image Simona B [:simonab ] 2012-10-02 08:15:46 PDT
I tried to reproduce the initial issue, but I couldn't. The driver version and date are present in the about:support and also in the registry under:

I also see many registry entries (about 20) like HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000. Only one of them has the correct driver version and date. The rest of them have the driver date and version outdated (6-21-2006 and 6.2.9200.16384).

I have the same Driver version as the one mentioned in Comment 2 (8.982.0.0).

Is there anything I can do to properly set up the environment to verify this?
Comment 20 User image Siddharth Agarwal [:sid0] (inactive) 2012-10-02 21:29:10 PDT
You can delete DriverDate and DriverVersion at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000, then start up Firefox. (Remember to put them back later.)
Comment 21 User image Mihaela Velimiroviciu (:mihaelav) 2012-10-09 07:19:24 PDT
Mozilla/5.0 (Windows NT 6.2; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 rc build

Verified the fix using the suggestions from comment #20 and it works as expected: Graphics details are listed in about:support with DriverDate 1-01-1970 and Driver Version if their entries are removed from registry.

Still, graphics section of about:support remains broken if only the values of DriverDate and DriverVersion are removed (blank value). However, this is an edge case and I think this bug can be marked verified for now. Please let me know if you want to address this in a followup bug.
Comment 22 User image Mihaela Velimiroviciu (:mihaelav) 2012-10-16 02:56:17 PDT
Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0 beta 1
Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/18.0 Firefox/18.0

Verified the fix on the above builds and it looks ok with the note from comment #21

Note You need to log in before you can comment on or make changes to this bug.