Closed
Bug 1245552
Opened 9 years ago
Closed 9 years ago
crash in OOM | large | mozalloc_abort | mozalloc_handle_oom | moz_xmalloc | mozilla::gl::TexSubImage2DHelper
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
mozilla48
People
(Reporter: snorp, Assigned: sotaro)
References
Details
(Keywords: crash)
Crash Data
Attachments
(2 files, 4 obsolete files)
(deleted),
text/html
|
Details | |
(deleted),
patch
|
mattwoodrow
:
review+
|
Details | Diff | Splinter Review |
This bug was filed from the Socorro interface and is
report bp-d7d008ec-af8e-4405-8086-924372160131.
=============================================================
Here is a OOM when we're trying to upload a giant (24MB in this case) texture. Probably a good place to look at for gfx OOM in general.
Reporter | ||
Updated•9 years ago
|
tracking-fennec: --- → ?
status-firefox44:
--- → affected
status-firefox45:
--- → affected
status-firefox46:
--- → affected
status-firefox47:
--- → affected
Reporter | ||
Comment 1•9 years ago
|
||
The allocation that seems to be OOMing is in TexSubImage2DWithoutUnpackSubimage, where we allocate and copy the entire texture. I guess the main question here is why do we have a 24MB texture in the first place? At upload time in this scenario we will require 3x that amount: once for original data, once for the copy here in TexSubImage2DWithoutUnpackSubimage, and presumably one more for the texture itself. That's a lot, though we will throw at least one of those copies away immediately.
Sotaro, can you see if there is a better way to deal with such large requests?
Assignee: nobody → sotaro.ikeda.g
Reporter | ||
Updated•9 years ago
|
tracking-fennec: ? → 45+
Assignee | ||
Comment 3•9 years ago
|
||
a testcase is created by modifying attachment 8584779 [details] of Bug 1148582. It created a very large mask layer.
Assignee | ||
Comment 4•9 years ago
|
||
MaskLayer is created by ContainerState::CreateMaskLayer().
https://dxr.mozilla.org/mozilla-central/source/layout/base/FrameLayerBuilder.cpp#5975
MaskLayer data is stored as SourceSurfaceImage. SourceSurfaceImage::GetTextureClient() allocates duplicated memory as TextureClient. It seems better to avoid to allocate duplicated memory if possible.
https://dxr.mozilla.org/mozilla-central/source/gfx/layers/ImageContainer.cpp#563
Assignee | ||
Comment 5•9 years ago
|
||
Bug 1252405 is created for Comment 4.
Assignee | ||
Comment 6•9 years ago
|
||
Assignee | ||
Comment 7•9 years ago
|
||
Assignee | ||
Comment 8•9 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #7)
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=c3aa0d6e13d3
The patch seemed to cause some test failures.
Assignee | ||
Comment 9•9 years ago
|
||
Attachment #8726628 -
Attachment is obsolete: true
Assignee | ||
Comment 10•9 years ago
|
||
Attachment #8727851 -
Attachment is obsolete: true
Assignee | ||
Comment 11•9 years ago
|
||
Assignee | ||
Comment 12•9 years ago
|
||
Jeff recommended to allocate a mask as to aligned to 4 byte as a short term solution.
Assignee | ||
Comment 13•9 years ago
|
||
Assignee | ||
Updated•9 years ago
|
Attachment #8727866 -
Attachment is obsolete: true
Assignee | ||
Comment 14•9 years ago
|
||
Assignee | ||
Comment 15•9 years ago
|
||
Add fuzz to tests.
Attachment #8728221 -
Attachment is obsolete: true
Assignee | ||
Comment 16•9 years ago
|
||
Assignee | ||
Updated•9 years ago
|
Attachment #8730058 -
Flags: review?(matt.woodrow)
Updated•9 years ago
|
Attachment #8730058 -
Flags: review?(matt.woodrow) → review+
Comment 17•9 years ago
|
||
Comment 18•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox48:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
You need to log in
before you can comment on or make changes to this bug.
Description
•