Sign in with Twitter


Patrick Walton @pcwalton San Francisco, CA

Research engineer at Mozilla

511 Following   10,599 Followers   9,930 Tweets

Joined Twitter 11/9/09

@jfbastien I would think that p would have to be null, but the uintptr casts make me unsure
@steveklabnik Pathfinder is like this, but I don’t build at the top level and instead build individual packagesHow I’m building float layout in Servo layout 2020: Going down the list of rules in, conver…
Microsoft Research just released Project Freta, a free service for detecting evidence of OS and sensor sabotage, la…
Retweeted by Patrick Walton
The fact that PF remains competitive with native CPU rasterizers even with a 6.8x penalty is definitely nice to see though :) @crzwdjk Here on native it’s 68ms CPU, 111ms GPU, CPU pipelined with GPU to hide latency. This is perfectly fine, b… @crzwdjk Compute shader, mostly. Note that on this MacBook Pro on Intel GPU not having compute shader isn’t that b…’s D3D9-level backend renders the paris-30k test case in wasm with 6.8x slower CPU time than in native. S…
@antumbral @slightlylate Objective-C is a mess, but it’s hard to argue that it hasn’t been wildly successful. (Inc… @GrantHusbands Canvas. @amccreight Amazing @pcwalton Around 20 years ago, I was modifying a Java solar system demo. Some bug I introduced caused some accumula…
Retweeted by Patrick WaltonBy the way, the WebGL app in question is pdf.js with a Pathfinder renderer. It's looking promising so far :)Debugging my untrusted WebGL app which reliably segfaults the Apple GPU kernel driver, panicking the kernel. Think I’m done for the day. @gsnedders I’d also put blame on Qualcomm for not making ARM CPUs that people want to actually buy… @Knarf93 Nothing works ever
@jckarter @glaebhoerl @ManishEarth @maybechalmers Destructors also mean that things that look like tail calls often… wish the wasm-bindgen workflow had better support for Parcel, because Webpack is such a pain.I expect WebGPU will help the Pathfinder browser use case a lot, because (1) wasm isn't quite as fast as native cod… an example of how to use Pathfinder in browser-based Rust apps via WebGL and wasm: @cedumelo Not layout, no, though the Servo style system has been in Firefox for years now.The revamped Servo layout 2020 is some of the most pedantically type-safe Rust code I’ve ever worked with, and doin… a reminder of how prescient @BRIAN_____ continues to be with PKI issues: If you're s…
Retweeted by Patrick WaltonTIL: Some Go folks are using a WebGLified Pathfinder to do vector UI rendering. Cool to see Rust/Go/JS interop!
@crzwdjk I haven’t tested, but for fonts it’s probably the size at which being able to avoid touching blank areas o… simply: even though Pathfinder’s performance means you *can* get away with rerendering everything from scratch… that I want to make Pathfinder as fast as possible when rerendering vectors from scratch every frame. It’s jus… small 2D text as vectors from scratch every frame when scrolling or editing is a non-goal of Pathfinder.… @hilmargustafs I love the Rust community.It’d be cool if there were a Cargo.toml versions autocomplete plugin for VS Code so you could type e.g. “web-sys =“… @whitequark the real cowardice is not calling it fargo
Retweeted by Patrick Waltonone of the things i like about rust is that it sometimes advances the state of the art even for people who will nev…
Retweeted by Patrick Walton @mikeal And Skia. Skia is a nightmare to build…
@jfbastien @UINT_MIN @ohunt Yeah, my understanding (which could be wrong) is that Adobe/Opera(?) wanted 100% featur… me becoming a senior engineer has meant learning not to be afraid to write hilariously dumb and slow code. Half… @UINT_MIN @ohunt The SVG standard has had support for raw sockets. The vector graphic format. Making raw network co…
Retweeted by Patrick WaltonComputers are lazy. Real engineers make ASICs for every program. (And no writing Verilog either. Real engineers do…
Retweeted by Patrick WaltonComputers are lazy. Real engineers make ASICs for every program. (And no writing Verilog either. Real engineers do…
In a way, Pathfinder D3D11/piet-gpu move us closer to the Display PostScript and XRENDER ideal: a client/server ren…
@ManishEarth The California flag is objectively the best one, don’t @ meThat feeling when you realize all your Metal memory management has been built around *not* having an autorelease po… @ManishEarth @littlecalculist Noooo, I hate implementing clip paths
@reillyeon @w3c Slack was considered for Mozilla too. I’m glad Moz went for Matrix instead.Hard to overstate how much of a good call it was for Mozilla to move from IRC to Matrix.
The fun part about all the right-wing social media alternatives professing to guarantee free speech is that they im…
Retweeted by Patrick Walton @pcwalton @UINT_MIN Craig Federighi says No here
Retweeted by Patrick WaltonI assume this means no then. @UINT_MIN
@geoffpursell It’s in progress! @zeuxcg @ID_AA_Carmack .@raphlinus’ work is even more sophisticated for tiling in fact @zeuxcg @ID_AA_Carmack Pathfinder does something similar in Metal, in fact, building up lists of drawing commands per 16x16px tile. @UINT_MIN In theory one could use a kext to boot Linux, I guess, but what a hack. @Gok @larsberg_ (This is the best compilation strategy for dynamic languages too, but it’s hard to do this AOT, whe… @Gok @larsberg_ I think it depends. AOT experiments for JS haven’t gone well. Perhaps I should be more specific: A… @larsberg_ I’ve heard that Apple has some magic optimizations implemented in their custom CPUs to accelerate indire… @larsberg_ Yeah, this is why I feel like fully dynamic languages are best implemented the good old Smalltalk (or JV… thread. I’m pleasantly surprised to see aggressive Obj-C message optimization implemented.
If you've been curious about AVR on #rustlang,
Retweeted by Patrick WaltonThe compute shader path has finally landed in Pathfinder’s master branch! naive Fibonacci language benchmark just appeared on HN. What are the chances of getting an LLVM patch acce… anyone managed to get any kexts loaded on macOS 11 beta yet? It asks me to approve even the ones it ships with…
Retweeted by Patrick Walton @comex @johnregehr @jckarter @mycoliza To be clear I’m very sympathetic to the idea that everything from a single v… @comex @johnregehr @jckarter @mycoliza Yeah, I just think it would be nice if Apple wrote that tool. I’m not oppose… iOS and Android up as truly open platforms with a genuinely level playing field between first party and thi…
Retweeted by Patrick Walton @comex @johnregehr @jckarter @mycoliza Yeah, the problem is reverse engineering, which I end up doing a lot… @UINT_MIN Since it’s for developers, I’d just be honest and say “Yes, this isn’t notarized because I want Apple to… @hikari_no_yume @DrywolfDev Metal Shading Language was an interesting experiment in trying to build a GPU language… @johnregehr @mycoliza Guess we'd all better learn how to use these tools @vvuk @slightlylate @mozilla Speaking only for myself here, I praised the decision because a small improvement to t…
@filpizlo Like, sorry, I’m not here for the claim that an environment with fast locks is as easy to learn as an env… @filpizlo How many artists do you know who have written parallel code in Java? @hikari_no_yume Exactly! GLSL is surprisingly well-designed. @pcwalton C or C++ could have been the languages to write shaders in (actually, they /are/ the basis of some popula…
Retweeted by Patrick WaltonInteresting, I didn’t expect Apple to allow any third-party code to run in kernel mode at all. Nice to see ring 0 i… @NikolaiVazquez It’s no different from Intel GPUs really.(I’m not so much referring to evaluating individual nodes in parallel as shading pixels in parallel.) @jfbastien Does any spreadsheet program actually evaluate in parallel though?I think it’s underappreciated how much work the graphics community has done to bring parallel programming to a wide… Macs will still support OpenGL and OpenCL
Retweeted by Patrick WaltonSpecifically I could have seen them easily do something like "you can distribute x86 apps as you did before, but na… @comex Not to mention NeXTStep/OPENSTEP used fat binaries with 4 architectures (m68k/x86/SPARC/something else). @CryZe107 Nightly onlyApropos nothing, Pathfinder has ARM SIMD support. :) @UINT_MIN And just as I tweet this… :) @UINT_MIN Hopefully at least there’s virtualization support, so you can get to ARM supervisor mode but not hypervisor mode.My biggest concern about the macOS ARM transition is that Apple will use the opportunity to move to a locked-down i… @matthew_d_green Safari has a commanding overall market share on macOS per my understanding, though I wouldn’t be s… @whitequark Darn, that’s unfortunate. @urhein Interesting idea :) Though we already have mrustc for that…Buried in this presentation: There’s a way to compile Rust and Go to C now! that happened ... #WWDC2020 #Firefox
Retweeted by Patrick WaltonMOVABS - Move To The Abyss
Retweeted by Patrick Walton
You could fix that by tiling your polygon, but I’m pretty sure the tiles would have to overlap by 3σ pixels in ever…’t proven this to myself, but I think there’s a closed-form formula for Gaussian blur for any 2D object that c… made my @rustlang topfew port massively faster, partly by scaling linearly in the number of cores through th…
Retweeted by Patrick WaltonThis thread reminded me that there’s an ongoing effort to support ebcdic source files in clang right now.
Retweeted by Patrick Walton
One thing nobody tells you about programming in Rust is how much you'll accidentally learn about car maintenance as you google for things.
Retweeted by Patrick Walton @andreasgal Cool, thanks!(The alternative I can think of would be having something like a shared “staging” ring buffer in GPU-accessible CPU… discrete GPUs, OpenGL drivers traditionally (i.e. without any special flags) hold a copy of each buffer and tex… @gcrickhudson @bradfitz @dgryski BTW I don’t think it’s a reason to avoid either language, but all I’m saying is th…