Careful With That STL map insert, Eugene
So we had this pattern in some of our code. Some sort of “device/API specific objects” need to be created out of simple “descriptor/key” structures. Think D3D11 rasterizer state or Metal pipeline...
View Article10 Years at Unity
Turns out, I started working on this “Unity” thing exactly 10 years ago. I wrote the backstory in “2 years later” and “4 years later“ posts, so not worth repeating it here. A lot of things have...
View ArticleBackporting Fixes and Shuffling Branches
“Everyday I’m Shufflin’” – LMFAO For past few months at work I’m operating this “graphics bugfixes” service. It’s a very simple, free (*) service that I’m doing to reduce overhead of doing “I have this...
View ArticleSolving DX9 Half-Pixel Offset
Summary: the Direct3D 9 “half pixel offset” problem that manages to annoy everyone can be solved in a single isolated place, robustly, and in a way where you don’t have to think about it ever again....
View ArticleMaldives Vacation Report 2016
Just spent 9 days in Maldives doing nothing! So here’s a writeup and a bunch of photos.“Magical”, “paradise”, “heaven” and other things, they say. So we decided to check it out for ourselves. Another...
View ArticleAdam Demo production talk at CGEvent
A while ago I delivered a talk at CG EVENT 2016 in Vilnius, about some production details of Unity’s Adam demo. Clarification point! I did nothing at all for the demo production, just did the talk...
View ArticleHash Functions all the way down
Update! I tested more hash functions in a follow-up post. See More Hash Function Tests. A while ago I needed fast hash function for ~32 byte keys. We already had MurmurHash used in a bunch of places,...
View ArticleMore Hash Function Tests
In the previous post, I wrote about non-crypto hash functions, and did some performance tests. Turns out, it’s great to write about stuff! People at the comments/twitter/internets pointed out more...
View ArticleSPIR-V Compression
TL;DR: Vulkan SPIR-V shaders are fairly large. SMOL-V can make them smaller. Other folks are implementing Vulkan support at work, and the other day they noticed that Vulkan shaders (which are...
View ArticleShader Compression: Some Data
One common question I had about SPIR-V Compression is “why compress shaders at all?“, coupled with question on how SPIR-V shaders compare with shader sizes on other platforms. Here’s some data (insert...
View ArticleInterview questions
Recently saw quite some twitter discussions about good & bad interview questions. Here’s a few I found useful. In general, the most useful questions seem to be fairly open-ended ones, that can...
View ArticleAmazing Optimizers, or Compile Time Tests
I wrote some tests to verify sorting/batching behavior in rendering code, and they were producing different results on Windows (MSVC) vs Mac (clang). The tests were creating a “random fake scene” with...
View ArticleA look at 2016, and onto 2017
I don’t have any technical insights to share right now, so you’ll have to bear with me blabbering about random stuff! Unity Work By now it’s been 11 years at Unity (see 10 Years at Unity a year ago),...
View ArticleChrome Tracing as Profiler Frontend
Did you know that Google Chrome has a built-in profiler? Some people assume it’s only for profiling “web stuff” like JavaScript execution. But it can also be used as a really nice frontend for your own...
View ArticleUI is hard, and other Typical Work Stories
Recently I’ve seen a mention that game engine programming is considered a mysterious, elite, and highly demanding type of work. So let me write up what often actually happens in day to day work. Also...
View ArticleEvery Possible Scalability Limit Will Be Reached
I wrote this the other day, and @McCloudStrife suggested I should call it “Aras’s law”. Ok! here it is: Every possible scalability limit will be reached eventually. Here’s a concrete example that I...
View ArticleFont Rendering is Getting Interesting
Caveat: I know nothing about font rendering! But looking at the internets, it feels like things are getting interesting. I had exactly the same outsider impression watching some discussions unfold...
View ArticleStopping graphics, going to build engineering
I’m doing a sideways career move. Which is: stopping whatever graphics related programming I was doing, and start working on internal build engineering. Been somewhat removing myself from many graphics...
View ArticleDeveloper Tooling, a week in
So I switched job role from graphics to developer tooling / build engineering about 10 days ago. You won’t believe what happened next! Click to find out! Quitting Graphics I wrote about the change...
View ArticleA case of slow Visual Studio project open times
I was working on some new code to generate Visual Studio solution/project files, and that means regenerating the files and checking them in VS a lot of times. And each time, it felt like VS takes ages...
View Article