Stream: t-compiler/wg-meta

Topic: capstone report


Jake Goulding (Apr 27 2019 at 20:14, on Zulip):

One thing I'd love, especially as a person who wouldn't do any of the work, is a "final report" of each big project that discussed what made that particular thing hard to do.

For example, what makes (made) specialization so difficult? Why wasn't it just "write some code"? I know that it's not that trivial, but I don't necessarily know why. With NLL, over time I learned aspects like "oh we need MIR to do it right", but something more official and consistent would be wonderful.

Brian Kung (Apr 27 2019 at 22:02, on Zulip):

A good model might be the Dolphin emulator project's monthly reports. Those are always fascinating to read!

Jake Goulding (Apr 28 2019 at 01:22, on Zulip):

Man, those posts from Dolphin are amazing. It makes me want to write emulators.

nikomatsakis (Apr 29 2019 at 17:54, on Zulip):

A good model might be the Dolphin emulator project's monthly reports. Those are always fascinating to read!

link to a few of those?

detrumi (Apr 29 2019 at 17:56, on Zulip):

https://dolphin-emu.org/blog/2019/02/01/dolphin-progress-report-dec-2018-and-jan-2019/

detrumi (Apr 29 2019 at 17:57, on Zulip):

And one with performance comparisons: https://dolphin-emu.org/blog/2018/12/04/dolphin-progress-report-november-2018/

detrumi (Apr 29 2019 at 17:59, on Zulip):

The amount of work that must go in these reports (and the work behind them) is insane

Brian Kung (Apr 29 2019 at 18:26, on Zulip):

I particularly liked the unique engineering problem and the history of attempted solutions in their Ubershader writeup: https://dolphin-emu.org/blog/2017/07/30/ubershaders/

But what if we don't have to rely on specialized shaders? The crazy idea was born to emulate the rendering pipeline itself with an interpreter that runs directly on the GPU as a set of monsterous flexible shaders. If we compile these massive shaders on game start, whenever a game configures Flipper/Hollywood to render something, these "uber shaders" would configure themselves and render it without needing any new shaders. Theoretically, this would solve shader compilation stuttering by avoiding compilation altogether.

This idea is all kinds of crazy, but it was also the first idea that had the potential to actually solve this impossible problem. The difficulty with this solution instead came from the absurd amount of work and expertise required to even get to the point of trying it. To put it into perspective, even among all the developers that work on Dolphin, only two or three people at most have the necessary knowledge on not only the GameCube/Wii hardware, but also modern GPUs, APIs, and the drivers to write, debug, and optimize the shaders. Not to mention running an interpreter as huge shaders is not exactly easy on the GPU, and many were afraid that all that work might not even run full speed on current video cards.

And their writeup on their development / continuous integration architecture made me realize they're a Real Software Engineering Project: https://dolphin-emu.org/blog/2015/01/25/making-developers-more-productive-dolphin-development-infrastructure/

Last update: Nov 11 2019 at 22:45UTC