Closed Bug 897532 Opened 11 years ago Closed 11 years ago

Not apply high quality image scaling when enable Azure content CG backend

Categories

(Core :: Graphics: ImageLib, defect)

x86
macOS
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla26
Tracking Status
firefox24 --- unaffected
firefox25 + verified
firefox26 + verified

People

(Reporter: tetsuharu, Assigned: jrmuizel)

References

Details

(Keywords: regression)

Attachments

(1 file)

[environment] * http://hg.mozilla.org/mozilla-central/rev/2983ca6d4d1a * OSX 10.8 * gfx.content.azure.enabled=true * gfx.content.azure.backends=cg [Step To Reproduce] Open this test case: https://bug486918.bugzilla.mozilla.org/attachment.cgi?id=428179 [Result] Gecko doesn't apply high quality image scaling. On OSX, Gecko applied high quality image scaling if `image.high_quality_downscaling.enabled` were disabled. http://hg.mozilla.org/mozilla-central/file/b3fcd828cadc/modules/libpref/src/init/all.js#l3945 [Note] High quality image scaling works good on these cases: * If we turn on `image.high_quality_downscaling.enabled` * If we turn off `gfx.content.azure.enabled`
Blocks: 486918
Keywords: regression
This is actually unrelated to the high quality image scaling implemented in bug 486918. Jeff explicitly turned it off for speed, but we do want it.
No longer blocks: 486918
Assignee: nobody → jmuizelaar
This fixes the regression.
Attachment #785217 - Flags: review?(bas)
Comment on attachment 785217 [details] [diff] [review] Add support for better filtering in Azure Review of attachment 785217 [details] [diff] [review]: ----------------------------------------------------------------- ::: gfx/2d/Types.h @@ +103,5 @@ > enum ExtendMode { EXTEND_CLAMP, EXTEND_REPEAT, EXTEND_REFLECT }; > enum FillRule { FILL_WINDING, FILL_EVEN_ODD }; > enum AntialiasMode { AA_NONE, AA_GRAY, AA_SUBPIXEL, AA_DEFAULT }; > enum Snapping { SNAP_NONE, SNAP_ALIGNED }; > +enum Filter { FILTER_GOOD, FILTER_LINEAR, FILTER_POINT }; I think we should be more specific, for example in D2D 1.1 we have a lot of choice in filters. 'Good' is kind of arbitrary here and I'd be unsure how to pick one. I'd like to figure out namings which more closely describe the tradeoff between performance and quality. Let's discuss this a little on monday. If this is urgent we can take this for now but I feel we really should follow up.
Attachment #785217 - Flags: review?(bas) → review+
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
Depends on: 903065
Sorry, I backed this out because it may have caused new intermittent nvidia driver crashes in Metro tests, on Windows PGO builds only: https://hg.mozilla.org/mozilla-central/rev/55b6b3b78d37 Example crash: https://tbpl.mozilla.org/php/getParsedLog.php?id=26320937&tree=Mozilla-Central Stack trace exerpt: 12:37:44 INFO - Thread 24 (crashed) 12:37:44 INFO - 0 nvwgf2um.dll + 0x247192 12:37:44 INFO - eip = 0x70287192 esp = 0x090aef14 ebp = 0x090aef28 ebx = 0x00000640 12:37:44 INFO - esi = 0x00010000 edi = 0x00010000 eax = 0xfffffffe ecx = 0x00000000 12:37:44 INFO - edx = 0x08de3168 efl = 0x00010202 12:37:44 INFO - Found by: given as instruction pointer in context 12:37:44 INFO - 1 nvwgf2um.dll + 0x1f591f 12:37:44 INFO - eip = 0x70235920 esp = 0x090aef30 ebp = 0x090aef88 12:37:44 INFO - Found by: previous frame's frame pointer 12:37:44 INFO - 2 nvwgf2um.dll + 0xfd8b 12:37:44 INFO - eip = 0x7004fd8c esp = 0x090aef90 ebp = 0x090aefb4 12:37:44 INFO - Found by: previous frame's frame pointer 12:37:44 INFO - 3 nvwgf2um.dll + 0xc4f0f 12:37:44 INFO - eip = 0x70104f10 esp = 0x090aefbc ebp = 0x090af010 12:37:44 INFO - Found by: previous frame's frame pointer 12:37:44 INFO - 4 nvwgf2um.dll + 0xc5627 12:37:44 INFO - eip = 0x70105628 esp = 0x090af018 ebp = 0x090af024 12:37:44 INFO - Found by: previous frame's frame pointer 12:37:44 INFO - 5 d3d11.dll + 0xb0162 12:37:44 INFO - eip = 0x70d00163 esp = 0x090af02c ebp = 0x090af048 12:37:44 INFO - Found by: previous frame's frame pointer 12:37:44 INFO - 6 xul.dll!mozilla::layers::CompositorD3D11::SetSamplerForFilter(mozilla::gfx::Filter) [CompositorD3D11.cpp:46163186a53a : 803 + 0x10] 12:37:44 INFO - eip = 0x7375a510 esp = 0x090af050 ebp = 0x090af060 12:37:44 INFO - Found by: previous frame's frame pointer 12:37:44 INFO - 7 xul.dll!mozilla::layers::CompositorD3D11::DrawQuad(mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits> const &,mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits> const &,mozilla::layers::EffectChain const &,float,mozilla::gfx::Matrix4x4 const &,mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits> const &) [CompositorD3D11.cpp:46163186a53a : 526 + 0xf] 12:37:44 INFO - eip = 0x73b735e8 esp = 0x090af068 ebp = 0x090af0f8 12:37:44 INFO - Found by: call frame info 12:37:44 INFO - 8 xul.dll!mozilla::layers::DeprecatedImageHostSingle::Composite(mozilla::layers::EffectChain &,float,mozilla::gfx::Matrix4x4 const &,mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits> const &,mozilla::gfx::Filter const &,mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits> const &,nsIntRegion const *,mozilla::layers::TiledLayerProperties *) [ImageHost.cpp:46163186a53a : 307 + 0x1f] 12:37:44 INFO - eip = 0x73b74d8a esp = 0x090af100 ebp = 0x090af168 12:37:44 INFO - Found by: call frame info 12:37:44 INFO - 9 xul.dll!mozilla::layers::CanvasLayerComposite::RenderLayer(nsIntPoint const &,nsIntRect const &) [CanvasLayerComposite.cpp:46163186a53a : 96 + 0x60] 12:37:44 INFO - eip = 0x73b7461c esp = 0x090af170 ebp = 0x090af210 12:37:44 INFO - Found by: call frame info 12:37:44 INFO - 10 xul.dll!mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite *,nsIntPoint const &,mozilla::layers::LayerManagerComposite *,nsIntRect const &) [ContainerLayerComposite.cpp:46163186a53a : 123 + 0x13] 12:37:44 INFO - eip = 0x73b7666c esp = 0x090af218 ebp = 0x090af358 12:37:44 INFO - Found by: call frame info Suspected regression range: https://tbpl.mozilla.org/?tree=Mozilla-Inbound&jobname=pgo.*metro&fromchange=2f380c0d1670&tochange=46163186a53a
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: mozilla26 → ---
Status: REOPENED → RESOLVED
Closed: 11 years ago11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
Jeff, how do you feel about uplifting this to FF25 on Aurora?
Flags: needinfo?(jmuizelaar)
Comment on attachment 785217 [details] [diff] [review] Add support for better filtering in Azure [Approval Request Comment] Bug caused by (feature/regressing bug #): 896489 User impact if declined: A regression in image scaling Testing completed (on m-c, etc.): Has been on mozilla-central for a while Risk to taking this patch (and alternatives if risky): Very limited risk.
Attachment #785217 - Flags: approval-mozilla-aurora?
Flags: needinfo?(jmuizelaar)
Attachment #785217 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Keywords: verifyme
Reproduced in nightly 2013-07-31. Verified fixed FF 25b3 Mac OS X 10.8.4
Verified fixed FF 26.0a2 (2013-10-03) Mac OS X 10.8.4
Status: RESOLVED → VERIFIED
Keywords: verifyme
While working on talos tscroll, I noticed that two tscroll subtests: tiled-downscale.html and tiled-fixed-downscale.html jank badly on current nightly (fx29 on OSX 10.9[.1] on 2010 MBA). The symptoms are frequent ~1s hangs during scroll (manual or automatic by the test), and hundreds of MB mem usage increase while interacting with these pages. Looking at datazilla, I _think_ this bug could be the cause (scroll down to tiled-downscale.html on Aug 17) : https://datazilla.mozilla.org/?start=1371736841&stop=1387263645&product=Firefox&repository=Firefox&os=mac&os_version=OS%20X%2010.8&test=tscrollx&graph_search=b1e5ade62913,a71cedddadd1&tr_id=2520025&graph=tiled-fixed-downscale.html&x86=false&project=talos Graphserver: http://graphs.mozilla.org/graph.html#tests=[[287,1,24]]&sel=1376223841460.1765,1377113499484.1235&displayrange=365&datatype=running
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: