Language Selection

English French German Italian Portuguese Spanish

Mozilla: Rust, WebRender, AV1

Filed under
Moz/FF
  • Splash 2018 Mid-Week Report

    I really enjoyed this talk by Felienne Hermans entitled “Explicit Direct Instruction in Programming Education”. The basic gist of the talk was that, when we teach programming, we often phrase it in terms of “exploration” and “self-expression”, but that this winds up leaving a lot of folks in the cold and may be at least partly responsible for the lack of diversity in computer science today. She argued that this is like telling kids that they should just be able to play a guitar and create awesome songs without first practicing their chords1 – it kind of sets them up to fail.

    The thing that really got me excited about this was that it seemed very connected to mentoring and open source. If you watched the Rust Conf keynote this year, you’ll remember Aaron talking about “OSS by Serendipity” – this idea that we should just expect people to come and produce PRs. This is in contrast to the “OSS by Design” that we’ve been trying to practice and preach, where there are explicit in-roads for people to get involved in the project through mentoring, as well as explicit priorities and goals (created, of course, through open processes like the roadmap and so forth). It seems to me that the things like working groups, intro bugs, quest issues, etc, are all ways for people to “practice the basics” of a project before they dive into creating major new features.

  • WebRender newsletter #29

    To introduce this week’s newsletter I’ll write about culling. Culling refers to discarding invisible content and is performed at several stages of the rendering pipeline. During frame building on the CPU we go through all primitives and discard the ones that are off-screen by computing simple rectangle intersections. As a result we avoid transferring a lot of data to the GPU and we can skip processing them as well.

    Unfortunately this isn’t enough. Web page are typically built upon layers and layers of elements stacked on top of one another. The traditional way to render web pages is to draw each element in back-to-front order, which means that for a given pixel on the screen we may have rendered many primitives. This is frustrating because there are a lot of opaque primitives that completely cover the work we did on that pixel for element beneath it, so there is a lot of shading work and memory bandwidth that goes to waste, and memory bandwidth is a very common bottleneck, even on high end hardware.

    Drawing on the same pixels multiple times is called overdraw, and overdraw is not our friend, so a lot effort goes into reducing it.
    In its early days, to mitigate overdraw WebRender divided the screen in tiles and all primitives were assigned to the tiles they covered (primitives that overlap several tiles would be split into a primitive for each tile), and when an opaque primitive covered an entire tile we could simply discard everything that was below it. This tiling approach was good at reducing overdraw with large occluders and also made the batching blended primitives easier (I’ll talk about batching in another episode). It worked quite well for axis-aligned rectangles which is the vast majority of what web pages are made of, but it was hard to split transformed primitives.

  • Into the Depths: The Technical Details Behind AV1

    Since AOMedia officially cemented the AV1 v1.0.0 specification earlier this year, we’ve seen increasing interest from the broadcasting industry. Starting with the NAB Show (National Association of Broadcasters) in Las Vegas earlier this year, and gaining momentum through IBC (International Broadcasting Convention) in Amsterdam, and more recently the NAB East Show in New York, AV1 keeps picking up steam. Each of these industry events attract over 100,000 media professionals. Mozilla attended these shows to demonstrate AV1 playback in Firefox, and showed that AV1 is well on its way to being broadly adopted in web browsers.

More in Tux Machines

Today in Techrights

today's leftovers

  • Compact Bay Trail SBC has option for third GbE port
    Axiomtek’s “CAPA84E” is a 3.5-inch Bay Trail SBC with an optional third GbE port, dual M.2 slots, plus VGA, DisplayPort, USB 3.0, SATA, and -20 to 70°C support. Axiomtek’s motto may well be: “If first you succeed, iterate until you don’t.” The king of the spinoffs has released yet another iteration of one of the first Intel Bay Trail SBCs, the CAPA841, which in 2015 was followed by the slightly scaled down CAPA840. The new CAPA84R similarly supports Bay Trail and conforms to the 3.5-inch form factor, but with a different mix of features.
  • Letting people work where they want shows how much you value them
    Open organizations are inclusive. They aren't inclusive solely because it's the right way to be but because it produces better outcomes. Inclusivitiy enables a more diverse set of viewpoints.
  • Cities agree on minimal interoperability mechanisms

    Over a hundred European cities have agreed on ‘Minimal Interoperability Mechanisms’ defining the communication between software programmes and building blocks to allow co-creation and sharing of services. The MIMs, advocated by the Open & Agile Smart Cities (OASC) initiative, are “simple steps towards using new technology”, OACS chairman Martin Brynskov said on Thursday.

  • Containers On The Edge
    There are two major families for the choice of operating system and ecosystem: RTOS-based and Linux-based families. Smaller, cost-constrained devices tend to benefit from the simplicity of RTOS-based, while more full-featured and complex devices benefit from the richness of Linux (see The Shift to Linux Operating Systems for IoT for more background on the reasons for these approaches in IoT). Linux has been used in embedded devices for almost as long as it has existed (see here for an excellent timeline of early embedded Linux usage by Chris Simmons). The focus here is on Linux based products, as they have the needed functions such as access controls and memory segregation that allows for upgrading portions in a controlled fashion.
  • YouTuber Fits A Fully Functional Computer Into A Mouse
    While the YouTuber’s original plan was to squeeze a Raspberry Pi inside of a regular computer mouse but was unable to do so due to size constraints. Hence, he 3D printed a computer mouse to fit the components of the computer inside the mouse. Dubbed as “The Computer Mouse”, the device consists of a Raspberry Pi Zero W computer, a 1.5-inch color OLED LCD display with a resolution of 128 x 128 pixels, a 3D-printed mouse, a rechargeable 500 mAh battery, and a tiny Bluetooth retractable keyboard for text inputs and more complicated commands. It also has a power button at the edge to start the tiny computer. Further, it runs GNU/Linux-based operating systems such as Raspbian.
  • Microsoft Wallet for Windows Phone to be retired in February
    Support is set to end for all Windows 10 Mobile devices by the end of this year, and Microsoft is already beginning to retire apps in anticipation. In an update to the , Microsoft has noted that the app will be "officially retired" on February 28, 2019. Microsoft Wallet is the official tap-to-pay method for Windows Phones, similar to Apple Pay and Google Pay on iPhones and Android devices. The app also allows users to load up their loyalty and membership cards, allowing them all to be stored in one place.
  • mintCast 300.5 interview 5 Joe Ressington

Phoronix Test Suite Improvements

  • Making It Even Easier To Gauge Your System's Performance
    For those trying to understand their system's performance on a macro level will enjoy a new feature being introduced with Phoronix Test Suite 8.6-Spydeberg for seeing how your CPU/system/GPU/storage/network performance compares at scale to the massive data sets amassed by OpenBenchmarking.org and the Phoronix Test Suite over the past decade.
  • Phoronix Test Suite 8.6 Milestone 2 Released For Open-Source Benchmarking
    Two weeks since the initial Phoronix Test Suite 8.6 development release, the second milestone release is now available for your open-source, cross-platform benchmarking evaluation.

GNOME and KDE: GTK, KEXI, KookBook and Krita

  • Theme changes, revisited
    We’ve made a 3.24.4 release, to fix up a few oversights in 3.24.3. This release does not include the new theme yet, we will push that to the next release. We’ve also made another NewAdwaita tarball, which includes refinements based on some of the suggestions we received since last week.
  • KEXI 3.2 Beta
    Yesterday KEXI 3.2 Beta shipped, effect of improvements from entire 2018. Full info in the wiki. That's best KEXI to date! Pun intended because among other things one is especially worth mentioning, entirely new and final date/time grammar for user's SQL.
  • KookBook 0.2.1 – now actually kind of useful
    There was a snag in the KookBook 0.2.0 release, and 0.2.1 is available.
  • Krita Interview with Edgar Tadeo
    Comparing to Photoshop, I think Krita can make good digital painting that looks like it was made with a real brush. However,  PS is not a paint program, Krita’s advantage is its brushes.