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-08-31Cycles: viewport render now takes scene color management settings into account,Brecht Van Lommel
except for curves, that's still missing from the OpenColorIO GLSL shader. The pixels are stored in a half float texture, converterd from full float with native GPU instructions and SIMD on the CPU, so it should be pretty quick. Using a GLSL shader is useful for GPU render because it avoids a copy through CPU memory.
2013-08-31Fix #36137: cycles render not using all GPU's when the number of GPU's is largerBrecht Van Lommel
than the number of CPU threads
2013-08-23Cycles: more code refactoring to rename things internally as well. Also changeBrecht Van Lommel
property name back so we keep compatibility.
2013-08-18Cycles: relicense GNU GPL source code to Apache version 2.0.Brecht Van Lommel
More information in this post: http://code.blender.org/ Thanks to all contributes for giving their permission!
2013-08-10Cycles:Thomas Dinges
* GPU kernel can now be compiled without __NON_PROGRESSIVE__ again, was broken after my last commit. Also add a check for have_error(), in case the GPU kernel comes without Non-Progressive, to avoid a crash. * Don't compile progressive kernel twice on CPU, if __NON_PROGRESSIVE__ would be disabled there.
2013-08-09Cycles / Non-Progressive integrator:Thomas Dinges
* Non-Progressive integrator is now available on the GPU (CUDA, sm_20 and above). Implementation details: * kernel_path_trace() has been split up into two functions: kernel_path_trace_non_progressive() and kernel_path_trace_progressive(). * We compile two CUDA kernel entry functions (in kernel.cu) for the two integrators, they are still inside one .cubin file but due to the kernel separation there should be no performance problem. I tested with the BMW file on my Geforce 540M and the render times were the same for 100 samples (1.57 min in my case). This is part of my GSoC project, SVN merge of r59032 + manual merge of UI changes for this from my branch.
2013-06-27Code cleanup: cyclesBrecht Van Lommel
* Reshuffle SSE #ifdefs to try to avoid compilation errors enabling SSE on 32 bit. * Remove CUDA kernel launch size exception on Mac, is not needed. * Make OSL file compilation quiet like c/cpp files.
2013-06-21Cycles OpenCL: make displacement and world importance sampling work.Brecht Van Lommel
2013-06-20Cycles: update build configurations to include CUDA sm_35 architecture. When ↵Brecht Van Lommel
using a compiler older than CUDA 5.0 it will give a warning and skip this architecture.
2013-06-19Cycles: prepare to make CUDA 5.0 the official version we useBrecht Van Lommel
* Add CUDA compiler version detection to cmake/scons/runtime * Remove noinline in kernel_shader.h and reenable --use_fast_math if CUDA 5.x is used, these were workarounds for CUDA 4.2 bugs * Change max number of registers to 32 for sm 2.x (based on performance tests from Martijn Berger and confirmed here), and also for NVidia OpenCL. Overall it seems that with these changes and the latest CUDA 5.0 download, that performance is as good as or better than the 2.67b release with the scenes and graphics cards I tested.
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-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-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-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.
2012-12-23Cycles: deal a bit better with errors when CUDA runs out of memory, try to ↵Brecht Van Lommel
avoid crashes.
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-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-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-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-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-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-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-01-27Cycles: another fix for CUDA render passes, needed to align float4 passes.Brecht Van Lommel
2012-01-26Cycles: render passes for CUDA cards with compute model >= 2.x.Brecht Van Lommel
2012-01-09Cycles: multi GPU rendering support.Brecht Van Lommel
The rendering device is now set in User Preferences > System, where you can choose between OpenCL/CUDA and devices. Per scene you can then still choose to use CPU or GPU rendering. Load balancing still needs to be improved, now it just splits the entire render in two, that will be done in a separate commit.
2012-01-04Cycles: device code refactoring, no functional changes.Brecht Van Lommel
2011-12-31Cycles code refactoring: change displace kernel into more generic shaderBrecht Van Lommel
evaluate kernel, added background shader evaluate.
2011-12-20Cycles/CUDA:Thomas Dinges
* Rename shader model to compute capability in error messages.
2011-12-20Cycles: border rendering support, includes some refactoring in how pixels areBrecht Van Lommel
accessed on devices.
2011-12-13Fix cycles compile for win32.Miika Hamalainen
2011-12-13Cycles: require Experimental to be set to enable CUDA on cards with shader modelBrecht Van Lommel
lower than 1.3, since we're not officially supporting these. We're already not providing CUDA binaries for these, so better make it clear when compiling from source too.
2011-12-01CyclesBrecht Van Lommel
* Compile all of cycles with -ffast-math again * Add scons compilation of cuda binaries, tested on mac/linux. * Add UI option for supported/experimental features, to make it more clear what is supported, opencl/subdivision is experimental. * Remove cycles xml exporter, was just for testing.
2011-11-23Cycles: improve error reporting for opencl and cuda, showing error messages inBrecht Van Lommel
viewport instead of only console.
2011-11-10Cycles:Brecht Van Lommel
* Add back option to bundle CUDA kernel binaries with builds. * Disable runtime CUDA kernel compilation on Windows, couldn't get this working, since it seems to depend on visual studio being installed, even though for this particular case it shouldn't be needed. CMake only at the moment. * Runtime compilation on linux/mac should now work if nvcc is not installed in the default location, but available in PATH.
2011-11-08Cycles Merge:Brecht Van Lommel
* It seems we have a problem compiling the CUDA kernel at runtime on Windows, will need to investigate more how to solve this best, CPU render should go fine though. * Change OPENIMAGEIO to OPENIMAGEIO_ROOT_DIR on linux for consistency.
2011-10-16Cycles: enable multi closure sampling and transparent shadows only on CPU andBrecht Van Lommel
CUDA cards with shader model >= 2 for now (GTX 4xx, 5xx, ..). The CUDA compiler can't handle the increased kernel size currently.
2011-09-16Cycles: tweaks to properties and nodesBrecht Van Lommel
* Passes renamed to samples * Camera lens radius renamed to aperature size/blades/rotation * Glass and fresnel nodes input is now index of refraction * Glossy and velvet fresnel socket removed * Mix/add closure node renamed to mix/add shader node * Blend weight node added for shader mixing weights There is some version patching code for reading existing files, but it's not perfect, so shaders may work a bit different.
2011-09-12Cycles:Brecht Van Lommel
* Fix missing update when editing objects with emission materials. * Fix preview pass rendering set to 1 not showing full resolution. * Fix CUDA runtime compiling failing due to missing cache directory. * Use settings from first render layer for visibility and material override. And a bunch of incomplete and still disabled code mostly related to closure sampling.
2011-09-09Cycles:Brecht Van Lommel
* OpenCL now only uses GPU/Accelerator devices, it's only confusing if CPU device is used, easy to enable in the code for debugging. * OpenCL kernel binaries are now cached for faster startup after the first time compiling. * CUDA kernels can now be compiled and cached at runtime if the CUDA toolkit is installed. This means that even if the build does not have CUDA enabled, it's still possible to use it as long as you install the toolkit.
2011-09-02Cycles: compile opencl kernels in non-blocking thread, and don't crash onBrecht Van Lommel
build failure but show error message in status text.
2011-08-28Cycles:Brecht Van Lommel
* Add alpha pass output, to use set Transparent option in Film panel. * Add Holdout closure (OSL terminology), this is like the Sky option in the internal renderer, objects with this closure show the background / zero alpha. * Add option to use Gaussian instead of Box pixel filter in the UI. * Remove camera response curves for now, they don't really belong here in the pipeline, should be moved to compositor. * Output full float values for rendering now, previously was only byte precision. * Add a patch from Thomas to get a preview passes option, but still disabled because it isn't quite working right yet. * CUDA: don't compile shader graph evaluation inline. * Convert tabs to spaces in python files.