Closed Bug 644787 Opened 9 years ago Closed 9 years ago

[D3D9] Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches (black & white stripes) whilst scrolling

Categories

(Core :: Graphics, defect, major)

x86
Windows 7
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla5
Tracking Status
blocking2.0 --- Macaw+
status2.0 --- .1-fixed

People

(Reporter: GalisBG, Assigned: emorley)

References

(Blocks 1 open bug)

Details

Attachments

(5 files)

User-Agent:       Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0
Build Identifier: Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0

When scrolling in a long webpage, like facebook, the screen become black & white striped. I need to scroll down and come back to clear the screen.

See some screenshots here:

http://195.96.237.240/~gborisov/firefox4bug/

It happens even now when I submit this report!

Reproducible: Always

Steps to Reproduce:
1. Open web page
2. Scroll down with mouse wheal
3. Scroll down and back to clear the screen
Actual Results:  
the screen become black & white striped
Attached image black & wite stripes
Attached image black & wite stripes
Attached image black & wite stripes
This appears when I update today to Firefox 4
In safe-mode for now is OK but ... what is the problem in normal mode?!?!
Looks just like the issue I had with hardware acceleration, before my GFX card was blacklisted: Bug 612007.

Could you paste the contents of the graphics section from the about:support page please (use the copy to clipboard button at the top of the page, since copying directly looses line breaks).

After that, could you go in to Firefox prefs -> advanced tab -> 'general' sub-tab -> untick enable hardware acceleration ; then restart Firefox and see if it still occurs.

Thanks!
Component: General → Graphics
Product: Firefox → Core
QA Contact: general → thebes
Version: unspecified → Trunk

  Application Basics

        Name
        Firefox

        Version
        4.0

        User Agent
        Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0

Graphics

        Adapter Description
        NVIDIA GeForce 6150

        Vendor ID
        10de

        Device ID
        0240

        Adapter RAM
        32

        Adapter Drivers
        nvd3dum

        Driver Version
        8.17.12.5896

        Driver Date
        7-9-2010

        Direct2D Enabled
        false

        DirectWrite Enabled
        false (6.1.7601.17563, font cache n/a)

        WebGL Renderer
        Google Inc. -- ANGLE -- OpenGL ES 2.0 (ANGLE 0.0.0.541)

        GPU Accelerated Windows
        1/1 Direct3D 9
I untick enable hardware acceleration and for now from several hours it is OK!

Thanks a lot for the help!
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Thanks for the update.

Given you have an nVidia 6150 graphics card - and that the symptoms are exactly the same as my old 6200, which had to be blocklisted (see bug 612007), I'm reopening this bug to evaluate blocking 61xx too.
Status: RESOLVED → UNCONFIRMED
Resolution: FIXED → ---
See Also: → 612007
Summary: When scrolling with mouse the screen become black & white striped → [D3D9] Scrolling pages with GeForce 6150 causes black and white horizontal stripes in page area
Whiteboard: [blocklist, like nVidia 6200 range in bug 612007 ?]
Status: UNCONFIRMED → NEW
Ever confirmed: true
Benoit, CCing you since you worked on bug 612007.

This page:
http://www.nvidia.com/page/geforce_6200.html

Seems to imply that the 6200, 6500 and 6150 (the latter being motherboard graphics, whereas the others are discrete) are all in the same range - and all can use their DMA mapping feature "TurboCache", which was deemed a potential cause in bug 612007. As such, is it worth blocking all 62xx; 61xx and 65xx perhaps? (Especially given they are very low performance cards anyway)

I'm presuming that the only reason we haven't seen more instances of these types of bugs with those cards, is that perhaps many of them are running older drivers, which is causing D3D9 to be blocked anyway, so they have no need to report it?
(In reply to comment #10)
> Benoit, CCing you since you worked on bug 612007.

Thanks. Let's add the Geforce 6150 to the blacklist entry we added for the 6200 turbocache.

> 
> This page:
> http://www.nvidia.com/page/geforce_6200.html
> 
> Seems to imply that the 6200, 6500 and 6150 (the latter being motherboard
> graphics, whereas the others are discrete) are all in the same range

I don't know, I'm wary of overinterpreting this very succint commercial web page. I'd only block the 6150 for now, we'll see if we get reports about the 6500.

> I'm presuming that the only reason we haven't seen more instances of these
> types of bugs with those cards, is that perhaps many of them are running older
> drivers, which is causing D3D9 to be blocked anyway, so they have no need to
> report it?

Indeed (by the way, you could use the bash script in bug 640286 to check that yourself :-) ).
Looking at our list of NVIDIA devices:
https://bug605749.bugzilla.mozilla.org/attachment.cgi?id=484688

There are lots of device IDs there:

0240  C51PV [GeForce 6150]
0241  C51 [GeForce 6150 LE]
0242  C51G [GeForce 6100]
0244  C51 [Geforce Go 6150]
0245  C51 [Quadro NVS 210S/GeForce 6150LE]
0247  C51 [GeForce Go 6100]

03d0  C61 [GeForce 6150SE nForce 430]
03d1  C61 [GeForce 6100 nForce 405]
03d2  C61 [GeForce 6100 nForce 400]
03d5  C61 [GeForce 6100 nForce 420]

Should we block the 6100, or only the 6150?
We should blocklist this using the downloaded blocklist as well as our built-in one.
Blocks: 645872
See also bug 645483 (awaiting confirmation and device ID; but likely the same issue).
I'm happy to do a patch for this if you want? I can either just add the device IDs to the device family already here (from bug 612007), given the issues are the same:
http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/GfxInfo.cpp#623
...or else add a new device family.

Which would you prefer?

Though what's the plan with the hardcoded blocklists vs the addons blocklisting mechanism? Given that the latest blocklist.xml gets pulled into m-c periodically, would it make sense to keep everything in one place (the addons blocklist)?
(In reply to comment #15)
> I'm happy to do a patch for this if you want? I can either just add the device
> IDs to the device family already here (from bug 612007), given the issues are
> the same:
> http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/GfxInfo.cpp#623
> ...or else add a new device family.
> 
> Which would you prefer?

Patch welcome; just add to the existing family and rename / rewrite comment as appropriate.

> 
> Though what's the plan with the hardcoded blocklists vs the addons blocklisting
> mechanism? Given that the latest blocklist.xml gets pulled into m-c
> periodically, would it make sense to keep everything in one place (the addons
> blocklist)?

Ultimately yes, but for now the downloaded blacklist is not downloaded/enforced early/frequently enough so the compiled-in blacklist is still needed. See bug 646639 and bug 646635.
Thanks for the reply.

(In reply to comment #12)
> Looking at our list of NVIDIA devices:
> https://bug605749.bugzilla.mozilla.org/attachment.cgi?id=484688
> 
> There are lots of device IDs there:
> 
> 0240  C51PV [GeForce 6150]
> 0241  C51 [GeForce 6150 LE]
> 0242  C51G [GeForce 6100]
> 0244  C51 [Geforce Go 6150]
> 0245  C51 [Quadro NVS 210S/GeForce 6150LE]
> 0247  C51 [GeForce Go 6100]
> 
> 03d0  C61 [GeForce 6150SE nForce 430]
> 03d1  C61 [GeForce 6100 nForce 405]
> 03d2  C61 [GeForce 6100 nForce 400]
> 03d5  C61 [GeForce 6100 nForce 420]
> 
> Should we block the 6100, or only the 6150?

Any preference for this?

The three reported cases occur on:
- GeForce 6200 TurboCache - NV44 - 0x0161 [Already on the blocklist]
- GeForce 6150 - C51PV - 0x0240
- GeForce 6150 LE - C51 - 0x0241
> Any preference for this?

Go crazy, just block everything. The 6100's target audience probably doesn't care that much about hardware acceleration anyway.
Assignee: nobody → bmo
Status: NEW → ASSIGNED
Depends on: 612007
See Also: 612007
Whiteboard: [blocklist, like nVidia 6200 range in bug 612007 ?]
No longer blocks: 645872
Duplicate of this bug: 645872
Great, will do!

Morphing bug title since this now covers the devices in comment 7, bug 645872 comment 2, those already blocked in bug 612007 & also other suspected broken devices in the 6100/6150/6200 family according to https://bug605749.bugzilla.mozilla.org/attachment.cgi?id=484688
Summary: [D3D9] Scrolling pages with GeForce 6150 causes black and white horizontal stripes in page area → [D3D9] Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches (black & white stripes) whilst scrolling
Attached patch Patch v1Splinter Review
Attachment #524939 - Flags: review?(bjacob)
Comment on attachment 524939 [details] [diff] [review]
Patch v1

Great, thanks!

By the way, I have asked NVIDIA to give us complete lists of PCI device IDs, hopefully we receive them soon.
Attachment #524939 - Flags: review?(bjacob) → review+
http://hg.mozilla.org/mozilla-central/rev/704e425c1a6b
Status: ASSIGNED → RESOLVED
Closed: 9 years ago9 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.2
Thanks Ehsan :-)

Benoit/Joe: Should I request approval for 2.0?
Comment on attachment 524939 [details] [diff] [review]
Patch v1

Patch already landed, removing a?.
Attachment #524939 - Flags: approval2.0?
I meant on the 2.0 release branch?
FWIW, approval2.0 should only be used if this patch needs to be included in a dot-release of Firefox 4.
That was my intention.

This bug:
- causes severe in-page glitches (eg https://bug644787.bugzilla.mozilla.org/attachment.cgi?id=521649).
- occurs regularly for the graphics cards it affects (I should know, before the 6200TC was originally blocked/I upgraded cards; it would happen several times an hour).
- is minimal risk since it only adds extra device IDs to an already established codepath.

-> requesting inclusion on the 2.0 branch, so that it is included in an Fx 4 point release
blocking2.0: --- → ?
Whiteboard: [requesting 2.0 branch approval]
Attachment #524939 - Flags: approval2.0?
I agree that it should be in a 4.0.x release.
Comment on attachment 524939 [details] [diff] [review]
Patch v1

Approved for Macaw. Please land this on mozilla-central (if it has not) and releases/mozilla-2.0 by tomorrow.
Attachment #524939 - Flags: approval2.0? → approval2.0+
blocking2.0: ? → Macaw+
Thanks Christian.

This has landed on m-c (comment 23) but I'll need someone to land it on 2.0 relbranch for me, since I don't have commit access (let alone level 3).

(I've just checked and the attached patch will apply cleanly on the relbranch, since there have been no changes to GfxInfo.cpp on m-c since Fx4 branched)
Keywords: checkin-needed
Whiteboard: [requesting 2.0 branch approval] → [needs 2.0 relbranch landing]
I'll transplant and push it.
(In reply to comment #32)
> I'll transplant and push it.

Too late :P
http://hg.mozilla.org/releases/mozilla-2.0/rev/66ccb8edc1cc
Keywords: checkin-needed
Whiteboard: [needs 2.0 relbranch landing]
Thanks :-)
(In reply to comment #18)
> > Any preference for this?
> 
> Go crazy, just block everything. The 6100's target audience probably doesn't
> care that much about hardware acceleration anyway.

Wrong. If it's not broke don't fix it. No user wants to have a working feature forcibly removed from them. My 6100 is not affected by this bug, and I do not appreciate my decision being made for me. The difference may be small, but it is noticeable.

And no need tell me about the about:config override. I've already put it in, and, unlike on my Intel chip, I didn't have to do a vendor override. While that makes me a little less upset, that doesn't change the fact that I find having an unnecessary block of my card somewhat offensive. Firefox is supposed to be the user's browser where we make the decisions.

Please take the 6100 off the block list.
@ Terrell Kelley:
Can you paste the Graphics section of about:support? I need to see what is your card's Device ID.

If there is a way to distinguish working and non-working cards based on the device ID, sure let's go for it. But in absence of data, we just had to make a decision between two non-optimal possibilities:
 1) blacklist too much, hence block hw accel for more users than necessary
 2) blacklist too little, hence make firefox unusable for some users
Insofar as lack of data forces us to make such a compromise, 1) is definitely the right choice for us.
Sure. Sorry, this went to my bugspam folder by mistake. I do understand if you can't help it.

0242 is the Device ID it shows. Vendor ID is 10de. Also, I'm using a rather old driver if that matters: 8.1.3.3
(In reply to comment #37)
> Sure. Sorry, this went to my bugspam folder by mistake. I do understand if
> you can't help it.
> 
> 0242 is the Device ID it shows. Vendor ID is 10de. Also, I'm using a rather
> old driver if that matters: 8.1.3.3

That driver version is really old indeed, so it would get blacklisted anyway.

It's possible that this very old driver version doesn't have the buggy TurboCache bits, but we still don't want to allow very old driver versions.

What Ed said about force-enabling if you want to.
Okay, fine. I can understand not supporting old drivers. I've upgraded to the latest now. I still cannot reproduce the problem with acceleration forced on. Here's a copy-and-paste of my entire About:Support graphics section (linefeeds and spacing added back for legibility).

Adapter Description      NVIDIA GeForce 6100
Vendor ID                10de
Device ID                0242
Adapter RAM              Unknown
Adapter Drivers          nv4_disp
Driver Version           6.14.12.7061
Driver Date              4-7-2011
Direct2D Enabled         false
DirectWrite Enabled      false (0.0.0.0, font cache n/a)
WebGL Renderer           Google Inc. -- ANGLE -- OpenGL ES 2.0 (ANGLE 0.0.0.611)
GPU Accelerated Windows  1/1 Direct3D 9
It continues to work correctly on Firefox 5.0. My settings are the same.

It's actually a bit more obvious, as, without acceleration, I can actually see the browser composite improperly on the right side for a split second before fixing itself.
(In reply to comment #17)
> The three reported cases occur on:
> - GeForce 6200 TurboCache - NV44 - 0x0161 [Already on the blocklist]
> - GeForce 6150 - C51PV - 0x0240
> - GeForce 6150 LE - C51 - 0x0241

(In reply to comment #40)
> Adapter Description      NVIDIA GeForce 6100
> Device ID                0242

OK, so it seems like the NVIDIA GeForce 6100, id 0242, doesn't have the bug. Perhaps this device doesn't have TurboCache contrary to the others. Patch coming, but I'll be very conservative and only unblacklist this particular device (wont try to guess about others).
Comment on attachment 541027 [details] [diff] [review]
unblacklist device 0x0242 - geforce 6100

I've had a quick compare to the device IDs listed in all the other related bugs and none of them are about this particular ID, so given comment 40, looks good to remove this from the list :-) 

(I'm obviously not able to r+, so switched it to the feedback flag instead.)
Attachment #541027 - Flags: review?(bmo) → feedback+
Comment on attachment 541027 [details] [diff] [review]
unblacklist device 0x0242 - geforce 6100

Patch looks fine; I have no reason one way or the other to know whether this is the right choice. :)
Attachment #541027 - Flags: review?(joe) → review+
Do you need me to do anything, since I do have the 6100? If so, what do I download to test?
The patch to remove the device model ID of your card from the blacklist has been reviewed, so the next stage is it being committed to the source repository  mozilla-central. When this happens, a message will be posted to this bug in the form of http://hg.mozilla.org/mozilla-central/rev/zzzzzz1234. 

Roughly 24-28 hours after that, the change will be in the latest nightly Firefox build (http://nightly.mozilla.org/), so if you wanted to test, you could download and try that. (Many developers run nightly as their everyday browser, but be aware that it is still an experimental pre-beta development build). 

The changes will then gradually work their way through Aurora, Beta and finally into the standard Firefox release, so if you did not want to run a beta browser, you'd just need to wait a bit longer (changes propagate from one stage to the next every 6 weeks, see https://wiki.mozilla.org/Releases for more information).

Once you try a build that includes the patch, to verify the fix, all you'd need to do is make sure that any changes made by following the guide in comment 38 were undone (or say use a clean profile to test: http://support.mozilla.com/kb/Managing-profiles), make sure use hardware acceleration was ticked in Firefox prefs, restart Firefox, then go to about:support and verify hardware acceleration was showing "GPU Accelerated Windows  1/1 Direct3D 9" rather than something like "0/0 windows".

:-)
Landed on central:
http://hg.mozilla.org/mozilla-central/rev/5c8a19c7e155

(Will be in Nightly tomorrow and eventually in Firefox 7).
I can't reproduce on my GeForce 6150SE nForce 430 (0x03d0) or my GeForce 6200 (0x0221) either. I've had layers force enabled for some time, and I can't say I've seen any problems arise from it.
Tested on Firefox 7.0a1 (2011-06-30) with layers.acceleration.force-enabled disabled. Everything works fine.
NVIDIA GeForce 6200 (0221) is ok.  Bug not reproducible with acceleration forced: 

GPU Accelerated Windows1/1 Direct3D 9

should perhaps be removed from the blocklist
But my 6200 did reproduce the issue; as such I think it's best to leave it blocked, in case others experience something similar. As it is, the 6200 is a very slow card, so the difference will be minimal to the end user afaict.
(In reply to Ed Morley [:edmorley] from comment #52)
> But my 6200 did reproduce the issue

Same device id, 0221?
Ah sorry mine was 0161 since 6200 Turbo Cache (bug 612007 comment 0).
(In reply to Ed Morley [:edmorley] from comment #54)
> Ah sorry mine was 0161 since 6200 Turbo Cache (bug 612007 comment 0).

So there are no reports that 0221 has problems and two that it's ok (Comment 49, Comment 51)
(In reply to Ed Morley [:edmorley] from comment #52)
> As it is, the 6200 is
> a very slow card, so the difference will be minimal to the end user afaict.

I once turned acceleration off on my 6100  due to it not working right with a VNC program I use. When I did so, the screen would always flicker while scrolling, which was very annoying. So there may be a bigger difference.
Depends on: 693191
(In reply to al_9x from comment #55)
> So there are no reports that 0221 has problems and two that it's ok (Comment
> 49, Comment 51)

Filed bug 693191 to remove 6200 0x0221 from the blacklist.
I've got a Windows XP SP3 x86 computer with Firefox 13 and a GeForce 6150LE. Anything for me to test? Also what's the setting to override the blacklist?
Send me any tests so I can confirm if they happen for my sub-model. I've updated to the latest nvidia driver as well.

Adapter DescriptionNVIDIA GeForce 6150 LEVendor ID0x10deDevice ID0x0241Adapter RAMUnknownAdapter Driversnv4_dispDriver Version6.14.13.142Driver Date5-15-2012WebGL RendererGoogle Inc. -- ANGLE (NVIDIA GeForce 6150 LE) -- OpenGL ES 2.0 (ANGLE 1.0.0.963)GPU Accelerated Windows0. Blocked for your graphics card because of unresolved driver issues.
The setting to override the blacklist is layers.acceleration.force-enabled=true.

Steps to reproduce are given in above comments, comment 0 at least.

We already had a reported problem on device 0x0241 above, but it could be that the latest driver is free of issues.
No artifacts seen yet with some canvas demos. You're right though, a lot of computers with this chipset might be out of date driver-wise. I had to update to a 2012 driver manually (From a circa 2006 driver), as windows update didn't pick up the out of date driver in this case.
Yeah, no issues with latest driver on GeForce 6150LE. This chipset is common on the older mid-range computer market, where people are probably running with stock drivers from when they first bought their computer from the store in 2006. Just block ye olde drivers?
Any automated test suite I can run through to double confirm?
Still no issues on the GeForce 6150LE with acceleration enabled. Consider unbanning?
OK, let's unban the driver versions >= the version in comment 60. But I'm busy now so i dont make guarantees as to when i'll do it. I can mentor someone.
NOPE...

Finally got the black bar glitch on the 6150LE machine while browsing github. Permaban this chipset.
Haha, glad I had dropped this ball. Moral of the story: leave old hardware alone.
Oh S**t, disregard the last comment of mine

The problem actually was that windows update decided to overwrite over the newest driver manually instead with a super old copy that windows update still has.

It seems the driver that windows update has is faulty for sure, and overwrites over non-faulty one.
Yeah, microsoft is handing out bad drivers via windows update. Ban those but not the latest Nvidia drivers. Problem is with stale drivers for the black bar issue, which is fixed with the latest drivers. I'd recommend unban the 6100/6150/6200 ONLY if the latest driver has been installed, and auto-ban windows update copies.
Only ran into comment 68 when I carelessly let windows update overwrite my previously up to date copy.
(In reply to Grant Galitz from comment #69)
> Yeah, microsoft is handing out bad drivers via windows update. Ban those but
> not the latest Nvidia drivers. Problem is with stale drivers for the black
> bar issue, which is fixed with the latest drivers. I'd recommend unban the
> 6100/6150/6200 ONLY if the latest driver has been installed, and auto-ban
> windows update copies.

the 6150le is still being blocked even though drivers are the latest,was also unable to reproduce the bug with force enabled hardware acceleration.
You need to log in before you can comment on or make changes to this bug.