Closed Bug 1020745 Opened 11 years ago Closed 11 years ago

[Flame] Unable to use full HW composition in video player

Categories

(Firefox OS Graveyard :: GonkIntegration, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: schiu, Assigned: schiu)

Details

Attachments

(2 files)

When playing the video in full screen mode, the full HW composition cannot be performed, even the tiling is turned off.
Attached file logcat of video player
LayerManager (0xaf5be860) ContainerLayerComposite (0xafa7ec00) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [opaqueContent] [metrics={ viewport=(x=0.000000, y=0.000000, w=320.000000, h=569.333313) viewportScroll=(x=0.000000, y=0.000000) displayport=(x=0.000000, y=0.000000, w=0.000000, h=0.000000) scrollableRect=(x=0.000000, y=0.000000, w=320.000000, h=569.333313) scrollId=0 }] ThebesLayerComposite (0xafa7f000) [shadow-clip=(x=0, y=0, w=0, h=0)] [clip=(x=0, y=0, w=0, h=0)] [not visible] ColorLayerComposite (0xafa80c00) [not visible] [opaqueContent] [color=rgba(0, 0, 0, 1)] ContainerLayerComposite (0xafa7f400) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-visible=< (x=0, y=0, w=480, h=854); >] [clip=(x=0, y=0, w=480, h=854)] [visible=< (x=0, y=0, w=480, h=854); >] [opaqueContent] ThebesLayerComposite (0xafa7f800) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [opaqueContent] [valid=< (x=0, y=0, w=480, h=854); >] ContentHost (0xaed729b0) [buffer-rect=(x=0, y=0, w=480, h=854)] [buffer-rotation=(x=0, y=0)] GrallocTextureHostOGL (0xaed36600) [size=(width=480, height=854)] [format=SurfaceFormat::B8G8R8X8] [flags=TextureFlags::ALLOW_REPEAT] ContainerLayerComposite (0xafaaa800) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 1 0; 0 1; -480 0; ]] [shadow-visible=< (x=0, y=0, w=480, h=854); >] [clip=(x=0, y=0, w=480, h=854)] [transform=[ 1 0; 0 1; -480 0; ]] [visible=< (x=0, y=0, w=480, h=854); >] ContainerLayerComposite (0xb0868000) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [opaqueContent] ThebesLayerComposite (0xb0868c00) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [opaqueContent] [valid=< (x=0, y=0, w=480, h=854); >] ContentHost (0xb007f1d0) [buffer-rect=(x=0, y=0, w=480, h=854)] [buffer-rotation=(x=0, y=0)] [paint-will-resample] GrallocTextureHostOGL (0xb07fcbf0) [size=(width=480, height=854)] [format=SurfaceFormat::B8G8R8X8] [flags=] CanvasLayerComposite (0xb0879400) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 1 0; 0 1; 0 718.75; ]] [shadow-visible=< (x=0, y=0, w=480, h=120); >] [clip=(x=0, y=0, w=480, h=854)] [transform=[ 1 0; 0 1; 0 718.75; ]] [visible=< (x=0, y=0, w=480, h=120); >] ImageHost (0xb081b1a0) [picture-rect=(x=0, y=0, w=0, h=0)] MemoryTextureHost (0xb081b1f0) [size=(width=0, height=0)] [format=SurfaceFormat::B8G8R8A8] [flags=] ThebesLayerComposite (0xb0bd3000) [shadow-visible=< (x=382, y=756, w=46, h=8); (x=57, y=764, w=36, h=30); (x=382, y=764, w=46, h=30); (x=382, y=794, w=46, h=8); >] [visible=< (x=382, y=756, w=46, h=8); (x=57, y=764, w=36, h=30); (x=382, y=764, w=46, h=30); (x=382, y=794, w=46, h=8); >] [valid=< (x=57, y=756, w=371, h=46); >] ContentHost (0xb007fbe0) [buffer-rect=(x=57, y=756, w=371, h=46)] [buffer-rotation=(x=0, y=0)] [paint-will-resample] GrallocTextureHostOGL (0xb081b240) [size=(width=371, height=46)] [format=SurfaceFormat::B8G8R8A8] [flags=] ContainerLayerComposite (0xb0bd4000) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-visible=< (x=0, y=0, w=480, h=854); >] [clip=(x=0, y=0, w=480, h=854)] [visible=< (x=0, y=0, w=480, h=854); >] ThebesLayerComposite (0xb0bd4800) [shadow-clip=(x=0, y=0, w=0, h=0)] [clip=(x=0, y=0, w=0, h=0)] [not visible] ColorLayerComposite (0xb0bd5000) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [color=rgba(255, 255, 255, 0.8)] ThebesLayerComposite (0xb0bd6c00) [shadow-visible=< (x=26, y=63, w=424, h=160); >] [visible=< (x=26, y=63, w=424, h=160); >] [valid=< (x=26, y=63, w=424, h=160); >] ContentHost (0xaff7b7b0) [buffer-rect=(x=26, y=63, w=424, h=160)] [buffer-rotation=(x=0, y=0)] [paint-will-resample] GrallocTextureHostOGL (0xb081b330) [size=(width=424, height=160)] [format=SurfaceFormat::B8G8R8A8] [flags=] ContainerLayerComposite (0xb124c800) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-visible=< (x=0, y=0, w=480, h=854); >] [clip=(x=0, y=0, w=480, h=854)] [visible=< (x=0, y=0, w=480, h=854); >] ContainerLayerComposite (0xb124e000) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] ContainerLayerComposite (0xaed7e800) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-visible=< (x=0, y=0, w=480, h=854); >] [clip=(x=0, y=0, w=480, h=854)] [visible=< (x=0, y=0, w=480, h=854); >] ThebesLayerComposite (0xb07a7000) [shadow-clip=(x=0, y=0, w=0, h=0)] [clip=(x=0, y=0, w=0, h=0)] [not visible] ColorLayerComposite (0xb0866800) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [opaqueContent] [color=rgba(14, 18, 20, 1)] RefLayerComposite (0xb0867c00) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-visible=< (x=0, y=0, w=480, h=854); >] [clip=(x=0, y=0, w=480, h=854)] [visible=< (x=0, y=0, w=480, h=854); >] [id=4] ContainerLayerComposite (0xb0867800) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [metrics={ viewport=(x=0.000000, y=0.000000, w=320.000000, h=569.000000) viewportScroll=(x=0.000000, y=0.000000) displayport=(x=0.000000, y=0.000000, w=320.000000, h=569.333313) scrollableRect=(x=0.000000, y=0.000000, w=320.000000, h=569.000000) scrollId=3 }] ThebesLayerComposite (0xb0868400) [shadow-visible=< (x=0, y=0, w=480, h=854); >] [visible=< (x=0, y=0, w=480, h=854); >] [opaqueContent] [valid=< (x=0, y=0, w=480, h=854); >] ContentHost (0xaff7b820) [buffer-rect=(x=0, y=0, w=480, h=854)] [buffer-rotation=(x=0, y=0)] [paint-will-resample] GrallocTextureHostOGL (0xaf26d6f0) [size=(width=480, height=854)] [format=SurfaceFormat::B8G8R8X8] [flags=] ContainerLayerComposite (0xb0868800) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 0.25 0; 0 0.25; 0 291.75; ]] [shadow-visible=< (x=0, y=0, w=480, h=270); >] [clip=(x=0, y=0, w=480, h=854)] [transform=[ 0.25 0; 0 0.25; 0 291.75; ]] [visible=< (x=0, y=0, w=480, h=270); >] [preScale=4, 4] ImageLayerComposite (0xb087a000) [shadow-transform=[ 1.5 0; 0 1.5; 0 0; ]] [shadow-visible=< (x=0, y=0, w=1280, h=720); >] [postScale=0.25, 0.25] [transform=[ 1.5 0; 0 1.5; 0 0; ]] [visible=< (x=0, y=0, w=1280, h=720); >] [opaqueContent] ImageHost (0xb0520600) [picture-rect=(x=0, y=0, w=1280, h=720)] GrallocTextureHostOGL (0xb073ad80) [size=(width=1280, height=720)] [format=SurfaceFormat::R8G8B8A8] [flags=] ThebesLayerComposite (0xb087f000) [shadow-transform=[ 1 0; 0 1; 249 744; ]] [shadow-visible=< (x=0, y=-1, w=35, h=36); >] [transform=[ 1 0; 0 1; 249 744; ]] [visible=< (x=0, y=-1, w=35, h=36); >] [valid=< (x=-1, y=-1, w=64, h=36); >] ContentHost (0xb0080c80) [buffer-rect=(x=-1, y=-1, w=64, h=36)] [buffer-rotation=(x=0, y=0)] [paint-will-resample] GrallocTextureHostOGL (0xb0731c40) [size=(width=64, height=36)] [format=SurfaceFormat::B8G8R8A8] [flags=] ContainerLayerComposite (0xb124f800) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 1 0; 0 1; -480 36; ]] [shadow-visible=< (x=0, y=0, w=480, h=818); >] [clip=(x=0, y=0, w=480, h=854)] [transform=[ 1 0; 0 1; -480 36; ]] [visible=< (x=0, y=0, w=480, h=818); >] ContainerLayerComposite (0xb12ef800) [shadow-visible=< (x=0, y=0, w=480, h=818); >] [visible=< (x=0, y=0, w=480, h=818); >] ThebesLayerComposite (0xb12efc00) [shadow-visible=< (x=0, y=0, w=480, h=818); >] [visible=< (x=0, y=0, w=480, h=818); >] [opaqueContent] [valid=< (x=0, y=0, w=480, h=818); >] ContentHost (0xb0080dd0) [buffer-rect=(x=0, y=0, w=480, h=818)] [buffer-rotation=(x=0, y=0)] [paint-will-resample] GrallocTextureHostOGL (0xb081b3d0) [size=(width=480, height=818)] [format=SurfaceFormat::B8G8R8X8] [flags=] ContainerLayerComposite (0xb12f0800) [shadow-clip=(x=0, y=0, w=480, h=818)] [shadow-visible=< (x=0, y=0, w=480, h=818); >] [clip=(x=0, y=0, w=480, h=818)] [visible=< (x=0, y=0, w=480, h=818); >] ThebesLayerComposite (0xb1b39800) [shadow-visible=< (x=0, y=0, w=480, h=818); >] [visible=< (x=0, y=0, w=480, h=818); >] [valid=< (x=0, y=0, w=480, h=818); >] ContentHost (0xb00e1820) [buffer-rect=(x=0, y=0, w=480, h=818)] [buffer-rotation=(x=0, y=0)] GrallocTextureHostOGL (0xb081b920) [size=(width=480, height=818)] [format=SurfaceFormat::B8G8R8A8] [flags=] ContainerLayerComposite (0xb1b3c400) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 1 0; 0 1; -480 36; ]] [shadow-visible=< (x=0, y=0, w=480, h=818); >] [clip=(x=0, y=0, w=480, h=854)] [transform=[ 1 0; 0 1; -480 36; ]] [visible=< (x=0, y=0, w=480, h=818); >] ContainerLayerComposite (0xb1c13400) [shadow-visible=< (x=0, y=0, w=480, h=818); >] [visible=< (x=0, y=0, w=480, h=818); >] [opaqueContent] ThebesLayerComposite (0xb1c14000) [shadow-clip=(x=0, y=0, w=0, h=0)] [clip=(x=0, y=0, w=0, h=0)] [not visible] ImageLayerComposite (0xb1c15c00) [shadow-clip=(x=0, y=0, w=480, h=818)] [shadow-visible=< (x=0, y=0, w=480, h=818); >] [clip=(x=0, y=0, w=480, h=818)] [visible=< (x=0, y=0, w=480, h=818); >] [opaqueContent] ImageHost (0xb081b970) [picture-rect=(x=0, y=0, w=480, h=818)] GrallocTextureHostOGL (0xb070e740) [size=(width=480, height=818)] [format=SurfaceFormat::B8G8R8A8] [flags=] ContainerLayerComposite (0xb1c14400) [shadow-clip=(x=0, y=0, w=480, h=818)] [shadow-visible=< (x=0, y=0, w=480, h=818); >] [clip=(x=0, y=0, w=480, h=818)] [visible=< (x=0, y=0, w=480, h=818); >] ThebesLayerComposite (0xb1c14800) [shadow-visible=< (x=0, y=0, w=480, h=818); >] [visible=< (x=0, y=0, w=480, h=818); >] [valid=< (x=0, y=0, w=480, h=818); >] ContentHost (0xb007fa90) [buffer-rect=(x=0, y=0, w=480, h=818)] [buffer-rotation=(x=0, y=0)] GrallocTextureHostOGL (0xb081b9c0) [size=(width=480, height=818)] [format=SurfaceFormat::B8G8R8A8] [flags=]
Above log and layer tree was captured in FxOS 2.0, with tiling disabled in Setting. There is always a CanvasLayer in layer tree which make PrepareLayerTree returns false: 06-04 23:22:03.460 I/Gecko ( 988): solomon: CanvasLayerComposite (0xb0879400) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 1 0; 0 1; 0 718.75; ]] [shadow-visible=< (x=0, y=0, w=480, h=120); >] [clip=(x=0, y=0, w=480, h=854)] [transform=[ 1 0; 0 1; 0 718.75; ]] [visible=< (x=0, y=0, w=480, h=120); >] 06-04 23:22:03.460 I/Gecko ( 988): ImageHost (0xb081b1a0) [picture-rect=(x=0, y=0, w=0, h=0)] 06-04 23:22:03.460 I/Gecko ( 988): MemoryTextureHost (0xb081b1f0) [size=(width=0, height=0)] [format=SurfaceFormat::B8G8R8A8] [flags=]
(In reply to Solomon Chiu [:schiu] from comment #4) > Above log and layer tree was captured in FxOS 2.0, with tiling disabled in > Setting. There is always a CanvasLayer in layer tree which make > PrepareLayerTree returns false: > > 06-04 23:22:03.460 I/Gecko ( 988): solomon: CanvasLayerComposite > (0xb0879400) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 1 0; > 0 1; 0 718.75; ]] [shadow-visible=< (x=0, y=0, w=480, h=120); >] [clip=(x=0, > y=0, w=480, h=854)] [transform=[ 1 0; 0 1; 0 718.75; ]] [visible=< (x=0, > y=0, w=480, h=120); >] > 06-04 23:22:03.460 I/Gecko ( 988): ImageHost (0xb081b1a0) > [picture-rect=(x=0, y=0, w=0, h=0)] > 06-04 23:22:03.460 I/Gecko ( 988): MemoryTextureHost (0xb081b1f0) > [size=(width=0, height=0)] [format=SurfaceFormat::B8G8R8A8] [flags=] There are two strange things. a. ImageHost with zero size b. so many ContainerLayerComposite
Scratch my previous comment, bug 983971 restricted that limitation on gralloc'ing small textures to devices with ANDROID_VERSION <= 15 which the Flame isn't so the issue here must be different.
(In reply to peter chang[:pchang][:peter] from comment #5) > (In reply to Solomon Chiu [:schiu] from comment #4) > > Above log and layer tree was captured in FxOS 2.0, with tiling disabled in > > Setting. There is always a CanvasLayer in layer tree which make > > PrepareLayerTree returns false: > > > > 06-04 23:22:03.460 I/Gecko ( 988): solomon: CanvasLayerComposite > > (0xb0879400) [shadow-clip=(x=0, y=0, w=480, h=854)] [shadow-transform=[ 1 0; > > 0 1; 0 718.75; ]] [shadow-visible=< (x=0, y=0, w=480, h=120); >] [clip=(x=0, > > y=0, w=480, h=854)] [transform=[ 1 0; 0 1; 0 718.75; ]] [visible=< (x=0, > > y=0, w=480, h=120); >] > > 06-04 23:22:03.460 I/Gecko ( 988): ImageHost (0xb081b1a0) > > [picture-rect=(x=0, y=0, w=0, h=0)] > > 06-04 23:22:03.460 I/Gecko ( 988): MemoryTextureHost (0xb081b1f0) > > [size=(width=0, height=0)] [format=SurfaceFormat::B8G8R8A8] [flags=] > > There are two strange things. > a. ImageHost with zero size > b. so many ContainerLayerComposite Solomon, I didn't see the CanvasLayerComposite in my flame during video app. Do you use the m-c build?
Flags: needinfo?(schiu)
Just checked again, the canvas layer mentioned above has disappeared. And Video player also no longer uses tiling. The playback can use full HWC now. So I close this bug.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → INVALID
Flags: needinfo?(schiu)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: