Blender Git Commits

Blender Git "cycles-x" branch commits.

Page: 17 / 44

June 28, 2021, 15:07 (GMT)
Fix incorrect volume stack for shadow rays
June 28, 2021, 15:07 (GMT)
Cycles X: more complete support for volumes

Brings back volume rendering support to what it was before on the GPU. That
means scattering, emissions and heterogeneous volumes with stepping. However
no decoupled or equiangular sampling yet.

Rather than separate homogeneous and heterogeneous code paths, there is only
heterogeneous now. This ensure shader evaluation is only compiled once. Some
optimizations may be possible for the homogeneous case, but that can be looked
at later.

Includes multiple commits, these are split in P2216. We can discuss how
best to review this next week.

Differential Revision: https://developer.blender.org/D11709
June 28, 2021, 15:07 (GMT)
Fix various issues in shadow handling of volumes

Properly compute volume shading for all segments before, between and after
surface hits.
June 25, 2021, 14:25 (GMT)
Fix Cycles X interop on non-OpenGL device

Graphics interop for non-display GPU got broken with the CUDA streams
addition.

Now we create interop object via the queue, so its possible to use
proper CUDA stream for mapping/unmapping.

Not sure why adding extra context synchronization did not resolve the
issue, but this change seems to make sense anyway.

Here its only reproducible with non-display GPU (for which it was
needed to tweak `should_use_graphics_interop()`). But some time ago
there reports about missing image in the viewport, so could be related.

Differential Revision: https://developer.blender.org/D11705
June 25, 2021, 14:08 (GMT)
Refactor: Move Cycles X CUDA interop class to own file

No functional changes.
Isolates logic, makes it easier to adopt for coming changes.
June 25, 2021, 10:24 (GMT)
Fix Cycles X backing on GPU

A mistake was made in the init_from_bake kernel which was wrongly
scheduling next kernel: it was considering that flow comes from
the intersect_closest kernel. This made active kernel counters go
wrong: sum was adding up to 0, but the intersect_closest kernel
had negative value.
June 24, 2021, 17:47 (GMT)
Merge branch 'master' into cycles-x
June 24, 2021, 10:55 (GMT)
Enable built-in OptiX curves by default

Starting with OptiX 7.3 curves now behave as expected with Cycles and render the same as the
custom intersection implementation, so enable by default.
June 24, 2021, 09:05 (GMT)
Fix Cycles X compaction fails with memory issues on Titan V

This card seems to report more threads available than half of the
maximum available states, which breaks offset logic in the path
compaction.
June 24, 2021, 08:47 (GMT)
Fix possible "run-away" error state in Cycles X

If the path tracing kernel encountered an error, it could cause wrong
code paths to trigger in the GPU implementation of the display update.

For example, an error state in the path trace should not mate the display
update to attempt to roll-back from interop update to naive one.
June 24, 2021, 07:42 (GMT)
Fix display half-float allocation in Cycles X

The comment and check was stating that allocation will happen for the
final resolution, while the actual allocation was using the currently
effective resolution.

Should fix random memory access issues for the viewport render.
June 21, 2021, 12:59 (GMT)
Merge branch 'master' into cycles-x
June 20, 2021, 11:17 (GMT)
Merge branch 'master' into cycles-x
June 17, 2021, 14:15 (GMT)
Cycles X: Initial support for the constant time rendering

Allows to limit render time, so that rendering will either happen
until all samples are finished, or the given time limit is reached.

Currently is only implemented for background and headless renders,
as those seems to benefit the most. In the viewport would still
like to investigate idea of keeping rendering until desired noise
floor is reached before adding extra settings there.

The usecases for the non-interactive (background, headless) renders
includes:

- Rendering a shot previews for movies.
- Ensuring some "bogus" frames do not stall the render farm.
- Allows to implement benchmark which will work reliable for both
very powerful and weak hardware configurations (as an example,
top-end GPUs and mobile GPUs) without requiring to wait forever
on a non-powerful hardware.

One of the tricky parts which is not solved in this version yet is
support of constant time rendering with multiple big tiles. However,
support of big tiles will be an addition on top of the existing code
as some sort of time limit would need to be enforced for every tile
(in other words, support of constant time render for multiple tiles
will be implemented on a higher level).

Differential Revision: https://developer.blender.org/D11526
June 17, 2021, 13:25 (GMT)
Cycles X: Re-arrange sampling panel

More explicit separate viewport from render settings. Makes it easier
and more clear to add settings which are only for preview or only for
the final render.

| Before | After |
| {F10177700} | {F10177701} |

Among other thngs removed unused CYCLES_RENDER_PT_sampling_total.
Think better would be to call draw_samples_info for both viewport
and render samples.

Differential Revision: https://developer.blender.org/D11633
June 17, 2021, 09:49 (GMT)
Fix Cycles X shadow catcher artifacts

Were caused by matte object appearing in the division process.

This change makes it so the matte object is removed from the
combined pass before division, which solves artifacts caused
by anti-aliasing (the matte "bleeds" into the shadow catcher
and produces artifacts around the rim).

Additionally made certain parts more explicit and better
documented.

Test file: {F10177353}

| Before | After |
| {F10177355} | {F10177358} |

Differential Revision: https://developer.blender.org/D11632
June 16, 2021, 15:52 (GMT)
Fix build with older OptiX SDK
June 15, 2021, 14:36 (GMT)
Cycles X: Implement OptiX denoising of shadow catcher passes

Pretty much follows similar change in the OIDN.

The information about whether denoiser should use fake albedo for a
specific pass is stored in its PassInfo.

It is probably possible to improve performance of the filter_convert_to_rgb
kernel (avoid per-pixel fake albedo check, avoid scaling normal for every
denoising input pass, ...). Not sure it will bring measurable performance
so leaving it for the future development and investigation.

Differential Revision: https://developer.blender.org/D11614
June 15, 2021, 14:01 (GMT)
Cycles X: Use pass accessor in the OptiX denoiser

No functional changes, just converging pass accessor to a commonly
used utility.

There is still custom kernel used, which ensures that pixel values
are within expected range.
June 15, 2021, 14:01 (GMT)
Cycles X: Use RenderBuffer in the denoise task API

No functional changes, but gives possibility to use PassAccessor to get
pixels of the input noisy pass.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021