March 9, 2021, 15:17 (GMT) |
Cycles: Remove remaining parts of feature kernels |
March 9, 2021, 15:17 (GMT) |
Cycles: Enable CUDA device by default It was disabled by default for the initial pass of the split kernel. Now it is supposed to be officially supported, so it is more convenient to enable it back. |
March 9, 2021, 14:39 (GMT) |
Cycles: Make viewport navigation more interactive Achieved by making render session be resettable more often than the configured timeout. More detailed explanation of logic can be found in the comment in `ready_to_reset()`. Makes it so camera navigation in classroom scene gives feedback as soon as possible. The next logical trick on this topic would be to calculate resolution divider based on the rendering performance, so that we can show most detailed picture while navigating. |
March 9, 2021, 14:32 (GMT) |
Cycles: Make PathTraceWorkPixel work for GPU Mainly for debugging purposes, as the performance of it is not suitable for GPU rendering. |
March 9, 2021, 14:32 (GMT) |
Cycles: Comment out tile acquisition/stealing code It will need to be implemented on a different level, or not needed at all. |
March 9, 2021, 14:32 (GMT) |
Cycles: Remove buffers from Session Those are owned by PathTrace, which will take care of slicing the buffer for multi-device. |
March 9, 2021, 14:32 (GMT) |
Cycles: Remove split kernel queues These queues are being implemented differently now. |
March 9, 2021, 14:32 (GMT) |
Cycles: Remove feature kernels They were only implemented for OpenCL and they were actually blocking viewport: it was not possible to navigate while system was waiting for a fully-featured kernels. With the new integrator this should be implemented differently. |
March 9, 2021, 14:09 (GMT) |
Merge branch 'master' into cycles-x |
March 9, 2021, 13:04 (GMT) |
Fix Cycles viewport flickering in run_cpu Was caused by wrong state passed to scene update when there is a delayed reset requested. The explanation in code comment should be sufficient. Technically, should also be fixed in upstream, but since there are no known reports or repro cases is safer to test the fix here. |
March 9, 2021, 13:04 (GMT) |
Cycles: Implement PathTrace::cancel() It is used for cancelling rendering as soon as possible, which is required for fast session reset. This change makes it so viewport navigation feels smoother. In theory, now it is possible to reset render session as quickly as possibly (and not only once 0.1sec as per default configuration). |
March 5, 2021, 16:55 (GMT) |
Fix various CUDA issues fater recent change - Strict compiler warnings in the CUDADeviceQueue - Missing install file for the megakernel |
March 5, 2021, 15:32 (GMT) |
Fix wrong samples stop criteria in Cycles path trace With multiple samples scheduled at once the stop criteria needs to be adjusted. On a first glance seemed like things will be much faster, but no: the way how scheduling worked was just requesting 0 samples for many loop iterations. Still stupid but does not cause that measurable of speedup. |
March 5, 2021, 15:31 (GMT) |
Cycles: add megakernel for new integrator, to finish last path faster Also always used for CPU since it's a bit faster. |
March 5, 2021, 15:31 (GMT) |
Cycles: use array of queued/terminated paths to schedule less work for GPU Passing along a path index now that may be different than the work index. |
March 5, 2021, 15:31 (GMT) |
Cycles: return number of active paths from queue |
March 5, 2021, 15:31 (GMT) |
Cycles: track number of queued kernels with atomics on GPU Also change logic to assume integrator state is zero initialized, so that the init_from_camera will be able to check if a path is terminated. |
March 5, 2021, 08:33 (GMT) |
Cycles: Fix assert in tile manager Was caused by the recent deletion of tile order. Need to use tile order which is friendly for viewport rendering. |
March 5, 2021, 08:33 (GMT) |
Cycles: Bring progress report back Is a bit weird mixture of Progress object and a callback. The idea is that Progress object is used to communicate progress within the current big tile from PathTrace to owner of the progress object. The callback is called after that, so that the (in this case) Session can assemble full status and report it to the interface. On a positive side the cancel callback becomes unneeded. |
March 4, 2021, 13:59 (GMT) |
Cycles: Remove DeviceWorkTile It is really the same as KernelWorkTile, especially after we remove the buffer pointer (hopefully, in the future). There is no need to have a duplicate entity, just use KernelWorkTIle in the API. Simplifies some of initialization when passing work tile to an actual kernels. Opens possibility to schedule multiple samples to GPU. Had to introduce min(uint, uint) and solve some introduced deduction issues by mix of int and uint in the existing code. |
|