Closed Bug 993784 Opened 9 years ago Closed 9 years ago

Stop using Thebes surfaces for masking in BasicLayers

Categories

(Core :: Graphics: Layers, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla31

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

References

Details

Attachments

(5 files)

This a subset of bug 989858, and is blocking jwatt's conversion of imgIContainer::GetFrame.
Assignee: nobody → matt.woodrow
I guess this isn't ideal, but it's a lot easier than converting all of BasicLayers and lets us unblock jwatt's work. This can go away again once all the things are done.
Attachment #8403684 - Flags: review?(roc)
We're already requiring Moz2D backed gfxContexts for BasicLayers. This just avoids converting our Moz2D surface into a thebes one and then back again.
Attachment #8403685 - Flags: review?(roc)
And this removes the last user of the 'deprecated' surfaces on Image, which makes the world a happier place.
Attachment #8403686 - Flags: review?(roc)
Comment on attachment 8403684 [details] [diff] [review]
Add gfxContext API to avoid converting between moz2d and thebes needlessly

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

::: gfx/thebes/gfxContext.cpp
@@ +1514,5 @@
>  
>      if (!sourceSurf) {
>        return;
>      }
> +  

trailing whitespace

@@ +1528,5 @@
> +  MOZ_ASSERT(mDT);
> +
> +
> +  // We clip here to bind to the mask surface bounds, see above.
> +  mDT->MaskSurface(GeneralPattern(this), 

trailing whitespace
Attachment #8403684 - Flags: review?(roc) → review+
After installing this patch on inbound I get massive graphic corruption when I scroll.  I did a regression test and narrowed it down to this patch.

I'm running Windows 8.1.1.
Graphics
--------

Adapter Description: AMD Radeon HD 7900 Series
Adapter Drivers: aticfx64 aticfx64 aticfx64 aticfx32 aticfx32 aticfx32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
Adapter RAM: 3072
Device ID: 0x6798
Direct2D Enabled: true
DirectWrite Enabled: true (6.3.9600.16384)
Driver Date: 12-6-2013
Driver Version: 13.251.0.0
GPU #2 Active: false
GPU Accelerated Windows: 1/1 Direct3D 11 (OMTC)
Vendor ID: 0x1002
WebGL Renderer: Google Inc. -- ANGLE (AMD Radeon HD 7900 Series Direct3D9Ex vs_3_0 ps_3_0)
windowLayerManagerRemote: true
AzureCanvasBackend: direct2d
AzureContentBackend: direct2d
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0
Turning off HWA produces no corruption.
Attached image Corruption
FYI... Left HWA enabled and turned off OMTC and there is no corruption.
Blocks: 982427
No longer blocks: 950372
Blocks: 960524
No longer blocks: 982427
Any confirmation of my findings?
Are you sure it's this bug? I strongly suspect you're seeing something related to Bug 992486 (which landed at the same time).
I could only find this patch when I did my regression testing using the inbounds.  I can't find the files that contain 992486.  Is there a separate file that contains 992486 and not 993784?
No there isn't, sorry. I can have a look locally I guess.
If the file I used on inbound contains both patches then it's a toss up as to which one is causing my problem. I'm just trying to prevent a bad patch from hitting Nightly.
I reproduced this locally, it is indeed bug 992486. I'll fix it.
You need to log in before you can comment on or make changes to this bug.