Graphics driver crash causes images to stop rendering

VERIFIED FIXED in mozilla17

Status

()

Core
Graphics
VERIFIED FIXED
5 years ago
5 years ago

People

(Reporter: jcranmer, Assigned: bas)

Tracking

Trunk
mozilla17
x86_64
Windows 7
Points:
---
Bug Flags:
in-testsuite -

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

5 years ago
Periodically, my laptop appears to suffer from various graphics driver crashes and restarts. When this happens, on nightly builds, all images (including icons) suddenly disappear. This does not happen on current release version of Firefox (14 IIRC?).
(Assignee)

Comment 1

5 years ago
(In reply to Joshua Cranmer [:jcranmer] from comment #0)
> Periodically, my laptop appears to suffer from various graphics driver
> crashes and restarts. When this happens, on nightly builds, all images
> (including icons) suddenly disappear. This does not happen on current
> release version of Firefox (14 IIRC?).

This could be a symptom of Azure-content. I'll look into this, we'll probably be switching Azure off for 15 so that would fix this problem for you.

On another note though, what's your hardware and driver version, if it crashes that often it should probably be blacklisted for acceleration altogether.
(Reporter)

Comment 2

5 years ago
From about:support:

Graphics
Adapter Description	NVIDIA Quadro FX 880M
Vendor ID	0x10de
Device ID	0x0a3c
Adapter RAM	1024
Adapter Drivers	nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Driver Version	8.17.12.5738
Driver Date	6-27-2010
Direct2D Enabled	true
DirectWrite Enabled	true (6.1.7601.17789)
ClearType Parameters	ClearType parameters not found
WebGL Renderer	Google Inc. -- ANGLE (NVIDIA Quadro FX 880M) -- OpenGL ES 2.0 (ANGLE 1.0.0.1041)
GPU Accelerated Windows	1/1 Direct3D 10
AzureBackend	direct2d
(Assignee)

Comment 3

5 years ago
Those drivers are only -just- not blacklisted. In general it would be good if you could upgrade, although the issue should still be fixed. I'm not sure if we should blacklist this card/driver combination.
(Reporter)

Comment 4

5 years ago
I used to notice a few months ago some fairly frequent crashes (= multiple times per day), but nowadays the driver crashes are relatively rare, maybe once a week?
A lot of people have reported to me that graphics driver crashes make images disappear with azure content, fwiw.
(Assignee)

Comment 6

5 years ago
That just reaffirms my belief we should switch Azure content off on beta and fix these issues on Aurora (or rather, I will).
(Assignee)

Comment 7

5 years ago
Created attachment 646638 [details] [diff] [review]
Part 1: Add functionality to check validity of a source surface

Since driver crash behaviour is somewhat hard to emulate, it's hard to say for sure, but I suspect I understand the problem. I've created some patches to verify cached source surfaces come from the correct device.
Assignee: nobody → bas.schouten
Status: NEW → ASSIGNED
Attachment #646638 - Flags: review?(jmuizelaar)
(Assignee)

Updated

5 years ago
Attachment #646638 - Attachment description: Part 1: Add functionality to get native surface data off a source surface. → Part 1: Add functionality to check validity of a source surface
(Assignee)

Comment 8

5 years ago
Created attachment 646639 [details] [diff] [review]
Part 2: Only use cached surface when it's valid.
Attachment #646639 - Flags: review?(jmuizelaar)
Comment on attachment 646638 [details] [diff] [review]
Part 1: Add functionality to check validity of a source surface

Review of attachment 646638 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/2d/2D.h
@@ +303,5 @@
>    virtual IntSize GetSize() const = 0;
>    virtual SurfaceFormat GetFormat() const = 0;
>  
> +  /* This returns false if some event has made this source surface invalid for
> +   * usage with current DrawTargets.

Might want to add the example of what happens to D2D here.

::: gfx/2d/SourceSurfaceD2D.h
@@ +41,5 @@
>    friend class DrawTargetD2D;
>  
>    uint32_t GetByteSize() const;
>  
>    RefPtr<ID2D1Bitmap> mBitmap;

Add a comment about why we need to keep a pointer to the device
Attachment #646638 - Flags: review?(jmuizelaar) → review+
Comment on attachment 646639 [details] [diff] [review]
Part 2: Only use cached surface when it's valid.

Review of attachment 646639 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/thebes/gfxPlatform.cpp
@@ +20,5 @@
>  #if defined(XP_WIN)
>  #include "gfxWindowsPlatform.h"
>  #include "gfxD2DSurface.h"
> +
> +#include <d3d10_1.h>

Do we need this?

@@ +506,5 @@
> +    SourceSurface *surf = static_cast<SourceSurface*>(userData);
> +
> +    if (surf->IsValid()) {
> +      return surf;
> +    }

Will this surface be removed below?
Attachment #646639 - Flags: review?(jmuizelaar) → review+

Comment 11

5 years ago
Backed out for windows failures: https://tbpl.mozilla.org/php/getParsedLog.php?id=13928781&tree=Mozilla-Inbound

https://hg.mozilla.org/integration/mozilla-inbound/rev/2087e29da681
https://hg.mozilla.org/integration/mozilla-inbound/rev/8891aeee02e8
Relanded with a clobber.

https://hg.mozilla.org/integration/mozilla-inbound/rev/efc8ca42f6d2
https://hg.mozilla.org/integration/mozilla-inbound/rev/f8f77aeed77d
Flags: in-testsuite-
https://hg.mozilla.org/mozilla-central/rev/efc8ca42f6d2
https://hg.mozilla.org/mozilla-central/rev/f8f77aeed77d
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla17
(Reporter)

Comment 14

5 years ago
Images remained around after my latest driver cache.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.