Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-06-01Fix another windows / msvc build error.Brecht Van Lommel
2013-06-01Fix windows / msvc build error.Brecht Van Lommel
2013-05-31Cycles OpenCL: keep the opencl context and program around for quicker renderingBrecht Van Lommel
the second time, as for example Intel CPU startup time is 9 seconds. * Adds an cache for contexts and programs for each platform and device pair, which also ensure now no two threads try to compile and write the binary cache file at the same time. * Change clFinish to clFlush so we don't block until the result is done, instead it will block at the moment we copy back memory. * Fix error in Cycles time_sleep implementation, does not affect any active code though. * Adds some (disabled) debugging code in the task scheduler. Patch #35559 by Doug Gale.
2013-05-27Cycles / OpenCL:Thomas Dinges
* Use advanced shading for nvidia as well, works fine on my Geforce 540M with sm_21. I tested the files from regression suite.
2013-05-27Cycles OpenCL: patch #35514 by Doug GaleBrecht Van Lommel
* Support using devices from all OpenCL platforms, so that you can use e.g. both Intel and NVidia OpenCL implementations if you have them installed. * Fix compile error due to missing fmodf after recent math node change. * Enable advanced shading for Intel OpenCL. * CYCLES_OPENCL_DEBUG environment variable for generating debug symbols so you can debug with gdb. This crashes the compiler with Intel OpenCL on Linux though. To make this work the preprocessed kernel source code is written out, as gdb needs this. * Show OpenCL compiler warnings even if the build succeeded. * Some small fixes to initialize cdDevice to NULL, add missing NULL check when creating buffer and add missing space at end of build options for Apple OpenCL. * Fix crash with multi device + opencl, now e.g. CPU + GPU render should work. I did a few tweaks to the code and also: * Fix viewport render failing sometimes with Apple CPU OpenCL, was not taking workgroup size limits into account properly. * Add compile error when advanced shading in the Blender binary and OpenCL kernel are not in sync.
2013-05-15Cycles:Thomas Dinges
* Code cleanup, remove unused "resolution" variable from the DeviceTask class, was never used.
2013-05-14Cycles CUDA: in case of cryptic error messages in the console, refer to wikiBrecht Van Lommel
documentation for possible solutions.
2013-05-09Cycles / OpenCL:Thomas Dinges
* Remove old comment for sm_13 cards and really check for OpenCL 1.1.
2013-05-09Cycles OpenCL: a few fixes to get things compiling after kernel changes,Brecht Van Lommel
for Apple OpenCL on OS X 10.8 and simple AO render. Also environment variable CYCLES_OPENCL_TEST can now be set to CPU, GPU, ACCELERATOR, DEFAULT or ALL values to test particuler devices.
2013-04-02Cycles: code refactoring to add generic lookup table memory.Brecht Van Lommel
2013-03-17Cycles / CUDA:Thomas Dinges
* Simplify Computing Capability Check, only check for major.
2013-02-21Cycles GPU rendering:Thomas Dinges
* Deprecate computing capability 1.3 (sm_13) This commit disables auto build of sm_13 CUDA platform, which means that starting with Blender 2.67, we don't support sm_13 devices anymore. It has become difficult to support that and it was already feature incomplete (no render-passes, AO, Multi Closure etc). It's still possible to manually enable sm_13 for own tests, but building might break in the future.
2013-02-21Cycles:Thomas Dinges
* Code cleanup, remove deprecated support_advanced_shading() functions. Left over from r43734.
2013-02-15Add some more detailed CUDA error prints to try to debug #34166.Brecht Van Lommel
2013-02-13Fix #34226: cycles shadow pass got incorrectly influenced by world multipleBrecht Van Lommel
importance sampleing.
2013-02-12Fix cycles not using SSE3 kernel after recent, order with SSE2 should be ↵Brecht Van Lommel
switched, pointed out by Chad Fraleigh.
2013-02-06add missing bullet header to cmake, quiet reports from 'make test_cmake'Campbell Barton
2013-02-04Fix cycles intersection issue with overlapping faces on windows 32 bit and CPUBrecht Van Lommel
without SSE3 support, due to 80 bit precision float register being used for one bounding box but not the one next to it.
2013-01-15Cycles:Thomas Dinges
* CUDA: Make it more clear that sm_12 and below is not supported. * OpenCL: __KERNEL_SHADING__ was declared twice for nvidia opencl device. * Some reshuffle of defines in kernel_types.h. No functional changes.
2013-01-14Remove usage WITH_CYCLES_CUDA_BINARIES in code, use check forSergey Sharybin
precompiled cubins instead, Logic here is following now: - If there're precompiled cubins, assume CUDA compute is available, otherwise - If cuda toolkit found, assume CUDA compute is available - In all other cases CUDA compute is not available For windows there're still check for only precompiled binaries, no runtime compilation is allowed. Ended up with such decision after discussion with Brecht. The thing is, if we'll support runtime compilation on windows we'll end up having lots of reports about different aspects of something doesn't work (you need particular toolkit version, msvc installed, environment variables set properly and so) and giving feedback on such reports will waste time.
2013-01-06device_network.cpp is completely elided when WITH_NETWORK is not defined, so ↵Jason Wilkins
do not include it in the build in that case
2012-12-23Cycles: deal a bit better with errors when CUDA runs out of memory, try to ↵Brecht Van Lommel
avoid crashes.
2012-12-21Cycles: merge some changes from a local branch to bring network rendering a bitBrecht Van Lommel
more up to date, still nowhere near working though, but might as well commit this in case someone else is interested in working on it.
2012-12-01Fix #33375: OSL geom:trianglevertices gave wrong coordinates for static BVH.Brecht Van Lommel
Also some simple OSL optimization, passing thread data pointer directly instead of via thread local storage, and creating ustrings for attribute lookup.
2012-11-21Fix #33158: motion vector pass wrong in cycles in some scenes, wrong vectorsBrecht Van Lommel
due to float precision problem in matrix inverse.
2012-11-20Fix #33243: cycles CUDA going missing sometimes, disabled the new code now thatBrecht Van Lommel
can detect if a device becomes available while Blender runs, appears to be unreliable for some reason.
2012-11-08code cleanup: quiet double promotion warningsCampbell Barton
2012-11-08Fix #33107: cycles fixed threads 1 was still having two cores do work,Brecht Van Lommel
because main thread works as well.
2012-11-05Cycles: memory usage reportSergey Sharybin
This commit adds memory usage information while rendering. It reports memory used by device, meaning: - For CPU it'll report real memory consumption - For GPU rendering it'll report GPU memory consumption, but it'll also mean the same memory is used from host side. This information displays information about memory requested by Cycles, not memory really allocated on a device. Real memory usage might be higher because of memory fragmentation or optimistic memory allocator. There's really nothing we can do against this. Also in contrast with blender internal's render cycles memory usage does not include memory used by scene, only memory needed by cycles itself will be displayed. So don't freak out if memory usage reported by cycles would be much lower than blender internal's. This commit also adds RenderEngine.update_memory_stats callback which is used to tell memory consumption from external engine to blender. This information is used to generate information line after rendering is finished.
2012-10-22Fix related to #32929: update list of available devices for cycles renderingBrecht Van Lommel
while Blender is running, not only on load. It might help a case when Blender is started before the CUDA driver is fully initialized.
2012-10-17code cleanup:Campbell Barton
- move object_iterators.c --> view3d_iterators. (ED_object.h had to include ED_view3d.h which isn't so nice) - move projection functions from view3d_view.c --> view3d_project.c (view3d_view was becoming a mishmash of utility functions and operators). - some some cmake includes as system-includes.
2012-10-13Cycles: progressive refine optionSergey Sharybin
Just makes progressive refine :) This means the whole image would be refined gradually using as much threads as it's set in performance settings. Having enough tiles is required to have this option working as it's expected. Technically it's implemented by repeatedly computing next sample for all the tiles before switching to next sample. This works around 7-12% slower than regular tile-based rendering, so use this option only if you really need it. This commit also fixes progressive update of image when Save Buffers option is enabled. And one more thing this commit fixes is handling display buffer with Save Buffers option enabled. If this option is enabled image buffer wouldn't have neither byte nor float buffer until image is fully rendered which could backfire in missing image while rendering in cases color management cache became full. This issue solved by allocating byte buffer for image buffer from tile update callback. Patch was reviewed by Brecht. He also made some minor edits to original version to patch. Thanks, man!
2012-09-20code cleanup: cycles now uses system includes for boost/oiio.. etc, so we ↵Campbell Barton
dont get warnings from system headers.
2012-09-17Revert r50528: "Performance fix for Cycles: Don't wait in the main UI thread ↵Lukas Toenne
when resetting devices." This commit leads to random freezes in Cycles rendering: https://projects.blender.org/tracker/index.php?func=detail&aid=32545&group_id=9&atid=498 The goal of this commit was to remove UI lag for OSL, but since that is not officially supported yet, better revert it until a proper fix can be implemented in 2.65.
2012-09-12Attempted fix for #32415: tighten up cycles opencl initialization checks to ↵Brecht Van Lommel
try to avoid crashes. Don't think these should be needed but maybe it helps.
2012-09-11Performance fix for Cycles: Don't wait in the main UI thread when resetting ↵Lukas Toenne
devices. When the scene is updated Cycles resets the renderer device, cancelling all existing tasks. The main thread would wait for all running tasks to finish before continuing. This is ok when tasks can actually cancel in a timely fashion. For OSL however, this does not work, since the OSL shader group optimization takes quite a bit of time and can not be easily be cancelled once running (on my crappy machine in full debug mode: ~0.12 seconds for simple node trees). This would lead to very laggy UI behavior and make it difficult to accurately control elements such as sliders. This patch removes the wait condition from the device->task_cancel method. Instead it just sets the do_cancel flag and returns. To avoid backlog in the task pool of the device it will return early from the BlenderSession::sync function while the reset is going on (tested in Session::resetting). Once all existing tasks have finished the do_cancel flag is finally cleared again (checked in TaskPool::num_decrease). Care has to be taken to avoid race conditions on the do_cancel flag, since it can now be modified outside the TaskPool::cancel function itself. For this purpose the scope of the TaskPool::num_mutex locks has been extended, in most cases the mutex is now locked by the TaskPool itself before calling TaskScheduler methods, instead of only locking inside the num_increase/num_decrease functions themselves. The only occurrence of a lock outside of the TaskPool methods is in TaskScheduler::thread_run. This patch is most useful in combination with the OSL renderer mode, so it can probably wait until after the 2.64 release. SVM tasks tend to be cancelled quickly, so the effect is less noticeable.
2012-09-04Cycles: merge of changes from tomato branch.Brecht Van Lommel
Regular rendering now works tiled, and supports save buffers to save memory during render and cache render results. Brick texture node by Thomas. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture Image texture Blended Box Mapping. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture http://mango.blender.org/production/blended_box/ Various bug fixes by Sergey and Campbell. * Fix for reading freed memory in some node setups. * Fix incorrect memory read when synchronizing mesh motion. * Fix crash appearing when direct light usage is different on different layers. * Fix for vector pass gives wrong result in some circumstances. * Fix for wrong resolution used for rendering Render Layer node. * Option to cancel rendering when doing initial synchronization. * No more texture limit when using CPU render. * Many fixes for new tiled rendering.
2012-08-01Cycles:Thomas Dinges
* Removed outdated OpenCL comments, kernel features are defined in kernel_types.h now.
2012-06-09code cleanup: removed/renamed shadow & duplicate variable definitions.Campbell Barton
2012-06-09style cleanup: block commentsCampbell Barton
2012-05-28Cycles: fixes to make CUDA 4.2 work, compiling gave errors in shadows andBrecht Van Lommel
other places, was mainly due to instancing not working, but also found issues in procedural textures. The problem was with --use_fast_math, this seems to now have way lower precision for some operations. Disabled this flag and selectively use fast math functions. Did not find performance regression on GTX 460 after doing this.
2012-05-27style cleanupCampbell Barton
2012-05-13Cycles: OpenCL image texture support, fix an attribute node issue and refactorBrecht Van Lommel
feature enabling #defines a bit.
2012-05-05Cycles: threading optimizationsBrecht Van Lommel
* Multithreaded image loading, each thread can load a separate image. * Better multithreading for multiple instanced meshes, different threads can now build BVH's for different meshes, rather than all cooperating on the same mesh. Especially noticeable for dynamic BVH building for the viewport, gave about 2x faster build on 8 core in fairly complex scene with many objects. * The main thread waiting for worker threads can now also work itself, so (num_cores + 1) threads will be working, this supposedly gives better performance on some operating systems, but did not measure performance for this very detailed yet.
2012-05-04Cycles: tweak ATI OpenGL/CUDA fix more with extra error check.Brecht Van Lommel
2012-05-04Possible fix for #31054: cycles viewport rendering not working with CUDA forBrecht Van Lommel
computation and ATI card for OpenGL.
2012-04-28Cycles: merging features from tomato branch.Brecht Van Lommel
=== BVH build time optimizations === * BVH building was multithreaded. Not all building is multithreaded, packing and the initial bounding/splitting is still single threaded, but recursive splitting is, which was the main bottleneck. * Object splitting now uses binning rather than sorting of all elements, using code from the Embree raytracer from Intel. http://software.intel.com/en-us/articles/embree-photo-realistic-ray-tracing-kernels/ * Other small changes to avoid allocations, pack memory more tightly, avoid some unnecessary operations, ... These optimizations do not work yet when Spatial Splits are enabled, for that more work is needed. There's also other optimizations still needed, in particular for the case of many low poly objects, the packing step and node memory allocation. BVH raytracing time should remain about the same, but BVH build time should be significantly reduced, test here show speedup of about 5x to 10x on a dual core and 5x to 25x on an 8-core machine, depending on the scene. === Threads === Centralized task scheduler for multithreading, which is basically the CPU device threading code wrapped into something reusable. Basic idea is that there is a single TaskScheduler that keeps a pool of threads, one for each core. Other places in the code can then create a TaskPool that they can drop Tasks in to be executed by the scheduler, and wait for them to complete or cancel them early. === Normal ==== Added a Normal output to the texture coordinate node. This currently gives the object space normal, which is the same under object animation. In the future this might become a "generated" normal so it's also stable for deforming objects, but for now it's already useful for non-deforming objects. === Render Layers === Per render layer Samples control, leaving it to 0 will use the common scene setting. Environment pass will now render environment even if film is set to transparent. Exclude Layers" added. Scene layers (all object that influence the render, directly or indirectly) are shared between all render layers. However sometimes it's useful to leave out some object influence for a particular render layer. That's what this option allows you to do. === Filter Glossy === When using a value higher than 0.0, this will blur glossy reflections after blurry bounces, to reduce noise at the cost of accuracy. 1.0 is a good starting value to tweak. Some light paths have a low probability of being found while contributing much light to the pixel. As a result these light paths will be found in some pixels and not in others, causing fireflies. An example of such a difficult path might be a small light that is causing a small specular highlight on a sharp glossy material, which we are seeing through a rough glossy material. With path tracing it is difficult to find the specular highlight, but if we increase the roughness on the material the highlight gets bigger and softer, and so easier to find. Often this blurring will be hardly noticeable, because we are seeing it through a blurry material anyway, but there are also cases where this will lead to a loss of detail in lighting.
2012-04-09Cycles/OpenCL:Thomas Dinges
* Reverted the general activation of __KERNEL_SHADING__. Better to handle this in the device file. This way each platform gets specifically what it is capable of atm. * Nvidia has Shading + Multi Closure * AMD (Apple) has only Clay Render * AMD (non Apple) has Basic Shading
2012-04-05Cycles / OpenCL:Thomas Dinges
* Enable __KERNEL_SHADING__ per default for OpenCL. This enables basic shading (color, emission, textures...) for AMD cards. You need the latest AMD catalyst driver in order to have this work.
2012-02-25code cleanup: white space, spelling & ';;' end of lines.Campbell Barton