编程与软件工程dolphin-emu.org编辑精选
Ubershaders:对不可能问题的荒诞解法
Ubershaders: A Ridiculous Solution to an Impossible Problem
2017 — 2024,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 Dolphin 模拟器团队的一篇技术博客,讲他们如何解决 GameCube/Wii 游戏在着色器编译时出现的卡顿:用“Ubershaders”(通用着色器)加专用着色器混合的方案,在专用着色器编译完成前先用通用着色器渲染,从而消除卡顿。文章按时间线复盘了从认定问题无解、到逐步找到可行解法的全过程。
为什么经久不衰:它把一段曲折的工程攻关写成通俗易懂的故事,展示了“看似不可能”的性能问题如何被拆解解决,因此被反复翻出,至今仍是系统与图形工程写作的范本。
HN 评论精选
称赞文章讲故事的能力,呼吁开源项目多写这类技术复盘。
写得真好。我其实并不玩老游戏,跟这个问题没有切身利害,但我很爱读这个故事。希望其他开源项目在取得重大成就时也能写这样的文章。如果我只在更新日志里看到“专用着色器被 Ubershaders 取代”,大概不会觉得背后有这么多故事。
et2o查看英文原文
What an awesome writeup. I am not even really personally invested in the problem as I don't play older video games, but I loved reading the story. I wish other open source projects would do similar writeups when they reach major accomplishments. If I just saw "specialized shaders replaced with ubershaders" on a feature update, I probably wouldn't think there was much of a story to it.
总结了技术共识演变的典型阶段,赞赏文章呈现的过程。
这文章太精彩了。我最喜欢那些技术问题,舆论会一步步从“这不是问题”变成“这问题没法修”,再到“这个方案根本行不通”,再到“真做起来工作量太大”,最后到“这个解法是必然的”。
quotemstr查看英文原文
This is an amazing article. I _love_ technical problems for which the prevailing consensus moves from "this isn't a problem" to "this problem is impossible to fix" to "the proposal fix could never work" to "doing it right would be too much work" to "the solution was inevitable".
引用 Carmack 的称赞,说明文章在业内获得的认可。
在这一行还有比 John Carmack 说“Dolphin 的更新是精彩的系统工程文章”更高的赞誉吗?
AceJohnny2查看英文原文
Is there any higher accolade in the field than having John Carmack say "Dolphin updates are wonderful system engineering articles." ? https://twitter.com/ID_AA_Carmack/status/891803321777897472
调侃项目收尾阶段那句经典的自嘲。
我最喜欢的部分是:“尽管已经完成约 90%,但剩下的 90% 仍然有待完成。”
davidmurdoch查看英文原文
My favorite part: "Despite being around 90% complete, the last 90% still remained to be done"
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选