April 1, 2021, 13:04 (GMT) |
Cycles: Schedule adaptive sampling filter Takes care of the logic from the render scheduler. Need to properly implement it on the PathTrace and PathTraceWork now. |
April 1, 2021, 13:04 (GMT) |
Cycles: Make path tracer aware of adaptive sampling No functional changes, just piping some information so that it can be used in the following development. Also make the scheduler aware of the adaptive sampling, with some preliminary support of samples alignment. |
April 1, 2021, 13:04 (GMT) |
Cycles: Move AdaptiveSampling to integrator folder The device_task was the wrong place for it. The new placement makes it possible to start hooking up the adaptive sampling information to the PathTrace. There are some minor changes to make the class fit better into the new rendering pipeline, also documentation is somewhat improved. |
April 1, 2021, 13:04 (GMT) |
Cycles: Expose adaptive sampling filters via CPUKernels The change includes moving some lines around, to arrange kernels in a more clear and grouped way. The CPUFunction invokation had to be modified to return auto type. This way it's possible to return value from the kernel. It compiles here with GCC. Didn't check whether this is something from newer C++ standards. If so, we can do some declspec magic to deduct the return type from the function type. On one hand this is an extra indirection, but on another hand this brings the following benefits: - Benefit from microarchitecture optimizations. - Exposes all kernels in a similar manner. |
April 1, 2021, 13:04 (GMT) |
Cycles: Initial support of adaptive sampling This change brings back main logic of adaptive sampling, which includes the following: - Samples count pass - Auxiliary buffer which is used to indicate per-pixel sample stopping. Missing parts of the implementation is the filtering and scaling of the render passes. There are further possible improvements, such as ensuring equality of noise when multiple samples are scheduled on the GPU. |
April 1, 2021, 13:04 (GMT) |
Cycles: Allow early outputs from the integrator initialization The was never an early output happening in this kernel, so the issue was never detected yet. Need to keep path and shadow path next kernels initialized to 0 in this case, otherwise the kernel scheduling will not terminate the path. Using path termination call is not possible in its current implementation by the looks of it, because there is no previous kernel scheduled yet. Solved by splitting the state initialization into two parts, allowing an early output prior to the full initialization or even prior to the ray initialization. The thing which is good in this approach is that it also initializes buffer access in the state, so that the adaptive sampling can access it in the general manner to perform early output checks. |
April 1, 2021, 13:04 (GMT) |
Cycles: Restore integrator's AA samples update The AA samples are not communicated from BlenderSync to the integrator. This is something what should become more explicit or clear: maybe set AA samples together with diffuse/glossy/etc in the sync, and/or make it happen from `Session::set_samples()`. For now restore old style code which happens in `Session::update_scene` but cover it with comment and do it without condition. |
April 1, 2021, 13:04 (GMT) |
Cycles: Write samples count pass Done from the path initialization function as it is a single kernel in which it is known path will be terminated (if path was initialized, it will be followed along and eventually terminated). So instead of doing the write in every kernel where path terminates do it in the single place. Needed to pass render buffers along, but this is more of a technical change. The sample number is always positive, as we no longer have multiple tiles rendering at the same time. Probably logic somewhere else can be simplified now. The pass is only available if the rendering did finish. This is due to the way how PathTrace communicates passes to Blender side. |
April 1, 2021, 13:04 (GMT) |
Cycles: Remove buffer from KernelWorkTile Also do minimal changes to adaptive sampling filter kernels to keep things compiled. Comment out filtering functions in CUDA device, similar to CPU device. All this is to prepare a bit less entangled and messy basis for work related on bringing the adaptive sampling within the new integrator. |
April 1, 2021, 12:53 (GMT) |
cleanup |
April 1, 2021, 12:52 (GMT) |
Spreadsheet: Show data of active node (WIP). Differential Revision: https://developer.blender.org/D10875 |
April 1, 2021, 12:39 (GMT) |
Merge branch 'master' into spreadsheet-active-node |
April 1, 2021, 12:39 (GMT) |
Nodes: separate node name and display name in bNodeTreePath Previously, `node_name` was rarely actually a name of a node. It is set correctly as node name in `ED_node_tree_push`. However, later on it was overwritten by the name of an id data block in `node_draw_space`. Now, the node_name stays the name of the "parent" node. Whereas display_name is the name that will be displayed in the breadcrumbs. With this change, the `node_name` can be used to reconstruct the actual path from the root node tree to the currently visible tree. Differential Revision: https://developer.blender.org/D10874 |
April 1, 2021, 12:31 (GMT) |
fix |
April 1, 2021, 12:30 (GMT) |
direct data ownership |
April 1, 2021, 11:20 (GMT) |
Cleanup: spelling |
April 1, 2021, 11:16 (GMT) |
Merge branch 'master' into spreadsheet-active-node |
April 1, 2021, 11:10 (GMT) |
Geometry Nodes: add socket value logging capability The node tree evaluator now calls a callback for every used socket with its corresponding value(s). Right now the callback does nothing. However, we can use it to collect attribute name hints, socket values for debugging or data that will be displayed in the spreadsheet. The main difficulty here was to also call the callback for sockets in nodes that are not directly executed (such as group nodes, muted nodes and reroutes). No functional changes are expected. |
April 1, 2021, 10:52 (GMT) |
cleanup |
April 1, 2021, 10:45 (GMT) |
Merge branch 'master' into spreadsheet-active-node |
|
|
|


Master Commits
MiikaHweb | 2003-2021