aboutsummaryrefslogtreecommitdiffstats
path: root/components/gfx/paint_thread.rs
Commit message (Collapse)AuthorAgeFilesLines
* Remove old rendering backend.Glenn Watson2016-10-181-779/+0
| | | | | | | | | | | | | | This removes paint threads, rust-layers dependency, and changes optional webrender types to be required. The use_webrender option has been removed, however I've left the "-w" command line option in place so that wpt runner can continue to pass that. Once it's removed from there we can also remove the -w option. Once this stage is complete, it should be fine to change the display list building code to generate webrender display lists directly and avoid the conversion step.
* Integrate stacking contexts into the display listMartin Robinson2016-10-131-49/+29
| | | | | | | | | | | | | | Integrate stacking contexts into the display list by adding two new entry types, PushStackingContext and PopStackingContext. This allows us to eliminate the ugly offsets map that DisplayList used to contain and seems to speed up display list construction. With this approach we are able to also completely prune pseudo-stacking contexts from the final display list and remove their (minimal) overhead from display list traversal Traversing the display list is also a bit simpler now. Additionally, this will allow easier editing of the DisplayList to properly support scrolling roots. The push/pop entries can be duplicated to clone complex StackingContext trees between layers.
* Move thread_state to style.Ms2ger2016-08-221-1/+1
|
* Update euclid to 0.10.1Anthony Ramine2016-08-211-8/+8
|
* layout: Make the stacking context take into account the children transform ↵Emilio Cobos Álvarez2016-08-161-1/+1
| | | | | | | when calculating overflow areas. This only works for simple translations and similar, but I want Patrick to validate my approach.
* Update to euclid 0.8Martin Robinson2016-08-121-3/+3
|
* Auto merge of #11850 - splav:box-shadow#11662, r=glennwbors-servo2016-07-271-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix PaintContext page_rect due to display list origin Fix PaintContext page_rect due to non zero display list origin. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #11662 (github issue number if applicable). <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11850) <!-- Reviewable:end -->
| * Fix PaintContext page_rect due to display list originAlexandrov Sergey2016-07-131-1/+1
| |
* | Auto merge of #12563 - emilio:stylo, r=bholley,jdm,pcwaltonbors-servo2016-07-271-4/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | stylo: Improve restyling performance This commit adds hooks to the Servo style traversal to avoid traversing all the DOM for every restyle. Additionally it changes the behavior of the dirty flag to be propagated top down, to prevent extra overhead when an element is dirtied. This commit doesn't aim to change the behavior on Servo just yet, since Servo does extra job when dirtying the node related with DOM revision counters that might be necessary. CC @asajeffrey for the DOM revision counters stuff. When a node is dirty, do all its descendants really need to increment the revision counter, or is this an unintended effect? My intuition is that this is hurting performance quite a lot for servo. r? @bholley <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors <!-- Either: --> - [x] These changes do not require tests because no geckolib tests yet. <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12563) <!-- Reviewable:end -->
| * | Some debugging improvements and code style nits across gfx and constellation.Emilio Cobos Álvarez2016-07-271-4/+3
| | | | | | | | | | | | | | | * Propagate the RUST_LOG env var to the child process * Add debug information when a recv() fails in paint thread's select!.
* | | Accumulate subpixels through stacking contextsMartin Robinson2016-07-271-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | Instead of simply rounding layer origins and discarding subpixel offsets, accumulate them by transforming them into the space of the next child stacking context. This is an attempt to eliminate subpixel differences that are caused by different stacking context boundaries in reference tests. Currently these accumulated subpixels are only used for text positioning, but the plan is that they can be used for all drawing in the future.
* / Removed panic channel, replaced by integrated logging and issue reporting.Alan Jeffrey2016-07-201-7/+7
|/
* gfx: Don't create paint threads when WebRender is in use.Patrick Walton2016-06-281-0/+6
| | | | They're unused and just waste memory and process table entries.
* Move ChromeToPaintMsg to gfx_traits.Ms2ger2016-06-241-19/+3
| | | | This allows compositing not to depend on gfx.
* Remove the paint shutdown channel.Ms2ger2016-06-041-36/+28
| | | | Nobody is listening.
* Auto merge of #11585 - ↵bors-servo2016-06-031-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | asajeffrey:constellation-avoid-deadlock-during-pipeline-closure, r=larsbergstrom Avoid deadlock when closing a pipeline. <!-- Please describe your changes on the following line: --> At the moment, the constellation blocks on a pipeline during closure. This PR makes pipeline closure asynchronous. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #11546. - [X] These changes do not require tests because testing for absence of deadlock is difficult. <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11585) <!-- Reviewable:end -->
| * Avoid deadlock when shutting down.Alan Jeffrey2016-06-031-1/+1
| |
* | Remove support for gpu painting.Ms2ger2016-06-031-58/+10
|/ | | | | | Fixes #3614. Fixes #4683. Fixes #7366.
* script: Keep the DOM-side viewport up to date when scrolling happens inPatrick Walton2016-05-311-1/+2
| | | | | | | | | | | | | | | WebRender. This happens asynchronously, just as it does in non-WebRender mode. This functionality is a prerequisite for doing proper display-list-based hit testing in WebRender, since it moves the scroll offsets into Servo (and, specifically, into the script thread, enabling iframe event forwarding) instead of keeping them private to WebRender. Requires servo/webrender_traits#55 and servo/webrender#277. Partially addresses #11108.
* Report use statements that use {} with only one entryCullen Rhodes2016-05-271-1/+1
|
* Simplify PaintThread::create().Ms2ger2016-05-201-5/+3
|
* Remove ConstellationChan.Ms2ger2016-05-191-4/+3
| | | | | | It's a pointless abstraction that propagates the obsolete chan terminology, swaps the order in which the sender and receiver are returned, and hides a source of panics.
* Auto merge of #10810 - mrobinson:displayitem, r=pcwaltonbors-servo2016-04-261-10/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Merge DisplayListEntry into DisplayItem We don't really need two levels of abstraction for every element in the DisplayList. This simplifies the complexity of the data structure in preparation for providing documentation and properly handling scrolling roots. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10810) <!-- Reviewable:end -->
| * Merge DisplayListEntry into DisplayItemMartin Robinson2016-04-221-10/+10
| | | | | | | | | | | | | | We don't really need two levels of abstraction for every element in the DisplayList. This simplifies the complexity of the data structure in preparation for providing documentation and properly handling scrolling roots.
* | Added a dedicated panic channel.Alan Jeffrey2016-04-191-7/+5
|/
* Updated euclid to version 0.6.5Peter2016-04-171-16/+16
| | | | And updated existing usages of Matrix4 to use Matrix4D<T>
* Added panic message to failures.Alan Jeffrey2016-04-131-1/+1
|
* No more headless compositor. Just the normal one.Michael Howell2016-03-241-5/+4
| | | | | | | | | This changes headless operation to strictly be a runtime option, rather than a compile-time one. Note that the old headless version still relied on a display server to support WebGL, while it now requires one all the time. Fixes #8573
* canvas: Remove all the canvas layerization infrastructureEmilio Cobos Álvarez2016-03-231-11/+0
| | | | | | | It was never complete, and with webrender as a backend the way we render WebGL contexts has changed a bit. This should remove quite a bit of overhead.
* Deny unsafe code in more crates.Ms2ger2016-03-181-0/+1
|
* Flatten display list structureMartin Robinson2016-03-011-249/+319
| | | | | | | | | | | | | | | | | | | | | | | Instead of producing a tree of stacking contexts, display list generation now produces a flat list of display items and a tree of stacking contexts. This will eventually allow display list construction to produce and modify WebRender vertex buffers directly, removing the overhead of display list conversion. This change also moves layerization of the display list to the paint thread, since it isn't currently useful for WebRender. To accomplish this, display list generation now takes three passes of the flow tree: 1. Calculation of absolute positions. 2. Collection of a tree of stacking contexts. 3. Creation of a list of display items. After collection of display items, they are sorted based upon the index of their parent stacking contexts and their position in CSS 2.1 Appendeix E stacking order. This is a big change, but it actually simplifies display list generation.
* Use the select macro on the paint thread.Ms2ger2016-02-011-15/+8
|
* Remove multiple unused imports in gfxBrandon Fairchild2016-01-161-1/+1
| | | | Fixes #9342.
* Move FrameTreeId type to gfx_traits #9221Maciej Skrzypkowski2016-01-131-3/+2
|
* Move Epoch to gfx_traitsJohn DeSilva2016-01-101-2/+3
| | | | | Resolves #9222. Moved Epoch from components/msg/compositor_msg to components/gfx_traits/lib. Updated use statements to reflect the move.
* task -> threadrohan.prinja2016-01-101-0/+817