Open Bug 700545 Opened 8 years ago Updated 6 years ago

Discard uncompressed heap copy of images once it is sent to GPU on windows

Categories

(Core :: Graphics, defect)

x86
Windows 7
defect
Not set

Tracking

()

People

(Reporter: Hughman, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [MemShrink:P2])

This bug is for getting the uncompressed heap copy an images in windows discarded when the image is sent to the GPU for display.

From my observation of latest nightly:
1. Images in current tab get immediately decoded to uncompressed-heap.
2. When the image is first drawn after decode a copy is placed in GPU mem as a surface or texture.
3. Now there is a copy of the uncompressed image in both heap and GPU mem. If there is no dedicated GPU mem the GPU copy is in main memory also (shared memory).
4. Both copies seem to get discarded at about the same time.

From what I am told, linux already does something like this when the image is sent to the X-Server.

When this is fixed people with no dedicated GPU memory on windows would be able to save one whole copy of the uncompressed image from being in ram. For people that have dedicated GPU mem they could save the entire copy of uncompressed image in ram once its been sent to the GPU.
Whiteboard: [MemShrink]
Adding some related bugs/wiki pages where this has been mentioned previously.

https://wiki.mozilla.org/Platform/GFX/InternProjects
Depends on: 695610
See Also: → 650988
We're going to do this after we switch to Azure as that will put us in a better position to do this properly.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: [MemShrink] → [MemShrink:P2]
Summary: Discard uncompressed heap copy of images once its sent to GPU on windows → Discard uncompressed heap copy of images once it is sent to GPU on windows
Hey, great bug. Please include DOMElementToImageSurface, in WebGLContextGL.cpp, in your list of functions where to hook this into. This is what gets called when an image is passed to WebGL to upload it as a WebGL texture.
You need to log in before you can comment on or make changes to this bug.