Blender Git Commits

Blender Git "cycles-x" branch commits.

Page: 35 / 44

March 30, 2021, 13:31 (GMT)
Cycles: Unify device variable name

Just stick to a commonly used `device`. The original idea of making it
clear that the device is actual a compute (non-multi) device didn't
really work that great.
March 30, 2021, 13:31 (GMT)
Cleanup: Extra spaces at the end of comment
March 30, 2021, 13:30 (GMT)
Cycles: Enable all passes for OpenImageDenoiser

Finishes the OpenImageDenoiser re-implementation to the same feature
level as it was before the big refactor.
March 30, 2021, 12:02 (GMT)
Cycles: restore writing of light render passes

* Write directly into render buffers instead of PathRadiance
* Indirect and shadow paths are now marked as needing to be written to either
reflection, transmission or volume scatter passes with a flag
* For diffuse/glossy distinction in reflection, we store the ratio of diffuse
and glossy so we can reconstruct the diffuse and glossy throughput
* Get rid of ShadowLight integrator state store in shadow path throughput and
flag instead

Still missing:
* AO and shadow passes
* Proper handling of ray visibility on lights
* Adaptive sampling passes
March 26, 2021, 16:23 (GMT)
Cycles: Automatically calculate resolution divider

Calculate resolution divider so that it is the lowest one which allows
to have smooth viewport navigation.
March 26, 2021, 16:23 (GMT)
Cycles: De-duplicate time averaging helpers
March 26, 2021, 16:23 (GMT)
Cycles: Remove start resolution from user interface

It is calculated automatically now and the value from the interface
is ignored.

The TileManager becomes some sort of annoying half-commented-out piece
of code. Will be cleaned up once multiple big tiles support will be
implementing.
March 26, 2021, 16:23 (GMT)
Cycles: Schedule multiple samples to viewport render

The idea is to schedule 1 sample at the lower sample ranges, giving
a quick update on a noisy image, but schedule more samples and do less
often updates at higher number of samples.

There is a magic code which decides how often to do updates, which
might need some further tweaking.

Simple startup file and BMW27 on GPU are about 4% faster in viewport
now.

It is important to note that navigation is always instant. This means
that the longer render times between updates does not have affect on
how instant navigation can start.
March 26, 2021, 14:51 (GMT)
Fix Cycles crash when changing number of threads at runtime

Create a local arena with exact number of threads, so that the
`tbb::this_task_arena::current_thread_index` returns proper index.

Need to verify that this does not spawn new worker threads and
that this actually works under all circumstances.
March 26, 2021, 14:51 (GMT)
Cycles: Bring pixel size support back

Was missing in the RenderScheduler refactor.
March 26, 2021, 13:32 (GMT)
Fix border render in viewport on GPU

Mistake in calculation of buffer x and y from the global work index.
March 26, 2021, 13:04 (GMT)
Cycles: Move denoising decision from Session to RenderScheduler

Makes it possible to have more complete timing overview to make
decision how many samples to render and when to denoise.

Currently there are no functional changes.
March 26, 2021, 13:04 (GMT)
Cycles: Move resolution divider to RenderScheduler

Had to move RenderScheduler away from PathTrace into Session.
This way it is simpler to perform scene update in a threading-safe
manner without making PathTrace API more complicated.

So now the flow goes as following:
- Session requests work from the RenderScheduler
- Session updates scene for the possibly changed resolution
- PathTrace renders the given work, which might involve path tracing,
denoising, and display update.
- PathTrace informs the scheduler how long specific task took, so that
the scheduler can adjust its scheduling policy.

The user level change is that the start resolution is now ignored.
It will be replaced with a more automated code based on the timing.

There is still some work to be done to support multiple big tiles.

Still not entirely happy, but think we need to let the matter to rest
a bit and re-iterate when we will be adding big tiles support.
March 26, 2021, 13:04 (GMT)
Cycles: Rename WorkScheduler to WorkTileScheduler

Makes it explicit which part of rendering work is being scheduled.
March 26, 2021, 13:04 (GMT)
Cycles: Move samples scheduling logic to own class

The idea is to consolidate all logic which is related on samples and
denoising scheduling to a single class, which has an overview of how
expensive each task is.

So far should be no functional changes. Still preparation for moving
resolution divider and viewport samples number logic away from the
TileManager.
March 26, 2021, 13:04 (GMT)
Cycles: Log number of samples which PathTraceWork will render

Allows to monitor how many samples were scheduler for rendering
between updates.
March 26, 2021, 13:04 (GMT)
Cycles: Move denoising call inside of PathTrace::render_samples

Preparation for the pathTrace being responsible for scheduling samples,
denoising, and display updates.

Temporarily alters the render_samples() call.

Should be no functional changes.
March 26, 2021, 13:04 (GMT)
Cycles: Move GPUDisplay to PathTrace

The end goal is to have PathTrace to have full control over things like
resolution divider, number of samples scheduled for rendering, picking
the best moment to perform denoising based on an empirical measurements
in order to achieve best responsive interface as well as the best
render times.

This change moves ownership of the GPUDisplay from Session to PAthTrace
so that PathTrace can start using it directly.

Should be no functional changes so far, just preparing code and API
needed for the end goal.
March 26, 2021, 13:04 (GMT)
Cycles: Fix missing denoise start sample update

It is being updated separately from parameters, even though is stored
in the parameters.

Solved by moving an update of denoiser parameters to the initialization
of the new render iteration. The modification check is now done in the
PathTrace.

Good thing is that now it is possible to remove buffer lock, meaning
interface will never be frozen on denoiser changes. Additionally,
rendering now should never get out of sync between passes and denoiser
configuration.
March 26, 2021, 08:58 (GMT)
Cycles: Add comment about allocation size of PBO
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021