zeux 图形编程博客

RSS: https://zeux.io/feed/
zeux.io,Arseny Kapoulkine 关于图形编程、性能优化与底层工程的博客,pugixml 与 meshoptimizer 的作者。

Zigzag Decoding with AVX-512

I’ve been working on speeding up AVX-512 vertex decoding in meshoptimizer recently; in the process I stumbled upon two optimizations that I did not end up using but I thought they might be fun to writ...
评论点赞收藏59 天前

Quantizing Tangent Frames

I’ve been working on tangent space generation recently, and also pondering the tradeoffs between QTangent and normal-angle storage. So when, in a completely unrelated discussion, someone said “you cou...
评论点赞收藏99 天前

Qgrep Internals

In 2011-2012 I worked on FIFA Street, followed by FIFA EURO 2012 DLC and finally FIFA 13 - all of these games were based on the same codebase, and this codebase was HUGE. Given an unknown codebase, yo...
评论点赞收藏222 天前

Meshoptimizer 1.0 Released

A short post today. If you’re following me on any of the vast array of social accounts then you’re probably aware, but if you’re reading this blog through the ancient technology otherwise known as RSS...
评论点赞收藏249 天前

优化 meshoptimizer:几分钟内处理数十亿个三角形

NVIDIA 发布了 RTX Mega Geometry 技术,展示了能处理百GB级场景的能力。作者深入分析了 meshoptimizer 库如何优化以在几分钟内处理数十亿个三角形,解决了大规模几何数据处理的性能瓶颈。文章提供了具体的工程优化手段和性能数据,对图形学开发者极具参考价值。
评论点赞收藏316 天前

Zeux.io – Do not disrespect the fractal

Some people have a misconception that in software engineering, skill stops mattering for code quality from some level of seniority, and all of the value add shifts to architecture, high level design d...
评论点赞收藏358 天前

Optimizations That Aren't

We all like it when our code is fast. Some of us like the result, but dislike the process of optimization; others enjoy the process. However, optimization for the sake of optimization is wrong, unless...
评论点赞收藏392 天前

负载存储冲突:一次编译器性能波动的底层排查

作者深入分析了 meshoptimizer 库中索引解码器性能在不同编译器版本间出现意外波动的根本原因。文章揭示了底层硬件中的 Load-Store 冲突如何微妙地影响几何数据解压速度,并结合具体汇编指令和微架构特性进行了详尽的工程级排查。这是一篇典型的高深度技术复盘,适合对图形学、编译器优化及 CPU 微架构感兴趣的开发者阅读。
评论点赞收藏468 天前

测量光线追踪加速结构:标准缺失下的性能差异分析

文章深入探讨了硬件加速光线追踪中加速结构(如BVH/BLAS)的现状与问题。指出虽然DirectX 12和Vulkan支持该特性,但不同厂商的数据布局缺乏统一标准,导致渲染引擎无法像处理栅格化几何体那样自定义内存布局。作者通过实际测量数据,分析了当前实现之间的差异及内存消耗情况,揭示了这一常被忽视但影响性能的关键底层细节。
评论点赞收藏500 天前

独立之年:离开Roblox后的生活与思考

作者分享离开Roblox后的个人经历。他拒绝了休息旅行的建议,选择大量写代码和与人交流。许多公司和个人联系了他,他对这些机会持开放态度。文章体现了独立开发者在离开大厂后的职业选择与思考。
评论点赞收藏591 天前

遗忘指标与算法:反思社交网络的量化陷阱

作者回顾早期社交平台LiveJournal的单向好友机制,指出当时关注数是一种身份象征。文章核心观点是反思现代社交网络中量化指标(如点赞、粉丝数)对用户行为的异化影响,主张通过算法和产品设计引导用户减少对数据的依赖,回归内容本身的价值。这是一篇结合个人经历与技术伦理的深度思考,适合对社交媒体机制感兴趣的读者讨论。
评论点赞收藏704 天前

Eight Years at Roblox (2020)

I joined Roblox at the end of 2012 as a rendering engineer; I had just spent more than a year working on various titles from FIFA franchise after years of console game development and was becoming a b...
评论点赞收藏804 天前

Target_clones 是一个陷阱

深入分析了Luau语言中模运算定义的陷阱,特别是关于floor函数的行为。文章提供了具体的数值问题和性能考量,适合对编程语言底层实现感兴趣的开发者。
评论点赞收藏847 天前

Meshlet中的三角形局部性至关重要

文章讨论了在Mesh Shader中几何体分割为meshlet时,三角形局部性的重要性。作者指出,虽然Mesh Shader显式处理顶点重用,但三角形顺序对缓存效率仍有显著影响。良好的局部性可以减少冗余计算,提升渲染性能。
评论点赞收藏858 天前

条件变量与原子变量混用之坑

文章指出在使用 std::condition_variable 时,一个常见且容易忽视的错误是将原子变量(atomics)与条件变量混合使用。作者强调,等待谓词中访问的所有变量都必须在互斥锁的保护下进行更改。如果违反这一规则,可能会导致未定义行为或竞态条件。这是一个简短但重要的技术提醒,旨在帮助开发者避免在并发编程中犯下这类低级但危险的错误。
评论点赞收藏874 天前

LLM 推理的光速极限

作者开发极简 Transformer 推理库 CALM,旨在确立推理速度的理论极限(光速)。文章推导了内存带宽和计算延迟的物理约束,并以此衡量实际进展。对关注底层优化和性能极限的技术读者有参考价值。
评论点赞收藏882 天前

是时候离开了:我在 Roblox 的十年

作者回顾了加入 Roblox 十年后的离职决定。从早期几十人的团队到如今规模,作者分享了作为核心开发者见证平台成长的经历与感悟。这是一篇带有个人色彩的技术老兵告别信,涉及平台发展史和个人职业选择。
评论点赞收藏992 天前

高效实现锯齿数组

文章讨论了在处理图结构数据时,使用锯齿数组(array-of-arrays)的常见性能问题。作者指出直接使用标准容器构建锯齿数组往往效率低下,并分享了一种在多个项目中验证过的、用于构建不可变锯齿数组的高效表示和构造方法。这是一种针对高性能计算场景的工程优化经验分享。
评论点赞收藏1143 天前

细粒度背面剔除技术探讨

文章指出虽然背面剔除是图形渲染中的基础且看似已解决的问题,但作者探讨了多种替代策略。这些策略旨在处理更精细的场景需求,可能涉及特定的渲染管线优化或特殊几何体的处理,为图形程序员提供了超越默认硬件行为的深度技术视角。
评论点赞收藏1206 天前

Meshlet大小的权衡与优化策略

文章探讨了在使用Mesh Shader渲染网格时,如何平衡Meshlet的大小(三角形和顶点数量)。作者指出,虽然硬件通常限制每个Meshlet最多256个三角形和256个顶点,但实际开发中需要根据具体场景权衡。较小的Meshlet可以提高并行度和缓存效率,但会增加调度开销;较大的Meshlet则相反。作者通过实验数据展示了不同大小对性能的影响,并给出了选择建议。
评论点赞收藏1308 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。