http://www.gamasutra.com/view/feature/4287/sponsored_feature_doityourself_.php
Nulstein Gamasutra article.
http://software.intel.com/en-us/articles/do-it-yourself-game-task-scheduling/
Nulstein Intel article. Seems to be the same as the Gamasutra article. Different reader comments.
Nulstein is a work-stealing task scheduler written by an ex-game dev Intel developer. In the article, the author says he wanted to write a Intel TBB-like, but more compact task scheduler that would fit inside a 64K demo. Nulstein seems to be a minimalist, but clearly written and fully functional work-stealing task scheduler, and since I don’t have any experience writing a multithreaded task scheduler, I’m going to use it in code and try to learn from it.

I integrated the Nulstein task scheduler into my DX11 smallpt code and made smallpt multithreaded. On my Intel Core2 Quad Q6600 2.4ghz with 4 CPU cores, the fps went from around 0.46 fps to around 1.76 fps. The sampling rate went from around 294400 samples/sec to around 1125561 samples/sec. Though I haven’t measured how much work stealing is helping out, the x3.82 speed-up I’m getting for going from 1 CPU core to 4 CPU cores seems pretty good.
https://www.cmpevents.com/GDCE10/a.asp?option=C&V=11&SessID=11257
The author of Nulstein is giving a talk titled “UFO Invasion: DX11 and Multicore to the Rescue” at GDC Europe 2010. The talk seems to be a follow-up of the above article. The talk summary says multicore CPU programming (Nulstein again) and DX11 deferred context multithreaded draw calls will be covered with the talk’s full source code to be made available. I am so far liking Nulstein and am looking forward to this talk’s material being made public.
Nulstein: A Work Stealing Task Scheduler
August 16th, 2010 § 0 comments § permalink
smallpt float precision problems
August 8th, 2010 § 0 comments § permalink

Argh, simply searching and replacing double with float results in self-intersection precision errors. The ompf smallpt thread mentions this problem http://ompf.org/forum/viewtopic.php?f=8&t=1079&start=0&sid=df3f2a3cc54c52b1accc4e6baf9e1c73.
smallpt
August 8th, 2010 § 0 comments § permalink
I’m going to begin my renderer studies by writing a SIMD, multithreaded implementation of smallpt (http://kevinbeason.com/smallpt/).
I looked at the source code of smallpt a couple of months ago after the OpenCL GPGPU implementation of it, SmallptGPU (http://davibu.interfree.it/opencl/smallptgpu/smallptGPU.html), came out. I was learning DirectCompute and thought it would be good for me to write a DirectCompute version of smallpt, but instead of doing that I ended up writing a DirectCompute Buddhabrot renderer (http://www.yakiimo3d.com/2010/03/29/dx11-directcompute-buddhabrot-nebulabrot/).
Using SmallPtGPU as reference, I had a CPU version of smallpt working inside a DX11 StructuredBuffer render framework, and I’m picking up where I left off and using that source code for my smallpt studies. With my current CPU version of smallpt, on my Core2 Quad Q6600 2.4ghz, I get around 0.46 fps while rendering a 400×400 image with 2×2 supersampling, for 400*400*0.46*4=294400 samples/sec.
Began writing an offline renderer!
August 8th, 2010 § 0 comments § permalink
I wrote simple raytracers in college for my computer graphics class and my senior comps, but nothing that I am proud of. I’ve always wanted to write a global illumination renderer, so better late than never, I’ve decided to start now. Writing a GI renderer might take some time for me, but hopefully I’ll be able to persist and learn a lot in the process. My renderer will probably be closed source, but I will blog about what I learn while attempting to write my GI renderer.