[Bf-cycles] bug with multi device buffers
Mohamed Sakr
3dsakr at gmail.com
Mon May 23 01:53:20 CEST 2016
Hi,
I'm trying to solve a bug here, happens only with multi device. "2 CUDA
devices".
after a long debugging, here are the cases:
1- when session and device background == true:
this renders fine, found that each tile buffer = the device buffer "here
the device is CUDA" , it gets device and data pointers correctly.
2- when session and device.background == false:
this is the case in Blender, here it draws from OpenGL buffer directly, and
it doesn't touch underlying multidevice buffer.
3- the problem, session background == false, device background == true:
here it uses the actual code of multi device buffers!, I thought the CUDA
buffers are somehow wrong, so I disabled this to test:
/* in case of a permanent buffer, return it, otherwise we will allocate
* a new temporary buffer */
if(!(params.background && params.output_path.empty())) {
tile_manager.state.buffer.get_offset_stride(rtile.offset, rtile.stride);
rtile.buffer = buffers->buffer.device_pointer;
rtile.rng_state = buffers->rng_state.device_pointer;
rtile.buffers = buffers;
device->map_tile(tile_device, rtile);
return true;
}
and it rendered fine!, so CUDA buffers are fine.
so the whole problem is getting the buffers from multi device.
please help/advice.
cheers,
Mohamed Sakr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-cycles/attachments/20160523/c6b93a75/attachment.htm
More information about the Bf-cycles
mailing list