Closed Bug 726797 Opened 12 years ago Closed 12 years ago

Multi-GPU Detection Broken on Windows Gecko 11

Categories

(Core :: Graphics, defect)

11 Branch
x86
Windows 7
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla13
Tracking Status
firefox11 + fixed
firefox12 --- fixed

People

(Reporter: Callek, Assigned: Callek)

References

Details

(Keywords: regression, Whiteboard: [qa-])

Attachments

(2 files)

So I noticed today that my Beta Firefox (and SeaMonkey) are not showing my second GPU (nVidea). After talking to #gfx it was suspected that Bug 679110 may have regressed this.

After loading my stable-SeaMonkey (Gecko 10) it certainly is a regression since Gecko 10, and 679110 looks like a very likely suspect.

If need be I am willing to test/drop into a debugger/etc. [prefer time investment to test though, so try build better than locally building]

The following is my about:support graphics sections for Gecko 10 and Gecko 11

Gecko 10:
--------------------------
Graphics
        Adapter Description Intel(R) HD Graphics Family
        Vendor ID 0x8086
        Device ID 0x0116
        Adapter RAM Unknown
        Adapter Drivers igdumd64 igd10umd64 igd10umd64 igdumdx32 igd10umd32 igd10umd32
        Driver Version 8.15.10.2462
        Driver Date 7-26-2011
        Vendor ID (GPU #2) 10de
        Device ID (GPU #2) 0dec
        Adapter RAM (GPU #2) 1024
        Adapter Drivers (GPU #2) nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
        Driver Version (GPU #2) 8.17.12.8562
        Driver Date (GPU #2) 10-15-2011
        Direct2D Enabled true
        DirectWrite Enabled true (6.1.7601.17563)
        ClearType Parameters ClearType parameters not found
        WebGL Renderer Google Inc. -- ANGLE (Intel(R) HD Graphics Family) -- OpenGL ES 2.0 (ANGLE 1.0.0.930)
        GPU Accelerated Windows 1/1 Direct3D 10
-----------------------------

Gecko 11:
--------------------------
Graphics
        Adapter Description Intel(R) HD Graphics Family
        Vendor ID 0x8086
        Device ID 0x0116
        Adapter RAM Unknown
        Adapter Drivers igdumd64 igd10umd64 igd10umd64 igdumdx32 igd10umd32 igd10umd32
        Driver Version 8.15.10.2462
        Driver Date 7-26-2011
        Direct2D Enabled true
        DirectWrite Enabled true (6.1.7601.17563)
        ClearType Parameters ClearType parameters not found
        WebGL Renderer Google Inc. -- ANGLE (Intel(R) HD Graphics Family) -- OpenGL ES 2.0 (ANGLE 1.0.0.930)
        GPU Accelerated Windows 7/7 Direct3D 10
        AzureBackend direct2d
-----------------------------
(In reply to Justin Wood (:Callek) from comment #0)
> Gecko 10:
> --------------------------
> Graphics
>         Adapter Description Intel(R) HD Graphics Family
>         Vendor ID 0x8086
>         Device ID 0x0116
>         Adapter RAM Unknown

Err actually just for clarity these were not |0x| prefixed ID's and were just mistakenly edited when I transcribed this from 11's
Adding a bit of context from irc:

"well what basically happened is (a) system hung/froze (b) restarted via forced power cycle (c) Samsung System Restore popped up a dialog saying system software was not found [nvidia driver] proceeded to install that from its local backup +reboot (d) reinstalled my local download of the latest nvidia driver + reboot (e) verified that the nVidia control panel finds the card, but Firefox..."
The fact that the GPU is appearing in Firefox 10 means that it has an entry in the registry (since that's where Firefox 10 looks for a second GPU). The fact that it's not showing up in Firefox 11 means that Windows isn't including this GPU when enumerating devices in the display adapter device interface class. This makes me wonder whether something went wrong with the driver re-installation. Are you able to use this GPU (e.g. by forcing it on through the nVidia control panel)?
When I right click on a icon on my desktop for another program I can choose to launch with my nVidia GPU and it launches/displays fine.

E.g. tried with Thunderbird --> "Run with Graphics Processor" --> "High Performance NVIDIA Processor"
Attached is my Driver Registry Export for GPU's

As I found that http://hg.mozilla.org/mozilla-central/annotate/62695656d7bd/widget/windows/GfxInfo.cpp#l513 was where I was failing, and looking at the registry I can see that indeed I do not have |Device Description| for my NVIDIA but I do have it for my Intel.

I do however have |DriverDesc| for both, and for intel it matches the key we are checking for.

I am not able to extrapolate the expected here, but figured the hard-list of my REG here could help.
I think we should add a check for "DriverDesc" when a "Driver Description" isn't found.
Attached patch Implement c#6Splinter Review
Ali, this implements what you suggested in c#6. I have no idea if it is the RIGHT thing to do, I'll leave that to you, but functionally it should be fine. I do have yet to actually test it, and intend to do so before landing if this is fine.

If it needs review from someone else, please retarget that r?
Attachment #598090 - Flags: review?(ajuma)
Comment on attachment 598090 [details] [diff] [review]
Implement c#6

This is a good thing to do for avoiding false negatives when looking for a second GPU, but after it lands we'll need to keep an eye out to see if it allows false positives to sneak in again.
Attachment #598090 - Flags: review?(ajuma) → review+
What user pain does this bug cause to be considered for tracking? Have you had noticeable graphics perf regressions caused by this?
(In reply to Alex Keybl [:akeybl] from comment #9)
> What user pain does this bug cause to be considered for tracking? Have you
> had noticeable graphics perf regressions caused by this?

This has no effect on performance (since we don't use this information for blacklisting decisions), and causes no user pain other than a user being confused that their second GPU isn't listed in about:support.

I believe Justin nominated this for tracking on the basis that it could potentially make crash reports less useful, in that we'd fail to recognize that a crash report is coming from a user with a dual-GPU machine.
Comment on attachment 598090 [details] [diff] [review]
Implement c#6

https://hg.mozilla.org/mozilla-central/rev/ec5493518d22

[Approval Request Comment]
Regression caused by (bug #): Bug 679110
User impact if declined: Some Legitimate GPU's missing from about:support. (maybe just not used? ajuma?)
Testing completed (on m-c, etc.): Tested locally in a quick one-off test, and just landed on m-c.
Risk to taking this patch (and alternatives if risky): Minimal, just adds an extra registry key to search for in the enumeration of Graphics Hardware eliminating extra false negatives. [Might add some false positives again, which we will merely have to watch for]
String changes made by this patch: None
Attachment #598090 - Flags: approval-mozilla-beta?
Attachment #598090 - Flags: approval-mozilla-aurora?
Assignee: ajuma → bugspam.Callek
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla13
(In reply to Justin Wood (:Callek) from comment #11)
> Risk to taking this patch (and alternatives if risky): Minimal, just adds an
> extra registry key to search for in the enumeration of Graphics Hardware
> eliminating extra false negatives. [Might add some false positives again,
> which we will merely have to watch for]

Ali - is there any risk to incorrectly reporting hardware in the second GPU as opposed to not reporting it? Any other opportunities for fallout here?
(In reply to Alex Keybl [:akeybl] from comment #12)
> (In reply to Justin Wood (:Callek) from comment #11)
> > Risk to taking this patch (and alternatives if risky): Minimal, just adds an
> > extra registry key to search for in the enumeration of Graphics Hardware
> > eliminating extra false negatives. [Might add some false positives again,
> > which we will merely have to watch for]
> 
> Ali - is there any risk to incorrectly reporting hardware in the second GPU
> as opposed to not reporting it? Any other opportunities for fallout here?

No, reporting (or not reporting) a second GPU in about:support has no effect on anything else.
(In reply to Ali Juma [:ajuma] from comment #13)
> (In reply to Alex Keybl [:akeybl] from comment #12)
> > (In reply to Justin Wood (:Callek) from comment #11)
> > > Risk to taking this patch (and alternatives if risky): Minimal, just adds an
> > > extra registry key to search for in the enumeration of Graphics Hardware
> > > eliminating extra false negatives. [Might add some false positives again,
> > > which we will merely have to watch for]
> > 
> > Ali - is there any risk to incorrectly reporting hardware in the second GPU
> > as opposed to not reporting it? Any other opportunities for fallout here?
> 
> No, reporting (or not reporting) a second GPU in about:support has no effect
> on anything else.

(That is, no effect on anything other than what is reported in crash reports.)
Status: RESOLVED → UNCONFIRMED
Ever confirmed: false
Resolution: FIXED → ---
Target Milestone: mozilla13 → ---
Status: UNCONFIRMED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla13
Comment on attachment 598090 [details] [diff] [review]
Implement c#6

[Triage Comment]
Low risk. Approved for Aurora 12 and Beta 11 in the hope that this will improve hardware reporting for crashes.
Attachment #598090 - Flags: approval-mozilla-beta?
Attachment #598090 - Flags: approval-mozilla-beta+
Attachment #598090 - Flags: approval-mozilla-aurora?
Attachment #598090 - Flags: approval-mozilla-aurora+
Hardware: x86_64 → x86
Version: unspecified → 11 Branch
I didn't land on aurora yet, so unless you did thats still todo
Can someone who was able to reproduce this issue please verify it is fixed in Firefox 11?
Whiteboard: [qa-]
(In reply to Anthony Hughes, Mozilla QA (irc: ashughes) from comment #18)
> Can someone who was able to reproduce this issue please verify it is fixed
> in Firefox 11?

I can indeed verify it is fixed, but of course I am also the patch author. If that is good enough, great!
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: