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: De-duplicate time averaging helpers |
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, 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, 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, 14:33 (GMT) |
comment some functions |
March 26, 2021, 14:32 (GMT) |
Split Mesh::pack_primitives into two functions |
March 26, 2021, 14:04 (GMT) |
Cleanup: make AlembicProcedural::add_object private This function should not be used outside of the procedural. |
Revision c81b104 by Julian Eisel (asset-browser, asset-browser-poselib, asset-system-filelist, temp-pose-flipping-fix-attempt) March 26, 2021, 13:38 (GMT) |
Correct function names for changes in ui-asset-view-template branch |
Revision fc8d8f8 by Julian Eisel (asset-browser, asset-browser-poselib, asset-system-filelist, temp-pose-flipping-fix-attempt) March 26, 2021, 13:38 (GMT) |
Cleanup: Use new utils provided by the asset system to get temp asset IDs The operators are not exclusive to the File Browser anymore now. The logic to get the asset file information and use that to append the ID if necessary is abstracted away by the asset system now, see 10383566b800. |
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 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: Rename WorkScheduler to WorkTileScheduler Makes it explicit which part of rendering work is being scheduled. |
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: 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 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: 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: 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, 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. |
|
|
|


Master Commits
MiikaHweb | 2003-2021