← All ideas
  • Published 1 Jul 2019

Allow GPU to finish CPU tiles in hybrid Cycles rendering

Something that I believe could really help optimize hybrid rendering for Cycles is to allow the GPU, when finished with its own tiles, to help finish lingering CPU rendered tiles. I've experienced massive holdups using hybrid rendering where the GPU will plow through a lot of the image but the CPU tiles will linger on a complex portion and inflate render time while the GPU sits doing nothing at the end. The GPU should be helping as much as possible and it feels like a waste to see it unutilized for potentially long portions of a render

100%

Development Status: Open

Upvote 27 Downvote 0
proceo
1 Jul 2019

4 Comments

zuorion

Idea how it could be solved: Well since there is render merging with different samples developed, so there could be "tile multithreaded" feature - if thread finish last last available tile, it will start already started tile and then if sum of both half done tile samples will be equal to target it will merge those half rendered tile into rendered tile.

Eg. There is last tile that is being rendered with CPU, it is computing 100 sample out of 1000, GPU just finished rendering previous tile but there is no more free tiles, so it starts computing already rendered tile. Few seconds later CPU made 300 and GPU 700. 300+700=1000, so those two hald made tiles are merged into one finished tile.

5

* @Pawel Piotrowski * I like your thinking

zhixson.xbdi

* @Pawel Piotrowski * great idea! I have proposed by own solutions to this problem, but I think yours is the best solution (at least from a user's POV. It might be difficult to implement)

CookItOff

And, Or set a time limit for tiles, I think RPR has this. There are animation renders I have that will hold on to one last tile, with motion blur, for two to three times as long as the time it took to render all other tiles.

Ending a blurry tile early wouldn’t be noticeable compared to the other fully rendered tiles.

1