Inter-process Communication: How?
A post of mostly questions, and no answers! So I needed to do some IPC (Inter-process Communication) lately for shader compilers. There are several reasons why you’d want to move some piece of code...
View ArticleOn having an ambitious vision
We just announced upcoming 2D tools for Unity 4.3, and one of responses I’ve seen is “I am rapidly running out of reasons not to use Unity”. Which reminds me of some stories of a few years back....
View ArticleSome Unity codebase stats
I was doing fresh codebase checkout & building on a new machine, so got some stats along the way. No big insights, move on! Codebase size We use Mercurial for source control right now. With...
View ArticleRough sorting by depth
TL;DR: use some highest bits from a float in your integer sorting key. In graphics, often you want to sort objects back-to-front (for transparency) or front-to-back (for occlusion efficiency) reasons....
View ArticleSpeaking at i3D and GDC 2014
I’ll be speaking at i3D Symposium and GDC in San Francisco in a couple of days. At i3D, Industry Panel (Sunday at 11:00AM). Jason Mitchell (Valve) will do a panel on the scalability challenges inherent...
View ArticleCross Platform Shaders in 2014
A while ago I wrote a Cross platform shaders in 2012 post. What has changed since then? Short refresher on the problem: people need to do 3D things on multiple platforms, and different platforms use...
View ArticleVisuals in some great games
I was thinking about visuals of the best games I’ve recently played. Now, I’m not a PC/console gamer, and I am somewhat biased towards playing Unity-made games. So almost all these examples will be...
View ArticleShader compilation in Unity 4.5
A story in several parts. 1) how shader compilation is done in upcoming Unity 4.5; and 2) how it was developed. First one is probably interesting to Unity users; whereas second one for the ones curious...
View ArticleRant about rants about OpenGL
Oh boy, people do talk about state of OpenGL lately! Some exhibits: Joshua Barczak’s “OpenGL is Broken”, Timothy Lottes’ reply on that, Michael Marks’ reply to Timothy’s reply. Or an earlier Rich...
View ArticleUS Vacation Report 2014
This April I had a vacation in the USA, so here’s a write up and a bunch of photos. Our trip: 12 days, group of five (myself, my wife, our two daughters and my sister), rented a car and drove around....
View ArticleImporting cubemaps from single images
So this tweet on EXR format in texture pipeline and replies on cubemaps made me write this… Typically skies or environment maps are authored as regular 2D textures, and then turned into cubemaps at...
View ArticleDivide and Conquer Debugging
It should not be news to anyone that ability to narrow down a problem while debugging is an incredibly useful skill. Yet from time to time, I see people just helplessly randomly stumbling around, when...
View ArticleCurious Case of Slow Texture Importing, and xperf
I was looking at a curious bug report: “Texture importing got much slower in current beta”. At first look, I dismissed it under “eh, someone’s being confused” (quickly tried on several textures, did...
View ArticleOptimizing Shader Info Loading, or Look at Yer Data!
A story about a million shader variants, optimizing using Instruments and looking at the data to optimize some more. The Bug Report The bug report I was looking into was along the lines of “when we put...
View ArticleRandom Thoughts on New Explicit Graphics APIs
Last time I wrote about graphics APIs was almost a year ago. Since then, Apple Metal was unveiled and shipped in iOS 8; as well as Khronos Vulkan was announced (which is very much AMD Mantle, improved...
View ArticleOptimizing Unity Renderer Part 1: Intro
At work we formed a small “strike team” for optimizing CPU side of Unity’s rendering. I’ll blog about my part as I go (idea of doing that seems to be generally accepted). I don’t know where that will...
View ArticleOptimizing Unity Renderer Part 2: Cleanups
With the story introduction in the last post, let’s get to actual work now! As already alluded in the previous post, first I try to remember / figure out what the existing code does, do some profiling...
View ArticleOptimizing Unity Renderer Part 3: Fixed Function Removal
Last time I wrote about some cleanups and optimizations. Since then, I got sidetracked into doing some Unity 5.1 work, removing Fixed Function Shaders and other unrelated things. So not much blogging...
View ArticleCareful 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 Article