mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Fix T84049: Crash when using Cycles Progressive Refine with OptiX+CPU
Tile stealing may steal a CPU tile buffer and move it to the GPU, but next time around that tile may be re-used on the CPU again (in progressive refinement mode). The buffer would still be on the GPU then though, so is inaccessible to the CPU. As a result Blender crashed when the CPU tried to write results to that tile buffer. This fixes that by ensuring a stolen tile buffer is moved back to the device it is used on before rendering.
This commit is contained in:
parent
87db3423c9
commit
4a09907eab
1 changed files with 4 additions and 0 deletions
|
|
@ -540,6 +540,10 @@ bool Session::acquire_tile(RenderTile &rtile, Device *tile_device, uint tile_typ
|
|||
tile->buffers = new RenderBuffers(tile_device);
|
||||
tile->buffers->reset(buffer_params);
|
||||
}
|
||||
else if (tile->buffers->buffer.device != tile_device) {
|
||||
/* Move buffer to current tile device again in case it was stolen before. */
|
||||
tile->buffers->buffer.move_device(tile_device);
|
||||
}
|
||||
|
||||
tile->buffers->map_neighbor_copied = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue