Commit Graph

2554 Commits

Author SHA1 Message Date
Sergey Sharybin
21e403e546 Merging r49953 through r50015 into from trunk into soc-2011-tomato 2012-08-19 13:57:55 +00:00
Sergey Sharybin
c37a863ff4 Tomato Cycles: fix for reading freed memory
Incorrect read was happening after nodes which are not affect on output
were removed from the graph. Other nodes could have been connected to
this nodes which lead to accessing freed memory in some other places.

Solved by removing links from unused nodes before removing them from
the graph.
2012-08-19 12:07:28 +00:00
Sergey Sharybin
900d7d9e35 Tomato Cycles: fix crash appearing when direct light usage is different on different layers
Seems some variables used for light sampling should be reset when
integrator's use_direct_light flag is setting to false, otherwise
this values could be used from previously rendered layer resulting
in using freed memory of __light_distribution texture.
2012-08-18 15:46:32 +00:00
Campbell Barton
47e313ec0c cmake option to build without iksolver 2012-08-18 13:36:29 +00:00
Campbell Barton
9e742ffc2b style cleanup: also correct some doxy comments 2012-08-18 13:07:48 +00:00
Sergey Sharybin
bcbd8c00c7 Tomato Cycles: fix incorrect memory read when synchronizing mesh motion 2012-08-17 12:58:31 +00:00
Sergey Sharybin
63b5338dbd Fixed incorrect sample counter reported when rendering several render layers 2012-08-16 08:49:43 +00:00
Sergey Sharybin
5c29f5bfcf Tomato Cycles: revert some changes of r49835
Apparently for viewport rendering on GPU tile size of 1024 gives
much better performance than using single tile. Not sure why it
doesn't work for background rendering, need to be investigated
further.

Meanwhile use old debug value of 1024 for tile size.
2012-08-13 14:51:39 +00:00
Thomas Dinges
b37fae8611 Tomato Cycles:
*Typo fix.
2012-08-12 12:47:32 +00:00
Sergey Sharybin
711b97c2ac Tomato Cycles: use actual number of tiles for viewport rendering
Before this debug_tile_size was used as a size of tile, which
became hidden property since tile-based rendering implementation
and couldn't have been controlled.

This resolves the issue with single thread used for viewport
rendering in some cases. Also it makes possible to control tiles
for CUDA viewport rendering, which still behaves much faster when
using the single tile.

Also fixed issue with minimal tile size which was used to calculate
divider of final resolution to be used for initial rendering. Now
it's a Resolution Divider property in Performance tab. This option
could be used to tweak initial resolution of viewport for faster
navigation or faster refresh when changing some properties.
2012-08-12 11:58:34 +00:00
Sergey Sharybin
8aeba8ec8b Merging r49815 through r49833 from trunk into soc-2011-tomato 2012-08-12 10:07:55 +00:00
Campbell Barton
b96c622015 style cleanup 2012-08-11 22:12:32 +00:00
Campbell Barton
c567cf3fab code cleanup: WM naming conventions 2012-08-11 21:35:24 +00:00
Sergey Sharybin
00afee41c8 Merging r49775 through r49807 from trunk into soc-2011-tomato 2012-08-11 14:39:09 +00:00
Campbell Barton
51182bc78d add MEM_recallocN(), so bytes are ensured to be zero'd when growing. 2012-08-11 12:16:09 +00:00
Campbell Barton
bfbea03228 svn merge ^/trunk/blender -r49757:49763 2012-08-10 10:37:31 +00:00
Lukas Toenne
d33a0effba Fix for particle object rendering in Cycles. On object sync the object first has to determine if a particle update is needed (which depends on dupli objects and their meshes), before deciding to skip the actual syncing. 2012-08-10 10:15:45 +00:00
Daniel Genrich
a1dd6ea836 Smoke: High res on even resolution did not write to all cells (downsampling = n-1, upsampling = n).
Thanks goes to MiikaH.
2012-08-10 09:58:58 +00:00
Sergey Sharybin
6129a0f97c Merging r49738 through r49757 from trunk into soc-2011-tomato 2012-08-10 08:54:14 +00:00
Thomas Dinges
e7f12cec35 Cycles Test App:
* Fix for changes in the OpenImageIO API.
2012-08-09 23:00:57 +00:00
Sergey Sharybin
2e30bf28c1 Merging r49711 through r49737 from trunk into soc-2011-tomato 2012-08-09 17:03:33 +00:00
Campbell Barton
f0951f58ca code cleanup: rename G.afbreek --> is_break, G.rendering --> is_rendering 2012-08-08 18:37:06 +00:00
Sergey Sharybin
c905bc3b80 Merging r49667 through r49680 from trunk into soc-2011-tomato 2012-08-08 08:21:58 +00:00
Campbell Barton
3179ee8a86 patch [#32282] Fix segfault on exit in IM shutdown.
from Bill Currie (taniwha)
2012-08-08 07:31:19 +00:00
Thomas Dinges
c8934b44f9 Tomato Cycles:
* Improvement for reporting current sample.
Also show the current amount of rendered samples, when using the CPU, and 1x1 tiles.
2012-08-07 14:02:53 +00:00
Campbell Barton
9ad19c26ca svn merge ^/trunk/blender -r49644:49653 2012-08-07 13:38:35 +00:00
Sergey Sharybin
b364f6e692 Tomato Cycles: report currently rendering sample when using GPU
Currently it makes more sense to use single tile for GPU rendering
and in this case tile-based progress report doesn't work well.

Since threading happens within single tile, it's possible to
detect currently computing sample and report it to the interface,

This also allows to display smoother progress when using CPU
with small amount of tiles.
2012-08-07 13:27:19 +00:00
Jens Verwiebe
9ee3a8655f Fix for fix, now nested 2012-08-07 12:09:48 +00:00
Jens Verwiebe
d4029de0d6 Fix for endiantest, xcode condition interferred with other os 2012-08-07 12:03:43 +00:00
Jens Verwiebe
5bcdecd72b OSX: disable kernels in cycles gpu again, would only work in 10.8 afaik 2012-08-07 10:10:03 +00:00
Campbell Barton
8516821225 svn merge ^/trunk/blender -r49638:49644 2012-08-07 10:06:31 +00:00
Jens Verwiebe
b9c441536c OSX/cmake: Mountain-Lion (10.8 )adaptions, skip unsupported endianess etc., todo: deployment target management 2012-08-07 10:02:34 +00:00
Sergey Sharybin
0d8a245623 Code cleanup: remove unused sample counter from render session
It's not used since new tile-based rendering and it was confusing
to have it in both session and tile manager.

Should be no functional changes.
2012-08-07 09:54:55 +00:00
Sergey Sharybin
9460619199 Tomato Cycles: do not discard unfinished tiles on cancel
Do not discard (fill with black) tiles which are not fully rendered
(not all the samples are calculated for tile) when canceling render.

This could be helpful to tweak some settings when render glitch is
discovered. Also it could be used in such scenarios as setting
samples number to something really high and render still image
until result is reasonable, controlling this manually.

This could make cancel not so responsible on CPU, but it wouldn't
be less responsible than GPU, also could potentially give some
%% of speedup by avoiding checking cancel state after every pixel
sampled.
2012-08-07 09:22:26 +00:00
Campbell Barton
e2203d548e svn merge ^/trunk/blender -r49601:49620 2012-08-06 14:02:03 +00:00
Sergey Sharybin
c93be80be9 Tomato Cycles: report current scene and render layer being rendering
Helps figuring out what exactly takes time when rendering in render farm.
2012-08-06 10:10:35 +00:00
Campbell Barton
4e2fb45576 style cleanup 2012-08-06 10:03:17 +00:00
Sergey Sharybin
1ba78bca94 Tomato Cycles: fix regression since rev49535
Wrong sample number was reporting in viewport rendering.
2012-08-05 17:38:44 +00:00
Sergey Sharybin
7b644b8196 Tomato Cycles: fix for vector pass gives wrong result in some circumstances
Issue was caused by wrong camera motion stored in device in cases
when first render layer does not have vector pass enabled.

Solved by forcing device camera update in cases when scene's motion
changed since previous device camera update.
2012-08-05 17:24:10 +00:00
Sergey Sharybin
cae3dbd141 Merging r49534 through r49573 from trunk into soc-2011-tomato 2012-08-05 12:54:39 +00:00
Thomas Dinges
2390c95cf1 Code cleanup:
* Remove BSP_GhostTest, not used and working for ages, approved by Sergey.
2012-08-04 11:42:38 +00:00
Sergey Sharybin
e7f8b52aee Tomato Cycles: minor code cleanup
Move center tile acquiring code into own function. Should be
easier for time being when we'll want to support other tile
render orders.

Also now there should be a single bucket growing from center
when multi-GPU is used. Can't test this here tho.
2012-08-04 09:13:52 +00:00
Sergey Sharybin
b5e1419e5b Tomato Cycles: internal cleanup of tile-based integrator
This commit solves couple of issues appeared with new integrator:

- Render job progress bar is now shows progress based on number of
  rendered tiles. This is the same as Blender Internal does.

  This still requires some further thoughts because for GPU it's
  better to use single tile and in this case progress bar should
  be based on number of rendered samples.

- Removes "global" sample counter from progress descriptor. There's
  no more global-being sample which makes sense.

  This counter was replaced with tile counter.

- Use proper sample number when copying render buffer to blender.
  It used to be final sample number used which lead to tiles
  appearing from complete dark to normal brightness as they're
  being rendered. Now tile would be displayed with proper
  brightness starting from the very first sample.

  Use sample counter stored in render tile descriptor and pass
  it to update / write callbacks.

This was tested on CPU and GPU CUDA rendering.

Additional change:

  OpenCL rendering now should be cancellable before it finished
  rendering all the samples (the same change as for CPU/CUDA from
  a while ago).

This part of commit wasn't actually tested, would do it later.
2012-08-03 15:18:42 +00:00
Sergey Sharybin
e135bfe41b Correction top previous commit: tiles were counted in opposite way 2012-08-03 11:13:38 +00:00
Sergey Sharybin
535a17dd18 Tomato Cycles: fix own regression in currently rendering tile status 2012-08-03 10:55:33 +00:00
Sergey Sharybin
ecab45a018 Tomato Cycles: fix wrong center coordinate when using multi-device configurations 2012-08-03 10:42:21 +00:00
Sergey Sharybin
f736f183a5 Merging r49499 through r49518 from trunk into soc-2011-tomato 2012-08-03 09:08:40 +00:00
Sergey Sharybin
1a5998bc4e Remove old boolean operation module
Carve proved it's a way to go, so the time have came to get rid of old
boolean operation module which isn't used anymore.

Still kept BOP interface but move it to BSP module. At some point it
could be cleaned up further (like perhaps removed extra abstraction
level or so) but would be nice to combine such a refactor with making
BSP aware of NGons.

Tested on linux using both cmake and scons, possible regressions on
windows/osx. Would check windoes build just after commit.
2012-08-02 16:42:30 +00:00
Sergey Sharybin
3c2fffd1a9 Tomato Cycles: experimental option to cancel rendering when doing initial synchronization
This required wrapping create and update pytohn callbacks as  into begin/end
allow threading macroses. From quick tests this seems to be stable enough,
but more tests would be needed before considering this stable.
2012-08-02 14:16:37 +00:00
Campbell Barton
a3cd8c5c61 svn merge ^/trunk/blender -r49478:49498 2012-08-02 11:29:32 +00:00