Closed Bug 1379322 Opened 7 years ago Closed 7 years ago

reftest/tests/layout/reftests/bugs/433700.htm is failing with OMTP enabled

Categories

(Core :: Graphics: Layers, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: mchang, Assigned: mchang)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(2 files)

Attached file 433700.html
+++ This bug was initially created as a clone of Bug #1369541 +++

Display list:

SolidColor p=0x11af480 f=0x183235d0(Viewport(-1)) bounds(0,0,76680,79470) layerBounds(0,0,76680,79470) visible(0,0,76680,79470) componentAlpha(0,0,0,0) clip() asr() clipChain() uniform ref=0x183235d0 agr=0x183235d0 (opaque 0,0,76680,79470) (rgba 255,255,255,255) layer=0x1198000
LayerEventRegions p=0x11af010 f=0x183235d0(Viewport(-1)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,76680,79470) componentAlpha(0,0,0,0) clip() asr() clipChain() ref=0x183235d0 agr=0x183235d0 (hitRegion < (x=0, y=0, w=76680, h=79470); >)
LayerEventRegions p=0x11af0e8 f=0x18323b20(Canvas(html)(-1)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,76680,79470) componentAlpha(0,0,0,0) clip(0,0,76680,79470) asr(<0x18323db0>) clipChain(<0,0,76680,79470> [0x18323db0], <0,0,76680,79470> [root asr]) ref=0x183235d0 agr=0x18323b20 (hitRegion < (x=0, y=0, w=76680, h=79470); >)
CanvasBackgroundColor p=0x11af1e8 f=0x18323b20(Canvas(html)(-1)) bounds(0,0,76680,79470) layerBounds(0,0,76680,79470) visible(0,0,76680,79470) componentAlpha(0,0,0,0) clip(0,0,76680,79470) asr(<0x18323db0>) clipChain(<0,0,76680,79470> [0x18323db0], <0,0,76680,79470> [root asr]) uniform ref=0x183235d0 agr=0x18323b20 (opaque 0,0,76680,79470) (rgba 255,255,255,255) layer=0x1194400
FixedPosition p=0x11af3a0 f=0x183b5ea0(Block(div)(1) id:test6) bounds(3720,14400,11760,2436) layerBounds(120,0,11760,2436) visible(3600,14400,12000,2436) componentAlpha(7275,14856,4507,1140) clip(0,0,76680,79470) asr() clipChain(<0,0,76680,79470> [root asr]) ref=0x183235d0 agr=0x183b5ea0 layer=0x1195c00
  LayerEventRegions p=0x11af230 f=0x183b5ea0(Block(div)(1) id:test6) bounds(0,0,0,0) layerBounds(-3600,-14400,0,0) visible(3600,14400,12000,2436) componentAlpha(0,0,0,0) clip() asr() clipChain() ref=0x183235d0 agr=0x183b5ea0 (hitRegion < (x=3600, y=14400, w=12000, h=2436); >)
  FieldSetBorder p=0x11af2f0 f=0x183b62c8(FieldSet(fieldset)(1)) bounds(3720,14400,11760,2436) layerBounds(120,0,11760,2436) visible(3600,14400,12000,2436) componentAlpha(0,0,0,0) clip() asr() clipChain() ref=0x183235d0 agr=0x183b5ea0 layer=0x1196000
  Text p=0x11af330 f=0x183b6980(Text(0)"FIELDSET") bounds(7275,14856,4507,1140) layerBounds(3675,456,4507,1140) visible(3600,14400,12000,2436) componentAlpha(7275,14856,4507,1140) clip() asr() clipChain() ref=0x183235d0 agr=0x183b5ea0 ("FIELDSET") layer=0x1196000
Painting --- layer tree:
ClientLayerManager (0x118c8e0) --- in content order
  ClientContainerLayer (0x1110c00) [visible=< (x=0, y=0, w=2556, h=2649); >] [opaqueContent]
    ClientPaintedLayer (0x1198000) [clip=(x=0, y=0, w=0, h=0)] [not visible]
      ContentClient (0x1104350)
    ClientColorLayer (0x1198800) [visible=< (x=0, y=0, w=2556, h=2649); >] { hitregion=< (x=0, y=0, w=2556, h=2649); >} [opaqueContent] [color=rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=2556, h=2649)]
    ClientPaintedLayer (0x1194400) [clip=(x=0, y=0, w=0, h=0)] [not visible] [metrics0={ [metrics={ [cb=(x=0.000000, y=0.000000, w=2556.000000, h=2649.000000)] [sr=(x=0.000000, y=0.000000, w=1278.000000, h=1324.500000)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=1278.000000, h=1324.500000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [scrollId=2] [rcd] [z=2] }] [color=rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=2556, h=2649)] }]
      ContentClient (0x58b9de0)
    ClientColorLayer (0x1195800) [visible=< (x=0, y=0, w=2556, h=2649); >] { hitregion=< (x=0, y=0, w=2556, h=2649); >} [opaqueContent] [metrics0={ [metrics={ [cb=(x=0.000000, y=0.000000, w=2556.000000, h=2649.000000)] [sr=(x=0.000000, y=0.000000, w=1278.000000, h=1324.500000)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=1278.000000, h=1324.500000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [scrollId=2] [rcd] [z=2] }] [color=rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=2556, h=2649)] }] [color=rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=2556, h=2649)]
    ClientContainerLayer (0x1195c00) [clip=(x=0, y=0, w=2556, h=2649)] [visible=< (x=124, y=480, w=392, h=82); >] [componentAlpha] [isFixedPosition scrollId=2 sides=0x9 anchor=(0,0)]
      ClientPaintedLayer (0x1196000) [transform=[ 1 0; 0 1; 120 480; ]] [effective-transform=[ 1 0; 0 1; 120 480; ]] [visible=< (x=4, y=0, w=392, h=82); >] { hitregion=< (x=0, y=0, w=400, h=82); >} [componentAlpha] [valid=< (x=4, y=0, w=392, h=82); >]
        ContentClient (0xf276690)


Min test case attached. We get random black squares.
We were getting random black squares because we cleared the rect when creating DrawTargetCapture. I was doing this because DrawTargetCapture started from WebRenderPaintedBlobLayer. However, DrawTargetSkia already clears itself to black during init. I didn't see where we clear it for DrawTargetD2D1, but TextureClient always allocates the textures with a clear. 

During ContentClient::BeginPaint, this test case has component alpha and so TextureClient clears this to white [1], which we would then override with black with ClearRect(). WRBlobLayer may be hitting the same bug, except inverse? I'm not sure if the WR side needs the clear or not. If so, I can delete the clear on the WRPaintedBlobLayer too.

[1] http://searchfox.org/mozilla-central/source/gfx/layers/client/ContentClient.cpp#328
Attachment #8884473 - Flags: review?(jmuizelaar)
Comment on attachment 8884473 [details] [diff] [review]
Don't clear DrawTargetCapture when starting OMTP

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

WRPaintedBlobLayer probably shouldn't have the clear either.
Attachment #8884473 - Flags: review?(jmuizelaar) → review+
Pushed by mchang@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f691dec773ee
Don't clear rect when init DrawTargetCapture with OMTP. r=jrmuizel
https://hg.mozilla.org/mozilla-central/rev/f691dec773ee
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: