Cycles: Show tile progress when using GPU render or a single thread GPU

Authored by Sergey Sharybin (sergey) on Feb 28 2016, 11:25 PM.



This is partially a RFC type of patch because it's somewhat related on
the interface and such topics are always controversial.

The idea of this patch is to make watch-pixels-dry process less boring,
especially when doing GPU rendering where tiles are big and takes forever
to sample, without giving any feedback to artists when the tile will be

Current visualization is using rather funny idea of drawing progress
combined with the tile corner visualization: instead of drawing cross
in the corner we draw a side from a corner, clockwise, and it length
matches tile progress. So when tile becomes closer to a fully sampled
tile rectangle gets "more" closed.

While the interface part is a subject for discussion, the underlying
statistics part report part of the change could go in IMO.

We might also find a good way to visualize tile progress when using
CPU rendering.

Diff Detail

rB Blender

Tested it on my Geforce 540, looks nice imho. I am fine with this addition.

This revision is now accepted and ready to land.Feb 29 2016, 10:51 AM

Hi, it does work on multiple GPU too, at least with two.


When I suggested it meant it to walk around like a tiny snake. Same amount of pixels as the corner things. Drawing the full box would distract a bit too much from the image (also when finished it pops away distractingly).

@Ton Roosendaal (ton), this is not addressed. Perhaps not fully ideal but nice and fun.
Can play further with different strategies.

Here's how it looks now:

Should we consider multiple colors when doing this for multiple devices such as 2,3 or 4 GPU's ?

I really like the effect.

General +1!

Re multiple colors for multiple devices: Would be great to have some way of indicating multiple devices, but using colors to communicate this might be a bit distracting too... Off hand I'm not sure about a better alternative though.

I like the idea of the snake crawling around the tiles, though testing it in practice it doesn't look that great imo. Especially with many CPU cores or multiples GPUs it could start looking like a disorganized set of line segments.

Maybe use a semi-transparent line at the bottom of the tile, like a subtle progress bar? Or perhaps the original idea with the tile getting "closed", but the lines becoming more transparent until they are invisible?