Граф коммитов

79 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond 6529a8c077 Bug 1437886 - Prevent shared surfaces from being used without WebRender. r=nical
Move the initialization of SharedSurfacesParent from the compositor
thread creation to mirror the other WebRender-specific components, such
as the render thread creation. Now it will only be created if WebRender
is in use. Also prevent shared surfaces from being used by the image
frame allocator, even if image.mem.shared is set -- there is no purpose
in allowing this at present. It was causing startup crashes for users
who requested image.mem.shared and/or WebRender via gfx.webrender.all
but did not actually get WebRender at all. Surfaces would get allocated
in the shared memory, try to register themselves with the WR render
thread, and then crash since that thread was never created.
2018-02-16 09:50:40 -05:00
Andrew Osmond 71ec66dad0 Backed out changeset 2ffed9c081fa (bug 1437886) for test bustage on a CLOSED TREE. r=backout 2018-02-15 10:03:42 -05:00
Andrew Osmond ddb7905e51 Bug 1437886 - Prevent shared surfaces from being used without WebRender. r=nical
Move the initialization of SharedSurfacesParent from the compositor
thread creation to mirror the other WebRender-specific components, such
as the render thread creation. Now it will only be created if WebRender
is in use. Also prevent shared surfaces from being used by the image
frame allocator, even if image.mem.shared is set -- there is no purpose
in allowing this at present. It was causing startup crashes for users
who requested image.mem.shared and/or WebRender via gfx.webrender.all
but did not actually get WebRender at all. Surfaces would get allocated
in the shared memory, try to register themselves with the WR render
thread, and then crash since that thread was never created.
2018-02-15 09:26:05 -05:00
Andrew Osmond 5567686405 Bug 1432375 - Part 2. Images decoded into an SourceSurfaceSharedData should be shared immediately. r=nical 2018-02-12 07:59:58 -05:00
Milan Sreckovic d0d070b48c Bug 1423567: Use BaseRect access methods instead of member variables in image/ r=aosmond
MozReview-Commit-ID: JNYZsts6pCO

--HG--
extra : rebase_source : d37ce77ec84af302018f95285cff61b2ba28c957
2017-12-20 16:46:28 -05:00
Andrew Osmond 59aeaef70a Bug 1419912 - Part 2. Ensure the decoders invalidate the surface as written to. r=tnikkel 2017-12-01 06:59:21 -05:00
Andrew Osmond 675137dd9f Bug 1419767 - Remove gfxPlatform::CanRenderContentToDataSurface. r=nical
Factory::DoesBackendSupportDataDrawtarget already fulfills the same
purpose and we should use that instead, as imgFrame is the only user of
the former API. It has the added bonus of allowing us to use shared
surfaces on Linux with WebRender, and using volatile surfaces on Windows
when D2D is disabled.
2017-11-24 08:10:03 -05:00
Andrew Osmond 2c86b9676b Bug 1391430 - Force heap allocated surfaces for image decoding to use an unaligned stride. r=tnikkel
In bug 1383499 we fixed the case where on Android, animated images could
consume all of the available file handles. This is because each volatile
buffer will contain a file handle on Android, and animated images can
contain many, many frames. However in doing so we introduced a bug where
the stride of replacement surface was aligned to a 16-byte boundary. We
do not currently support any stride value but pixel size * image width
in the image decoding framework. This may be something we correct in the
future but for now, we should just ensure all surfaces follow the
expected stride value.
2017-08-31 06:38:55 -04:00
Andrew Osmond 539ab65d03 Bug 1383499 - Animated PNGs should allocate after-first frames on the heap instead of as volatile buffers on Android. r=tnikkel
Animated image frames are never actually released to let the OS purge
them, because AnimationSurfaceProvider keeps them as RawAccessFrameRef.
Meanwhile, each volatile buffer on Android needs a file handle to be
retained for as long as the buffer lives. Given sufficient number of
animated image frames, we could easily exhaust the available file
handles (which in turn causes many problems). As such on Android we
should stick with the heap for animated image frames. On other platforms
it is better to stay because we will avoid a memset, because the OS will
zero-fill the requested pages on our behalf.
2017-08-16 08:57:40 -04:00
Milan Sreckovic 5c01b5706c Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in image/*. r=aosmond
MozReview-Commit-ID: 8gyxxLziVe7

--HG--
extra : rebase_source : c79e81e10c54106645539c590bf81a03a300a909
2017-08-14 08:29:56 -04:00
Sylvestre Ledru 4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Kartikaya Gupta 7332c6da98 Bug 1376782 - Replace gfxSize with a typedef to SizeDouble. r=jrmuizel
Most of the changes in this patch are just using the explicit
constructor from gfx::IntSize to gfx::Size, since gfxSize did
that implicitly but gfx::Size doesn't.

MozReview-Commit-ID: CzikGjHEXje

--HG--
extra : rebase_source : 9d19977f2a774d9a2a653db923553a6c2e06f82a
2017-06-28 11:41:21 -04:00
Nicholas Nethercote 58786e1ea7 Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.

--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
2017-06-22 17:08:53 +10:00
Andrew Osmond d93e9c00e1 Bug 1298652 - Allow 64k width/height images to be rendered. r=jrmuizel
MozReview-Commit-ID: DIK9y9acV0M

--HG--
extra : rebase_source : 55129089afacd7a4a932a1ada59d366db54ea33a
2016-09-01 07:32:02 -04:00
Andrew Osmond 13df27efb8 Bug 1341624 - Include shared handle totals in memory reports for images. r=tnikkel 2017-02-22 09:30:22 -05:00
Andrew Osmond 4f8eb1363e Bug 1339202 - Decode images to shared surfaces for WebRender. r=tnikkel 2017-02-08 15:48:59 -05:00
Phil Ringnalda c7b01ecbda Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions
CLOSED TREE

Backed out changeset 652c909b75ad (bug 1290293)
Backed out changeset 90a284ea19e3 (bug 1290292)
Backed out changeset 8401d12fe936 (bug 1290293)
Backed out changeset d87488b69c18 (bug 1290293)
Backed out changeset 7368aa665fae (bug 1290293)
2017-02-13 19:28:45 -08:00
Andrew Osmond 136381647d Bug 1290293 - Part 4. Remove surface buffer initialization for raster images. 2016-08-18 09:55:45 -04:00
Andrew Osmond 6679005d2a Bug 1290293 - Part 2e. Make SurfacePipe users clear unwritten pixels if the image is truncated. r=tnikkel 2016-08-18 09:55:45 -04:00
Sebastian Hengst 3ce82bcd4f Backed out changeset 45dd83a63162 (bug 1339202) for crashing in image processing related tests, e.g. xpcshell test test_imgtools.js. r=backout 2017-02-13 22:34:54 +01:00
Andrew Osmond 1683b602b4 Bug 1339202 - Decode images to shared surfaces for WebRender. r=tnikkel 2017-02-08 15:48:59 -05:00
Andrew Osmond 6dc0c7d3e0 Bug 1337790 - Fix null pointer dereference when a frame has no surface and one is requested. r=me 2017-02-08 10:51:08 -05:00
Andrew Osmond c31478a16b Bug 1331938 - Part 3. Switch to using VolatileSourceSurface instead of VolatileBuffer directly in imgFrame. r=tnikkel 2017-01-18 13:31:20 -05:00
Andrew Osmond ef3aee28a1 Bug 1332005 - Remove opaque BGRA8 image surface optimization. r=tnikkel 2017-01-18 12:52:42 -05:00
cku 09c56e6da6 Bug 1323912 - Part 2. Pass opacity down to imgIContainer::Draw. r=mstange
Each concrete class of imgIContainer is able to handle opacity already. All we
need to do is pass opacity value to them.

MozReview-Commit-ID: EMkLnG3YXA1

--HG--
extra : rebase_source : b0a0aad1fec0c2765e96d23ed9b627345c793795
2017-01-03 13:53:22 +08:00
Iris Hsiao c8e876e89c Backed out changeset c868ab532766 (bug 1323912) 2017-01-04 21:47:12 -05:00
cku adab9bea9f Bug 1323912 - Part 2. Pass opacity down to imgIContainer::Draw. r=mstange
Each concrete class of imgIContainer is able to handle opacity already. All we
need to do is pass opacity value to them.

MozReview-Commit-ID: EMkLnG3YXA1

--HG--
extra : rebase_source : 080a843b34cc1ca27831310d474243b4066f59f2
2017-01-03 13:53:22 +08:00
Andrew Osmond 0eb070a4cc Bug 1311779 - Part 2. Add telemetry to track optimizable opaque images decoded into B8G8R8A8 surfaces. r=tnikkel 2016-10-19 12:34:30 -04:00
Nathan Froyd 19607c3802 Bug 1306625 - fix wonky identation in imgFrame.cpp; r=tnikkel
DONTBUILD because whitespace-only fixes are always safe...right?
2016-09-30 23:11:59 -04:00
Bas Schouten 77e2a32f4a Bug 1296657: Attempt to create an mOptSurface of the correct type for the DT we're drawing to. r=tnikkel
MozReview-Commit-ID: 2LIQWUPAuaF
2016-09-15 13:53:12 +02:00
Seth Fowler 2977081713 Bug 1296147 (Part 2) - Rename imgFrame::GetSurface() to imgFrame::GetSourceSurface() for clarity. r=edwin 2016-08-18 13:03:49 -07:00
Seth Fowler 7a29534fe8 Bug 1293794 - Allow imgFrame volatile buffers to be freed on all platforms. r=jrmuizel 2016-08-15 17:42:30 -07:00
Ryan Hunt 92206266e3 Bug 1294586 - Remove dependency on gfxPlatform from CreateDrawTargetFromData. r=dvander
MozReview-Commit-ID: A355fBJKWP6

--HG--
extra : rebase_source : 85ffd4b9d5f9708a1666bbc8e229ba576cc97680
2016-08-11 14:54:08 -07:00
Nicholas Nethercote e7f10a07fd Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.

--HG--
extra : rebase_source : 815d0018b0b13329bb5698c410f500dddcc3ee12
2016-08-08 12:18:10 +10:00
Seth Fowler ba8bb5de9d Bug 1292747 (Part 3) - Clean up some comments in imgFrame related to Optimize()'s behavior. r=edwin 2016-08-08 16:25:50 -07:00
Seth Fowler ad2f26e773 Bug 1292747 (Part 2) - Remove the 565 optimization from imgFrame. r=edwin 2016-08-08 16:25:48 -07:00
Seth Fowler 55d13bdddf Bug 1292747 (Part 1) - Remove 565 optimization telemetry. r=edwin 2016-08-08 16:25:46 -07:00
Seth Fowler f09a1b3d95 Bug 1290682 (Part 2) - Clean up imgFrame::Draw() and related code now that we know no non-trivial frame rects will occur. r=edwin 2016-08-01 17:51:18 -07:00
Seth Fowler 94cd474a67 Bug 1290682 (Part 1) - Explicitly forbid non-trivial frame rects in imgFrame::Draw() except for paletted frames. r=edwin 2016-08-01 17:51:16 -07:00
Seth Fowler e36fc95869 Bug 1290681 (Part 2) - Remove the single color optimization from imgFrame. r=edwin 2016-08-01 17:51:13 -07:00
Seth Fowler b704f1ab3d Bug 1290681 (Part 1) - Remove telemetry for the single color optimization. r=edwin 2016-08-01 17:51:11 -07:00
Seth Fowler 78ccdc2e84 Bug 1288040 (Part 5) - Wrap frame timeout values in a FrameTimeout type that ensures they're normalized. r=edwin 2016-07-20 16:30:28 -07:00
Mason Chang 02f263e5b9 Bug 1282496 - memset unoptimized images with RGBX surface format to 0xFF. r=seth 2016-06-30 18:59:29 -07:00
Daniel Holbert c1e322c6c5 Bug 1282670, part 1: Add missing #include & "using" declarations in imagelib. r=seth
I found these issues locally by moving all of imagelib's .cpp files to SOURCES instead of UNIFIED_SOURCES.  (That change isn't part of this patch, though.)

MozReview-Commit-ID: 97Xpfu8eFE6
2016-06-30 10:24:27 -07:00
Phil Ringnalda 10f146a52a Back out 269a48e67579 (bug 1282496) for Windows gfx crashes and assertion failures
CLOSED TREE
2016-06-27 19:13:12 -07:00
Mason Chang dbf96fa749 Bug 1282496 - memset unoptimized images with RGBX surface format to 0xFF when using the skia backend. r=seth 2016-06-27 17:45:55 -07:00
Seth Fowler 5bb4252ff6 Bug 1281680 - Add telemetry for image optimizations that may no longer be useful. r=edwin 2016-06-25 15:41:16 -07:00
Seth Fowler 17074a1b49 Bug 1255107 (Part 3) - Use SurfacePipe in the PNG decoder. r=njn 2016-06-25 14:04:05 -07:00
Julian Seward 5b033cd6c7 Bug 1278927 - TSan: data race image/imgFrame.cpp on hasCheckedOptimize. r=seth. 2016-06-20 15:46:00 +02:00
Nicholas Nethercote a02611e830 Bug 1276824 (part 1) - Rename gfxContext::ForDrawTarget{,WithTransform}(). r=milan.
The new names Create{,PreservingTransform}OrNull() better communicate that
these functions (a) do object creation, and (b) are fallible.

--HG--
extra : rebase_source : a36bd9a2bcdfae281868959403f811f2bc690ad4
2016-06-07 09:39:56 +10:00