Blender Git Loki

Blender Git commits from all branches.

Page: 469 / 2888

March 19, 2021, 19:08 (GMT)
Merge branch 'master' into sculpt-dev
March 19, 2021, 18:15 (GMT)
Cycles: Avoid temporary buffer allocation for GPUDisplay update on CPU

The idea is to request GPUDisplay to map memory, so that the film
conversion can happen directly into that memory.

Additionally, move away from task to a kernel call.

In an own tests here the full viewport render time on a very simple
file is now about 6% faster, although is unclear whether it is due
to TBB or due to avoiding extra memory copy. Still nice.

The GPU part still needs work, and will be handled separately.
March 19, 2021, 18:12 (GMT)
Cycles: Make buffer parameters more coupled to PathTraceWork

It is annoying to pass scaled parameters to every call. More correct
approach it seems to be to make them more "sticky": they become a
property of path trace work, together with the render buffers.

The idea is to have the following in the long term:
- PathTrace allocates render buffers for every PathTraceWork
- PathTrace updates parameters of every PathTraceWork on resolution
divider change.
- PathTrace re-allocates the buffer when balancing is needed to
accomodate for performance difference of different render devices.

This way PathTraceWork always knows its buffer pointer and effective
parameters and always uses them in all the API calls.
March 19, 2021, 18:00 (GMT)
Merge branch 'master' into temp-lineart-contained
March 19, 2021, 17:57 (GMT)
Merge branch 'master' into temp_bmesh_multires
March 19, 2021, 17:44 (GMT)
Merge branch 'master' into sculpt-dev
March 19, 2021, 17:21 (GMT)
Merge branch 'master' into greasepencil-object
March 19, 2021, 17:21 (GMT)
Merge branch 'master' into temp-gpencil-io
March 19, 2021, 17:21 (GMT)
Merge branch 'master' into eevee-gpencil
March 19, 2021, 16:43 (GMT)
Draw manager: Add utility functions for context creation

Some special logic is needed to release the active DrawManager OpenGL
context when new context needs to be created by a render engine.

This change introduces functionality which is needed for such process,
including a simple example usage in the comment.
March 19, 2021, 16:43 (GMT)
Cycles: Avoid explicit CPU-side buffer in GPUDisplay

The idea is to use OpenGL texture and pixel buffer object
to push pixels from PathTrace to the GPU for draw.

The need of the PBO is because updating texture from the
copy_pixels_to_texture() function turned out to be quite
expensive in terms of CPU time spent, degrading viewport
render performance. The downside of this approach is that
the peak memory might be higher when rendering on a multiple
devices compared to partial direct texture updates. Although
this is hard to tell for sure, since it depends on exact way
of how driver schedules updates and manages memory.

The upside of this change is that it makes it so PBO is
there, ready to be used by CUDA's GL graphics for direct
update without CPU memory round-trip.

The performance is a bit hard to measure, since the timing
varies quite a bit, but on the CPU it is the same ballpark.
March 19, 2021, 16:40 (GMT)
Small cleanup
March 19, 2021, 16:38 (GMT)
Larger width for name column, use values for object and collection specifically
March 19, 2021, 16:22 (GMT)
Merge branch 'ui-asset-view-template' into asset-browser-poselib
March 19, 2021, 16:22 (GMT)
Merge branch 'master' into asset-browser-poselib
March 19, 2021, 16:16 (GMT)
Merge branch 'master' into ui-asset-view-template
March 19, 2021, 16:14 (GMT)
Cleanup: Python code style
March 19, 2021, 16:09 (GMT)
Fix race condition when multiple file/asset-lists are running at once

E.g. opening a file with an asset viewer and an Asset Browser could cause one
of them to not load its files properly. That is because there was only one
`wmJob` per scene so when the first one was done it would end the other one(s).
I think this would be a problem in master for the regular File Browser too.

Instead of setting the scene as owner of the job, use the file-list, so that
each file/asset-list gets its own job.
March 19, 2021, 15:58 (GMT)
Cycles: add back random walk subsurface scattering

* shade_surface now samples either a BSDF or BSSRDF to continue the path, and
depending on that will continue with intersect_closest or intersect_subsurface.
* Then intersect_subsurface kernels does ray-tracing and scattering below the
surface. If an exit point is found, it returns to shade_surface.
* Since shade_surface is called twice, direct lighting is evaluated both for
the BSSRDF and any (typically specular) BSDF, since only doing either is
quite noisy.
* Note most files use Christensen-Burley so will render differently.
* subsurface_random_walk should be split up into smaller functions, but I've
kept it like the current implementation now, will split it up in a later commit.
March 19, 2021, 15:58 (GMT)
Cleanup: add utility functions write writing ray and isect to integrator state
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021