Age | Commit message (Collapse) | Author |
|
try to
avoid crashes. Don't think these should be needed but maybe it helps.
|
|
* Non-Progressive UI couldn't be displayed if the device was set to GPU, but User Preferences Device was NULL. (for example when opening .blend file on another computer without GPU capabilities)
* Fix missing update in the Properties editor, when changing compute_device.
This fixes [#32115] OSX and cycles no non-progessive sample input settings appearing in interface.
|
|
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.
|
|
convention for member naming.
|
|
F12 rendering.
|
|
definition from the cycles macro file to the top-level CMakeLists.txt. This makes the OSL_LIBRARIES and other variables accessible throughout Blender cmake scripts and especially in the creator module for linking libraries.
|
|
|
|
|
|
enum typedef and the attribute_standard_name mapping function to util_attribute/util_types headers, so they can properly be used by kernel and render files alike. This should avoid any std C includes which are not available in CUDA. Thanks to Sergey for help!
|
|
Instead of including util_string.h which in fact also defines some
symbols from util_string.cpp include STL's string header and directly
use std::string.
|
|
* reverted r50430
* removed 2 util_params.h includes from r50428, these were causing trouble with OIIO in CUDA compilation. The purpose of these was to define the ustring type, but can just use the standard string type from util_string as well.
|
|
|
|
|
|
* Added the Phong BRDF from the inbuilt OSL shader library.
This can be used in OSL shaders only for now:
* phong(normal N, float exponent)
* phong_ramp(normal N, float exponent, color colors[8]
|
|
|
|
too now, no idea how this happened or where it actually came from. This will likely also cause trouble with CUDA/OpenCL compilers, will have to be fixed properly later.
|
|
of the device texture.
|
|
|
|
shader_setup_* functions, since it should specific to the sample being worked on. The the context release then happens in the kernel_shader functions after shader evaluation is done. Care has to be taken to ensure the shader_release function is also called in cases where the path integration is cancelled early, this was the main cause for unreleased contexts and subsequent new allocations.
|
|
|
|
* Noise Texture is rendering now.
|
|
* Ported the Brick Texture to OSL. Renders fine :)
|
|
the simple renderer example in OSL does it this way."
This does not actually work: The context must not be shared between threads, but using the same context between different samples actually seems to prevent OSL from switching between shaders. The proper solution would be to ensure memory pooling works correctly.
This reverts commit 69f87e69258d6266dcb20f09f7e3d4021e663432.
|
|
* Holdout shader is now working in OSL.
|
|
shader parameters, use the compatible_name function to strip whitespace.
|
|
|
|
* WIP commit of fixes for musgrave and wave.
|
|
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.
|
|
* Gradient texture renders now.
|
|
simple renderer example in OSL does it this way.
|
|
not get released properly.
|
|
BGE to not use RNA (use lower level BKE/BLI funcs instead)
|
|
BKE_utildefines is now unused but keep incase we want to add defines there later.
|
|
accessible from the interface class (presumably because it is just the base class pointer anyway and would have to be casted). The OSLRenderServices pointer to our own implementation is now stored alongside the ShadingSystem in the kernel globals, so it can be accessed in thread_init.
|
|
bits, leading to out-of-range index if used directly. This must use the SHADER_MASK to get actual array index.
|
|
|
|
|
|
|
|
* Holdout shader was missing in cmake.
|
|
|
|
The switch between SVM/OSL is decided at runtime, so the SVM code cannot simply be ignored when OSL is enabled.
Currently all shader functions check the OSL/SVM flag to dispatch to the appropriate backend. If this turns out to be a significant overhead (unlikely) this test should be moved out of the inner loop.
|
|
would be
fixed in the dependency graph so it gives a proper signal but that would need a
bigger refactor.
|
|
feature set is "Experimental".
|
|
|
|
|
|
cycles_kernel_osl to the list of blender libs in creator.
|
|
identifiers. RTTI has to be disabled in cycles for OSL.
|
|
|
|
|
|
|