Blender Git Loki

Blender Git "cycles-x" branch commits.

Page: 31 / 44

April 7, 2021, 12:16 (GMT)
Cycles: Remove unused progressive parameter from session
April 7, 2021, 12:16 (GMT)
Cycles: Pass callback by const reference

The only benefit which I am aware of of passing callback by value is
when it needs to be moved for a permanent storage somewhere else.

Here passing it by value was creating temporary copies for every
invocation.
April 7, 2021, 12:16 (GMT)
Cycles: Remove unused timeouts from Session
April 6, 2021, 16:30 (GMT)
Cycles: Make OptiX device compilable

- Follows the regular structure of CPU and CUDA directory.
- Use Cycles-style comment style, use explicit code blocks when
was easy to spot.
- Use common implementation of CUDAContextScope.
- Remove calls from header which were removed from other devices.
- Comment out all implementation methods.

All in all, this is a CUDA device at this time. The actual OptiX
parts will be brought back as a followup development.
April 6, 2021, 15:06 (GMT)
Cycles: Fix dependency cycle between device update and scheduler

Scheduler needs to know adaptive sampling settings, the device
update needs to know scheduled resolution divider, and the old
adaptive sampling code was using fields which are only available
after device update.

This change fixes this dependency.

The downside is that there is no more check for existence of AUX
pass. Assume that the session is in consistent state and that when
adaptive sampling is enabled toe AUX pass exists.
April 6, 2021, 15:06 (GMT)
Cycles: Make render scheduler aware of headless mode

Allows to use scheduling which is more optimal for headless.
April 6, 2021, 15:06 (GMT)
Cycles: Ensure adaptive sampling never exceeds number of requested samples
April 6, 2021, 15:06 (GMT)
Cycles: Use better scheduling when headless

- Never do display updates.
- Render as many samples as possible within 30 sec intervals.

With adaptive sampling enabled number of samples to be rendered is
aligned with adaptive sampling filtering.

This brings render time of classroom_gpu in command line from 90 to 80
seconds.
April 6, 2021, 14:19 (GMT)
Cleanup: move BVH utility functions to own file, deduplicate some code
April 6, 2021, 14:19 (GMT)
Cycles: terminate paths in intersect_closest

To avoid executing shade_surface kernel and evaluating shaders when not needed.
Only execute that kernel now for emissive surface and surfaces with transparent
shadows (which can be in front of emissive surfaces), for MIS.
April 6, 2021, 12:53 (GMT)
Cycles: Report number of unused path states in tile scheduler

Currently it is probably always 0. But is useful to have for comparison
with different tile size calculation strategies.
April 6, 2021, 12:53 (GMT)
Cycles: Add utility to calculate previous power of two
April 6, 2021, 12:53 (GMT)
Cycles: Keep CUDA threads more coherent

The idea is to schedule smaller tiles with more samples per tile as a
KernelWorkTile.

Currently the code is attempting to schedule all samples into a single
tile which is as big as the number of path states allows. This is not
very efficient in a sense that it might keep some of the path states
unused. The way around it is to align tile size down to the power of
two and schedule more tiles. From local tests such tile size alignment
is actually eliminating speedup of many samples running in parallel.
Could be something about warp size or incoherency coming from other
sources (the once where coalescing might help). Leaving the code for
the aligning tile size to power of two as a if(false) branch for the
further investigation.

The number of samples is rounded to the closest power of two, which
helps with path state divisions. In practice if might mean somewhat
longer interval between updates, but it shouldn't be that bad since
usually it is no more than 8 samples which are scheduling.

With own tests the classroom render time without sync went down from
96 sec to 90 sec.
April 6, 2021, 12:53 (GMT)
Cycles: Add utility to calculate next power of two
April 6, 2021, 08:27 (GMT)
Cleanup: Resolve moving a temporary object prevents copy elision warning
April 6, 2021, 08:22 (GMT)
Cleanup: Explicitly mark method as overrided
April 2, 2021, 18:46 (GMT)
Fix CPU render crash in simple scene without transparent shadows
April 2, 2021, 18:46 (GMT)
Fix wrong ray distance for AO bounces feature
April 2, 2021, 15:23 (GMT)
Cycles: Remove kernel_adaptive_post_adjust kernel

It is no longer needed since the scaling is done in buffers.cpp.
April 2, 2021, 15:23 (GMT)
Cycles: Remove legacy adaptive sampling code from devices

It has been replaced with the new implementation.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021