Closed Bug 634784 Opened 12 years ago Closed 12 years ago

Black squares appear then disappear with hardware acceleration


(Core :: Graphics, defect)

Not set



Tracking Status
blocking2.0 --- betaN+


(Reporter: zpao, Assigned: mattwoodrow)




(Whiteboard: [hardblocker])


(2 files)

No idea if this is the right place to put this, so please move as necessary.

While using the demo at I noticed that there was a black box appearing as a transition was ending and then it went away.

This goes away when not using hardware acceleration (tested on same machine, and also on a non-accelerated Linux).

From about:support:
Direct2D Enabled: false
DirectWrite Enabled: false
WebGL Renderer: NVIDIA Corporation -- NVIDIA GeForce 9400M OpenGL Engine -- 2.1 NVIDIA-1.6.26GPU
Accelerated Windows: 3/3 OpenGL
blocking2.0: --- → ?
Component: Layout → Graphics
QA Contact: layout → thebes
Wasn't there a similar bug about this sort of thing appearing at the tail end of transitions?
Probably another container layer regression. These are fraught with peril, and so the fixes to them need to block beta.

I'm going to look into this asap, but I've got a day of many meetings, so Matt, if you get a chance, please steal it from me.
Assignee: nobody → joe
blocking2.0: ? → betaN+
Whiteboard: [hardblocker]
Whiteboard: [hardblocker] → [hardblocker][eta feb 18]
(In reply to comment #2)
> Wasn't there a similar bug about this sort of thing appearing at the tail end
> of transitions?

Yes, thats bug 630835, but it doesn't appear to be causing this.

Disabling the changes in 586683 fixes the issue for me, working on an actual fix now.
Attached patch FixSplinter Review
Attachment #513227 - Flags: review?(joe)
Whiteboard: [hardblocker][eta feb 18] → [hardblocker][eta feb 18][has patch]
Assignee: joe → matt.woodrow+bugzilla
(In reply to comment #6)
> Created attachment 513227 [details] [diff] [review]
> Fix

This would be easier to review if it came with a bit more description of what the fix does.
Haha, sorry Jeff!

The region we are passing to FillSurface has already been scaled, so there's no need for FillSurface to scale the context a second time.

I also snuck in a quick fix to the texture size limit check where we were checking against the unscaled size, not scaled.
Comment on attachment 513227 [details] [diff] [review]

That helps - thanks, Matt!

This is another one of the things I should have caught - the region to draw scale is just above where we pass the resolution to FillSurface!
Attachment #513227 - Flags: review?(joe) → review+
Can we please get a test for this?
We still get black bars on the edge of transformed layers that will likely cause tests to fail.

I think these are due to scaling the texture and rounding causing sampling to read from the opposite side of the texture. We fixed this on container layers by disabling wrapping, but on thebes layers the texture boundary can be in the middle of a physical texture. I'm not sure how we can fix this other than disabling the texture rotation code, which probably shouldn't be done for this release.
Should a new bug be filed for the black edges and this bug closed or is there still work here?
I don't think so, since this bug just got a partial fix.
Based on comment 12 it sounds like this bug should be marked FIXED and a follow-up bug targeted at the next release filed.
Whiteboard: [hardblocker][eta feb 18][has patch] → [hardblocker][eta feb 18][has patch][landed][fixed?]
This bug does not just have a partial fix.
Closed: 12 years ago
Resolution: --- → FIXED
Whiteboard: [hardblocker][eta feb 18][has patch][landed][fixed?] → [hardblocker]
I'm still seeing small artifacts with this fix. Not the big black square, but a couple lines of dotted black (almost like a border: 1px dotted black). You can see them in the original recording I attached.

Should I get a new bug on file or is there something further that can be done here?
We see that bug too. Please file a new bug; we'll investigate it.
No longer blocks: 635275
A user seems to still be having issues on Windows with an AMD graphics card. ( ) I think it's time to reopen the bug.
You need to log in before you can comment on or make changes to this bug.