mirror of
https://github.com/servo/servo
synced 2026-04-25 17:15:48 +02:00
Page:
Meeting 2013 09 30
Pages
Adding a new WebIDL binding
Alternative Logo Proposals and Related Swag
Asynchronous WebAssembly compilation project
Austin Oxidation
Autogeneration of style structs
Basic SVG support project
Beginner's guide to rebasing and squashing
Benchmarking
Benchmarks
Bots
Browser Engine Research
Build Errors FAQ
Buildbot administration
Building for Android
Building for Magic Leap
Building for UWP
Building on ARM desktop Linux
Building
CI Services we use
CSS parse error reporting
CSSOM student project
Canvas rendering project
Cargo upgrade service project
Code rust concurrency
Code Review
Code of Conduct
Coding standards
Compiler upgrade recipes
Compositor Layer Design
Contributing
Control Servo using WebDriver
Creating and viewing WARC web archives in Servo
Creating new OpenSSL Windows binary distributions
Cross compiling from linux to mac
Crowbot
Css selector matching meeting 2013 07 19
DOM Design
DOM documentation
DOM missing pieces
Debugging JS web compat issues
Debugging and editing tools
Debugging
Design
Developer tools student project
Devtools CSS errors
Devtools plans
Devtools
Diagnosing SpiderMonkey JIT issues
Eric Atkinson visit 2013 09 10
Events and sundry
Expand HTTP request response monitoring
Fetch improvement project
Firefox Reality release notes
FirefoxReality build
Firewall setup for servo master1
Focus student project
Form validation student project
GSoC project brainstorming
Garbage collected DOM
Getting started with layout
GitHub Labels
Github & Critic PR handling 101
Github workflow
Glossary
Governance
Graphics toolkit integration
HTML parser improvement project
HTMLElement binding conversion
HTTP archive support project
HTTP library requirements
Hawaii Rooting
High priority content for layout
Highfive
HoloLens 2 test plan
Home
How to generate GStreamer binaries for CI
Image load conformance student project
Image maps project
Implement HTML charset parsing project
Implement ImageBitmap project
Implement missing WebAudio automation student project
Implement support for missing XMLHttpRequest APIs
Implement worker modules
Implementing a web standard (RGSoC)
Improve specification conformance of unicode bidi library
Incremental flow tree construction
Infrastructure
Integrate xml5ever
Intern project brainstorming
Intern projects
JS objects, wrappers, and cross origin concerns 2013 08 07
Layout 2020
Layout Overview
Layout resources
Layout revamp ideas
Leo meyerovich visit 2013 07 22
Linux sandboxing
London Oxidation
London Security
Meeting 2014 10 27
Meeting 2014 12 08
Meeting 2012 02 08
Meeting 2012 02 16
Meeting 2012 07 20
Meeting 2013 04 01
Meeting 2013 04 15
Meeting 2013 04 22
Meeting 2013 04 29
Meeting 2013 05 06
Meeting 2013 05 13
Meeting 2013 05 20
Meeting 2013 06 03
Meeting 2013 06 10
Meeting 2013 06 14
Meeting 2013 06 17
Meeting 2013 06 24
Meeting 2013 07 01
Meeting 2013 07 15
Meeting 2013 07 22
Meeting 2013 07 29
Meeting 2013 08 05
Meeting 2013 08 12
Meeting 2013 08 19
Meeting 2013 09 09
Meeting 2013 09 16
Meeting 2013 09 23
Meeting 2013 09 30
Meeting 2013 10 14
Meeting 2013 10 21
Meeting 2013 10 28
Meeting 2013 11 04
Meeting 2013 11 18
Meeting 2013 11 25
Meeting 2013 12 02
Meeting 2013 12 09
Meeting 2013 12 16
Meeting 2014 01 06
Meeting 2014 01 13
Meeting 2014 01 21
Meeting 2014 01 27
Meeting 2014 02 03
Meeting 2014 02 10
Meeting 2014 02 24
Meeting 2014 03 10
Meeting 2014 03 17
Meeting 2014 03 24
Meeting 2014 03 31
Meeting 2014 04 07
Meeting 2014 04 14
Meeting 2014 04 21
Meeting 2014 04 28
Meeting 2014 05 05
Meeting 2014 05 13
Meeting 2014 05 19
Meeting 2014 06 09
Meeting 2014 06 17
Meeting 2014 06 23
Meeting 2014 06 30
Meeting 2014 07 07
Meeting 2014 07 14
Meeting 2014 07 21
Meeting 2014 07 29
Meeting 2014 08 04
Meeting 2014 08 11
Meeting 2014 08 12
Meeting 2014 08 18
Meeting 2014 08 25
Meeting 2014 09 08
Meeting 2014 09 15
Meeting 2014 09 22
Meeting 2014 09 29
Meeting 2014 10 06
Meeting 2014 10 13
Meeting 2014 10 20
Meeting 2014 11 10
Meeting 2014 11 17
Meeting 2014 11 24
Meeting 2014 12 15
Meeting 2015 01 05
Meeting 2015 01 12
Meeting 2015 01 26
Meeting 2015 02 09
Meeting 2015 02 23
Meeting 2015 03 02
Meeting 2015 03 16
Meeting 2015 03 30
Meeting 2015 04 06
Meeting 2015 04 13
Meeting 2015 04 27
Meeting 2015 05 04
Meeting 2015 05 11
Meeting 2015 05 18
Meeting 2015 06 01
Meeting 2015 06 08
Meeting 2015 06 15
Meeting 2015 07 06
Meeting 2015 07 13
Meeting 2015 07 27
Meeting 2015 08 10
Meeting 2015 08 17
Meeting 2015 08 24
Meeting 2015 08 31
Meeting 2015 09 14
Meeting 2015 09 21
Meeting 2015 09 28
Meeting 2015 10 05
Meeting 2015 10 12
Meeting 2015 10 19
Meeting 2015 10 26
Meeting 2015 11 02
Meeting 2015 11 09
Meeting 2015 11 16
Meeting 2015 11 30
Meeting 2016 01 04
Meeting 2016 01 11
Meeting 2016 01 25
Meeting 2016 02 01
Meeting 2016 02 08
Meeting 2016 02 22
Meeting 2016 03 07
Meeting 2016 03 21
Meeting Devtools Servo 2
Meetings
Microdata project
Minutes Hackathon 2012 03 27
Missing DOM features project
More ServiceWorker support project
More developer tools student project
Mozlandia Automation
Mozlandia B2S
Mozlandia JS
Mozlandia Rust In Gecko
Mozlandia WPT
Mozlandia gfx
Mozlando Devtools Servo
Mozlando Oxidation
Mozlando SM Servo
Mozlando Servo Bluetooth
Mozlando Servo MagicDOM
Mozlando Servo SMStrings
Mutation observer project
Mutation testing project
NCSU student projects
Network security project
Off main thread HTML parsing project
Offscreen canvas improvements project
Offscreen canvas project
Orlando Oxidation 2018
Oxidation 2015 11 05
Persistent sessions student project
Preparing ARM libraries for CI
Priority of CSS properties
Priority of DOM implementation
Priority of dom bindings
Private browsing student project
Profiling
Project proposal deadlines
Prototype JS form controls student project
Prototype ways of splitting the script crate
Publishing a new ANGLE NuGet version
Publishing a new app store release
Push vs Pull for caching
Random web content project
Refactor GLES2 student project
Refactor bluetooth support student project
Remaining work
Removing push notifications from IRC hooks
Replace C libraries student project
Report new contributors project
Representation of computed style
Research
Reviewer
Roadmap
Running Web Platform Tests on Servo
Rust HTML parser
Rust SpiderMonkey debugger API
Rust cssparser code walk 2013 08 02
SaltStack Administration
San Francisco Oxidation
Servo Benchmarking Report (December 2024)
Servo Benchmarking Report (November 2024)
Servo Benchmarking Report (October 2024)
Servo Layout Engines Report
Servo and SpiderMonkey Report
Servo for Gecko Developers
Specification Links
SpiderMonkey related tasks
SpiderMonkey infodump
SpiderMonkey upgrade details
Storage student project
Streaming webassembly student project
Strings
Student project brainstorm
Student projects
Styling overview
Stylo hacking guide
Summer of Code 2014: Implement XMLHttpRequest
Summer of Code 2016: Fetch API
Summer of Code 2016: File support
Summer of Code 2016: ServiceWorker infrastructure
Summer of Code projects
Summit meeting 2013 09 09
Support WebDriver based tests project
Syncing web platform tests (WPT)
TaskCluster
Testing
Tools
Tracking intermittent failures over time project
Transcription Notes from Servo Architecture talk in Suwon
Transcription notes from rust patterns talk in suwon
Transcription parallelism
Transcription rust concurrency
Transcription rust runtime
Transription layout and acid2
Trinity College Dublin student projects
UPenn student projects
Updating the Rust compiler used by Servo
Upgrading non taskcluster linux CI machines
Upgrading the UWP gstreamer binaries
Upgrading the windows LLVM binaries
Upgrading wptrunner
Using DOM types
Using Rust Spidermonkey Prototype
Using WebWorker Prototype
Version 0.1
Videos and presentations
WebAudio JS interfaces student project
WebAudio nodes student project
WebCompatBug
WebSocket student project
Webdriver student project
Webdriver tests student project
Webrender Overview
Whistler 2019 notes
Whistler Bugzilla
Whistler FFOS
Whistler GFX
Whistler Houdini1
Whistler Houdini2
Whistler Necko
Whistler Oxidation 2019
Work items for new contributors
Workweek COW DOM
Workweek alt js
Workweek android arm
Workweek boot 2 servo
Workweek compiler lints
Workweek displaylist
Workweek dogfooding
Workweek encoding
Workweek generated content
Workweek governance
Workweek graphics stack
Workweek graphics toolkit
Workweek incremental layout
Workweek js bindings status
Workweek layers
Workweek layers2
Workweek pixels
Workweek rasterization
Workweek reftests
Workweek roadmap
Workweek script crate
Workweek security
Workweek string interning
Workweek tables
Workweek writing modes
XML parser student project
infra triage notes
jQuery status
webxr.today support
Clone
This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Servo Meeting 2013-09-30
Agenda
- patrick's layout work
- JS memory management issues
- summit demo related crashes
- cpu rendering and layout speedup patch landing (pcwalton)
- gpu memory usage
- text shaping optimizations
- iframe problems
- servo android shell
Attending
- jdm, kmc, lbergstrom, brson, azita, metajack
Patrick's layout work
- jack: probably merge the speedups next week
- kmc: layout, rust upgrade, and cpu rendering all in the same branch. Might want to get cpu rendering for summit
- jack: 30% faster than gecko. We micro-optimized them and made Rust changes for code generation, which made serial layout faster than gecko for one specific benchmark. was that one of the things on your (Samsung) list of priorities for the next year?
- jack: hopefully we will land that before we come to Korea
JS memory management issues
- jack: Josh found out that we don't trace through proxies. The JS team thought it was a bad idea in general. The short-term fix is to patch SpiderMonkey to do so (they removed it). It will be upstreamed to them once they have their smart pointers stable. Long-term, we need a better plan because we are duplicating all of the code from SpiderMonkey that wraps these data structures. 1) could generate the SpiderMonkey code 2) could add support to Rust to inline C++ code in Rust. SpiderMonkey likes the second one first because anything else we do makes them more complicated.
- jdm: the JS classes are C++ classes that are designed to be inlined. If we write Rust wrappers that call them, we have performance penalties and we duplicate lots of stuff.
- jack: they have the usual operator overloading magic.
- brson: embed a C++ compiler in Rust! Yay!
- kmc: in order to use the current SpiderMonkey we need this support, right?
- jack: no, we can wrap it and export C stubs
- kmc: the C++ work potentially solves the other problem (proxies) as well
- jack: we consider the API bindings to include the... same situation we ran into while optimizing layout because the property accessors are FFI calls, which is too expensive relative to just grabbing pointers
- kmc: link-time optimization? Could we build the C++ code with clang?
- brson: I don't know to what extent that would be useful. We'd have to run tests.
- jack: I will follow up with SpiderMonkey. Maybe other ideas will come out.
- azita: need a short-term fix?
- jack: we can do one ourselves. The SpiderMonkey team (Bill) will accept our short-term fix into their codebase once they have some other stuff on their side stable. Our problem is that they are churning quickly, and we keep having to write code to try to keep up with them.
- azita: performance penalties?
- jack: not too concerned about SpiderMonkey performance penalties. We avoid it right now by duplicating the code in Rust. The code we're duplicating right now is not very good for this. bz said that nobody should be touching that code.
- azita: ....support....
- jack: so far, no problems working with them.
summit demo crashes
- jack: how are we looking?
- jdm: probably demo on OSX. lots of mesa problems.
- kmc: linux isn't bad with CPU rendering. but osx is probably the safer bet
- jack: is this new?
- lbergstrom: the summit demos have a lot more stuff going on
- kmc: longcat quickly becomes scattercat on linux. I'm not looking to fix that right now with the potential CPU fix
- jack: lars, have you found out anything about the pauses?
- lbergstrom: not convinced we're leaking, we just seem to be flooding the card. opengl profiler shows 500 copies of longcat bottom, if you shrink window it all seems to return to normal
- jack: that sounds like a bug
- kmc: DrawTargets and Textures stored in managed boxes e.g. in LayerBuffer and Quadtree, if we're relying on calling glDeleteTextures() etc. in destructor, maybe there's a cycle that's causing them to stick around. switching to owned pointers everyone agrees is what we want, but more work than can handle before friday
- lars: still see some crashes on osx on shutdown after lots of resizing
Memory leaks
- jack: kmc's patches for memory leaks landed today. We no longer triple-ref-count the drawtargets, so memory was never being released. if samsung wants to check again on android, might help with leak problems noticed before.
Work week
- azita: the work week was approved today. Ashley will book the hotel for us. Thanks for the list of hotels! Everyone should book their own flights for the week. She will put the hotel info in the wiki page. Book in the next couple of weeks (after summit would be good).
- kmc: can we get the address of the samsung office? I'd like to plan.
- azita: will put it on the wiki page.
- jack: I will create an etherpad for the logistics.
- azita: put it on the wiki to coordinate with Ashley
- azita: Andreas will be there for the beginning of the week. Can we set up the agenda for the week? The first day or two would be good for meetings beside technical discussions.
- azita: last time over e-mail you said that you need to check with executives.
- samsung: still checking with executives and overseas lab (?). Still scheduling our internal plans, so no agenda quite yet.
- azita: just want to make sure we don't miss the window. Andreas will only be in Monday and Tuesday for meetings with executives.
- samsung: will try to organize executive meetings for Monday or Tuesday.
- azita: we can continue the detailed agenda discussion over e-mail
Text shaping optimizations
- samsung: brief results. We were talking about text shaping. We looked at webkit and for simple text they use fast path character-by-character. We discussed last time and wanted to not bother doing the fast path, so we experimented with it. 50% performance increase using character-by-character processing.
- jack: Gecko does not do the optimization to get nicer looking text. Gecko does not parallelize it (as we could) but they do use a word cache for harfbuzz to keep the performance good. Any font that has space instead of ligatures never hits the cache, so there is a slow path there. We would like to have the nicer text rendering with parallelism and caching. These experiments will help us understand what the fastest we can do is.
- samsung: in WebKit they also only do shaping for words that are in the viewport. We do not do that - should we try that? If nobody is working on it, can we look at it?
- jack: nobody here is working on text shaping. Seth was working on it a while back, but I think that is done.
- samsung: Other microoptimizations, too, and will have results to share at the next meeting.
- samsung: Can dherman give a seminar when he visits? A technical talk to this group or to other employees.
- azita: yes. Once we have the agenda planned, we can arrange that.
Iframe problems
- samsung: iframe demos at the beginning of october?
- jack: yes, src/test/html/summit.html
- samsung: we tested performance increases for iframe. We found a bug when we launch the iframe.html testcase, it shows a broken screen or just text that says, "this browser does not support iframe." Do you have plans to fix it?
- jack: we were unaware of it. We support local, remote, and sandboxes iframes
- brson: this is on a webpage in the wild? Which page is it?
- jack: I thought it was the one in our tree.
- jdm: we have no testcases in our tree that tell us we don't support iframes, so probably a live site
- jack: what specific test case did you use?
- samsung: we will send it
- jack: create an issue and we will look at it
- lbergstrom: my changes for inline iframes and inline flows in blocks hasn't landed yet. there are still fixes to be done there.
- samsung: we will share the test case with you soon
Android
- jack: how is the android shell coming? We want to know because the release engineering team needs it so that we can test the android version on checkins.
- aydinkim: we have a shared library for it. Fabrice asked how he can compile on android and how to make the android APK. I answered that a few days ago. But android's packaging is not stable yet. We are scheduled to fix it and will let you know about this issue.
- samsung: the packaging works fine. We are trying to stabilize it a little more and then will push it to the main branch.
- aydinkim: one more issue for window. Servo uses glfw, but there is no Android point. Temporarily we are using the glut on Android, but we would like to discuss how to connect the window system to glfw.
- jack: It would be nice if we could just use egl directly. I know glfw has support for that, but we need to test what the alternative backends look like on android to see if we can settle on a single windowing system. So we need to experiment with that. Do you want to look into this? It's not the highest priority item right now because supporting glut and glfw is not too expensive right now.
- jack: did your removing yield work land? does glut cause any problems for that?
- lars: no, architecturally very similar. they all just block in teh msging loop.