summaryrefslogtreecommitdiffstats
path: root/cc/output
Commit message (Collapse)AuthorAgeFilesLines
...
* Allow one-copy and zero-copy task tile worker pools to use compressed textures.christiank2015-12-103-9/+15
| | | | | | | | | | | | BUG=434699 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/7d60ce9a132a88ead407a2a58c91edc431e68259 Cr-Commit-Position: refs/heads/master@{#364326} Review URL: https://codereview.chromium.org/1379783002 Cr-Commit-Position: refs/heads/master@{#364484}
* Revert of Allow one-copy task tile worker pool to use compressed textures. ↵engedy2015-12-103-15/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #14 id:260001 of https://codereview.chromium.org/1379783002/ ) Reason for revert: Resulted in linux-release/sizes/chrome-si/initializers failure: https://build.chromium.org/p/chromium/builders/Mac/builds/9905 https://build.chromium.org/p/chromium/builders/Linux/builds/69200 26a27 > # texture_compressor_etc1_sse.cc _GLOBAL__sub_I_texture_compressor_etc1_sse.cc+0xb 29c30 < # Found 28 static initializers in 8 files. --- > # Found 29 static initializers in 9 files. If this is intended, please update corresponding performance test expectations. Original issue's description: > Allow one-copy and zero-copy task tile worker pools to use compressed textures. > > BUG=434699 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/7d60ce9a132a88ead407a2a58c91edc431e68259 > Cr-Commit-Position: refs/heads/master@{#364326} TBR=reveman@chromium.org,nyquist@chromium.org,piman@chromium.org,sievers@chromium.org,christiank@opera.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=434699 Review URL: https://codereview.chromium.org/1513733003 Cr-Commit-Position: refs/heads/master@{#364342}
* Allow one-copy and zero-copy task tile worker pools to use compressed textures.christiank2015-12-103-9/+15
| | | | | | | | | BUG=434699 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1379783002 Cr-Commit-Position: refs/heads/master@{#364326}
* cc: Avoid crash on Android in GLRenderersievers2015-12-102-4/+2
| | | | | | | | | | | | | | | | We don't really handle GetVideoStreamTextureProgram() returning null gracefully, so avoid the crash. However, any broken implementation that was crashing here will still not render embedded videos and cause GL errors (since successfull shader compilation and use of GLenums are also gated on the extension). BUG=350443 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1515723002 Cr-Commit-Position: refs/heads/master@{#364263}
* List all child surfaces (including occluded) in CompositorFramejbauman2015-12-091-0/+4
| | | | | | | | | | | | Then any occluded child surface with a copy request can be aggregated (and have its copy done) whenever its parent draws. BUG=529378 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1491743006 Cr-Commit-Position: refs/heads/master@{#363877}
* OverlayProcessor subtracts damage by underlay planes if possiblewatk2015-12-048-46/+188
| | | | | | | | | | | | | | | | | | | | | | Previously it wasn't possible for the OverlayProcessor to change the damage rect when it scheduled something as an underlay. Now it saves the visible rect each time an underlay is scheduled. If the next frame also has an underlay it checks whether: a) the underlay visible rect matches that of the previous frame, and b) there are no visible quads on top of it. When both are true, the framebuffer will have a hole in the right place, and doesn't need to be redrawn. It's important to note that this relies on the OverlayProcess knowing about each frame, so it can reason about the state of the framebuffer. For this, a new SkipProcessForOverlays() lets the Processor know that it should reset the saved visible rect. BUG=533630 TEST=cc_unittests CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1434913003 Cr-Commit-Position: refs/heads/master@{#363306}
* Reland: DirectRenderer allows empty swap rects for CommitOverlayPlaneswatk2015-12-045-13/+61
| | | | | | | | | | | | | | | | | Previously DirectRenderer would expand the damage rect to the full output when partial swap buffers was not supported, because it had to swap the whole buffer. Now, with the availability of CommitOverlayPlanes it's possible that the surface has capability "allow_empty_swap", which means swapping an empty rect is valid regardless of whether partial swap is available. The surface is responsible for translating an empty swap rect into a call to CommitOverlayPlanes. BUG=533630 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1489153002 Cr-Commit-Position: refs/heads/master@{#363106}
* Revert of DirectRenderer allows empty swap rects for CommitOverlayPlanes ↵watk2015-12-034-59/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #3 id:40001 of https://codereview.chromium.org/1489153002/ ) Reason for revert: This probably broken the msan bots, e.g., https://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20ChromeOS%20MSan%20Tests/builds/5701 Original issue's description: > DirectRenderer allows empty swap rects for CommitOverlayPlanes > > Previously DirectRenderer would expand the damage rect to the full > output when partial swap buffers was not supported, because it had to > swap the whole buffer. Now, with the availability of CommitOverlayPlanes > it's possible that the surface has capability "allow_empty_swap", which > means swapping an empty rect is valid regardless of whether partial > swap is available. The surface is responsible for translating an empty > swap rect into a call to CommitOverlayPlanes. > > BUG=533630 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/581da2687c9e3031d07f2e0c28e32283b9b3e770 > Cr-Commit-Position: refs/heads/master@{#362812} TBR=ccameron@chromium.org,piman@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=533630 Review URL: https://codereview.chromium.org/1491013005 Cr-Commit-Position: refs/heads/master@{#363077}
* Add alpha argument to glResizeCHROMIUMjbauman2015-12-021-2/+2
| | | | | | | | | | | This lets the compositor specify whether the backbuffer will need to be blended with the contents behind it, and if not it can use a method that uses less power. BUG=561185 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1474873003 Cr-Commit-Position: refs/heads/master@{#362817}
* DirectRenderer allows empty swap rects for CommitOverlayPlaneswatk2015-12-024-11/+59
| | | | | | | | | | | | | | | | | Previously DirectRenderer would expand the damage rect to the full output when partial swap buffers was not supported, because it had to swap the whole buffer. Now, with the availability of CommitOverlayPlanes it's possible that the surface has capability "allow_empty_swap", which means swapping an empty rect is valid regardless of whether partial swap is available. The surface is responsible for translating an empty swap rect into a call to CommitOverlayPlanes. BUG=533630 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1489153002 Cr-Commit-Position: refs/heads/master@{#362812}
* Add support for ManagedMemoryPolicy (de)serializationnyquist2015-12-023-0/+65
| | | | | | | | | | | | | | | | As part of serializing cc::LayerTreeHost, we also need to serialize the cc::LayerTreeSettings and the cc::ManagedMemoryPolicy. This CL focuses on the cc::ManagedMemoryPolicy and the gpu::MemoryAllocation::PriorityCutoff enum. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1490513005 Cr-Commit-Position: refs/heads/master@{#362603}
* Added support for (de)serializing cc::RendererSettingsnyquist2015-12-023-0/+120
| | | | | | | | | | | | | | As part of serializing cc::LayerTreeHost, we also need to serialize the cc::LayerTreeSettings and the cc::RendererSettings. This CL focuses only on the renderer settings. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1476753002 Cr-Commit-Position: refs/heads/master@{#362558}
* Cleanup SurfaceVisibility code.sohan.jyoti2015-11-303-89/+0
| | | | | | | | | BUG=None CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1469863003 Cr-Commit-Position: refs/heads/master@{#362203}
* Mac: Don't repaint scrollbars every frameccameron2015-11-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The core issue here is that Blink, when it sees that it needs to change the scrollbar in any way (even just moving the thumb), uses the signal blink::Scrollbar::setNeedsPaintInvalidation(). This will trigger a call to cc::PaintedScrollbarLayer::Update(), which will re-paint all controls into textures and then emit quads the quads for the controls. We often only need to re-arrange the quads for the controls of the scrollbar, not re-paint them. The system that knows whether or not the controls need to be repainted is blink::ScrollbarTheme (because that's the code that knows the theme that will be used to do the painting). Add blink::ScrollbarTheme::shouldRepaintAllPartsOnInvalidation() to indicate if a call to blink::Scrollbar::setNeedsPaintInvalidation() should cause re-painting of all of the controls. If this returns false for a given theme, then methods blink::Scrollbar::setNeedsPaintTrack() and blink::Scrollbar::setNeedsPaintThumb() may be used to specify more granular control. Back in cc::PaintedScrollbarLayer::Update(), use the methods cc::Scrollbar::NeedsPaintPart() to check if re-paint is needed (it is hooked up to the bit that is set by the blink::Scrollbar methods). While we're in the neighborhood, it is worth noting that most of the repainting of scrollbars on Mac is due to the alpha of the thumb or the track changing. Add methods to blink::Scrollbar to query the opacity of the controls, so that we can do the blending at compositing time instead of requiring a repaint. And, while we're in that neighborhood, fix cc::CALayerOverlay's FromTextureQuad function to correctly take into account per-vertex opacity. BUG=549277 TEST= - Set the system to only show scrollbars while scrolling - Open a page with a vertical scrollbar - Scroll to make the scroll thumb appear - Hover the mouse somewhere below the thumb - The thumb should become thicker and the track should appear - After some time, the thumb and the track should fade away TEST= - Open a page with a scrollbar and search (command-F) for some text - Ensure that the ticks on the vertical scrollbar appear CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1458703010 Cr-Commit-Position: refs/heads/master@{#361938}
* Mac CALayer Renderer: Report UMA histogram for CALayer transform outcomeccameron2015-11-251-44/+85
| | | | | | | | | | | | | Record the outcome of replacing all DrawQuads with CALayers, so that we can determine how effective the strategy is, and which currently unsupported features need to be implemented. BUG=533677 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1462803004 Cr-Commit-Position: refs/heads/master@{#361610}
* Revert of List all child surfaces (including occluded) in CompositorFrame ↵jbauman2015-11-251-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #7 id:120001 of https://codereview.chromium.org/1430363002/ ) Reason for revert: Seems to have broken resize of some OOPIF. BUG=560237 Original issue's description: > List all child surfaces (including occluded) in CompositorFrame > > Then any occluded child surface with a copy request can be aggregated > (and have its copy done) whenever its parent draws. > > BUG=529378 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/915e16b393182f9ccc0ddc4caadd5f7744b25fd4 > Cr-Commit-Position: refs/heads/master@{#360896} TBR=danakj@chromium.org,kenrb@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=529378 Review URL: https://codereview.chromium.org/1475643006 Cr-Commit-Position: refs/heads/master@{#361604}
* We're deprecating SkDevice usage in Chromium; this change shouldtomhudson2015-11-231-1/+1
| | | | | | | | | | | | | | | | isolate it to skia/ext/ for simpler refactoring. I took the opportunity to also change calls to the deprecated SkCanvas::getDeviceSize() to the preferred replacement, SkCanvas::getBaseLayerSize(). R=fmalita@chromium.org,junov@chromium.org BUG=543755 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1432443004 Cr-Commit-Position: refs/heads/master@{#361196}
* command_buffer: Make inactive bound uniforms reserve the locationkkinnunen2015-11-231-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifying uniform values with locations bound with CHROMIUM_bind_uniform_location should work, regardless whether the underlying driver optimized the variable away or not. Fixes the case where updating an inactive uniform would cause INVALID_OPERATION, because the location was empty. Fixes the case where updating an uniform would cause wrong uniform to be updated, if the uniform was inactive and bound to a location that would be assigned to an unbound uniform. Makes the Program::uniform_infos_ array linear (non-sparse). The location bindings are now handled with Program::uniform_locations_ sparse array. Simplifies the correction of driver-supplied uniform names and determining whether an uniform is an array or not. Fixes a cc bug exposed by the implementation (cc_unittests): VideoGLRendererPixelTest.YUVAEdgeBleed VideoGLRendererPixelTest.SimpleYUVARect BUG=542355 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1419393005 Cr-Commit-Position: refs/heads/master@{#361076}
* cc: Remove calls to Pass() on rvalues.danakj2015-11-203-7/+7
| | | | | | | | | | | | | | | | | These are not useful and break RVO. std::move() will (soon) warn us for doing this on scoped_ptrs. Also use move() instead of Pass() in container_util.h This gets rid of the remaining calls to Pass() in all of src/cc/. R=enne, vmpstr BUG=557422 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1461803003 Cr-Commit-Position: refs/heads/master@{#360898}
* List all child surfaces (including occluded) in CompositorFramejbauman2015-11-201-0/+4
| | | | | | | | | | | | Then any occluded child surface with a copy request can be aggregated (and have its copy done) whenever its parent draws. BUG=529378 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1430363002 Cr-Commit-Position: refs/heads/master@{#360896}
* cc: Allow holding on to overlay resources for another extra frameccameron2015-11-205-6/+147
| | | | | | | | | | | | | | | | | | We don't get a clear picture of when CoreAnimation is done using resources, so, when we hand a resource to CoreAnimation as an overlay, hold on to that resource for an extra frame, to ensure that we don't access it while the system is still accessing it. Add a RendererSettings flag to control this. BUG=558701 TEST=Open 2 windows, 1 with poster circle and the other NTP, hover mouse around the NTP thumbnails CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1463653002 Cr-Commit-Position: refs/heads/master@{#360747}
* cc: Fix overlay damage tracking bugccameron2015-11-1912-140/+227
| | | | | | | | | | | | | | | | | | Track the region that is covered by overlays and ensure that that is included in the damage rect of future frames. This fixes bugs where something that was previously an overlay becomes a non-overlay due to reasons that didn't involve doing damage to the frame in that quad's region (e.g, creating a slightly overlapping overlay quad). Move the removal of overlays from the damage rect to being done in the OverlayProcessor instead of being done in each individual strategy. BUG=551861 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1452943002 Cr-Commit-Position: refs/heads/master@{#360513}
* cc: Replace Pass() with std::move() in some subdirs.danakj2015-11-1819-202/+200
| | | | | | | | | | | | | | | | | | | This hits the following: cc/layers/ cc/output/ cc/quads/ cc/resources/ cc/scheduler/ cc/surfaces/ cc/trees/ R=enne, vmpstr BUG=557422 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1455023002 Cr-Commit-Position: refs/heads/master@{#360405}
* cc: Remove ScopedPtrVector and cc::remove_if.vmpstr2015-11-1815-67/+68
| | | | | | | | | | | | This patch removes ScopedPtrVector and cc::remove_if. It depends on https://codereview.chromium.org/1441613002 for TakeBack. R=danakj CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1437413002 Cr-Commit-Position: refs/heads/master@{#360318}
* cc: Differentiate GMB resources by resource typeccameron2015-11-181-0/+1
| | | | | | | | | | | | | | | | | | | | | When creating these resources in ResourceProvider, it is necessary to somehow tag the ResourceProvider::Resource as being backed by a GpuMemoryBuffer for when it is allocated. Rather than add another bit of state to ResourceProvider::Resource, create a new ResourceProvider::ResourceType, RESOURCE_TYPE_GPU_MEMORY_BUFFER. This identifies a resource as being backed by a GpuMemoryBuffer instead of a regular OpenGL texture. Allow using RESOURCE_TYPE_GPU_MEMORY_BUFFER as the default resource type when forcing all compositor resources, and remove the use_gpu_memory_buffers_by_default_ variable. BUG=554234 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1442363002 Cr-Commit-Position: refs/heads/master@{#360304}
* cc: Clean up max frames/swaps pending usage.brianderson2015-11-181-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | All output surfaces used by the Renderer and UI should only need a max swaps pending of 1, especially considering Surfaces and CompositorTimingHistory don't support multiple queued frames. The output suface used by the cc::Display, however, may have more than 1 swap pending - especially on platforms like CrOS where the SwapAck is deferred until the buffer is actually displayed. This patch: 1) Changes the default max pending frames/swaps from 2 to 1. 2) Changes Blimp to have only 1 pending frame. 3) DCHECKS that all Renderers and UIs have a max swaps pending of 1. 4) Sets the default value in the constructor of OutpuSurface::Capabilities, rather than through an extra check for zero + init. BUG=525756 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1435133004 Cr-Commit-Position: refs/heads/master@{#360283}
* cc: Fork OverlayCandidate to CALayerOverlayccameron2015-11-1713-175/+497
| | | | | | | | | | | | | | | | | | | | | | | | | | Create a CALayerOverlay which encapsulates all of the state that we can use to represent a Overlay as a CALayer so far. Since this is much more than can be represented by hardware overlays, fork this from the overlay code. Add a method to the OverlayValidator to indicate if using CALayers is appropriate on a particular platform at a particular time. Add a ProcessForCALayers method to OverlayProcessor, which, if successful, replaces all quads with CALayers, and removes the overlay for the backbuffer. Of note is that many more DrawQuad features may be used by CALayers (e.g, 3D transforms, nontrivial clipping) in the future. Remove the AllOrNothing strategy, since this will be taking its place. BUG=533690 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1430813002 Cr-Commit-Position: refs/heads/master@{#360163}
* Revert "Revert of Converted simple Sync Point Signals to Sync token Signals.dyen2015-11-171-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #5 id:80001 of https://codereview.chromium.org/1448433002/ )" This reverts commit 6d9cfba1fba7479e4e1ad5c47e05f46661a051cf. Original issue's description: > Converted simple Sync Point Signals to Sync token Signals. > > This CL is part of the ongoing refactor of old sync points to the new > sync tokens. Only simple straight forward changes have been converted > here, there are other more complex ones still so the SignalSyncPoint() > function cannot be completely removed yet. > > BUG=514815 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/5f56df573df3e6c2bf6ced027be8c02884ca944f > Cr-Commit-Position: refs/heads/master@{#359925} R=piman@chromium.org BUG=514815 556855 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1453203002 Cr-Commit-Position: refs/heads/master@{#360139}
* Revert of Converted simple Sync Point Signals to Sync token Signals. ↵kochi2015-11-171-21/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #5 id:80001 of https://codereview.chromium.org/1448433002/ ) Reason for revert: Let me tentatively revert this CL. BUG=556855 Original issue's description: > Converted simple Sync Point Signals to Sync token Signals. > > This CL is part of the ongoing refactor of old sync points to the new > sync tokens. Only simple straight forward changes have been converted > here, there are other more complex ones still so the SignalSyncPoint() > function cannot be completely removed yet. > > BUG=514815 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/5f56df573df3e6c2bf6ced027be8c02884ca944f > Cr-Commit-Position: refs/heads/master@{#359925} TBR=piman@chromium.org,dcheng@chromium.org,dyen@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=514815 Review URL: https://codereview.chromium.org/1452043002 Cr-Commit-Position: refs/heads/master@{#359981}
* Converted simple Sync Point Signals to Sync token Signals.dyen2015-11-161-13/+21
| | | | | | | | | | | | | | This CL is part of the ongoing refactor of old sync points to the new sync tokens. Only simple straight forward changes have been converted here, there are other more complex ones still so the SignalSyncPoint() function cannot be completely removed yet. BUG=514815 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1448433002 Cr-Commit-Position: refs/heads/master@{#359925}
* cc: Remove ScopedPtrDeque.vmpstr2015-11-147-40/+42
| | | | | | | | | | | | | This patch removes ScopedPtrDeque and replaces it with a deque of scoped_ptrs. Note that this also adds a helper container_util file that contains TakeBack and TakeFront helpers. R=danakj CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1441613002 Cr-Commit-Position: refs/heads/master@{#359724}
* Avoid rendering using GL in case damage rect is composited by overlaykalyan.kondapally2015-11-122-0/+48
| | | | | | | | | | | | | | | We can avoid drawing using GL if the damage rect is entirely composited by using overlays. BUG=370522 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/7c024b25d977484b627b63bff9f85e5b5e382b9e Cr-Commit-Position: refs/heads/master@{#356844} Review URL: https://codereview.chromium.org/1413763013 Cr-Commit-Position: refs/heads/master@{#359332}
* Avoid Copying damage rect when using Overlayskalyan.kondapally2015-11-0613-68/+220
| | | | | | | | | | | | | | | | | | | | When using Overlays, the damage rect can be completely covered by the layer being composited by Overlay. We still copy damage rect on to the current surface(Primary frame buffer) in BufferQueue. This should be un-necessary. BUG=370522,548452 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/2904998edff0cfcaab43eeb3b1db013d6169bd17 Cr-Commit-Position: refs/heads/master@{#356352} Committed: https://crrev.com/5ee13b006abdf74d0f6b3fbdde2d936c00ad97e7 Cr-Commit-Position: refs/heads/master@{#356570} Review URL: https://codereview.chromium.org/1330563004 Cr-Commit-Position: refs/heads/master@{#358434}
* cc: Remove instances of RGBA where best_texture_format should be usedccameron2015-11-042-5/+6
| | | | | | | | | | | | | Mac with GMBs really cares about this distinction, because there is limited support for RGBA IOSurfaces, but wide support for BGRA IOSurfaces. BUG=533677 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1430053002 Cr-Commit-Position: refs/heads/master@{#357839}
* cc: Add flag to specify to ResourceProvider to always use GMBsccameron2015-11-032-1/+3
| | | | | | | | | | | | | Add a command line switch (similar to zero-copy) to specify that all resources allocated by the cc::ResourceProvider should use GMBs and have GLImages attached to them. BUG=533677 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1425533006 Cr-Commit-Position: refs/heads/master@{#357604}
* Modified old wait sync point functions to also accept new sync tokens.dyen2015-11-039-44/+57
| | | | | | | | | | | | | | | | | | In order to help with refactoring old sync points into new sync points, glWaitSyncPointCHROMIUM() has been changed to accept both the old and new sync points. This CL only refactors all the ways we pass around sync points so in theory shouldn't change any behavior. Once this lands we can then incrementally change the sync point insertions to the new sync points. R=piman@chromium.org BUG=514815 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1427543002 Cr-Commit-Position: refs/heads/master@{#357595}
* Revert of Avoid Copying damage rect when using Overlays (patchset #13 ↵ccameron2015-10-306-96/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:240001 of https://codereview.chromium.org/1330563004/ ) Reason for revert: This broke YouTube on Mac, in particular the sandwich overlay strategy. BUG=549350 Original issue's description: > Avoid Copying damage rect when using Overlays > > When using Overlays, the damage rect can be completely covered by > the layer being composited by Overlay. We still copy damage rect > on to the current surface(Primary frame buffer) in BufferQueue. This > should be un-necessary. > > BUG=370522,548452 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/2904998edff0cfcaab43eeb3b1db013d6169bd17 > Cr-Commit-Position: refs/heads/master@{#356352} > > Committed: https://crrev.com/5ee13b006abdf74d0f6b3fbdde2d936c00ad97e7 > Cr-Commit-Position: refs/heads/master@{#356570} TBR=alexst@chromium.org,achaulk@chromium.org,danakj@chromium.org,piman@chromium.org,kalyan.kondapally@intel.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=370522,548452 Review URL: https://codereview.chromium.org/1408953005 Cr-Commit-Position: refs/heads/master@{#357224}
* Revert of Avoid rendering using GL in case damage rect is composited by ↵ccameron2015-10-302-59/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | overlay (patchset #4 id:60001 of https://codereview.chromium.org/1413763013/ ) Reason for revert: This conflicts with reverting https://codereview.chromium.org/1330563004 Which broke YouTube on Mac BUG=549350 Original issue's description: > Avoid rendering using GL in case damage rect is composited by overlay > > We can avoid drawing using GL if the damage rect is entirely > composited by using overlays. > > BUG=370522 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/7c024b25d977484b627b63bff9f85e5b5e382b9e > Cr-Commit-Position: refs/heads/master@{#356844} TBR=piman@chromium.org,kalyan.kondapally@intel.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=370522 Review URL: https://codereview.chromium.org/1422423003 Cr-Commit-Position: refs/heads/master@{#357221}
* [tracing] Add names to memory-infra dumpers for debuggingprimiano2015-10-301-1/+1
| | | | | | | | | | | | | | | | | Follow-up CL to crrev.com/1425793002. Adds an extra |name| argument to the memory-infra RegisterDumpProvider methods. This allow to see the names of the dump providers in the trace and diagnose dump providers getting stuck or taking more time than usual. No further behavioral change is introduced by this CL. BUG=547764 TBR=xhwang@chromium.org,simonhatch@chromium.org,jochen@chromium.org,shess@chromium.org,piman@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1406213005 Cr-Commit-Position: refs/heads/master@{#357089}
* cc: Remove LayerTreeHostImpl::FrameData::render_passes_by_id.danakj2015-10-302-1/+1
| | | | | | | | | | | | RenderPasses are very rare. Hash map is way overkill. We already have a vector, just use that and delete the hash map. R=piman@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1413053004 Cr-Commit-Position: refs/heads/master@{#356998}
* Avoid rendering using GL in case damage rect is composited by overlaykalyan.kondapally2015-10-292-3/+59
| | | | | | | | | | | | We can avoid drawing using GL if the damage rect is entirely composited by using overlays. BUG=370522 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1413763013 Cr-Commit-Position: refs/heads/master@{#356844}
* Reland: Remove DCHECK_IMPLIES/CHECK_IMPLIES.vmpstr2015-10-282-3/+3
| | | | | | | | | | | This patch removes both DCHECK_IMPLIES and CHECK_IMPLIES macros. R=thakis, sky, jam CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1421483005 Cr-Commit-Position: refs/heads/master@{#356674}
* Remove deadcode in cc/pdr2015-10-281-6/+0
| | | | | | | | | | | | Was just driving around cc and noticed some rubbish on the ground. This patch picks it up and puts it in the bin. This should have no change in real behavior. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1421473007 Cr-Commit-Position: refs/heads/master@{#356666}
* Avoid Copying damage rect when using Overlayskalyan.kondapally2015-10-286-47/+96
| | | | | | | | | | | | | | | | | When using Overlays, the damage rect can be completely covered by the layer being composited by Overlay. We still copy damage rect on to the current surface(Primary frame buffer) in BufferQueue. This should be un-necessary. BUG=370522,548452 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/2904998edff0cfcaab43eeb3b1db013d6169bd17 Cr-Commit-Position: refs/heads/master@{#356352} Review URL: https://codereview.chromium.org/1330563004 Cr-Commit-Position: refs/heads/master@{#356570}
* Revert of Avoid Copying damage rect when using Overlays (patchset #12 ↵oshima2015-10-276-95/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:220001 of https://codereview.chromium.org/1330563004/ ) Reason for revert: The reason for revert: use-of-uninitiailzed value is reported on msan bot. Filed crbug.com/548452 [ RUN ] SandwichTest.MultiQuadOverlay ==7008==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x7f1d2774a400 in cc::OverlayProcessor::ProcessForOverlays(cc::ResourceProvider*, cc::ScopedPtrVector\u003Ccc::RenderPass>*, std::__1::vector\u003Ccc::OverlayCandidate, std::__1::allocator\u003Ccc::OverlayCandidate> >*, gfx::Rect*) cc/output/overlay_processor.cc:45:13 #1 0x7f1d259f6e5e in cc::(anonymous namespace)::SandwichTest_MultiQuadOverlay_Test::TestBody() cc/output/overlay_unittest.cc:617:3 #2 0x7f1d274a3922 in HandleExceptionsInMethodIfSupported\u003Ctesting::Test, void> testing/gtest/src/gtest.cc:2458:12 Original issue's description: > Avoid Copying damage rect when using Overlays > > When using Overlays, the damage rect can be completely covered by > the layer being composited by Overlay. We still copy damage rect > on to the current surface(Primary frame buffer) in BufferQueue. This > should be un-necessary. > > BUG=370522 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/2904998edff0cfcaab43eeb3b1db013d6169bd17 > Cr-Commit-Position: refs/heads/master@{#356352} TBR=alexst@chromium.org,achaulk@chromium.org,danakj@chromium.org,ccameron@chromium.org,piman@chromium.org,kalyan.kondapally@intel.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=370522 Review URL: https://codereview.chromium.org/1414923006 Cr-Commit-Position: refs/heads/master@{#356427}
* Avoid Copying damage rect when using Overlayskalyan.kondapally2015-10-276-47/+95
| | | | | | | | | | | | | | When using Overlays, the damage rect can be completely covered by the layer being composited by Overlay. We still copy damage rect on to the current surface(Primary frame buffer) in BufferQueue. This should be un-necessary. BUG=370522 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1330563004 Cr-Commit-Position: refs/heads/master@{#356352}
* Revert of Remove DCHECK_IMPLIES/CHECK_IMPLIES. (patchset #3 id:40001 of ↵jbudorick2015-10-272-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1421483005/ ) Reason for revert: breaks compilation on multiple builders, including but not limited to: http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac%20Builder%20%28dbg%29/builds/132580 http://build.chromium.org/p/chromium.linux/builders/Android%20Builder%20%28dbg%29/builds/91670 Original issue's description: > Remove DCHECK_IMPLIES/CHECK_IMPLIES. > > This patch removes both DCHECK_IMPLIES and CHECK_IMPLIES macros. > > R=thakis, sky, jam > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/cc8936ba36ee29b5859f65c936e16f87eeac82b4 > Cr-Commit-Position: refs/heads/master@{#356193} TBR=thakis@chromium.org,sky@chromium.org,jam@chromium.org,vmpstr@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1417903005 Cr-Commit-Position: refs/heads/master@{#356202}
* Remove DCHECK_IMPLIES/CHECK_IMPLIES.vmpstr2015-10-272-3/+3
| | | | | | | | | | | This patch removes both DCHECK_IMPLIES and CHECK_IMPLIES macros. R=thakis, sky, jam CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1421483005 Cr-Commit-Position: refs/heads/master@{#356193}
* android webview: allow cc to fail hardware drawboliu2015-10-231-2/+0
| | | | | | | | | | | | | | | | | | | | Replace draw_and_swap_full_viewport_every_frame output surface capability with resourceless_software_draw_, since forcing a draw is only needed for software draws now, which is decided at draw time. This also requires plumbing resourceless_software_draw_ bool through to scheduler to force draws, instead of using_synchronous_renderer_compositor setting. Note that resourceless_software_draw_ is no longer a static value. It can change frame by frame. BUG=419795 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1394263004 Cr-Commit-Position: refs/heads/master@{#355730}
* cc: Change the texture quad cache to fit nine quadsenne2015-10-221-1/+1
| | | | | | | | | | | | | Previously a nine patch layer would require two draw calls. Now it will fit in one. Tested by the TextureQuadBatching pixel test. R=weiliangc@chromium.org BUG=534819 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1413683004 Cr-Commit-Position: refs/heads/master@{#355665}